这个答案说我的 TeX 编辑器 (TeXstudio) 正在为我选择一个参考书目工具。但似乎我必须让 biblatex 后端在源代码中匹配此参考书目工具才能编译我的文档。
因此,如果我将默认 bib 工具设置为 bibtex,我必须写:
\usepackage[backend=bibtex]{biblatex}
而如果我将默认的 bib 工具设置为 biber,我必须将后端设置为biber
(或将其省略,因为这biber
是默认设置)。 biblatex 设置与编辑器中的默认工具不匹配(例如,告诉编辑器使用 bibtex,但写入\usepackage[backend=biber]{biblatex}
会导致以下错误:
Process started: bibtex.exe "main"
This is BibTeX, Version 0.99d (TeX Live 2017/W32TeX)
The top-level auxiliary file: main.aux
I found no \citation commands---while reading file main.aux
I found no \bibdata command---while reading file main.aux
I found no \bibstyle command---while reading file main.aux
(There were 3 error messages)
Process exited with error(s)
当我必须切换编辑器的后端时,这对我自己的文档来说很烦人。但当我和其他人一起工作时,情况就更糟了。当我改变源代码使用 biblatex,这意味着我的合著者必须弄清楚如何让他们的编辑使用与我相同的 bib 工具,这可能不是他们喜欢的方法。如果我不使用 biblatex,因为源代码中没有任何内容强迫某人使用特定的 bib 工具。真的这么难吗,还是有更简单的方法?更改源代码会破坏其他人的构建系统,这似乎不对。
答案1
既然我已经在评论中回答了这个问题,我不妨添加一个实际的答案。与使用的人合作有两个主要问题biblatex
:构建过程和版本匹配。
根据每个文档控制构建过程
正如您所指出的,第一个问题是处理人们不同的默认构建设置。在这种情况下,需要一种基于每个文档来控制编译的方法。许多编辑器都支持“魔术注释”,它们正是这样做的。要控制参考书目处理,您可以使用:
% !BIB TS-program = biber
或者
% !BIB program = biber
请参阅以下问题以获取完整的可能性列表,以及哪些编辑器支持它们。
如果您正在使用emacs
,auctex
通常知道要使用哪个 bib 程序。请参阅此问题:
并且:
或者,您可以使用latexmk
来编译文档。latexmk
足够智能,可以判断是否使用biber
或bibtex
,并执行解析参考文献和生成参考书目所需的所有相关编译。
第三个选项是用于arara
编译。然后,您可以将构建过程直接放入文档中,并告诉您的合作者使用它arara
进行编译。大多数编辑器都可以设置为使用它。(网站上有各种关于设置不同编辑器以使用它的问题。)
配套biber
和biblatex
版本
使用姿势进行协作的第二个更严重的问题biblatex
是和的版本biber
非常biblatex
紧密地联系在一起,而且由于两者都仍在开发中,多年来已经有许多版本。我还应该在这里指出,[backend=bibtex]
对于大多数当前样式来说,使用包选项实际上不是一个可行的选择biblatex
。
以下是当前手册中的列表 。或biblatex
都没有向后兼容模式,这意味着您确实需要保持版本最新且匹配。 理想情况下,这意味着所有合作者都安装了相同年份的 TeX Live(或与之相当的 MikTeX)。 Linux 用户最有可能出现问题,因为 Linux 软件包发行版通常落后于当前年份。biber
biblatex
这个问题可能没有看上去那么严重,至少如果每个人都在使用相当新的版本,并且人们不会尝试使用.bcf
不同版本生成的文件进行编译的话。例如,如果人们在 Dropbox 文件夹中共享文档,而不是编译本地版本并通过 Git 管理协作,则可能会出现此问题。
我们中的许多人已经在自己的机器上安装了多年的 TeX Live。根据操作系统的不同,在它们之间切换通常并不太困难。所以这也是一种选择。