![在 BibLaTeX 中正确处理(排序)荷兰语/葡萄牙语顺序](https://linux22.com/image/432361/%E5%9C%A8%20BibLaTeX%20%E4%B8%AD%E6%AD%A3%E7%A1%AE%E5%A4%84%E7%90%86%EF%BC%88%E6%8E%92%E5%BA%8F%EF%BC%89%E8%8D%B7%E5%85%B0%E8%AF%AD%2F%E8%91%A1%E8%90%84%E7%89%99%E8%AF%AD%E9%A1%BA%E5%BA%8F.png)
我正在尝试使用带有助词的名称(de Souza、d'Alessandro、dos Santos 等)来设置葡萄牙语参考书目的正确顺序。
一般的想法是,每次写前缀时,前缀都应作为总名称的一部分,但为了在书目中排序,名称应在删除前缀的情况下进行排序。一般来说,之所以这样称呼,是dutch-ordering
因为很大一部分人的名字中都有助词,如果用它们来排序,会很乱。
我可以正确地写出名字,但是不能按照 Biblio 中的正确顺序书写。
这是我当前的 MWE:
\documentclass{article}
\begin{filecontents}{\jobname.bib}
@book{orm-d,
author = {d'Ormesson, Jean},
title = {Title: dumb apostrophe},
date = {2015},
}
@book{hak,
author = {al-Hakim, Tawfik},
title = {Title},
date = {2015},
}
@book{khaled,
author = {el Shadad, Khaled},
title = {Title},
date = {2015},
}
@book{deF,
author = {de Faria, Rafael},
title = {Title},
date = {2015},
}
@book{dosS,
author = {dos Santos, Raul},
title = {Title},
date = {2015},
}
@book{dlm,
author = {de la Martinière, III, Gérard},
title = {Title},
date = {2015},
}
\end{filecontents}
\usepackage{polyglossia}
\setmainlanguage{portuges}
\usepackage[
backend=biber,
style=authoryear,
useprefix=true,
]{biblatex}
\addbibresource{\jobname.bib}
\begin{document}
\section*{Text}
\cite{hak, orm-d, khaled, deF, dosS, dlm}
\printbibliography
\end{document}
正确的顺序应该是:
De Faria, Rafael (2015). Title.
al-Hakim, Tawfik (2015). Title.
De la Martinière III, Gérard (2015). Title.
d’Ormesson, Jean (2015). Title.
Dos Santos, Raul (2015). Title.
El Shadad, Khaled (2015). Title.
我见过一些针对 BibTeX 的解决方案,但没有见过针对 BibLaTeX 的解决方案。
答案1
使用我的答案中的代码参考文献和参考书目中作者姓名的前缀。
这已经解决了你例子中的几乎所有问题,除了奥梅松。BibTeX 的名称解析规则(由 Biber 模拟)将始终将其解析为单个(姓氏)单元。为了将 和 分开,d'
您Ormesson
必须将输入更改为(诚然看起来不太正确)
@book{orm-d,
author = {d' Ormesson, Jean},
title = {Title: dumb apostrophe},
date = {2015},
}
biblatex
将自动删除输出中不必要的空格\DeclarePrefChars
,参见https://github.com/plk/biblatex/issues/346。
我们总共得到
\documentclass{article}
\usepackage[
backend=biber,
style=authoryear,
useprefix=true,
]{biblatex}
\DeclareSortingNamekeyTemplate{
\keypart{
\namepart{family}
}
\keypart{
\namepart{prefix}
}
\keypart{
\namepart{given}
}
\keypart{
\namepart{suffix}
}
}
\renewbibmacro{begentry}{\midsentence}
\begin{filecontents}{\jobname.bib}
@book{orm-d,
author = {d' Ormesson, Jean},
title = {Title: dumb apostrophe},
date = {2015},
}
@book{hak,
author = {al-Hakim, Tawfik},
title = {Title},
date = {2015},
}
@book{khaled,
author = {el Shadad, Khaled},
title = {Title},
date = {2015},
}
@book{deF,
author = {de Faria, Rafael},
title = {Title},
date = {2015},
}
@book{dosS,
author = {dos Santos, Raul},
title = {Title},
date = {2015},
}
@book{dlm,
author = {de la Martinière, III, Gérard},
title = {Title},
date = {2015},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
\section*{Text}
\cite{hak, orm-d, khaled, deF, dosS, dlm}
\printbibliography
\end{document}