我使用 Emacs/Auctex/Biblatex/Jabref 并遇到以下问题:如果我有超过四个引用,用逗号分隔,则\parencite
引用会突然显示缩写的名字:
引用 4 处后显示如下:
Arnott 和 Rowse 2009;Arnott 和 Inci 2006;Arnott 和 Rowse 1999;Arnott 1998
引用 5 次后结果如下:
RJ Arnott、Palma 和 Lindsey 1991;R. Arnott 和 Rowse 2009;R. Arnott 和 Inci 2006;R. Arnott 和 Rowse 1999;R. Arnott 1998
这是一个错误还是一个功能?
答案1
您所看到的与 biblatex 尝试识别名称是否“唯一”的方式有关。它与引用次数无关。引发这一变化的原因是“RJ Arnott”的出现,加入了“R Arnott”的行列。
您没有说明您使用的是哪种风格,但我将使用标准authordate
风格进行演示。假设我们有以下 MWE:
\documentclass{article}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{jones:1,
author = {Jones, R.},
title = {Titular Sees},
publisher = {PubCo},
date = {1900}}
@book{jones:2,
author = {Jones, R. L.},
title = {Titles of Nobility},
publisher = {PubCo},
date = {1901}}
\end{filecontents}
\usepackage[style=authoryear]{biblatex}
\addbibresource{\jobname.bib}
\begin{document}
\cite{jones:1}
\end{document}
我们有一个.bib
文件,里面有两件作品,作者叫 Jones,一件作品的首字母是“R”,另一件作品的首字母是“R L”。这些作品可能是也可能不是同一个人创作的。
然而,只要我们只引用其中一个,我们就只会得到姓氏:
琼斯 1900
现在如果我们改变引用方式,引用
\cite{jones:1, jones:2}
我们得到了一些不同的东西:
R.琼斯 1900 年;RL琼斯 1901 年
这完全合理。biblatex 无法“知道”这是同一个人(即使我们通常也无法确定)。
但是,如果我们认为这是错误的,我们可以做两件事。第一是uniquename=false
加载 biblatex 时设置选项。在标准 authoryear 样式中设置该选项后,相同的引文现在会给我们
琼斯 1900;琼斯 1901
在作者/年份格式中,biblatex 仍然足够合理,可以添加必要的消歧义。例如,如果我们添加 Dr 的条目乙琼斯的作品也发表于 1900 年,并且uniquename
是错误的,我们就会得到“琼斯 1900a”和“琼斯 1900b”的标签(而如果uniquename
是真的,我们不需要也不会得到额外的字母,因为首字母已经消除歧义)。
第二种可能性当然是将我们的bib
条目更改为完全相同,此时biblatex
将不再尝试区分它们。因此,如果我们将的作者更改jones:1
为Jones, R. L.
,那么即使uniquename=true
我们得到
琼斯 1900;琼斯 1901
不过,总的来说,我认为书目编纂者会谨慎对待这种解决方案。严格来说,书目应该准确记录已出版书籍中包含的信息,而“悄悄地”添加或删除首字母是可疑的。不过我敢说你可以侥幸逃脱。