我正在使用 biblatex,其设置如下:
backend=biber
style=authoryear
citestyle=authoryear-comp
sorting=nyt
这按预期工作,但我发现sorting=nyt
不是最佳选择。我宁愿按名称、年份排序,然后按文本中的出现顺序排序。
为什么?论文标题与读者关系不大,但当一年中有多个引用时,它仍然决定了消歧义标记“a”、“b”等的顺序。例如,想象一下 John Doe 的以下两篇出版物,均发表于 2017 年,标题为
- “x 的新证据”
- “x 的另一个证据”
现在,即使我首先引用第一篇论文(新兴证据),最后引用第二篇论文(另一项证据),第一篇论文将被引用为 Doe (2017b),第二篇论文将被引用为 Doe (2017a)。在我看来,这很愚蠢。
让 biblatex 按照名称、年份、出现顺序对引用进行排序的最佳方法是什么?
答案1
在文件中biblatex.def
查找不同排序的定义。基于排序sorting=none
和的组合,sorting=nyt
我得出了以下内容,我称之为sorting=nyc
(c
for \citeorder
)。
\DeclareSortingScheme{nyc}{
\sort{
\field{presort}
}
\sort[final]{
\field{sortkey}
}
\sort{
\field{sortname}
\field{author}
\field{editor}
\field{translator}
\field{sorttitle}
\field{title}
}
\sort{
\field{sortyear}
\field{year}
}
\sort{\citeorder}
}
只需将此代码片段放在\usepackage[sorting=nyc,...]{biblatex}
命令后面即可。不要忘记sorting=nyc
在 biblatex 选项中指定。
编辑: presort
并sortkey
包含在开头,如@moewe 在下面两条评论中所建议和解释的那样。
编辑2:修正了代码中的错误,以便真正给出顺序nyc
。感谢@moewe 提醒我这个错误。