当同一作者使用不同名字发表文章时,纠正 BibLaTeX+Biber 排序

当同一作者使用不同名字发表文章时,纠正 BibLaTeX+Biber 排序

在我的参考书目中,有同一位作者使用不同名字发表的条目。Biber(自然)无法识别出作者是否相同,因此会按姓名字母顺序对条目进行排序。有没有办法告诉 Biber 这些名字相同,以便按年份排序?

在以下示例中,2000 年的条目出现在 1990 年的条目之前,因为“Richard”出现在“Richie”之前。我想要的是按年份对条目进行排序:

\documentclass{article}
\usepackage{filecontents}
\usepackage[style=authoryear,sorting=nyt]{biblatex}
\begin{filecontents}{\jobname.bib}
@book{smith1990,
    author = "Smith, Richie",
    title = "First Entry",
    year = "1990"}
@book{smith2000,
    author = "Smith, Richard",
    title = "Second Entry",
    year = "2000"}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
\nocite{smith1990,smith2000}
\printbibliography
\end{document}

我知道我可以添加key

@book{smith1990,
    key = "Smith, Richard, 1990",
@book{smith2000,
    key = "Smith, Richard, 2000",

但是,我不知道 Biber 通常如何计算key,所以我不知道lastname, givenname, year当参考书目中有其他条目时,我的格式是否能正确排序。此外,我理想情况下希望有一个解决方案,仅有的需要在smith1990条目中指定一些内容。

答案1

Alan Munn 链接的问题很相关,但我认为,只需使用 即可获得所需的排序sortname。这样做的好处是,它只会在排序时覆盖authoreditor。因此,如果您切换到不同的引用或参考书目样式,则不会有来自参考书目的硬编码排序扭曲结果。 的值只会在或 的sortname值产生影响时产生影响。authoreditor

\begin{filecontents}[overwrite]{\jobname.bib}
@book{smith1990,
    author = "Smith, Richie",
    sortname = {Smith, Richard},
    title = "First Entry",
    year = "1990"}
@book{smith2000,
    author = "Smith, Richard",
    title = "Second Entry",
    year = "2000"}
\end{filecontents}
\documentclass{article}
\usepackage[style=authoryear,sorting=nyt]{biblatex}
\addbibresource{\jobname.bib}
\begin{document}
\nocite{smith1990,smith2000}
\printbibliography
\end{document}

参考书目中 Richie 早于 Richard

相关内容