如何更新 \chapter 命令以包含尾注(即 \printnotes)

如何更新 \chapter 命令以包含尾注(即 \printnotes)

我使用该pagenote软件包将尾注放在每章末尾。例如,请参阅此问题的可接受答案:如何在每章末尾获得尾注?

简而言之:

\chapter{First Chapter}
 some text
\printnotes*

我怎样才能更新\chapter命令以便不必\printnotes*在每一章末尾都包含它?

我不想让\printnotes*命令在命令之前发生,\chapter因为这样我会在第一章之前得到笔记(这没有意义)。

答案1

\pretocmd这是使用提供的解决方案etoolbox包裹。

\documentclass{book}
\usepackage{etoolbox}
\usepackage{pagenote}
\makepagenote
\begin{document}

\chapter{Chap 1}

\pretocmd{\chapter}{\printnotes*}{}{}

\chapter{Chap 2}
\chapter{Chap 3}
\chapter{Chap 4}
\printnotes*

\end{document}

正如您所见,该命令可以在初始之后使用\chapter

编辑#1

由于我对上面的代码进行了更正,因此\printnotes*在最后一章结束时需要另一个命令。

编辑#2

借助逻辑,在序言中自动化该过程可能会更方便。

\documentclass{book}

\usepackage{etoolbox}
\usepackage{pagenote}
\makepagenote

\renewcommand*{\notedivision}{\section*{\notesname\ to chapter~\thechapter}}
\renewcommand*{\pagenotesubhead}[2]{}

\pretocmd{\chapter}{%
    \ifnum\value{chapter}>0\relax\printnotes*\fi%
}{}{}
%\pretocmd{\backmatter}{\printnotes*}{}{}
\AtEndDocument{\printnotes*}    

\begin{document}

\chapter{Chap 1}
\chapter{Chap 2}
\chapter{Chap 3}

\end{document} 

backmatter在存在该行的情况下\pretocmd{\backmatter}{\printnotes*}{}{}可以取消注释而\AtEndDocument可以省略。

答案2

如果您确定要将所有尾注放在每章末尾,则此处给出的解决方案有效。但是,如果您决定将所有尾注都恢复到末尾,该怎么办?如果您在前言中也有一些尾注,如\chapter*{Preface}在 之前所示,该怎么办\mainmatter

etoolbox我已经扩展了这个解决方案,以便我使用切换按钮 来做出选择\newtoggle{chapternotes}

\usepackage{etoolbox}
\newtoggle{chapternotes}
\toggletrue{chapternotes}
%\togglefalse{chapternotes}

\iftoggle{chapternotes}{%
    % using chapternotes
    \renewcommand{\notedivision}{\section*{\notesname\ to Chapter~\thechapter}}%
    \renewcommand{\pagenotesubhead}[2]{}%
%   \pretocmd{\chapter}{\printnotes*}{}{}%
    \pretocmd{\chapter}{%
        \ifnum\value{chapter}>0\relax\printnotes*\fi%
    }{}{}
    \pretocmd{\mainmatter}{\printnotes*}{}{}%   Notes in Preface
    \pretocmd{\backmatter}{\printnotes*}{}{}%
}{%
    % using notes at end of book
    \renewcommand{\notedivision}{\chapter*{\notesname}}
}

在我的主文件中,我添加了另一个文件\iftoggle来决定是否在最后打印注释,

\backmatter
% Endnotes, whether in chapters or all at the end
\iftoggle{chapternotes}{%
    \relax % using chapternotes
}{%
    % using notes at end of book
    \addcontentsline{toc}{chapter}{Notes}
\printnotes
}

相关问题,将脚注改为尾注,但允许使用一些旧脚注,介绍了如何将部分脚注切换为尾注。

相关内容