LaTeX 中的 \footnote 命令可以产生脚注——在正文位置留下一个编号,在当前页的底部输出实际的注释内容。这个功能很好用,但是在一些情况下,可能产生意想不到的情况。
- 数量少而大段的尾注导致尾注先于标记出现;
- 数量多而小段的尾注导致尾注晚于标记出现。
这些不太寻常的注释会导致 LaTeX 标注文档类没有办法很好地处理脚注。这里,后者可以通过 footmisc 宏包的 para 选项来挽救,但是前者就没有什么好办法了。于是,我们想到了尾注。
简介
尾注,即将注释与标记分离,写在文档的末尾。LaTeX 标准文档类没有提供尾注的功能,而由 endnotes 宏包提供。
尾注的用法和脚注基本相同,只需要
- 将原本需要使用
\footnote命令的地方替换成\endnote; - 在需要输出尾注的地方,执行
\theendnotes命令。
给尾注加上类似 \footnote 的横线
默认的尾注标题,只有一个光秃秃的 Notes 字样,和默认的脚注样式不太一样。我们可以通过修改 \enoteheading 命令来修改这个样式。这里我们以 book 类为例(article 类应该将 \section* 改为 \subsection*)。
1 | \documentclass{book} |

在每个章节后输出尾注
不难发现,其实尾注输出的位置取决于 \theendnotes 命令的位置。因此我们只需要在每个 \chapter 命令之前(book 类,article 类是 \section 命令)加上 \theendnotes 命令就好了。
不过,由于 \endnote 是在全文范围内编号的,如果希望尾注的编号在输出章节尾注后重新开始,那么我们需要在调用 \theendnotes 之后将计数器置零——当然你也可以使用 \counterwithin 之类的命令来实现。这里我们用 etoolbox 提供的 \csappto 命令来实现这个效果。
1 | \documentclass{book} |
