首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用HTML输出在tufte样式的Bookdown中每一章重新设置侧位编号?

如何用HTML输出在tufte样式的Bookdown中每一章重新设置侧位编号?
EN

Stack Overflow用户
提问于 2021-05-12 17:55:17
回答 2查看 238关注 0票数 7

我正在使用、tufte、姆姆布斯特包将tufte-胶乳书转换成tufte。我有一大堆的副词,希望每一章都能重新开始编号,这样我就不会在书的末尾达到400。

我在Bookdown GitHub中找到了使用常规Bookdown实现这一功能的GitHub,它使用脚注/尾注。但是,我修改代码以处理sidenotes的尝试失败了。这是我当前的CSS添加,它只接受这些代码,并在sidenotesidenote-number中删除(检查元素提示正确的标记),footnote最初是这样的:

代码语言:javascript
复制
/* generate new footnote calls */
.sidenote-number::after {
  content: counter(fn-call);
  position: relative;
  top: -.5em;
  font-size: 85%;
  line-height: 0;
  vertical-align: baseline;
}

/* use a counter for footnotes numbering */
.sidenote ol {
  list-style: none;
  counter-reset: fn-number;
}

.sidenote li {
  counter-increment: fn-number;
}

.sidenote li p:first-child::before {
    content: counter(fn-number) '. ';
    width: 1.5em;
    float: left;
}

这不像预期的那样工作,而是添加了一个新的计数器,该计数器对每个侧标记进行编号,并为每个标记重新设置一个计数器,因此内文字标记得到一个1,而侧标记得到一个2。

我的CSS技巧也不例外,我也不确定下一步该怎么做。如何才能使实际的标记重新设置?

您可以看到一个用tufte/msmbstyle 这里构建的页面的示例;只需向下滚动一下就可以找到sidenote 4。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-05-26 05:27:12

最后我付钱给别人来解决这个问题。他们写了一些JavaScript来修复它。可以将下列代码保存为HTML文件,并将其添加到

代码语言:javascript
复制
includes:
  in_header: thishtmlfile.html

在YAML中。下面是HTML/JS/Jquery的代码:

代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script>
  $(document).ready(function () {
    var element_label= $("label[for *= 'tufte-sn-']");
    var count = $(element_label).length;
    $(element_label).each(function( index ) {
      //console.log( ++index + ": " + $( this ).text() );
      $(this).attr('for','tufte-sn-'+ ++index);
      $(this).text(index);
    });
  });
  $(document).ready(function () {
    var element_input= $("input[id *= 'tufte-sn-']");
    var count = $(element_input).length;
    $(element_input).each(function( index ) {
      //console.log( ++index + ": " + $( this ).text() );
      $(this).attr('id','tufte-sn-'+ ++index);
    }); 
  });
  $(document).ready(function () {
    var element_span= $("span[class *= 'sidenote-number']");
    var count = $(element_span).length;
    $(element_span).each(function( index ) {
      //console.log( ++index + ": " + $( this ).text() );
      $(this).text(++index);
    }); 
  });
</script>
票数 2
EN

Stack Overflow用户

发布于 2021-05-26 06:04:22

我的建议是先在Latex文件中修复它,然后在import/Convert中修复它。

在文档的开头/序言处添加这几行,它将在每一章启动/重置侧计数器。

代码语言:javascript
复制
% the answer --restarting the footnote at 0
\let\oldchapter\chapter
\def\chapter{%
  \setcounter{footnote}{0}%
  \oldchapter
}

% now your doc
\begin{document}


% would have helped if you pasted some chapters or your book...
% some chapters...
\chapter{First}
\yourtext
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67508756

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档