![引文标注中的自定义排序顺序](https://linux22.com/image/352261/%E5%BC%95%E6%96%87%E6%A0%87%E6%B3%A8%E4%B8%AD%E7%9A%84%E8%87%AA%E5%AE%9A%E4%B9%89%E6%8E%92%E5%BA%8F%E9%A1%BA%E5%BA%8F.png)
我使用natbib
以下选项:
\usepackage[round,compress]{natbib}
使用该\citep
命令,我得到了如下的引用标注:
(作者等 2013 年,作者及其他 2011 年,作者等 2012 年)
我希望将列表压缩并按年份升序排序,至少对于相同的作者列表(或缩写):
(作者及其他 2011 年,作者等 2012 年、2013 年)
如果我使用 natbibsort&compress
代替sort
,那么我会在另一个地方得到
(作者等人 2015a、2017、2015b)
我希望的是,年份再次按升序排列:
(作者等人 2015a、b、2017)
我认为问题在于排序是根据参考文献的顺序进行的,其中所有作者姓名都很重要,包括“et al.”部分中隐藏的作者姓名。
在我看来,由于作者年份引用和缩写作者列表,这毫无意义,并且违反了许多期刊规则。
有没有什么办法可以解决这个问题?
答案1
这是biblatex
的authoryear-comp
(或者authoryear-icomp
) 样式。该样式的排序方案为nyt
,即name > year > title
。引文标注也已排序。
biblatex
尽力避免将不同的作者列表合并为相同的缩写形式。如果这是必需的,并且强制使用uniquelist=false
,那么您将得到您所期望的结果。
\documentclass[british]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[backend=biber,style=authoryear-icomp,maxcitenames=1,uniquelist=false]{biblatex}
\addbibresource{biblatex-examples.bib}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@misc{alpha,
author = {Author, A. and Buthor, B. and Cuthor, C.},
year = {2001},
title = {Alpha},
}
@misc{beta,
author = {Author, A. and Cuthor, C. and Buthor, B.},
year = {2002},
title = {Beta},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
\cite{sigfridsson,alpha,worman,beta}
\printbibliography
\end{document}
给出
作者等人2001、2002; Sigfridsson 等人1998;沃曼 2002
在引用中。
使用uniquename=true
(默认),您可以获得
作者,Buthor 等人2001;作者,Cuthor 等人2002; Sigfridsson 等人1998;沃曼 2002
有关如何切换biblatex
查看的帮助要切换到 biblatex 该怎么做?,biblatex 简介(适合初学者),bibtex 与 biber 以及 biblatex 与 natbib 的比较。由于建议使用新的 Biber 后端而不是 BibTeX biblatex
,请查看Biblatex 与 Biber:配置我的编辑器以避免未定义的引用。