如果我将使用 biber 的 LaTeX 项目交给同事(可能在另一个平台上工作),我经常会收到反馈说 biber 部分导致了问题(例如由于版本问题)。
解决这个问题的最佳方法是什么?也许有一种方法可以包含正确的 biber 版本或类似的东西。
答案1
分发 Biber 也意味着分发biblatex
如果您希望将 Biber 与您的项目一起分发,那么您必须也分发biblatex
,因为两者的版本必须匹配。
分发biblatex
可能意味着分发...
当前biblatex
版本 3.11 还依赖于babel
不早于 2016-04-23 (v 3.9r),并且xstring
至少从 2013-10-13 (v1.7c) 和etoolbox
至少从 2010-11-29 (v2.1) 开始加载。
此外,还biblatex
加载了pdftexcmds
、keyval
(上次更新于 2014 年)、kvoptions
(上次更新于 2016 年,根据更改历史记录,只有文档更改)、、logreq
(ifthen
上次更新于 2014 年)、url
(上次更新于 2013 年)。其中大部分内容即使在旧版本中也应该没问题,但我记得其中一个键值包更改了某些内容,导致出现问题biblatex
...
polyglossia
1.42.0(2015 年 8 月)之前的版本也可能存在问题,但无论如何,biblatex
对 的polyglossia
支持并不是很好,我建议babel
尽可能坚持使用(另请参阅我的回答的第一部分\DeclareLanguageMappingBiblatex 中的后缀、继承和多语种)。
因此,根据您同事的系统有多老,如果您分发 ,您可能需要分发额外的软件包biblatex
。从上面的调查来看,babel
这是一个非常现实的候选者,大多数其他软件包都是大概很好。请记住,您分发的所有其他软件包也可能具有其他版本依赖性。
分发版本的安装和使用
即使是分发也biblatex
有点复杂,因为核心加上标准样式和本地化文件大约有 100 个文件。您可以尝试通过仅捆绑所需的样式文件来减少分发的文件数量(我不会使用debug.bbx
,那么我为什么要发布它?),但这可能会(IANAL)违反低功率激光功率放大器(对于私人项目来说,这可能不是什么大问题,但当项目公开时,问题就更大了;无论如何,这都表明你违背了最佳实践)。
此外,您同事的系统必须找到您的 Biber 版本biblatex
。这意味着您要么需要您的同事在整个系统范围内手动安装您的版本(或者,如果您给他们一个脚本,那么可以半手动地安装),这通常是不推荐的(如果操作不正确,可能会产生不良后果,例如,如果您写入由 TeX 发行版控制的目录,更新可能会覆盖您手动安装的部分内容)。或者您必须弄乱环境变量、命令行包含选项,或将所有文件放入文档文件夹。对我来说,这两个选项都不是特别用户友好或干净。
所以,你可以做什么?
如果你不分发项目的临时文件(特别是,,,.aux
... ),你的同事应该没事,并且可以编译你的项目.bbl
.bcf
- 他们
biblatex
安装了匹配版本的 Biber, - 他们知道如何运行 Biber 而不是 BibTeX
- 该文档没有使用要求每个人都拥有最新版本的尖端功能
biblatex
。
第 1 点通常不是完整的单用户安装的问题。biblatex
和 Biber 将随系统一起安装,并且如果执行了更新(假设您的同事没有挑选更新),biblatex
和 Biber 会同时更新。 由于biblatex
和 Biber 通常同时发送到 CTAN,因此它们也会同时到达 TeX live 和 MikTeX(尽管过去曾出现过一些问题)。
biblatex
如果Biber 以不同的模式安装,并且更新不频繁且只在两种模式中的一种下进行,则多用户安装(尤其是 MikTeX)可能会出现问题。
如果您的同事没有安装完整的系统,并且biblatex
Biber 的安装日期不同,且在安装之前没有更新,那么这也可能会有问题。这可能会导致系统版本不匹配。
解决方案是要求您的同事确保biblatex
安装了 Biber,然后在开始处理您的论文之前正确、完整地更新他们的系统。这听起来很容易,但我知道这可能是一个巨大的要求:更新总是有风险的,人们可能会在截止日期之前对更新保持警惕。在大学或公司的硬件上,您的同事甚至可能没有启动更新的必要权限。最后,更新必须是完整的(我如何更新我的 TeX 发行版?), 对于多用户 MikTeX,这意味着它应该在管理员和用户模式下运行(至少两次,因为关键系统更新优先,另请参阅应该如何维护和更新 MiKTeX 安装?),对于 TeX live 用户来说,这可能意味着要安装新版本的 TeX live(为什么 TeX Live “要求”每年更新?)。
第 2 点应涵盖Biblatex 与 Biber:配置我的编辑器以避免未定义的引用并花费您几分钟时间,以防您的同事对此有疑问。
如果您的同事都更新到了最新版本,那么第 3 点其实不是什么问题。否则,您需要意识到您可能想要使用的某些功能在早期版本中不可用。只要您只使用非常高级的功能,您可能就不会有问题。但如果您开始做一些更严肃的事情,那么硬性障碍可能是版本 3.3(2016 年 3 月,Biblatex 3.3 名称格式),对于日期处理 3.5 是相关的(2016 年 9 月),...
为什么要关心临时文件?
分发临时文件通常风险更大,因为它们是由特定版本的biblatex
/Biber 编写的,并且只有该版本才能理解。只要您的同事运行不同的版本,事情就会发生故障 - 可能会出现无用的消息。由于临时文件是要重新生成的,因此几乎不需要保持其格式向后兼容,另请参阅在两台机器上匹配 biblatex。