按姓氏“Al-”开头对 biblatex 书目进行排序

按姓氏“Al-”开头对 biblatex 书目进行排序

我想按姓氏对我的 biblatex 书目进行排序。不幸的是,以“Al-”开头的名字没有按预期排序。

梅威瑟:

\documentclass{article}

\usepackage[
    backend=biber,
    style=ieee,
    citestyle=numeric-comp,
    sorting=nyt,
]{biblatex}

\bibliography{bib}

\begin{document}

\nocite{*}
\printbibliography

\end{document}

Bib 文件:

@article{A,
title = {Title-A},
volume = {1},
journaltitle = {Journal},
date = {2000},
pages = {1-2},
author = {Abc, FirstName},
}

@article{B,
title = {Title-B},
volume = {1},
journaltitle = {Journal},
date = {2000},
pages = {1-2},
author = {Al-Xyz, FirstName},
}

@article{C,
title = {Title-C},
volume = {1},
journaltitle = {Journal},
date = {2000},
pages = {1-2},
author = {OtherAuthor, FirstName},
}

@article{D,
title = {Title-D},
volume = {1},
journaltitle = {Journal},
date = {2000},
pages = {1-2},
author = {Xyz, FirstName}
}

预期顺序与 bib 文件中的顺序相同(Al-Xyz 在 OtherAuthor 之前),但我得到的是:

References
[1] F. Abc, “Title-a,” Journal, vol. 1, pp. 1–2, 2000.
[2] F. OtherAuthor, “Title-c,” Journal, vol. 1, pp. 1–2, 2000.
[3] F. Al-Xyz, “Title-b,” Journal, vol. 1, pp. 1–2, 2000.
[4] F. Xyz, “Title-d,” Journal, vol. 1, pp. 1–2, 2000.

答案1

biblatex或者更确切地说,Biber 在排序之前会删除阿拉伯名称前缀“al-”和其他带连字符的双字母前缀。这在 §4.5.9 中有记录微调排序在第 209 页文档biblatex. 调用相关宏\DeclareNosort,其默认值为

\DeclareNosort{
  % strip prefixes like 'al-' when sorting names
  \nosort{setnames}{\regexp{\A\p{L}{2}\p{Pd}}}
  % strip some diacritics when sorting names
  \nosort{setnames}{\regexp{[\x{2bf}\x{2018}]}}
}

您可以使用以下方式关闭此行为

\DeclareNosort{
  % strip some diacritics when sorting names
  \nosort{setnames}{\regexp{[\x{2bf}\x{2018}]}}
}

现在只有两个变音符号ʿ被忽略。

在此处输入图片描述

事实证明,3.11 版手册中的解释略显过时。此问题已在https://github.com/plk/biblatex/commit/811878bcb2f0632b7afad43562b4c8f5415cb345这里的答案已经使用了新的、正确的术语。

相关内容