跳转到内容

LaTeX/使用 biblatex 和 biber 创建参考文献

来自维基教科书,自由的教科书,面向自由的世界

了解如何使用现代 biblatex 和 biber 创建参考文献 - 简短教程。

这只是一个关于 biblatex 和 biber 主要且最常用功能的简短概述,以便创建参考文献。更详细的信息可以在包文档中找到。


数据库

[编辑 | 编辑源代码]

使用 biblatex 和 biber 创建参考文献意味着将所有可用的参考文献信息存储在一个简单的基于文本的数据库中。名称应尽可能唯一,例如 lauraPhd2016.bib。这在与您的顾问、学生或同事传输文件时很有帮助。biber 用于处理数据库。

样本数据库文件可能如下所示

@article{wombat2016,
	author   = {Walther Wombat and Klaus Koala},
	title    = {The true meaning of 42},
	journal  = {Journal of modern skepticism},
	date     = {2016},
	keywords = {trusted},
}
@book{lion2010,
	author       = {Laura Lion and Gabrielle Giraffe and Carl Capybara},
	title        = {The dangers of asking the wrong question},
	publisher    = {publishing house},
	date         = {2010},
	keywords     = {trusted},
}
@online{wikibook,
	title        = {Generating Bibliographies with biblatex and biber},
	organization = {Wikibooks},
	date         = {2016},
	urldate      = {2016-03-07},
	url          = {https://wikibooks.cn/wiki/LaTeX/Generating_Bibliographies_with_biblatex_and_biber},
	keywords     = {untrusted},
}

数据库中的每个条目都以 @ 符号开头,后面跟着条目类型。还有更多类型可用,包文档列出了所有类型。每个条目的参考文献信息存储在一对括号中,以该条目的唯一关键字 (bibkey) 开头。最简单的展示数据的方法是在新行中列出每个字段类型,内容用花括号括起来,后面跟着一个逗号。您提供信息的顺序并不重要。

请仔细查看作者,每个作者之间用关键字 and 分隔。所有日期都以 YYYY-MM-DD 格式写,如果其他信息不可用,则只写年份。文件 biblatex-examples.bib 应该与包一起安装,它包含一些示例条目。

设置 biber

[编辑 | 编辑源代码]

Biber 是一个辅助程序的名称,它对条目进行排序,并向 biblatex 包提供所有相关信息。如果您不习惯使用命令行(也称为终端),您应该将您的编辑器设置为为您调用 biber。设置我的编辑器以使用 biber 展示了如何在不同的编辑器中进行设置。


一个简单的示例

[编辑 | 编辑源代码]
\documentclass{article}
\usepackage[backend=biber]{biblatex}
\addbibresource{lauraPhd2016.bib}
\begin{document}
I doubt that there is any useful information here~\cite{wikibook}.

All we know is limited, apart from knowing the answer we all know. Or do we? Wombat and Koala have discovered some interesting things~\cite{wombat2016}.

Some people are too nosy. What can happen to them is described by Laura Lion~\cite[9]{lion2010}.

\printbibliography
\end{document}

它究竟是如何工作的?biblatex 包使用 backend=biber 选项加载,然后使用 \addbibresource 将您的数据库文件添加到参考文献文件列表中。请注意,文件扩展名是必须的,这发生在文档的前言中。

在文档中,您可以使用 \cite{bibkey} 引用数据库中的一个条目。您的数据库可以包含数百个条目,但最终列表中只会出现被引用的参考文献。您可以使用 \nocite{<bibkey>} 将未引用的条目添加到列表中。如果您想添加数据库中的所有条目,请使用 \nocite{*}

最后,使用 \printbibliography 打印您的参考文献列表。

在主文档上运行 LaTeX(无论 latexpdflatex 等)都会导致以下 log 输出。

LaTeX Warning: Citation 'wikibook' on page 1 undefined on input line 5.

LaTeX Warning: Citation 'wombat2016' on page 1 undefined on input line 7.

LaTeX Warning: Citation 'lion2010' on page 1 undefined on input line 9.

LaTeX Warning: Empty bibliography on input line 11.

[1{/usr/local/texlive/2017/texmf-var/fonts/map/pdftex/updmap/pdftex.map}]
(./lauraPhd2016Main.aux)

LaTeX Warning: There were undefined references.

Package biblatex Warning: Please (re)run Biber on the file:
(biblatex)                lauraPhd2016Main
(biblatex)                and rerun LaTeX afterwards.

我们会收到一些关于未定义的参考文献的警告,没有参考文献,并且没有使用正确的引用,我们只看到用粗体显示的引用键。

The output before the compile chain is completed.

为了真正获得参考文献和引用,而不是仅仅获得臭名昭著的 There were undefined references 警告,您必须在 latex 之后运行 biber 以从数据库中提取相关数据。在按照 设置我的编辑器以使用 biber 中的说明设置 biber 后,您应该能够通过在处理文档时按下一个按钮来做到这一点。为了将参考文献信息合并到您的文档中,LaTeX 必须在处理数据之前处理 biber 生成的數據。总而言之,如果您有一个名为 lauraPhd2016Main.tex 的文件,您(或您的编辑器)将不得不执行以下操作

$ latex lauraPhd2016Main
$ biber lauraPhd2016Main
$ latex lauraPhd2016Main

每次您的数据库更新时,请务必通过调用 biber 来处理数据库。

完整的结果可以在下面的图片中看到。请注意,biblatex 包会添加一些小的细节。您能看到一些被打印但未定义的东西吗?

参考文献样式

[编辑 | 编辑源代码]

不同的科学学科使用不同的参考文献样式。总的来说,您可以将它们分为数字参考文献系统(温哥华)或作者-日期参考文献系统(哈佛)。


biblatex 包[1] 提供不同的引用命令,它们生成不同的输出(文内引用、脚注等)。下面给出了一些示例,包文档包含并解释了整个集合的使用。


数字参考文献

[编辑 | 编辑源代码]

数字参考文献是默认样式。文本和参考文献中都使用方括号内的数字。使用 \autocite 可以轻松地将样式更改为脚注。sorting=none 生成一个按时间顺序排序的参考文献,即数字在文档末尾递增。

\documentclass{article}
\usepackage[backend=biber,style=numeric,autocite=plain,sorting=none]{biblatex}
\addbibresource{lauraPhd2016.bib}
\begin{document}
I doubt that there is any useful information here.~\cite{wikibook}

All we know is limited, apart from knowing the answer we all
know. Or do we? \citeauthor{wombat2016} have discovered some interesting
things.~\autocite[compare][80]{wombat2016}

What can happen to nosy people is described by \textcite[9]{lion2010}.
\printbibliography
\end{document}

使用 autocite=footnote 会生成不同的输出。你能发现所有区别吗?


脚注中的引用

作者-日期参考文献

[编辑 | 编辑源代码]

如果您想要作者-日期参考文献样式,您可以在加载 biblatex 时使用 style=authoryearautocite 选项与 inline 选项一起使用时,会在使用 autocite 生成的引用周围添加括号(类似于使用 \parencite)。在某些情况下,当引用是主题并且是句子的一部分时,\textcite 可能会有用。

\documentclass{article}
\usepackage[backend=biber,style=authoryear,autocite=inline]{biblatex}
\addbibresource{lauraPhd2016.bib}
\begin{document}
I doubt that there is any useful information here~\cite{wikibook}.

All we know is limited, apart from knowing the answer we all know. Or do we?~\cite{wombat2016}

Some people are too nosy. What can happen to them is described by Laura Lion~\autocite[9]{lion2010}.

Some people are too nosy. What can happen to them is described by \textcite[9]{lion2010}.

\printbibliography
\end{document}

APA 引用

[编辑 | 编辑源代码]

美国心理学会 (APA) 定义了一种非常严格的作者-年份样式。您可以使用 style=apa 以及额外定义语言映射来访问它。

\usepackage[backend=biber,style=apa,autocite=inline]{biblatex}
\DeclareLanguageMapping{english}{english-apa}
\addbibresource{lauraPhd2016.bib}

将输出与正常的作者-年份样式进行比较。你能发现多少变化?

按条目类型分离参考文献

[编辑 | 编辑源代码]

假设您想要为所有引用的在线资源创建单独的参考文献。使用 \printbibliography 的可选参数没问题。您还可以更改标题(以及其他内容)。

\documentclass{article}
\usepackage[backend=biber,defernumbers=true]{biblatex}
\addbibresource{biblatex-examples.bib}
\begin{document}
\nocite{westfahl:space,aristotle:physics,ctan,baez/online,markey,sigfridsson}
\printbibheading
\printbibliography[heading=subbibliography,type=online,title={All my online references}]
\printbibliography[heading=subbibliography,nottype=online,title={All my non-online references}]
\end{document}

拆分为不同的主题

[编辑 | 编辑源代码]

您可以将参考文献拆分为不同的主题,例如可信和不可信的来源,或主要和次要来源。通过向数据库条目添加 keywords 标签来告诉 biblatex 这些信息。

@book{lion2010,
	author       = {Laura Lion and  Gabrielle Giraffe and Carl Capybara},
	title        = {The dangers of asking the wrong question},
	publisher    = {publishing house},
	date         = {2010},
	keywords     = {trusted},
}
\documentclass{article}
\usepackage[backend=biber,style=authoryear,refsection=section]{biblatex}
\addbibresource{lauraPhd2016.bib}
\begin{document}
\cites[see also][12]{wombat2016}[and][45]{lion2010}
\nocite{wikibook}
\printbibliography[keyword={trusted},title={All the trusted sources}]
\printbibliography[keyword={untrusted},title={All the untrusted sources}]
\end{document}

Splitting a biblatex bibiography into different topics using keywords

请注意,数据库中的条目字段称为 keywords(复数),因为您可以拥有多个关键字(用逗号分隔)。当调用 \printbibliography 命令时,您必须使用单数。biblatex 拥有一个强大的数据过滤系统,更多信息可以在手册中找到。

每节或每章的参考文献

[编辑 | 编辑源代码]

有些人需要在每章或每节的末尾添加一个参考文献列表。这可以使用 refsection 完成。

\documentclass{article}
\usepackage[backend=biber,defernumbers=true,refsection=section]{biblatex}
\addbibresource{biblatex-examples.bib}
\begin{document}
\section{Aster}
\cite{ctan,sigfridsson} and some text
\printbibliography[heading=subbibliography]
\section{Begonia}
\cite{aristotle:physics,markey}
\printbibliography[heading=subbibliography]
\section{Cichorium}
\cite{westfahl:space,baez/online}
\printbibliography[heading=subbibliography]
\end{document}


演示文稿中的参考文献

[编辑 | 编辑源代码]

您可以将 biblatex 包与 beamer 一起使用(请参阅 演示文稿部分)以在您的演示文稿中添加引用和参考文献列表。建议立即使用完整的引用,这样听众就不必等到最后才能看到信息的来源。

\documentclass{beamer}
\usecolortheme{crane}
\usepackage{biblatex}
\addbibresource{lauraPhd2016.bib}
\begin{document}
\begin{frame}{42}
	Interesting
	\footfullcite{wombat2016}
\end{frame}
\nocite{*}
\begin{frame}{References}
\printbibliography
\end{frame}
\end{document}

A beamer presentation slide containing a citation using package biblatex . A beamer presentation slide containing the reference list using package biblatex .


返回主参考文献页面

华夏公益教科书