LaTeX
这是一个温和的介绍,讲解了如何在 LaTeX 中使用一些比基本的 BibTeX 更复杂的文献功能。本介绍不会讨论如何创建新的样式或包,而是如何使用一些现有的样式。值得注意的是,哈佛(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}
}
BibTeX 样式的局限性
使用 cite.sty
和 BibTeX 使得生成一些文献样式变得非常简单。但是,像作者-日期样式(例如通常提到但未定义的“哈佛样式”)并不那么容易。确实,您可以从 CTAN 下载一些 .bst
文件,它们可以处理一些变体,但使用它们并不总是非常直观。这个指南介绍了 Natbib
,它是一个补充包,可以访问 .bib
文件,并提供用于生成自定义或默认的作者-年份格式引用和参考文献,以及 BibTeX 处理的数字样式的复杂功能。
Natbib
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}
可选项
在 \usepackage
命令的方括号中可以指定 Natbib
的选项。常见的选项有:
选项 | 功能 |
---|---|
round | () |
square | [] |
curly | {} |
angle | <> |
semicolon | 用分号分隔引用 |
colon | 用冒号分隔引用 |
comma | 用逗号分隔引用 |
authoryear | 作者-年份引用 |
numbers | 数字引用 |
super | 上标数字引用 |
sort | 多个引用按参考文献中的顺序排序 |
sort&compress | 排序并压缩数字范围 |
compress | 压缩数字范围,但仅在“自然”排序时压缩 |
longnamesfirst | 第一次引用显示完整作者列表,之后简写 |
sectionbib | 支持文档中的多个参考文献列表 |
nonamebreak | 强制将所有作者姓名放在一行显示 |
merge | 合并引用 |
elide | 去除合并引用中的重复元素 |
mcite | 忽略合并 |
这些选项需要通过示例来解释,下面的例子将帮助您理解。
引用命令
基本引用命令
要使用 Natbib
引用文献,您需要在文档中使用 \citet
或 \citep
命令。这些命令的“普通”版本会在多个作者的情况下生成缩略列表,但它们都有带 * 的变体,这会生成完整的作者列表。以下示例假设使用了 round
选项:
\citet
和 \citet*
\citet
命令用于文本引用,即作者名称出现在文本中,而出版日期放在括号内。此命令可以接受章节、页码等选项。以下是几个示例:
\citet{Erdos65} % 结果为: Erdős et al. (1965)
\citet[chapter 2]{Erdos65} % 结果为: Erdős et al. (1965, chapter 2)
\citet[pp. 10-12]{Erdos65} % 结果为: Erdős et al. (1965, pp. 10-12)
\citet[see][chap. 2]{Erdos65} % 结果为: Erdős et al. (see 1965, chap. 2)
\citet*
版本
\citet*{Erdos65} % 结果为: Erdős, Heyting and Brouwer (1965)
\citet*[chapter 2]{Erdos65} % 结果为: Erdős, Heyting and Brouwer (1965, chapter 2)
\citet*[pp. 10-12]{Erdos65} % 结果为: Erdős, Heyting and Brouwer (1965, pp. 10-12)
\citet*[see][chap. 2]{Erdos65} % 结果为: Erdős, Heyting and Brouwer (see 1965, chap. 2)
\citep
和 \citep*
\citep
命令用于将作者名称放在括号内,与出版日期一起出现。
\citep{Erdos65} % 结果为: (Erdős et al. 1965)
\citep[chapter 2]{Erdos65} % 结果为: (Erdős et al. 1965, chapter 2)
\citep[pp. 10-12]{Erdos65} % 结果为: (Erdős et al. 1965, pp. 10-12)
\citep[see][chap. 2]{Erdos65} % 结果为: (see Erdős et al. 1965, chap. 2)
\citep[e.g.][]{Erdos65} % 结果为: (e.g. Erdős et al. 1965)
\citep*
版本
\citep*{Erdos65} % 结果为: (Erdős, Heyting and Brouwer 1965)
\citep*[chapter 2]{Erdos65} % 结果为: (Erdős, Heyting and Brouwer 1965, chapter 2)
\citep*[pp. 10-12]{Erdos65} % 结果为: (Erdős , Heyting and Brouwer 1965, pp. 10-12)
\citep*[see][chap. 2]{Erdos65} % 结果为: (see Erdős , Heyting and Brouwer, 1965, chap. 2)
\citep*[e.g.][]{Erdos65} % 结果为: (e.g. Erdős , Heyting and Brouwer, 1965)
参考文献列表
在处理完基本引用变体后,我们来创建参考文献或参考文献列表。
使用 Natbib
插入正确格式的参考文献与使用普通的 BibTeX 没有什么不同。需要的两个基本命令是:
\bibliography{mybibliographydatabase}
LaTeX
会将此视为读取一个文献数据库文件(例如 myrefs.bib
)并在此插入相关数据的指令。
\bibliographystyle{plainnat}
此命令指定如何呈现数据。
以上提到的三种基本的 Natbib
样式是 BibTeX 中部分同名样式的类似样式。我们可以想象,如上文关于引用的部分,文档中出现的引用将大致以 plainnat
样式呈现。
进一步的功能
这涵盖了 Natbib
提供的基本功能。若您无法找到所需的功能,可能需要研究 harvard.sty
,它提供了一组略有不同的作者-日期引用功能。为 harvard.sty
提供一个温和的指南是我下一个雨天项目。