是否可以将一个 .bib 文件包含到另一个文件中?

是否可以将一个 .bib 文件包含到另一个文件中?

当我开始编写文档时,我决定在主文档目录中使用单个.bib文件。每个文档都将在子目录中创建,并以

\bibliography{../biblio} 
\end{document}

我现在意识到这可能不是最明智的选择,因为我的.bib文件正在大幅增长。

为了避免被迫修复所有.tex文件,我想知道是否可以.bib从“主”文件内部包含其他文件(例如,一个用于文章,一个用于书籍,一个用于网址等)。

或者如果您有其他建议可以让我避免这种繁琐(但可能是应得的)的任务。

答案1

对你的问题的简短回答是“否”。正如 @daleif 在评论中提到的,.bib文件格式没有类似输入的函数或字段。.bib文件格式只是一系列字段标识符,例如@BOOK@ARTICLE,以及@PREAMBLE@STRING字段。文档实际的bibtex后缀语言也没有提到任何输入函数(据我所知)。似乎bibtex只是硬编码以从.aux文件中获取 bib 数据,因此文档访问多个文件中的参考文献的唯一方法.bib是在 的参数中将它们指定为逗号分隔的列表\bibliography

我能为您的问题提出的唯一解决方案是编写一个简短的脚本,该脚本将执行搜索并将 替换为\bibliography{../biblio}\bibliography{file1,file2,etc}如何执行此操作取决于您计算机上可用的工具。例如,在类 Unix 系统上,您可能可以结合find使用sed。对于更独立于平台的方法,可以使用脚本语言(例如 Perl)。

但是,如果您只是发现在文本编辑器中编辑大.bib文件很麻烦,您可能更喜欢使用参考管理器,例如 JabRef。

相关内容