这是该帖子的后续问题:尾注中的章节编号
我正在使用 endnotes 包在文档末尾列出所有注释。我希望节标题(注释)也像其他节一样包含节号。用户 crixstox 和 Marijn 都发布了可行的解决方案。以下是 crixstox 发布的解决方案:
\documentclass{article}
\usepackage{endnotes}
% Taken from endnotes.sty and changed \section*{ to \section{
\makeatletter
\def\enoteheading{\section{\notesname
\@mkboth{\MakeUppercase{\notesname}}{\MakeUppercase{\notesname}}}%
\mbox{}\par\vskip-\baselineskip}
\makeatother
\begin{document}
\section{Some section}
bla bla bla\endnote{Some note}.
\endnote{Another note.} \endnote{A third note.}
\theendnotes
\end{document}
但是,将 MWE 与 book 类和 babel 一起使用会产生大量非法参数错误。我当然想知道如何解决具体问题 - 将节号添加到我的尾注部分,但我也很好奇是什么原因导致此修复程序与 babel 和 book 类一起崩溃。它单独与 babel 或 book 类一起使用时都可以正常工作。
答案1
编号的\section
(不同于)设置使用标记命令(例如、、 )\section*
的标头信息。这些命令由 重新定义。在book
\markright
\markboth
\@mkboth
babel
endnotes
标记位于节标题内。这种组合会导致错误某处。
一个可能的解决方案是在章节标题下方定义标记:
\documentclass{book}
\usepackage[english]{babel}
\usepackage{endnotes}
\makeatletter
\def\enoteheading{\section{\notesname}% added }
\@mkboth{\MakeUppercase{\notesname}}{\MakeUppercase{\notesname}}% removed }
\mbox{}\par\vskip-\baselineskip}
\makeatother
\begin{document}
\section{Some section}
bla bla bla\endnote{Some note}.
\theendnotes
\end{document}
结果:
请注意0.1
,因为文档中0.2
没有。\chapter
免责声明:我不知道为什么会@mkboth
出现在该章节标题中——如果将其移出,可能会出现一些问题。