1. 程式人生 > >在 LaTeX 中為參考文獻的標題編號

在 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}

生成帶編號的索引標題可以採用類似的方案操作,此處不表。