有没有办法让 biblatex+biber 在进行任何进一步处理之前,使用作者姓氏按字母顺序对作者列表进行排序(例如,用 et al. 替换长列表)?
我使用 biblatex 和 biber 并采用以下设置:
\RequirePackage[
backend=biber,
citestyle=numeric-comp,
maxnames=3,
minnames=1,
sorting=none)
]
平均能量损失
输入:
@article{example1,
author = {Blastname, Tim and Alastname, Tom},
title = {Example Title}
[..]
}
@article{example2,
author = {Blastname, Tim and Alastname, Tom and Clastname, Tam},
title = {Example Title}
[..]
}
@article{example3,
author = {Blastname, Tim and Alastname, Tom and Clastname, Tam and Dlastname, Tum},
title = {Example Title}
[..]
}
期望输出(假设它们按上述顺序引用):
[1] T. Alastname and T. Blastname. "Example Title", [..]
[2] T. Alastname, T. Blastname, and T. Clastname. "Example Title", [..]
[3] T. Alastname et al. "Example Title", [..]
因此,我不想改变参考书目中参考文献的顺序,而是想改变每个参考文献中作者的顺序。
答案1
不。
恐怕 Biber 没有在姓名列表中排序的功能。(BibTeX 也没有。)我猜这不是一个备受追捧的功能,因为据我所知,没有一种风格指南提倡改变姓名列表中的顺序:在某些领域,它们有意义,即使在顺序不一定表明贡献或资历的领域,一篇论文仍可能被其第一作者所知,而重新排序以获得不同的第一作者会有问题。
如果您需要此功能(并且认为它对其他人也有用),您可以在以下位置打开功能请求https://github.com/plk/biber/issues。
我有一个临时解决办法biblatex
。但目前实施起来太棘手了。这个想法是循环遍历论文的所有作者,并dataonly
为每个作者创建一个单独的条目(条目键可以来自其hash
)。然后,Biber 将按名称对这些仅限作者的条目进行排序。然后,我们基本上可以得到一个排序的名称哈希列表。打印条目时,我们将循环遍历所有哈希并将其添加到列表中。然后,我们将获取该列表并对其进行排序(通过循环遍历所有名称的排序列表)。然后,我们将从哈希中检索名称信息。
这个想法似乎可行,但需要做很多工作。使用外部脚本对姓名列表进行排序可能更简单。如果脚本可以解析 BibTeX 姓名列表并且有库可以做到这一点,那么它可能会更好地工作。