是否有一个工具可以“扁平化”复杂的 BibTeX 文件?
我尤其希望:
扩展
@STRING
宏,例如:@STRING{foo = {Bar}} @MISC{x, title = foo}
⇓
@MISC{x, title = {Bar}}
展开交叉引用,例如:
@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'
这样做。