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 的简明指南。