重置章节尾注

重置章节尾注

我正在处理一份包含各种尾注的大型报告(使用 \footnote 和 \autocite 命令)。我需要在每一章中重置尾注(即从 1 重新开始)。最小工作示例如下,

\documentclass{report}

\usepackage{biblatex-chicago}
\usepackage{endnotes}
\let\footnote=\endnote

 \renewcommand\enoteheading{\chapter*{\notesname}\mbox{}\par\vskip-\baselineskip}
    \makeatletter
        \@addtoreset{endnote}{chapter}  % Reset endnote numbering every new chapter
    \makeatother
\usepackage{footmisc}
    \renewcommand{\thefootnote}{\fnsymbol{footnote}}%

\usepackage{filecontents}

\begin{filecontents}{\jobname.bib}
@misc{A01,
  author = {Author, A.},
  year = {2001},
  title = {Alpha},
}
@misc{B02,
  author = {Buthor, B.},
  year = {2002},
  title = {Bravo},
}
@misc{C03,
  author = {Cuthor, C.},
  year = {2003},
  title = {Charlie},
}
\end{filecontents}

\addbibresource{\jobname.bib}

\begin{document}

\chapter{Alpha}

Some text \autocite{A01}.

Some text with footnote.\footnote{ \autocite{B02}}

Some text \autocite{A01}.

\theendnotes

\chapter{Bravo}

Some text \autocite{B02}.

Some text \autocite{C03}.

\theendnotes

\end{document}

我很好奇我添加的序言是否是实现我想要的结果的最有效(或最小)的解决方案?这段代码看起来有点笨拙,试图改进我的 LaTeX 编码。换句话说,是否有更简单或更短的序言可以添加,但仍然可以实现我想要的结果,即每章重置尾注编号?

 \renewcommand\enoteheading{\chapter*{\notesname}\mbox{}\par\vskip-\baselineskip}
    \makeatletter
        \@addtoreset{endnote}{chapter}  % Reset endnote numbering every new chapter
    \makeatother
\usepackage{footmisc}
    \renewcommand{\thefootnote}{\fnsymbol{footnote}}%

答案1

代码看起来不错,但可以稍微缩短一些。

乍一看,\renewcommand\enoteheading所有的 看起来有点奇怪\mbox{}\par\vskip-\baselineskip,但这也是 中的原始定义endnotes.sty所做的(并且它是正确对齐尾注所必需的)。

但如果尾注是每章的尾注,我不会将尾注本身设置为章节。从逻辑上讲,我会认为尾注属于上一章,因此应该是该章的一部分……

使用最新版本的 LaTeX(至少是 2018 年 4 月),你可以使用\counterwithin*而不是\@addtoreset。这有两个优点

  1. 您不需要,\makeatletter...\makeatother因为\counterwithin*不包含@
  2. \counterwithin*检查其参数是否为计数器。(这里其实没有必要,因为您知道传递的应该是计数器)。

我不清楚你是否需要

\usepackage{footmisc}
    \renewcommand{\thefootnote}{\fnsymbol{footnote}}%

我认为当我省略它时,我看不出示例中有什么不同。(由于您已将所有脚注重定向到使用其自己的计数器的尾注,因此至少\thefootnote重新定义似乎毫无用处。)

\documentclass{report}
\usepackage{biblatex-chicago}
\usepackage{endnotes}
\let\footnote=\endnote

\renewcommand\enoteheading{\chapter*{\notesname}\mbox{}\par\vskip-\baselineskip}
\counterwithin*{endnote}{chapter}

\addbibresource{biblatex-examples.bib}

\begin{document}
\chapter{Alpha}
Some text \autocite{sigfridsson}.

Some text with footnote.\footnote{\autocite{worman}}

Some text \autocite{sigfridsson}.

\theendnotes

\chapter{Bravo}
Some text \autocite{worman}.

Some text \autocite{geer}.

\theendnotes
\end{document}

如何在每章末尾获得尾注?还提到了一种使用该软件包生成每章尾注的方法pagenote

我本来建议看一下enotez,但目前biblatex没有修补enotez,因此脚注检测不能很好地工作(参见Biblatex,引用尾注,ibid 跟踪器被丢弃)。

相关内容