由于网站上发布了许多很棒的答案,我最终考虑转换并转到biblatex
。那么,问题是我必须做什么?
为了使问题更加集中,假设我已经有一个相当大的.bib
文件和一堆用于natbib
参考的文档。我需要对现有的文件进行哪些.bib
更改.tex
?
那么合著者呢?指导他们如何使用 处理新文档是否相当简单biblatex
?他们是否也必须安装新软件/软件包?
答案1
natbib
我已经从两年前转到了biblatex
,所以我应该可以回答这个问题。话虽如此,Seamus、Simon Byrne 和 domwass 已经提出了很多很好的观点。
(如果有人仍然问“我为什么要使用biblatex
?”:请参阅这个答案[无耻的宣传]。)
LaTeX 文档
使用natbib
,模型 LaTeX 文档将如下所示:
\documentclass{<someclass>}
\usepackage[<options>]{natbib}
\begin{document}
A bare citation command: \citep{<key>}.
A citation command for use in the flow of text: As \citet{<key>} said \dots
\bibliographystyle{<somestyle>}
\bibliography{<mybibfile>}% Selects .bib file AND prints bibliography
\end{document}
使用biblatex
其内置样式后,情况将变为:
\documentclass{<someclass>}
\usepackage[<language options>]{babel}% Recommended
\usepackage{csquotes}% Recommended
\usepackage[style=<somebiblatexstyle>,<other options>]{biblatex}
% \bibliography{<mybibfile>}% ONLY selects .bib file; syntax for version <= 1.1b
\addbibresource[<options for bib resources>]{<mybibfile>.bib}% Syntax for version >= 1.2
\begin{document}
A bare citation command: \autocite{<key>}.
A citation command for use in the flow of text: As \textcite{<key>} said \dots
\printbibliography[<options for printing>]
\end{document}
请注意,我使用了\autocite
而不是 ,它实际上是的\parencite
对应项。是一个高级引用命令,它将被转换为适合所选样式的低级裸引用命令 - 例如,它将在样式中将引用括在括号中,但在样式中生成脚注引用。甚至,它会自动移动尾随标点符号。natbib
\citep
\autocite
authoryear
authortitle
对于某些自定义(尚未内置)biblatex
样式,可能需要进行额外的前导调整 - 请参阅 Seamus 提供的示例biblatex-apa
。
正如 Simon Byrne 所提到的:如果您不想将每个文档中的每个实例更改\citep
为其\citet
对应biblatex
项,请使用natbib=true
兼容性选项。
通常,您会选择一个或多个本地.bib
文件作为您的书目数据库;但是,\addbibresource
也允许加载远程资源和其他数据类型(例如ris
)。
.bib 文件
domwass 已经提到,更改.bib
文件不是强制性的,但您会错过 提供的一些好处biblatex
。当我切换到 时biblatex
,我将我的address
字段更改为location
,将我的journal
字段更改为journaltitle
。我还添加了hyphenation
字段,以便能够在参考书目中根据每个条目切换语言。
比贝尔
biblatex
大部分情况下适用于传统的 BibTeX 及其 8 位版本bibtex8
,但我建议使用比贝尔(自 v2.0 以来的默认后端biblatex
)原因如下:
完全支持Unicode。
没有容量问题。(相比之下,当使用 BibTeX 处理大约一百个条目的参考书目时,我遇到了伪装成模糊警告的错误 -
biblatex
有关详细信息,请参阅手册第 2.4.2 节。)多个或细分的书目将始终在一次传递中处理。
自 v1.1 以来引入的许多
biblatex
功能(例如,高级名称消歧义、智能交叉引用数据继承、可配置排序方案、动态数据源修改)都是“Biber 独有的”。
Biber 包含在 TeXLive 和 MiKTeX 中;latexmk也支持使用Biber。
答案2
转换natbib
非常简单:最低要求在标题中:
\usepackage[natbib=true]{biblatex}
\bibliography{dotbibfile}
以及您想要参考书目的地方:
\printbibliography
该选项将自动为和命令natbib
创建相关别名,因此您可以像以前一样使用它们。如果您的文件之前已使用编译,您可能需要删除由 LaTeX 和 BibTeX 创建的一些辅助文件(、、 . )才能使其正常工作。\citep
\citet
natbib
.aux
.bbl
blg
对于合著者来说,主要问题是每个人都使用相同的版本(由于软件包仍在开发中,因此版本之间的一些选项已经发生了变化)。一些著名的 Linux 发行版可以相当迟到及其更新。
答案3
补充一下前面所说的内容:尽管你没有需要要更改.bib
文件中的任何内容以便使用biblatex
,您必须进行一些更改才能受益于所biblatex
提供的某些功能。例如(这不是完整列表):
publisher
和location
是列表字段:例如,您仍然可以使用address = {Berlin, New York}
(作为address
的别名location
),但您不能使用选项maxitems
(maxitems=1
仍然会给您“柏林,纽约”);为了使用此选项,您必须更改为address = {Berlin and New York}
(或location
代替address
),然后会给出“柏林等”和maxitems=1
。类似的情况是一些关于日期规范外观的选项:不要使用字段
year
、month
和day
,而应使用date
具有 ISO 格式日期的字段,例如date = {2010}
或urldate = {2010-08-11}
。然后,biblatex
可以使用一些选项,例如“date=short”等。biblatex
提供了其他软件包未提供的一些附加字段,例如,subtitle
用于多卷作品,等等。titleaddon
maintitle
editortype
答案4
这个答案与问题“Biblatex 指南?”,但因为上面有[重复]标记——我非常不同意:)——我把它发布在这里。
介绍一下biblatex
我前段时间准备的一份相关文件,它由三部分组成。
http://www.khirevich.com/latex/bibliography/
http://www.khirevich.com/latex/biblatex/
http://www.khirevich.com/latex/footnote_citation/
并包含使用编号脚注引用方案的详细示例biblatex
。本文档可视为实用的入门指南,但对于有经验的用户来说,也可视为biblatex
高度自定义书目的工作流程的示例。它包括对所有引入的 biblatex 自定义的深入讨论(包括正文和书目中参考文献的外观),以及自定义 numeric-comp 样式的示例biblatex
。