我有一个很大的 BibTeX 文件,其中的条目带有诸如smith-jones-2011
和 之类的键shah-2018
。我想将这些键重命名为Smith2011
和Shah2018
,但我不想破坏引用旧键的 LaTeX 文件。有没有一种好的自动化方法来更改 BibTeX 文件中的所有键并更新 LaTeX 文件?
答案1
.bib
.tex
文件对它们所使用的文档一无所知,因此.bib
文件无法神奇地返回所有文件并更改引用键。
一个简单的搜索和替换工作.tex
可能对你来说就足够了。如果你的数据库很大,你可能想尝试通过获取可以逐个处理的新旧键列表来自动化此操作。
如果您正在使用biblatex
(与 Biber 一起使用),您可以使用该ids
字段来保留旧名称。请参阅克雷格科布的回答到bibtex 具有同一参考文献的多个别名并且保丽康的回答有多个键引用相同的参考书目条目
@article{Smith2011,
ids = {smith-jones-2011},% <- old key
author = {Jane Smith and Emma Jones},
title = {Title},
journal = {Journal of Stuff},
year = {2011},
volume = {12},
}
有点儿像 hack 一样,将crossref
旧名字改为新名字
@article{Smith2011,
author = {Jane Smith and Emma Jones},
title = {Title},
journal = {Journal of Stuff},
year = {2011},
volume = {12},
}
@article{smith-jones-2011,
crossref = {Smith2011}
}
按照建议弗拉布尤斯在一个 bibtex 条目可以赋予多个参考名称吗?。这不需要对所有.bst
文件都起作用,并且如果在同一个文档中使用两个名称,可能会导致参考书目重复和其他奇怪的副作用。
如果您只使用biblatex
(与 Biber 一起使用),那么 应该没问题ids
。否则,我建议使用搜索和替换解决方案。