在 LaTeX 中为参考文献的标题编号

一般来说,参考文献、索引等章节的标题在论文中是不编号的。但是,在一些特殊情况下,我们可能也需要为这些标题做章节编号。

这边文章介绍如何处理此类情况。

对参考文献来说,不论采取何种方式,大体上最终都是用 LaTeX 提供的 thebibliography 环境来排版参考文献列表。这个环境一方面打印参考文献标题,另一方面打印参考文献列表。而打印参考文献标题的方式,就是调用 \section*(在 article 文档类中)或 \chapter*(在 book 类中)。

因此,我们需要做的事情,就是重定义 thebibliography 环境,使其调用 \section\chapter,而不是带星号的版本。

在 LaTeX2e 当中,定义名为 foo 的环境,实际上定义了两个命令:\foo\endfoo。前者用于开始环境,而后者用于结束环境。显而易见,thebibliography 环境对应的两个命令是 \thebibliography\endthebibliography;而 \section*\chapter* 的调用位于 \thebibliography 当中。因此,我们只需要使用 xpatch/etoolbox 宏包提供的 \xpatchcmd/\patchcmd\thebibliography 打上补丁即可。

\xpatchcmd/\patchcmd 的介绍和用法可以参见这里这里

以下是在 article 文档类中的最简示例。

numbered_bibliography.tex
1
2
3
4
5
6
7
8
\documentclass{article}
\usepackage{xpatch}
\xpatchcmd{\thebibliography}{\section*}{\section}{}{}
\begin{document}
\begin{thebibliography}{0}
\bibitem{citekey} test
\end{thebibliography}
\end{document}

生成带编号的索引标题可以采用类似的方案操作,此处不表。


您的鼓励是我写作最大的动力

俗话说,投资效率是最好的投资。 如果您感觉我的文章质量不错,读后收获很大,预计能为您提高 10% 的工作效率,不妨小额捐助我一下,让我有动力继续写出更多好文章。


撰写评论

写了这么多年博客,收到的优秀评论少之又少。在这个属于 SNS 的时代也并不缺少向作者反馈的渠道。因此,如果你希望撰写评论,请发邮件至我的邮箱并注明文章标题,我会挑选对读者有价值的评论附加到文章末尾。