使用 babel 和 book class 在尾注中添加章节编号(后续)

使用 babel 和 book class 在尾注中添加章节编号(后续)

这是该帖子的后续问题:尾注中的章节编号

我正在使用 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\@mkbothbabelendnotes标记位于节标题内。这种组合会导致错误某处

一个可能的解决方案是在章节标题下方定义标记:

\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出现在该章节标题中——如果将其移出,可能会出现一些问题。

相关内容