在两台机器上匹配 biblatex

在两台机器上匹配 biblatex

我有一个 latex 文档,需要在一天中在两台不同的计算机上编译。其中一台电脑上装有 Arch Linux,另一台电脑上装有 Linux Mint。因此软件包有所不同,因为 Arch 的更新程度更高。

问题出现在引用时。我使用的是 biblatex 和 biber,但显然由于版本不同,我无法在两台机器上编译文档。我仍然必须使用 biblatex,但我将后端更改为 bibtex 以使其更容易。

我拥有的:

架构: Biblatex v3.8 Bibtex v0.99d(TeX Live 2017/Arch Linux)

Linux Mint: Biblatex v3.4 Bibtex v0.99d(TeX Live 2015/Debian)

我的主计算机是 Arch,所以我想保持原样。当我在 Mint 上使用 xelatex 进行编译时,我收到此错误:

! Use of \blx@bbl@verbadd@i doesn't match its definition.
l.378     \verb

然后还有许多其他未定义的控制序列,显然是因为版本不同而生成的。以下是我的问题。

  • 我怎样才能让它在两台计算机上工作?(我试图避免在 Mint 上升级 biblatex,因为这意味着升级 pearl。)
  • biblatex 为什么关心版本? 版本之间相差并不大。

干杯

答案1

恐怕无法在两台机器上使用同一套辅助文件来使事情正常运转。不过,如果您愿意删除、、、.aux...文件并在其中一台机器上重新启动,事情应该会正常运转。.bcf.bbl

biblatex关心.bbl文件的格式(同样关心 的格式),因为这是Biber 或 BibTeX 用来通信的.bcf媒介。Biber 或 BibTeX 读取文件并以可在文件中轻松使用的格式准备读取的数据。因此,您的文件的版本自然必须与应读取它们的的版本兼容。版本不会随着 的每次发布而增加。只有在必要时才会升级,即如果内部更改需要它。对于由 编写的文件,将命令传递给 Biber也是如此。biblatex.bibbiblatex.bbl.bblbiblatex.bblbiblatex.bcfbiblatex

在你的情况下,v3.4 和 v3.8 之间大约有一年半的时间,BibTeX 的变化.bbl可以从以下公式中估算出来这个差异biblatex.bst。有一些变化,但让我挑出最重要的

  • extrayear已重命名为extradate。这是必要的,因为该字段现在具有更广泛的范围。
  • refcontext 承担了更多职责。因此,纯粹的内部.bbl\sortlist变成了\datalist
  • 姓名部分的首字母现在用附加的 表示i,而不是_i。使用_必需的类别代码更改会_导致其他软件包出现问题。

所有这些变化意味着biblatex3.4 的文件无法与biblatex3.8 正常工作,反之亦然。

虽然biblatex旨在保持用户界面和样式开发人员界面的稳定性(前者比后者更重要),但对临时文件的稳定性要求并不高,因为它们无论如何都可以轻松删除和重新创建。开发新功能和修复错误总是需要更改文件结构.bbl

相关内容