我们与多家公司的作者共同撰写科学论文。我的公司维护一个书目文件,该文件提供了所有参考文献,位于我们公司网络内部,外部无法访问。LaTeX 源代码位于 SVN 存储库中,所有贡献者都可以访问。
或者换句话说:LaTeX 源A是公开的。大型书目文件乙位于私密位置。但其中包含的信息并不保密,可以共享。只要我们不开始维护多个文件。当我编辑和构建时,我有A和乙可用并可以构建文档。但另一家公司的合著者只有A可用但无法构建。
有哪些选项可以让所有作者共享一套独立的可构建文件?解决方案也可以是构建和文件或系统架构的变更。
我的想法是:
- 当前选项:共享 .bbl 文件。但合著者抱怨这有时会造成问题。可能存在哪些问题?当没有 .bib 时,此文件会被空文件覆盖吗?
- 每次构建时,都会将当前 .bib 复制到公共 SVN 的脚本。但我不知道该如何编写脚本。
但也许还有其他我还没想到的选择。
答案1
我的建议是遵循你的建议:
当前选项:共享 .bbl 文件。但合著者抱怨这有时会造成问题。可能存在哪些问题?当没有 .bib 时,此文件会被空文件覆盖吗?
如果您通过将 .bbl 文件剪切并粘贴到主 Latex 源中(即删除\bibliography{bibfile}
并在该点插入文件内容.bbl
)来执行此操作,那么通常可以减少问题,至少从编辑该文档的角度来看是这样。但是,存在一些问题:
- 文档参考书目与存储库之间的链接已断开。这造成的最严重后果是,对导入参考书目所做的任何更正都需要单独向存储库进行。
- 如果你想添加新的书目条目,使用 Bibtex 会变得更加复杂。同样,在极少数情况下,想要更改引用样式也会变得更加棘手。
这些问题都不是特别麻烦。你的另一个建议是
每次构建时,都会将当前 .bib 复制到公共 SVN 的脚本。但我不知道该如何编写脚本。
减少了这两个问题,但却带来了新的问题,并且要求您解决一个非平凡的实施问题。
将.bbl 文件合并到主文档的优点是:
- 无需同时解决保持当前 Latex 文档和当前 .bib 文件为最新这一问题。最新性是协作编辑的主要困难来源(如果每个人都使用类似 的 DVCS,这一问题几乎可以完全解决
git
),这是一个重要优势。我尝试确保在与客户进行编辑工作时,每个任务只有一个文件需要编辑,因为可靠性不这样做会造成困难。 - Bibtex 无法表示什么芝加哥称为“非正式来源”,即没有 ISBN 或 ISSN 编号的来源。如果您可以编辑 Bibtex 的输出,则可以解决这些问题。
- 按照输出中出现的顺序编辑参考列表比搜索 .bib 文件更方便。大多数参考列表中都有错误;如果作者对其所基于的书目数据库的质量有很高的信心,那么出现这些错误的可能性就会大大增加。
答案2
直到最近,biblatex 才有了一个用于包含参考书目的新命令,\addbibresource
它支持远程访问。biblatex 手册显示示例
\addbibresource[location=remote]{ftp://192.168.1.57/~user/file.bib}