跳转到内容

LaTeX/参考文献管理

来自维基教科书,开放书籍,开放世界

LaTeX

入门
  1. 介绍
  2. 安装
  3. 安装额外的包
  4. 基础
  5. 如何获取帮助

常见元素

  1. 文档结构
  2. 文本格式
  3. 段落格式
  4. 颜色
  5. 字体
  6. 列表结构
  7. 特殊字符
  8. 国际化
  9. 旋转
  10. 表格
  11. 标题创建
  12. 页面布局
  13. 自定义页面页眉和页脚‎
  14. 导入图形
  15. 浮动体、图形和标题
  16. 脚注和边注
  17. 超链接
  18. 标签和交叉引用
  19. 首字母缩写

机制

  1. 错误和警告
  2. 长度
  3. 计数器
  4. 方框
  5. 规则和支柱

技术文本

  1. 数学
  2. 高级数学
  3. 定理
  4. 化学图形
  5. 算法
  6. 源代码清单
  7. 语言学

特殊页面

  1. 索引
  2. 词汇表
  3. 参考文献管理
  4. 更多参考文献

特殊文档

  1. 科学报告(学士报告、硕士论文、博士论文)
  2. 信函
  3. 演示文稿
  4. 教师专栏
  5. 简历
  6. 学术期刊(MLA、APA 等)

创建图形

  1. 介绍程序化图形
  2. MetaPost
  3. 图片
  4. PGF/TikZ
  5. PSTricks
  6. Xy-pic
  7. 创建 3D 图形

编程

  1. Plain TeX
  2. 创建包
  3. 创建包文档
  4. 主题

其他

  1. 模块化文档
  2. LaTeX 文档的协作写作
  3. 导出到其他格式

帮助和推荐

  1. 常见问题解答
  2. 技巧和窍门

附录

  1. 作者
  2. 链接
  3. 包参考
  4. LaTeX 文档示例
  5. 索引
  6. 命令词汇表

编辑此框编辑目录


对于任何学术/研究写作,将参考文献整合到文档中都是一项重要的任务。幸运的是,LaTeX 具有各种功能,使处理参考文献变得更加简单,包括对引用参考文献的内置支持。然而,由于一个名为BibTeX(与 LaTeX 捆绑在一起作为标准)的辅助工具,实现了更强大、更灵活的解决方案。最近,BibTeX 在许多用户中被BibLaTeX所取代,这是一种可以在 LaTeX 语法中配置的工具。

BibTeX 用于将所有参考文献存储在具有文件扩展名 .bib 的参考文献信息文件中,这是一种扁平文件数据库。(BibLaTeX 使用相同的格式,但具有更多和不同的参考文献条目类型和字段类型,而不是 BibTeX。)此数据库可以在任何 LaTeX 文档中被引用,并且可以引用文件中包含的任何记录。这通常比在编写的每个文档末尾嵌入它们更方便;一个集中的参考文献源可以链接到任意数量的文档(一次写入,多次读取!)。当然,参考文献可以拆分到任意数量的文件中,所以可以有一个文件包含关于主题 A 的来源 (a.bib) 和另一个包含关于主题 B 的来源 (b.bib)。当写关于主题 AB 时,这两个文件都可以链接到文档中(可能除了关于主题 AB 的特定来源 ab.bib 之外)。

嵌入式系统

[编辑 | 编辑源代码]

如果您只编写一两个文档,并且没有计划在很长一段时间内针对同一主题编写更多文档,那么您可能不想浪费时间创建一个您永远不会使用的参考文献数据库。在这种情况下,您应该考虑使用 LaTeX 中嵌入的基本且简单的参考文献支持。

LaTeX 提供了一个名为 thebibliography 的环境,您需要在需要参考文献的地方使用它;这通常意味着在文档的最后,就在 \end{document} 命令之前。以下是一个实际示例

\begin{thebibliography}{9}

\bibitem{lamport94}
  Leslie Lamport,
  \textit{\LaTeX: a document preparation system},
  Addison Wesley, Massachusetts,
  2nd edition,
  1994.

\end{thebibliography}

好的,这里发生了什么?首先要注意的是环境的建立。thebibliography 是一个关键字,它告诉 LaTeX 将开始和结束标签之间的所有内容识别为参考文献的数据。强制参数是在开始语句之后提供的,它告诉 LaTeX 打印时项目标签的宽度。但是请注意,数字本身不是参数,而是数字的位数。因此,我实际上是在告诉 LaTeX 我只需要一个字符长度的参考文献标签,最终意味着总共不超过九个参考文献。如果您想要超过九个,那么输入任何两位数,例如“56”,这允许最多 99 个参考文献。

接下来是实际的参考文献条目本身。它以 \bibitem{cite_key} 命令为前缀。cite_key 应该是该特定参考文献的唯一标识符,通常是某种助记符,由任何字母、数字和标点符号(但不是逗号)序列组成。我通常使用第一个作者的姓氏,后跟年份的后两位数字(因此为 lamport94)。如果该作者在给定年份发表了不止一篇参考文献,那么我在后面添加字母,“a”、“b”等。但是,您应该做任何对您有效的事情。在关键字后面的所有内容都是参考文献本身。您需要按照您希望呈现的方式输入它。我将参考文献的不同部分,例如作者、标题等,放在不同的行中以提高可读性。这些换行符被 LaTeX 忽略。\textit{} 命令将标题正确地格式化为斜体。

实际引用给定文档非常容易。转到您希望引用出现的位置,并使用以下内容:\cite{cite_key},其中cite_key 是您要引用的 bibitem 的 cite_key。当 LaTeX 处理文档时,引用将与 bibitem 交叉引用,并替换为相应的数字引用。再次,这里的优点是 LaTeX 为您处理编号。如果是完全手动操作,那么添加或删除引用将是一项真正的苦差事,因为您必须手动重新编号所有引用。

Instead of WYSIWYG editors, typesetting systems like \TeX{} or \LaTeX{} \cite{lamport94} can be used.

更具体地参考

[编辑 | 编辑源代码]

如果您想参考教科书中的某个页面、图表或定理,您可以使用 \cite 命令的参数

\cite[p.~215]{citation01}

参数“p. 215”将在相同的括号内显示。请注意 [p.~215] 中的波浪号,它用不可分割的词间空格替换句尾空格。插入不可分割的词间空格是因为句尾空格会太宽,而“p.” 不应与页码分开。代码 \cite[215]{citation01} 将产生相同的结果 - 在这种情况下,页码前面的 p.~ 将被自动添加;但它不会被添加到 \cite[Cor.~2.5]{citation01} 中。

多个引用

[编辑 | 编辑源代码]

当需要多个引用的序列时,您应该使用单个 \cite{} 命令。然后用逗号分隔引用。以下是一个示例

\cite{citation01,citation02,citation03}

然后结果将显示为相同括号内的引用,具体取决于引用风格。

参考文献风格

[编辑 | 编辑源代码]

有几种不同的方法来格式化参考文献列表和文本中对它们的引用。这些被称为引用风格,由两部分组成:缩略引用的格式(即插入文本以标识参考文献列表中条目的标记)和参考文献列表中相应条目的格式,其中包含完整的参考文献详细信息。

缩略引用主要有两种类型:编号或文本。编号引用(也称为温哥华参考文献系统)按出现在文本中的顺序连续编号,并且由括号内的阿拉伯数字(1)、方括号[1]、上标1或它们的组合[1] 组成。文本引用(也称为哈佛参考文献系统)使用作者姓氏和(通常)年份作为引用的缩略形式,通常是完整的(Smith 2014) 或部分括在括号内,例如Smith (2014)。后一种形式允许将引用集成到它所支持的句子中。


下面您可以看到 LaTeX 可用的三种风格

plain
abbrv
alpha

以下是一些更常用的风格

风格名称 作者姓名格式 参考文献格式 排序
plain Homer Jay Simpson #ID# 按作者
unsrt Homer Jay Simpson #ID# 按引用
abbrv H. J. Simpson #ID# 按作者
alpha Homer Jay Simpson Sim95 按作者
abstract Homer Jay Simpson Simpson-1995a
acm Simpson, H. J. #ID#
authordate1 Simpson, Homer Jay Simpson, 1995
apacite Simpson, H. J. (1995) Simpson1995
named Homer Jay Simpson Simpson 1995

但是,请记住,您需要使用 natbib 包才能使用这些风格中的大多数。

无引用

[编辑 | 编辑源代码]

如果您只想让引用出现在参考文献中,而不希望它出现在主文本中,那么可以使用 \nocite{} 命令,例如

Lamport showed in 1995 something...  \nocite{lamport95}.

该命令的特殊版本 \nocite{*} 包含数据库中的所有条目,无论它们是否在文档中引用。

Natbib 的文本和括号命令
引用命令 输出
\citet{goossens93}
\citep{goossens93}
Goossens 等人 (1993)
(Goossens 等人, 1993)
\citet*{goossens93}
\citep*{goossens93}
Goossens, Mittlebach 和 Samarin (1993)
(Goossens, Mittlebach 和 Samarin, 1993)
\citeauthor{goossens93}
\citeauthor*{goossens93}
Goossens 等人。
Goossens, Mittlebach 和 Samarin
\citeyear{goossens93}
\citeyearpar{goossens93}
1993
(1993)
\citealt{goossens93}
\citealp{goossens93}
Goossens 等人 1993
Goossens 等人, 1993
\citetext{priv.\ comm.} (priv. comm.)

使用标准 LaTeX 参考文献支持,您将看到每个参考文献都编号,并且每个引用都对应于数字。引用的数字风格在科学写作中非常常见。在其他学科中,作者-年份风格,例如 (Roberts, 2003),例如 哈佛 是首选。natbib 包是获得此类输出的一种可能方法。事实上,它可以取代 LaTeX 自己的引用命令,因为 Natbib 允许用户轻松地在哈佛或数字之间切换。

第一步是在您的序言中添加以下内容,以便 LaTeX 使用 Natbib 包

\usepackage[options]{natbib}

有用的选项示例是

\usepackage[square,sort,comma,numbers]{natbib}

此外,您需要更改要使用的参考文献风格文件,因此编辑文件底部的相应行,使其变为:\bibliographystyle{plainnat}。完成后,基本上只需更改现有的 \cite 命令即可显示您想要的引用类型。

与 Natbib 兼容的引用风格
风格 来源 描述
plainnat 提供 plain 的 natbib 兼容版本
abbrvnat 提供 abbrv 的 natbib 兼容版本
unsrtnat 提供 unsrt 的 natbib 兼容版本
apsrev REVTeX 4 主页 用于物理评论期刊的 natbib 兼容风格
rmpaps REVTeX 4 主页 用于现代物理学评论期刊的 natbib 兼容风格
IEEEtranN TeX 目录条目 用于 IEEE 出版物的 natbib 兼容风格
achemso TeX 目录条目 用于美国化学会期刊的 natbib 兼容风格
rsc TeX 目录条目 用于英国皇家化学学会期刊的 natbib 兼容风格
Natbib 的定制选项
选项 含义
round : square : curly : angle 圆括号 () (默认)、方括号 []、花括号 {} 或尖括号 <>
colon : comma 多个引用用分号 (默认) 或逗号分隔
authoryear : numbers : super 作者年份风格引用 (默认)、数字引用或上标数字引用
sort : sort&compress 多个引用按它们在参考文献部分中出现的顺序排序,或者压缩多个数字引用(如果可能的话)
longnamesfirst 任何参考文献的第一个引用将使用带星号的变体(完整的作者列表),随后的引用将使用简化的 et al. 风格
sectionbib 用于 chapterbib 包。重新定义 \thebibliography 以发出 \section* 而不是 \chapter*
nonamebreak 将所有作者的姓名保持在一行引用中以修复某些 hyperref 问题 - 会导致 overfull hboxes

主要命令只是在基本的 \cite 命令中添加 t 表示“文本”或 p 表示“括号”。您还会注意到 Natbib 默认情况下会将三个或更多作者的参考文献压缩为更简洁的 第一个姓氏 et al 版本。通过添加星号 (*),您可以覆盖此默认值并列出与该引用关联的所有作者。Natbib 支持一些其他专用命令,如表所示。请记住,例如 abbrvnat 不支持 \citet*,并且会自动在所有作者和 et al. 之间进行选择。

关于 Natbib 我想介绍的最后一个领域是自定义它的引用风格。有一个名为 \bibpunct 的命令,可用于覆盖默认值并更改某些设置。例如,我在序言中添加了以下内容

\bibpunct{(}{)}{;}{a}{,}{,}

该命令需要六个强制参数。

  1. 开括号的符号。
  2. 闭括号的符号。
  3. 出现在多个引用之间的符号。
  4. 此参数接受一个字母
    • n - 数字样式。
    • s - 数字上标样式。
    • 任何其他字母 - 作者-年份样式。
  5. 出现在作者和年份之间的标点符号(仅在括号中)。
  6. 在多个引用中,当存在共同作者时,年份之间使用的标点符号。例如,(Chomsky 1956,1957)。如果你想要一个额外的空格,你需要{,~}

\bibpunct 控制的一些选项也可以通过在加载时传递选项给 natbib 包来访问。这些选项还允许控制参考文献的一些其他方面,可以在表格(右边)中看到。

因此,正如你所看到的,这个包非常灵活,特别是因为你可以通过更改单个参数轻松地在不同的引用样式之间切换。请查看Natbib 手册,这是一篇简短的文档,你可以从中了解到更多关于如何使用它的信息。

我之前介绍了在文档末尾嵌入参考文献,然后使用 \cite 命令在文本中引用它们的想法。在本教程中,我想比这种方法做得更好,因为它没有那么灵活。我将重点介绍使用BibTeX

BibTeX 数据库存储为 .bib 文件。它是一个纯文本文件,因此可以轻松地查看和编辑。文件的结构也很简单。BibTeX 条目的一个示例

@article{greenwade93,
    author  = "George D. Greenwade",
    title   = "The {C}omprehensive {T}ex {A}rchive {N}etwork ({CTAN})",
    year    = "1993",
    journal = "TUGBoat",
    volume  = "14",
    number  = "3",
    pages   = "342--351"
}

每个条目都以引用类型的声明开始,形式为 @type。BibTeX 几乎知道所有你能想到的类型,常见的类型有:bookarticle,以及针对在会议上发表的论文,还有 inproceedings。在本例中,我引用了期刊中的文章。

在类型之后,你必须有一个左大括号 '{' 来表示引用属性的开始。第一个属性紧随括号之后,即引用键BibTeX 键。此键对于参考文献列表中的所有条目必须是唯一的。你将在文档中使用此标识符将其交叉引用到此条目。你如何标记每个引用取决于你,但有一个松散的标准,即使用作者的姓氏,后跟出版年份。这是我在本教程中使用的方案。

接下来,应该清楚的是,后面是该特定引用的相关字段和数据。左侧的字段名称是BibTeX 关键字。它们后面跟着一个等号(=),然后是该字段的值。BibTeX 期望你明确地标记每个值的开始和结束。我个人使用引号("),但是,你也可以选择使用大括号('{','}')。但正如你很快就会看到,大括号在属性中还有其他作用,因此我不喜欢将它们用于此任务,因为它们会导致更多混淆。一个值得注意的例外是,当你想要使用带有变音符号的字符(ü、ö 等)时,因为它们的表示法格式为 \"{o},而引号将关闭打开字段的引号,从而导致解析引用时出错。在 .tex 源文件的序言中使用 \usepackage[utf8]{inputenc} 可以解决这个问题,因为带变音符号的字符可以存储在 .bib 文件中,而无需任何特殊标记。这允许在整个 .bib 文件中保持一致的格式,避免在考虑变音符号时使用大括号。

请记住,每个属性后面必须跟着一个逗号,以将它们彼此分隔开。你不需要在最后一个属性后面添加逗号,因为右大括号会告诉 BibTeX 此条目没有更多属性,虽然你添加了也不会出错。

可能需要一段时间才能了解引用类型是什么,以及每种类型有哪些可用字段(以及哪些是必需的或可选的等)。所以,看看这个条目类型参考,以及这个字段参考,以获取所有字段的描述。你可能需要将这些页面添加书签或打印出来,以便在需要时随时查看。以下表格中为方便起见重复了其中大部分信息。

标准 BibTeX 条目和字段类型
article book booklet inbook incollection inproceedings ≈ conference manual mastersthesis, phdthesis misc proceedings tech report unpublished
address o o o o o o o o o
annote
author + * o + + o + o + +
booktitle + +
chapter o
crossref
edition o o o o
editor * o o o
howpublished o o
institution +
journal +
key
month o o o o o o o o o o o o
note o o o o o o o o o o o +
number o o o o o o o
organization o o o
pages o o o
publisher + + + o o
school +
series o o o o o
title + + + + + + + + o + + +
type o o o o
volume o o o o o o
year + + o + + + o + o + + o

+ 必需字段,o 可选字段 *1(需要澄清) *2(需要澄清)

BibTeX 对作者的姓名非常聪明。它可以接受名字 姓氏姓氏,名字形式的姓名。我个人使用前者,但请记住,你输入它们的顺序(或任何条目中的数据,无论如何)都是可定制的,因此你可以让 BibTeX 操作输入,然后以你喜欢的任何方式输出它。如果你使用名字 姓氏方法,那么你必须注意一些特殊的名称,例如“John von Neumann”。在这种形式下,BibTeX 假定最后一个词是姓氏,前面的一切都是名字,加上任何中间名。因此,你必须手动告诉 BibTeX 将“von”和“Neumann”放在一起。这可以通过使用大括号轻松实现。因此,最终结果将是“John {von Neumann}”。通过使用姓氏,名字,这很容易避免,因为你有一个逗号将姓氏与名字分隔开。

其次,是如何告诉 BibTeX 什么时候引用有多个作者的问题。这可以通过在每个作者之间放置关键字and来非常轻松地完成。正如我们从另一个例子中看到的

@book{goossens93,
    author    = "Michel Goossens and Frank Mittelbach and Alexander Samarin",
    title     = "The LaTeX Companion",
    year      = "1993",
    publisher = "Addison-Wesley",
    address   = "Reading, Massachusetts"
}

这本书有三个作者,并且每个作者都按所述方式分隔。当然,当 BibTeX 处理并输出它时,在倒数第二个作者和最后一个作者之间只会出现一个“and”,但在 .bib 文件中,它需要and,以便它可以跟踪各个作者。

标准模板

[编辑 | 编辑源代码]

可以直接复制和填写的标准模板。可选条目在核心部分用?前缀标记。请注意,LaTeX 中用于注释行的%符号在 BibTeX 中不起作用,会导致无效的字段名称。在 BibTeX 中,有效的但未知的字段名称和条目之外的名称会被忽略,导致一种流行的注释方法。<--如果你复制以下模板,请小心,%符号在 bibtex 文件中不能用于注释行。如果你想注释掉一行,你必须把它放在条目之外。-->


@article
来自杂志或期刊的文章。
  • 必需字段:author、title、journal、year。
  • 可选字段:volume、number、pages、month、note。
@article{Xarticle,
    author    = "",
    title     = "",
    journal   = "",
    ?_volume   = "",
    ?_number   = "",
    ?_pages    = "",
    year      = "XXXX",
    ?_month    = "",
    ?_note     = "",
}
@book
已出版的书籍
  • 必需字段:author/editor、title、publisher、year。
  • 可选字段:volume/number、series、address、edition、month、note。
@book{Xbook,
    author    = "",
    title     = "",
    publisher = "",
    ?_volume   = "",
    ?_number   = "",
    ?_series   = "",
    ?_address  = "",
    ?_edition  = "",
    year      = "XXXX",
    ?_month    = "",
    ?_note     = "",
}
@booklet
没有署名出版商或赞助商的装订作品。
  • 必需字段:title。
  • 可选字段:author、howpublished、address、month、year、note。
@booklet{Xbooklet,
    ?_author   = "",
    title     = "",
    ?_howpublished   = "",
    ?_address  = "",
    ?_year      = "XXXX",
    ?_month    = "",
    ?_note     = "",
}
@conference
等于 inproceedings
  • 必需字段:author、title、booktitle、year。
  • 可选字段:editor、volume/number、series、pages、address、month、organization、publisher、note。
@conference{Xconference,
    author    = "",
    title     = "",
    booktitle = "",
    ?_editor   = "",
    ?_volume   = "",
    ?_number   = "",
    ?_series   = "",
    ?_pages    = "",
    ?_address  = "",
    year      = "XXXX",
    ?_month    = "",
    ?_publisher= "",
    ?_note     = "",
}
@inbook
书籍中没有自己标题的部分。
  • 必需字段:author/editor、title、chapter 和/或 pages、publisher、year。
  • 可选字段:volume/number、series、type、address、edition、month、note。
@inbook{Xinbook,
	author	= "",
	editor	= "",
	title	= "",
	chapter	= "",
	pages	= "",
	publisher= "",
	?_volume	= "",
	?_number	= "",
	?_series	= "",
	?_type	= "",
	?_address= "",
	?_edition= "",
	year	= "",
	?_month	= "",
	?_note	= "",
}
@incollection
有自己标题的书籍部分。
  • 必需字段:author、title、booktitle、publisher、year。
  • 可选字段:editor、volume/number、series、type、chapter、pages、address、edition、month、note。
@incollection{Xincollection,
	author	= "",
	title	= "",
	booktitle= "",
	publisher= "",
	?_editor	= "",
	?_volume	= "",
	?_number	= "",
	?_series	= "",
	?_type	= "",
	?_chapter= "",
	?_pages	= "",
	?_address= "",
	?_edition= "",
	year	= "",
	?_month	= "",
	?_note	= "",
}
@inproceedings
会议论文集中的文章。
  • 必需字段:author、title、booktitle、year。
  • 可选字段:editor、volume/number、series、pages、address、month、organization、publisher、note。
@inproceedings{Xinproceedings,
	author		= "",
	title		= "",
	booktitle	= "",
	?_editor		= "",
	?_volume		= "",
	?_number		= "",
	?_series		= "",
	?_pages		= "",
	?_address	= "",
	?_organization	= "",
	?_publisher	= "",
	year		= "",
	?_month		= "",
	?_note		= "",
}
@manual
技术手册
  • 必需字段:title。
  • 可选字段:author、organization、address、edition、month、year、note。
@manual{Xmanual,
	title		= "",
	?_author		= "",
	?_organization	= "",
	?_address	= "",
	?_edition	= "",
	year		= "",
	?_month		= "",
	?_note		= "",
}
@mastersthesis
硕士论文
  • 必需字段:author、title、school、year。
  • 可选字段:type(例如“diploma thesis”)、address、month、note。
@mastersthesis{Xthesis,
    author    = "",
    title     = "",
    school    = "",
    ?_type     = "diploma thesis",
    ?_address  = "",
    year      = "XXXX",
    ?_month    = "",
    ?_note     = "",
}
@misc
适用于其他类型出版物的模板
  • 必需字段:无
  • 可选字段:author、title、howpublished、month、year、note。
@misc{Xmisc,
    ?_author    = "",
    ?_title     = "",
    ?_howpublished = "",
    ?_year     = "XXXX",
    ?_month    = "",
    ?_note     = "",
}
@phdthesis
博士论文
  • 必需字段:author、title、year、school。
  • 可选字段:address、month、keywords、note。
@phdthesis{Xphdthesis,
	author		= "",
	title		= "",
	school		= "",
	?_address	= "",
	year		= "",
	?_month		= "",
	?_keywords	= "",
	?_note		= "",
}
@proceedings
会议论文集。
  • 必需字段:title、year。
  • 可选字段:editor、volume/number、series、address、month、organization、publisher、note。
@proceedings{Xproceedings,
	title		= "",
	?_editor		= "",
	?_volume		= "",
	?_number		= "",
	?_series		= "",
	?_address	= "",
	?_organization	= "",
	?_publisher	= "",
	year		= "",
	?_month		= "",
	?_note		= "",
}
@techreport
来自教育机构、商业机构或标准化机构的技术报告。
  • 必需字段:author、title、institution、year。
  • 可选字段:type、number、address、month、note。
@techreport{Xtreport,
    author    = "",
    title     = "",
    institution = "",
    ?_type     = "", 
    ?_number   = "",
    ?_address  = "",
    year      = "XXXX",
    ?_month    = "",
    ?_note     = "",
}
@unpublished
未发表的文章、书籍、论文等。
  • 必需字段:author、title、note。
  • 可选字段:month、year。
@unpublished{Xunpublished,
	author	= "",
	title	= "",
	?_year	= "",
	?_month	= "",
	note	= "",
}


非标准模板

[编辑 | 编辑源代码]
@patent
BibTeX 条目可以从 Google 专利导出。
(有关替代方案,请参阅使用 Bibtex 引用专利)
@collection
@electronic
@Unpublished
用于在REVTEX 风格的文章中引用 arXiv.org 论文
(请参阅REVTEX 作者指南)

保留字母的大小写

[编辑 | 编辑源代码]

如果所选的样式设置 BibTeX 不保留标题中的所有大写字母,则可能会出现问题,尤其是在引用专有名词或缩写词时。要告诉 BibTeX 保留它们,请在需要保留的字母(或缩写词)周围使用花括号,这样一切都会好起来!甚至可能需要保留小写字母 - 例如,如果在将标题全部设置为大写或小写字母的样式中使用化学式,或者如果“pH”要用于将所有首字母大写的样式中。

title = "The {LaTeX} Companion",

但是,避免将整个标题放在花括号中,因为如果使用不同的字母大小写格式,它看起来会很奇怪

title = "{The LaTeX Companion}",

为了方便起见,许多人只是使用双花括号,这在为不同的期刊、使用不同的 BibTeX 样式的会议撰写科学文章时可能会有所帮助,这些样式有时会保留,有时不会保留大写字母

title = {{The LaTeX Companion}},

作为替代方法,请尝试其他 BibTeX 样式或修改现有样式。如果使用出版商控制的模板(例如用于期刊投稿),那么将仅将相关文本放在花括号中的方法是最可行的。如果可能,应避免在单个字母周围使用花括号,因为它可能会弄乱字距,尤其是在使用 biblatex 时,[1]因此,第一步通常应该是将单个单词放在括号中。

一些额外的例子

[edit | edit source]

您将在下面找到一些其他参考文献条目示例。第一个示例涵盖了 Surname, Firstname 格式的多作者情况,第二个示例处理了 incollection 情况。

@article{AbedonHymanThomas2003,
  author = "Abedon, S. T. and Hyman, P. and Thomas, C.",
  year = "2003",
  title = "Experimental examination of bacteriophage latent-period evolution as a response to bacterial availability",
  journal = "Applied and Environmental Microbiology",
  volume = "69",
  pages = "7499--7506"
}

@incollection{Abedon1994,
  author = "Abedon, S. T.",
  title = "Lysis and the interaction between free phages and infected cells",
  pages = "397--405",
  booktitle = "Molecular biology of bacteriophage T4",
  editor = "Karam, Jim D. Karam and Drake, John W. and Kreuzer, Kenneth N. and Mosig, Gisela
            and Hall, Dwight and Eiserling, Frederick A. and Black, Lindsay W. and Kutter, Elizabeth
            and Carlson, Karin and Miller, Eric S. and Spicer, Eleanor",
  publisher = "ASM Press, Washington DC",
  year = "1994"
}

如果您必须引用网站,可以使用 @misc,例如

@misc{website:fermentas-lambda,
      author = "Fermentas Inc.",
      title = "Phage Lambda: description \& restriction map",
      month = "November",
      year = "2008",
      url = "http://www.fermentas.com/techinfo/nucleicacids/maplambda.htm"
}

如果需要添加非结构化信息(例如,该期刊的对应期尚未出现),note 字段会很有用

@article{blackholes,
      author = "Rabbert Klein",
      title = "Black Holes and Their Relation to Hiding Eggs",
      journal = "Theoretical Easter Physics",
      publisher = "Eggs Ltd.",
      year = "2010",
      note = "(to appear)"
}

让当前的 LaTeX 文档使用您的 .bib 文件

[edit | edit source]

在 LaTeX 文件的末尾(即在内容之后,但在 \end{document} 之前),您需要放置以下命令

\bibliographystyle{plain}
\bibliography{sample1,sample2,...,samplen} 
% Note the lack of whitespace between the commas and the next bib file.

参考文献样式是 BibTeX 识别的文件,它告诉 BibTeX 如何格式化存储在.bib文件中的信息,以便在处理后输出。因此,上面列出的第一个命令声明要使用的样式文件。此示例中的样式文件是plain.bst(它作为 BibTeX 的标准提供)。在使用此命令时,您无需添加 .bst 扩展名,因为它会被自动添加。尽管它的名字是 plain,但它做得非常好(看看本教程的输出,您就知道我的意思了)。

第二个命令是实际指定要使用的命令.bib文件。我为本教程创建的文件称为sample1.bib, sample2.bib, . . ., samplen.bib,但同样,您无需包含文件扩展名。目前,该.bib文件与 LaTeX 文档位于同一个目录中。但是,如果您的 .bib 文件位于其他地方(如果您打算为所有研究维护一个集中化的参考文献数据库,这很有意义),您还需要指定路径,例如 \bibliography{/some/where/sample}\bibliography{../sample1} (如果 .bib 文件位于调用它的 .tex 文档的父目录中)。

现在,LaTeX 和 BibTeX 知道在哪里查找相应的文件,实际引用参考文献就非常简单了。\cite{ref_key} 是您需要的命令,确保 ref_key 与 .bib 文件中某个条目完全匹配。如果您希望同时引用多个参考文献,请执行以下操作:\cite{ref_key1, ref_key2, ..., ref_keyN}

为什么 LaTeX 不会生成任何输出?

[edit | edit source]

添加 BibTeX 为将源代码处理为所需的输出增加了额外的复杂性。这在很大程度上对用户隐藏了,但是由于从源 LaTeX 文件到另一个文件中的数据库条目的引用的复杂性,实际上需要多次传递才能完成任务。这意味着您必须运行 LaTeX 多次。每次传递都会执行特定的任务,直到它成功解析所有引用。以下是如何在命令行中输入这些内容:

  1. latex latex_source_code.tex
  2. bibtex latex_source_code.aux
  3. latex latex_source_code.tex
  4. latex latex_source_code.tex

(扩展名是可选的,如果使用扩展名,请注意 bibtex 命令使用 AUX 文件作为输入。)

在第一次运行 LaTeX 后,您将看到诸如以下之类的错误

LaTeX Warning: Citation `lamport94' on page 1 undefined on input line 21.
...
LaTeX Warning: There were undefined references.

下一步是在同一个 LaTeX 源代码上运行 bibtex(更准确地说是在相应的 AUX 文件上,但不是在实际的 .bib 文件上),然后在该文档中定义所有参考文献。您应该看到类似于以下内容的输出

This is BibTeX, Version 0.99c (Web2C 7.3.1)
The top-level auxiliary file: latex_source_code.aux
The style file: plain.bst
Database file #1: sample.bib

第三步是第二次调用 LaTeX,将看到更多类似于“LaTeX Warning: Label(s) may have changed. Rerun to get cross-references right.”的错误。不要惊慌,它快完成了。正如您所料,您只需要按照它的指示操作,第三次运行 LaTeX,文档就会按预期输出,不会出现进一步的问题。

如果您希望生成 pdf 输出而不是 dvi 输出,可以使用pdflatex而不是latex如下所示

  1. pdflatex latex_source_code.tex
  2. bibtex latex_source_code.aux
  3. pdflatex latex_source_code.tex
  4. pdflatex latex_source_code.tex

(扩展名是可选的,如果使用扩展名,请注意 bibtex 命令使用 AUX 文件作为输入。)

请注意,如果您在 vim 中编辑源代码并尝试使用命令模式和当前文件快捷方式 (%) 处理文档,就像这样

  1. :! pdflatex %
  2. :! bibtex %

您将收到类似于以下内容的错误

  1. I couldn't open file name 'current_file.tex.aux'

似乎在执行当前文件命令 (%) 时,默认情况下会包含文件扩展名。要从 vim 内部处理文档,您必须显式地命名没有文件扩展名的文件才能使 bibtex 工作,如下所示

  1. :! pdflatex %
  2. :! bibtex %:r (没有文件扩展名,它会像上面提到的那样查找 AUX 文件)
  3. :! pdflatex %
  4. :! pdflatex %

如果您正在运行 Unix/Linux 或任何其他具有 make 的平台,则还有另一种选择。然后,您只需创建一个 Makefile 并使用 vim 的 make 命令或在 shell 中使用 make。Makefile 应该如下所示

latex_source_code.pdf: latex_source_code.tex latex_source_code.bib
	pdflatex latex_source_code.tex
	bibtex latex_source_code.aux
	pdflatex latex_source_code.tex
	pdflatex latex_source_code.tex

经常出现的错误是

  • BibTeX 对参考文献文件名称中的空格很反感。BibTeX 不允许在文件名中使用空格,其他限制(例如最大路径长度为 40 个字符)也同样有效。解决方法:将 bib 文件复制到您的文件夹中,或者将文件夹重命名为不包含空格的名称。
  • 空参考文献:您在文档中引用了内容吗(搜索 \cite 或类似的词语)?否则,LaTeX 不会在 PDF 中生成参考文献。解决方案:使用 \nocite{*} 列出参考文献中的所有条目,而不考虑它们是否被引用。或者简单地说:引用一些内容。
  • BibTeX 一直对包含引号的条目抱怨,即使语法看起来是正确的?可能是引号看起来很像,但却是错误的字符(“ 与 ')。解决方法:尝试将引号替换为正确的对应项。

在参考文献中包含 URL

[edit | edit source]

如您所见,没有 URL 字段。一种可能性是在 @mischowpublished 字段或 @techreport@article@booknote 字段中包含互联网地址

howpublished = "\url{http://www.example.com}"

请注意 \url 命令的使用,以确保 URL 的正确外观

另一种方法是使用特殊字段url并使参考文献样式识别它。

url = "http://www.example.com"

您需要在第一种情况下使用 \usepackage{url},或在第二种情况下使用 \usepackage{hyperref}

Natbib 提供的样式(见下文)处理此字段,其他样式可以使用 urlbst 程序进行修改。urlbst 提供了三种标准样式(plain、abbrv 和 alpha)的修改。

如果您需要有关参考文献中 URL 的更多帮助,请访问 UK List of TeX 的常见问题解答

自定义参考文献外观

[edit | edit source]

BibTeX 的主要优势之一,尤其是对于撰写大量研究论文的人来说,是能够自定义参考文献以满足特定出版物的要求。您会注意到,不同的出版物往往有自己的参考文献格式风格,作者必须遵守这些风格才能发表他们的手稿。事实上,已建立的期刊和会议组织者通常会为 BibTeX 用户创建他们自己的参考文献样式 (.bst 文件),为您完成所有繁重的工作。

它能够做到这一点是因为 .bib 数据库的性质,所有关于参考文献的信息都以结构化的格式存储在其中,但没有关于样式的信息。这在 LaTeX 中是一个普遍的主题,它尽可能地将内容和展示分离。

参考文献样式文件(.bst)将告诉 LaTeX 如何格式化每个属性,以什么顺序排列它们,在特定属性之间使用什么标点符号等等。不幸的是,手动创建这样的样式并非易事。这就是为什么Makebst(也称为 custom-bib)是我们需要的工具。

Makebst可以用来根据您的需求自动生成 .bst 文件。它非常简单,实际上会向您提出一些关于您偏好的问题。完成后,它将输出适合您使用的样式文件。

它应该与 LaTeX 发行版一起安装(否则,您可以 下载它),启动也非常简单。在命令行中输入

latex makebst

LaTeX 会找到相关文件,并开始提问过程。您将不得不回答相当多问题(尽管,请注意默认答案非常合理),这意味着在本教程中进行示例演示不切实际。但是,它相当直截了当。如果您需要进一步的指导,那么有一个全面的 手册 可供使用。我建议您尝试一下,看看将它应用于 LaTeX 文档后的结果。

如果您使用的是自定义构建的 .bst 文件,那么 LaTeX 必须能够找到它!因此,请确保它与 LaTeX 源文件位于同一个目录中,除非您使用的是标准样式文件之一(例如plainplainnat,这些文件与 LaTeX 捆绑在一起 - 这些文件会在其安装的目录中自动找到)。此外,请确保您要使用的.bst文件的名称反映在 \bibliographystyle{style} 命令中(但不包括.bst扩展名!)。

本地化参考文献外观

[edit | edit source]

在用英语以外的语言编写文档时,您可能希望调整参考文献的外观以适应文档语言。这涉及到诸如编辑in之类的词语,以及适当的排版布局。可以使用 babelbib 来实现这一点。例如,要将参考文献以德语的形式排版,请在页眉中添加以下内容

\usepackage[fixlanguage]{babelbib}
\selectbiblanguage{german}

或者,您可以根据引文文档的语言来排版每个参考文献条目

\usepackage{babelbib}

条目的语言在 BibTeX 条目中指定为一个额外的字段

@article{mueller08,
  % ...
  language = {german}
}

对于babelbib生效,必须使用它支持的参考文献样式,其中之一是babplain, babplai3, babalpha, babunsrt, bababbrvbababbr3。必须使用它们。

\bibliographystyle{babplain}
\bibliography{sample}

显示未使用的条目

[edit | edit source]

通常 LaTeX 只显示使用 \cite 引用的条目。可以使未引用的条目可见

\nocite{Name89} % Show Bibliography entry of Name89
\nocite{*} % Show all Bib-entries

获取参考文献数据

[edit | edit source]

许多在线数据库提供 BibTeX 格式的参考文献数据,使您能够轻松构建自己的数据库。例如,Google Scholar 提供了返回正确格式化输出的选项,您也可以在设置页面中启用此选项。

应该注意的是,参考文献数据库通常是经过多代自动处理的结果,因此生成的 BibTex 代码容易出现各种小错误,尤其是在较旧的条目中。

有用的工具

[edit | edit source]
另请参阅:w:en:Comparison of reference management software
Literatur-Generator
JabRef
BibDesk
  • BibDesk BibDesk 是一个用于 Mac OS X 的参考文献管理软件。它拥有非常友好的用户界面,并提供了一些功能,例如基于关键词的智能文件夹和实时 TeX 显示。
  • BibSonomy — 基于 BibTeX 的免费社交书签和出版物管理系统。
  • BibTeXSearch BibTeXSearch 是一个免费的可搜索 BibTeX 数据库,涵盖数百万条学术记录。
  • Bibtex 编辑器 - 在线 BibTeX 条目生成器和参考文献管理系统。可以导入和导出 Bibtex 文件。
  • Bibwiki Bibwiki 是一个 MediaWiki 特殊页面,用于管理 BibTeX 参考文献。它提供了一种直接的方法来导入和导出参考文献记录。
  • cb2Bib cb2Bib 是一款工具,可以从电子邮件提醒、期刊网页和 PDF 文件中快速提取未格式化或非标准化的参考文献。
  • Citavi 商业软件(有大小受限的免费试用版),它甚至可以在图书馆中搜索引文并将您所有的知识保存在数据库中。可以将数据库导出到各种格式。与 MS Word 和 Open Office Writer 一起使用。此外,还存在用于浏览器和 Acrobat Reader 的插件,可以自动将参考文献添加到您的项目中。
  • DokuWiki DokuWiki 是一款 Bibtext 插件,允许在 DokuWiki 页面中包含 Bibtex 格式的引文,并在 APA 格式中显示它们。注意:此插件容易受到 XSS 攻击 -> http://www.dokuwiki.org/plugin:bibtex
  • Ebib — 一个用于 Emacs 的 BibTeX 数据库管理器,解析良好,并且只需几下按键即可使用。
  • JabRef 是一款 Java 程序(在 GPL 许可下),它允许您搜索许多参考文献数据库,如 Medline、Citeseer、IEEEXplore 和 arXiv,并使用您选择的文章来填充和管理您的 BibTeX 本地数据库。基于 BiBTeX,JabRef 可以导出到许多其他输出格式,例如 html、MS Word 或 EndNote。
  • KBib 另一个用于 KDE 的 BibTeX 编辑器。它具有类似的功能,但 UI 略有不同。功能包括从 PDF 文件、纯文本、DOI、arXiv 和 PubMed ID 生成 BibTeX 参考文献。还支持对 Google Scholar、PubMer、arXiv 和其他一些服务的网络查询。
  • KBibTeX KBibTeX 是一个用于 KDE 的 BibTeX 编辑器,用于编辑与 LaTeX 一起使用的参考文献。功能包括舒适的输入掩码、启动网络查询(例如 Google 或 PubMed)以及导出到 PDF、PostScript、RTF 和 XML/HTML。由于 KBibTeX 使用了 KDE 的 KParts 技术,因此 KBibTeX 可以嵌入到 Kile 或 Konqueror 中。
  • Literatur-Generator 是一款德语在线工具,用于创建参考文献(Bibtex、Endnote、Din 1505 等)。
  • Mendeley Mendeley 是一款免费的学术软件,用于管理 PDF 文件,可以管理 Open Office 中的参考文献并读取 BibTeX。
  • Qiqqa Qiqqa 是一款免费的研究管理器,它内置了自动将 BibTeX 记录与您的 PDF 文件关联的功能,以及一个“BibTeX Sniffer”,可以帮助您半自动地查找 BibTeX 记录。
  • Referencer Referencer 是一款 Gnome 应用程序,用于组织文档或参考文献,并最终生成 BibTeX 参考文献文件。
  • Synapsen — 超文本卡片索引/参考文献管理器,具有对 BiBTeX/biblatex 的特殊支持,用 Java 编写。
  • Zotero Zotero 是一款免费的开源参考文献管理器,可以作为独立应用程序使用,能够导入和导出 bib 文件。Zotero 具有适用于 Chrome 和 Firefox 的浏览器插件。

总结

[edit | edit source]

虽然掌握 BibTeX 需要花费一些时间,但从长远来看,它是处理参考文献的有效方法。在网站上经常可以看到人们将 .bib 文件作为他们自己出版物列表的集合,或对某个主题的相关作品的调查等等。或者在那些庞大的在线参考文献数据库中,您经常可以找到出版物的 BibTeX 版本,因此可以快速剪切并粘贴到您自己的 .bib 文件中,然后就没有更多麻烦了!

将所有参考文献集中在一个地方是一个很大的优势。将它们以结构化的形式保存,允许自定义输出是另一个优势。有各种各样的免费实用程序可以加载您的 .bib 文件,并允许您以更有效的方式查看它们,以及对它们进行排序并检查错误。

目录中的参考文献

[edit | edit source]

如果您正在编写书籍报告,您可能会使用类似以下内容来插入您的参考文献

\begin{thebibliography}{99}
\bibitem{bib:one_book} some information
\bibitem{bib:one_article} other information
\end{thebibliography}

或者,如果您使用 BibTeX,您的参考文献将保存在 .bib 文件中,您的 TeX 文档将通过以下命令包含参考文献

\bibliographystyle{plain}
\bibliography{mybibtexfile}

这两个示例都将创建一个类似章节(或类似节)的输出,显示所有参考文献。但即使生成的“参考文献”看起来像一个章节或节,它也不会被完全相同的方式处理:它不会出现在目录中。

使用 tocbibind

[edit | edit source]

将参考文献添加到目录中最舒适的方法是使用专门的包 tocbibind,它适用于许多标准文档类。只需将以下代码包含在您的文档的前言中

\usepackage[nottoc]{tocbibind}

这将在目录中包含参考文献,但不进行编号。如果您想要进行适当的编号,请在前言中包含以下代码

\usepackage[nottoc,numbib]{tocbibind}

tocbibind 包还可以处理将图片列表、表格列表和目录本身包含在目录中。它拥有许多用于编号、文档结构等的选项,可以适应几乎所有场景。有关详细文档,请参阅 tocbibind CTAN 页面

其他方法

[编辑 | 编辑源代码]

作为无编号项目

[编辑 | 编辑源代码]

如果你希望你的参考文献出现在目录中,只需在thebibliography环境之前添加以下两行

\clearpage% or cleardoublepage
\addcontentsline{toc}{chapter}{Bibliography}

(或者\addcontentsline{toc}{section}{Bibliography} 如果你正在写一篇文章)

第一行只是终止当前段落和页面。如果你正在写一本书,使用\cleardoublepage以匹配使用的样式。第二行将在目录中添加一行(第一个选项,toc),它将类似于章节创建的那些行(第二个选项,chapter),第三个参数将在目录中的对应行上打印;这里选择了Bibliography,因为它与thebibliography环境在使用它时自动写入的文本相同,但你可以自由地写任何你喜欢的文本。如果你使用的是单独的bib文件,请在以下两行之间添加这些行\bibliographystyle\bibliography.

如果你使用hyperref 包,你还应该使用\phantomsection命令来启用从目录到参考文献的超链接。

\clearpage% or cleardoublepage
\phantomsection
\addcontentsline{toc}{chapter}{Bibliography}

这个技巧在您必须在目录中插入参考文献时特别有用,但它可以用于任何东西。当LaTeX找到上面的代码时,它将记录如上所述的信息和当前页码,并在目录页中插入一个新行。

作为编号项目

[编辑 | 编辑源代码]

如果你希望参考文献是编号的节或章,你可能会使用这种方式

\cleardoublepage % This is needed if the book class is used, to place the anchor in the correct page,
                 % because the bibliography will start on its own page.
                 % Use \clearpage instead if the document class uses the "oneside" argument
\renewcommand*{\refname}{} % This will define heading of bibliography to be empty, so you can...
\section{Bibliography}     % ...place a normal section heading before the bibliography entries.

\begin{thebibliography}{99}
...
\end{thebibliography}

另一个更简单的解决方案是在\renewcommand块中使用\section

\renewcommand{\refname}{\section{Sources}} % Using "Sources" as the title of the section
\begin{thebibliography}{99}
...
\end{thebibliography}

您可能希望使用\renewcommand*{\refname}{\vspace*{-1em}},后面跟着\vspace*{-1em},以抵消空白\refname插入的额外空间。

如果你使用的是BibTeX、\bibliography命令以及book或report类,你需要重新定义\bibname而不是\refname,如下所示。

\renewcommand{\bibname}{\section{Sources}} % Redefine bibname
\bibliographystyle{IEEEtran}               % Set any options you want
\bibliography{your_bib_file_names}         % Build the bibliography

正如我们之前所说,biblatex被广泛认为是BibTeX的继任者。它旨在完全替代BibTeX,在输出方面更具可配置性,并提供大量新的样式(用于输出)和字段(用于数据库),这些样式和字段可以在文档中使用。目前,请参考其CTAN上的全面文档

.bib文件中的条目和字段类型

[编辑 | 编辑源代码]

下表显示了大多数字段类型。一些字段类型是列表,要么是人员姓名列表,要么是文字列表。一个日期可以以部分或完整形式给出,一些是必需的,页码引用以范围形式提供,某些特殊字段包含逐字代码。有许多种标题

层次化条目类型
基本类型 多卷本 独立部分 补充材料
@book @mvbook @inbook, @bookinbook @suppbook
@periodical @article @suppperiodical
@collection @mvcollection @incollection @suppcollection
@reference @mvreference @inreference
@proceedings @mvproceedings @inproceedings, @conference
biblatex已知的.bib文件中的条目类型以及支持的字段类型,
必需+、可选±、可选^、不支持(空)或禁止
一些类型已缩短:点“.”截断条目,波浪号“~”重复最后一个完整条目
article
book
mv~
in~
~let
collect.
mv~
in~
manual
misc
online
patent
period.
proceed.
mv~
in~
report
thesis
unpub.
author, authortype + + + + ± + ± ± ± + + + + +
editor, editortype ^ ^ ^ ^ ± + + + ± ± ± + + + +
editorX, editorXtype ^ ^ ^ ^ ^ ^ ^ ^
holder ^
bookauthor ^
annotator, commentator ^ ^ ^ ^ ^ ^ ^
translator, origlanguage ^ ^ ^ ^ ^ ^ ^
afterword, foreword, introduction ^ ^ ^ ^ ^ ^
title + + + + + + + + + + + + + + + + + + +
titleaddon, subtitle ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ˇ ^ ^ ^ ^ ^ ^
maintitle, mainsubtitle, maintitleaddon ^ ^ ^ ^ ^ ^
booktitle + + +
booksubtitle, booktitleaddon ^ ^ ^
journalsubtitle ^
journaltitle +
eventdate, eventtitle, eventtitleaddon, venue ^ ^ ^
date, year ± ± ± ± ± ± ± ± ± ± ± ± ± ± ± ± ± ± ±
month ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^
edition ^ ^ ^ ^ ^ ^
issue, issuetitle, issuesubtitle ^ ^
number ^ ^ ^ ^ ^ ^ ^ + ^ ^ ^ ^ ^
series ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^
chapter ^ ^ ^ ^ ^ ^ ^ ^ ^ ^
part ^ ^ ^ ^ ^ ^
volume ^ ^ ^ ^ ^ ^ ^ ^
volumes ^ ^ ^ ^ ^ ^ ^ ^ ^
version ^ ^ ^ ^ ^ ^
doi, eprint, eprintclass, eprinttype ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^
eid ^
isbn ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^
isrn ^
issn ^ ^
isan, ismn, iswc
url ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ + ^ ^ ^ ^ ^ ^ ^ ^
urldate ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^
location ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^
publisher ^ ^ ^ ^ ^ ^ ^ ^ ^ ^
organization ^ ^ ^ ^ ^ ^
institution + +
type ^ ^ ^ ^ + +
howpublished ^ ^ ^
pages ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^
pagetotal ^ ^ ^ ^ ^ ^ ^ ^ ^ ^

一些条目类型很难区分,并且由标准样式以相同方式处理

  • @article 与假设的 *@inperiodical 相同,因此包含现有的 @suppperiodical
  • @inbook = @bookinbook = @suppbook
  • @collection = @reference
  • @mvcollection = @mvreference
  • @incollection = @suppcollection = @inreference
  • @online = @electronic = @www
  • @report = @techreport
  • @thesis = @mastersthesis = @phdthesis

一些字段类型已定义,但文档中没有说明它们可用于哪些条目类型。这是因为它们依赖于另一个字段被设置为有用,或者它们始终可以以用户定义的方式使用,但永远不会在标准样式中使用

  • abstract, annotation
  • entrysubtype
  • file
  • label
  • library
  • nameaddon
  • origdate, origlocation, origpublisher
  • origtitle, reprinttitle, indextitle
  • pagination, bookpagination
  • shortauthor, shorteditor, shorthand, shorthandintro, shortjournal, shortseries shorttitle

唯一始终为强制性的字段是title。所有条目类型还需要dateyear,并且它们指定它们期望的authoreditor,或者它们是否可以使用两者。一些字段类型可以可选地用于任何条目类型

  • addendum, note
  • language
  • pubstate
  • urldate

所有物理(印刷)条目类型共享更多可选字段类型

  • url, doi
  • eprint, eprintclass, eprinttype

多媒体条目类型

  • @artwork
  • @audio
  • @image
  • @movie
  • @music
  • @performance
  • @video
  • @software

以及法律条目类型

  • @commentary
  • @jurisdiction
  • @legislation
  • @legal
  • @letter
  • @review
  • @standard

已定义,但尚未得到良好支持。

条目类型@bibnote@set@xdata是特殊的。

打印参考文献

[编辑 | 编辑源代码]

假设我们在一个名为references.bib的文件中定义了我们的参考文献,我们通过在序言中添加以下内容来将它添加到biblatex中

\addbibresource{references.bib}

使用此宏打印参考文献(通常在文档正文的末尾)

\printbibliography

打印单独的参考文献

[编辑 | 编辑源代码]

我们希望将参考文献分成论文、书籍和其他

\printbibliography[title={Book references},type=book]
\printbibliography[title={Article references},type=article]
\printbibliography[title={Other references}, nottype=article, nottype=book]

如果bib条目位于多个文件中,我们可以像这样添加它们

\addbibresource{references.bib}
\addbibresource{other.bib}

我们也可以根据其他字段过滤,例如entrysubtype。如果我们将在线资源定义为如下

@misc{some-resource,
   ...
   entrysubtype = {inet},
}

我们使用 \printbibliography[title={在线资源}, subtype=inet] 过滤。

带前缀键、子标题和目录的示例

[编辑 | 编辑源代码]

由于参考文献的编号是独立的,因此使用前缀编号(例如 a、b 和 c)来分隔参考文献也是很有用的。此外,我们为参考文献添加一个主标题,并将该标题添加到目录中。

为了使 Hyperref 链接指向正确的参考文献部分,我们还在打印每个参考文献之前添加 \phantomsection

\printbibheading[
heading=bibintoc, % bibintoc adds the Bibliography to the table of contents
title={Resources} % If we want to override the default title "Bibliography" 
]
\phantomsection % Requires hyperref package
\printbibliography[title={Printed sources}, heading=subbibliography, prefixnumbers={a}, type=book, type=article]
\phantomsection
\printbibliography[title={Online resources}, heading=subbibliography, prefixnumbers={c}, subtype=inet]
\phantomsection
\printbibliography[title={Other}, heading=subbibliography, prefixnumbers={c}, nottype=article, nottype=book, notsubtype=inet]

要将每个参考文献都添加到目录中,作为主参考文献的子部分,请将 heading=subbibliography 替换为 heading=subbibintoc

多个参考文献

[编辑 | 编辑源代码]

使用 multibib

[编辑 | 编辑源代码]

这个包用于在你的作品的不同部分创建多个参考文献。例如,你可以为每一章生成一个参考文献。你可以在 CTAN[2] 上找到有关这个包的信息。

使用 bibtopic

[编辑 | 编辑源代码]

bibtopic 包[3] 是为了将引用分散到多个文件中而创建的,这样你就可以将参考文献分成多个部分。它为每个参考文献部分生成一个单独的 aux 文件,因此你必须在每个文件中运行 bibtex(有关更多详细信息,请参阅包文档)。

\documentclass[11pt]{article}
\usepackage{bibtopic}
\begin{document}

\bibliographystyle{alpha}
\section{Testing}
Let’s cite all the books: \cite{ColBenh:93} and
\cite{Munt:93}; and an article: \cite{RouxSmart:95}.

File books.bib is used for this listing:
\begin{btSect}{books}
 \section{References from books}
 \btPrintCited
\end{btSect}
Here, the articles.bib is used, and the listing is in plain-format instead of the standard alpha.
\begin{btSect}[plain]{articles}
 \section{References from articles}
 \btPrintCited
 \section{Articles not cited}
 \btPrintNotCited
\end{btSect}
Just print all entries here with \btPrintAll
\begin{btSect}[plain]{internet}
 \section{References from the internet}
 \btPrintAll
\end{btSect}
\end{document}

注释和参考资料

[编辑 | 编辑源代码]

此页面使用 Andy Roberts 的 Getting to grips with LaTeX 的素材,经作者许可。


上一页:词汇表 索引 下一页:更多参考文献
华夏公益教科书