![按姓氏“Al-”开头对 biblatex 书目进行排序](https://linux22.com/image/379354/%E6%8C%89%E5%A7%93%E6%B0%8F%E2%80%9CAl-%E2%80%9D%E5%BC%80%E5%A4%B4%E5%AF%B9%20biblatex%20%E4%B9%A6%E7%9B%AE%E8%BF%9B%E8%A1%8C%E6%8E%92%E5%BA%8F.png)
我想按姓氏对我的 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这里的答案已经使用了新的、正确的术语。