我正在尝试使用biblatex
Biber 而不是 BibTeX。不幸的是,几乎所有的 BibTeX 条目都有包含冒号和括号的键。例如,
@BOOK{Chambers+Hastie:(92),
editor = {Chambers, John M. and Hastie, Trevor J.},
year = 1992,
title = {Statistical Models in S},
publisher = {Wadsworth and Brooks/Cole Advanced Books and Software},
address = {Pacific Grove, CA},
annote = {tree,glm,splus},
}
Biber 显然并不关心这一点。有没有一种不涉及更改我所有.bib
文件的解决方法?
答案1
恐怕这是因为 biber (btparse) 使用的库故意不允许这样做。它的目的是故意禁止一些比较可疑的 bibtex 构造(参见http://search.cpan.org/~ambs/Text-BibTeX-0.66/btparse/doc/bt_language.pod)。键不能包含以下任何内容:
" # % ' ( ) , = { }
btparse
不允许使用圆括号的原因是,它(以及 biber)允许使用圆括号代替大括号,例如:
@BOOK(key,
...
)
因此,修改旧的 PCCTS 解析器来解决这个问题并不是一件容易的事。
然而,可能有帮助的是,biber 支持键别名:
@BOOK{key,
IDS = {key(withparens)},
...
}
这意味着你仍然可以做\cite{key(withparens)}