扁平化 BibTeX 文件

扁平化 BibTeX 文件

是否有一个工具可以“扁平化”复杂的 BibTeX 文件?

我尤其希望:

  1. 扩展@STRING宏,例如:

    @STRING{foo = {Bar}}
    @MISC{x, title = foo}
    

    @MISC{x, title = {Bar}}
    
  2. 展开交叉引用,例如:

    @INPROCEEDINGS{x, title = {A}, crossref = y}
    @PROCEEDINGS{y, title = {B}, booktitle = {B}}
    

    @INPROCEEDINGS{x, title = {A}, booktitle = {B}}
    

答案1

这可以通过bib2bib工具来执行,它提供了非常灵活和可靠的方法来过滤/提取/扩展 bibtex 条目。这个(鲜为人知的)实用程序是bibtex2html工具套件。(注意:您必须寻找PDF文档,HTML 文档不讨论bib2bib!)

例如,为了扁平化一个bib文件,只需写入:

bib2bib --expand --expand-xrefs -ob flattened.bib original.bib   

还可以指定过滤和排序选项。可以对多个条件进行分组,并用 and/or/not 组合以仅提取符合特定标准的条目。

编辑:显然不支持的一件事是过滤掉@comment条目。例如,这些条目是由 JabRef 插入的。要摆脱它们,只需通过一些正则表达式工具将结果传输出去。Jukka 建议perl -p0 -e 's/\s*(\@comment\{\{[^}]*\}\}\s*)+/\n\n/g'这样做。

相关内容