在 Biblatex 书目中对带前缀的名称进行排序

在 Biblatex 书目中对带前缀的名称进行排序

这个问题似乎出现过多次,但我从来没有能够从其他问题中得到想要的答案。

我正在使用biblatex+ biber。我想组织诸如van der Hofstadby H(not v) 之类的名称。看来我可以通过简单地添加tex.options: useprefix = false书目数据。我想我也可以通过将useprefix = false作为可选参数添加到 来实现这\usepackage[...]{biblatex}一点。我的理解是后者会使其成为每个条目的规则,而前者只会将其应用于一个条目。

我非常乐意手动决定该表单的每个条目。 我没有很多这样的文件,所以我更愿意只向文件中添加一些内容.bib(我使用Zotero管理器,所以这很容易),以便以这种方式执行。其他问题/答案/评论指出,拥有单一规则非常复杂(比较vanJnr)。所以我觉得在这些情况下,手动决定是最好的。

问题来了。我有另一个名字,El-Baz,我无论如何都无法用E而不是来组织它B。我添加/删除了选项useprefix,将其设置为truefalse。我所做的一切都无法阻止它在 下排序B。我希望它位于E。[*旁注:如果一个应该订购这样的以色列名字B,不E,那么请通知我!]


我真的不知道如何使用书目数据进行 MWE。这是我能做的最好的事情。

假设我们有名字{Charles, El-Baz, van der Hofstad, Smith}。我希望它们按此顺序出现。特别是,Charles < El-Bazvan der Hofstad < Smith

再次强调,这不是(事实上也不应该)一个复杂的自动化系统。添加一些样式的东西tex.options: useprefix = false是理想的。

答案1

您需要的是sortname选项。请注意,您可以将它与选项结合使用useprefix。使用此选项,您基本上可以将条目放置在您喜欢的任何位置(即使在荒谬的位置,如下面的示例)。

\documentclass{article}
\usepackage[style=authoryear]{biblatex}
\addbibresource{foo.bib}
\addbibresource{biblatex-examples.bib}

\begin{filecontents}[overwrite]{foo.bib}
@book{charles,
    author = {El-Baz Charles},
    sortname = {augustinea},
    title = {Lorem ipsum dolor sit amet},
    year= {2020}}   

@book{hofstad,
    author = {Smith van der Hofstad},
    sortname ={wildea},
    title = {Lorem ipsum dolor sit amet},
    year= {2020}}   

\end{filecontents}


\begin{document}

\textcite{charles} is ordered after \textcite{augustine} thanks to the \texttt{sortname=augustinea} option

\textcite{hofstad} is ordered after \textcite{wilde} thanks to the \texttt{sortname=wildea} option

\printbibliography
    
\end{document}

相关内容