LaTeX/更多參考文獻
| 一位華夏公益教科書作者建議將本書或章節合併到 LaTeX/參考文獻管理。 請在 討論頁面 上討論是否應該進行此合併。 |
本指南簡要介紹了 LaTeX 使用者可用的參考文獻功能,這些功能超出了 BibTeX 的基本功能。本指南不會討論如何建立新的樣式或包,而是討論如何使用一些現有的樣式或包。值得注意的是,例如 Harvard 是一種 引用 樣式。它與按日期二次排序的字母順序參考文獻列表相關聯,但 Harvard 樣式中唯一嚴格定義的元素是 作者-日期 格式的引用。
我示例中使用的資料庫僅包含以下內容
@article{Erdos65,
title = {Some very hard sums},
journal = {Difficult Maths Today},
author = {Paul Erd\H{o}s and Arend Heyting and Luitzen Egbertus Brouwer},
year = {1930},
pages = {30}
}
使用 cite.sty 和 BibTeX 可以很容易地生成 一些 參考文獻樣式。但是 作者-日期 樣式 - 例如經常被提及但從未定義的 “Harvard” - 並不那麼容易。誠然,您可以從 CTAN 下載一些 .bst 檔案來處理某些變體,但使用它們並不總是直截了當。本指南介紹了 Natbib,這是一個補充包,可以訪問 .bib 檔案,並具有生成自定義或預設作者-年份格式引用和參考文獻的複雜功能,以及 BibTeX 處理的數字樣式。
Natbib 是 Patrick Daly 建立的一個包,用作 cite.sty 包的替代品,當需要 作者-日期 引用樣式時。Natbib 提供三種相關的參考文獻樣式
- plainnat
- abbrvnat
- unsrtnat
它們分別對應於 BibTeX 中預設提供的三種樣式,您有純編號樣式、縮寫編號樣式和無序編號樣式。
除了這些新樣式外,還有一組擴充套件的引用命令,以提供靈活的引用格式。它們是
\citet[]{}
和
\citep[]{}
它們各自都有許多變體。
所有 Natbib 樣式都要求您在文件序言中載入該包。因此,使用 Natbib 的 LaTeX 檔案骨架可能如下所示
\documentclass[]{article}
\usepackage[round]{natbib}
\begin{document}
Document body text with citations.
\bibliographystyle{plainnat}
\bibliography{myrefs}
\end{document}
Natbib 提供的選項可以在 \usepackage 命令的方括號中指定。其中包括
| 選項 | 效果 |
|---|---|
| round | () |
| square | [] |
| curly | {} |
| angle | <> |
| semicolon | 用 ; 分隔引用 |
| colon | 與分號相同 |
| comma | 用逗號分隔 |
| authoryear | 作者-年份引用 |
| numbers | 數字引用 |
| super | 上標引用 |
| sort | 多個引用按參考文獻中的順序排序 |
| sort&compress | 與 sort 相同,但數字範圍被壓縮並用連字元連線 |
| compress | 數字範圍被壓縮並用連字元連線,但僅在“自然”排序產生連續範圍時 |
| longnamesfirst | 第一次引用為完整的作者列表,後續引用為縮寫 |
| sectionbib | 允許在同一文件中使用多個參考文獻 |
| nonamebreak | 強制所有作者姓名在一行上 |
| merge | 將引用與之前的引用合併 |
| elide | 省略合併引用中任何重複的元素 |
| mcite | 忽略合併 |
顯然,其中一些選項需要解釋,但將在下面的示例中實現。現在,我們只需要知道它們可以透過 LaTeX 檔案序言中的 \usepackage[]{} 傳遞。
要使用 Natbib 引用,請在您的文件中使用 \citet 或 \citep 命令。這些命令的“純”版本在多個作者的情況下生成縮寫列表,但兩者都有 * 變體,它們會導致完整的作者列表。我們假設在這些示例中使用 round 選項。
\citet 命令用於 文字 引用,也就是說,作者姓名出現在文字中,而不是出現在對出版年份的括號引用中。該命令可以為章節、頁碼等使用選項。以下是一些示例
| \citet{Erdos65} | 生成 | Erdős 等人 (1965) |
| \citet[chapter 2]{Erdos65} | 生成 | Erdős 等人 (1965, 第 2 章) |
| \citet[pp. 10-12]{Erdos65} | 生成 | Erdős 等人 (1965, 第 10-12 頁) |
| \citet[see][chap. 2]{Erdos65} | 生成 | Erdős 等人 (參見 1965, 第 2 章) |
以下是 \citet* 版本
| \citet*{Erdos65} | 生成 | Erdős、Heyting 和 Brouwer (1965) |
| \citet*[chapter 2]{Erdos65} | 生成 | Erdős、Heyting 和 Brouwer (1965, 第 2 章) |
| \citet*[pp. 10-12]{Erdos65} | 生成 | Erdős、Heyting 和 Brouwer (1965, 第 10-12 頁) |
| \citet*[see][chap. 2]{Erdos65} | 生成 | Erdős、Heyting 和 Brouwer (參見 1965, 第 2 章) |
\citep 命令用於作者姓名出現在括號內,與日期一起。
| \citep{Erdos65} | 生成 | (Erdős 等人 1965) |
| \citep[chapter 2]{Erdos65} | 生成 | (Erdős 等人 1965, 第 2 章) |
| \citep[pp. 10-12]{Erdos65} | 生成 | (Erdős 等人 1965, 第 10-12 頁) |
| \citep[see][chap. 2]{Erdos65} | 生成 | (參見 Erdős 等人 1965, 第 2 章) |
| \citep[e.g.][]{Erdos65} | 生成 | (例如 Erdős 等人 1965) |
以下是 \citep* 版本
| \citep*{Erdos65} | 生成 | (Erdős、Heyting 和 Brouwer 1965) |
| \citep*[chapter 2]{Erdos65} | 生成 | (Erdős、Heyting 和 Brouwer 1965, 第 2 章) |
| \citep*[pp. 10-12]{Erdos65} | 生成 | (Erdős 、Heyting 和 Brouwer 1965, 第 10-12 頁) |
| \citep*[see][chap. 2]{Erdos65} | 生成 | (參見 Erdős 、Heyting 和 Brouwer, 1965, 第 2 章) |
| \citep*[e.g.][]{Erdos65} | 生成 | (例如 Erdős 、Heyting 和 Brouwer, 1965) |
在處理了基本型別的引用之後,我們開始建立參考文獻列表。
使用 Natbib 插入正確且格式正確的參考文獻列表與使用普通 BibTeX 沒什麼不同。有兩個基本命令:
\bibliography{mybibliographydatabase}
LaTeX 將其解釋為一個讀取參考文獻資料庫檔案(例如 myrefs.bib)並在此處插入相關資料的指令,以及
\bibliographystyle{plainnat}
指定如何呈現資料。
上面提到了三種基本 Natbib 樣式,它們類似於 BibTeX 中部分同名的樣式。假設我們有文件,其中引用與上面關於引用的部分中的一樣。這些引用在 plainnat 中大致會以這樣的形式出現。 
這涵蓋了 Natbib 包提供的基本功能。當然,它可能無法提供你想要的功能。如果你在這裡找不到你想要的功能,你應該考慮接下來研究 harvard.sty,它提供了一組略微不同的作者-日期引用功能。我計劃在有空的時候編寫一個關於 harvard.sty 的簡明指南。
