Biblatex + Biber:按字母顺序排列作者列表

Biblatex + Biber:按字母顺序排列作者列表

有没有办法让 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 姓名列表并且有库可以做到这一点,那么它可能会更好地工作。

相关内容