如何改变 \citet{article1,article2,...} 中引用文章的顺序?

如何改变 \citet{article1,article2,...} 中引用文章的顺序?

在我的论文的某个时候,我写了一些类似于以下 MWE 生成的内容。

\documentclass[a4paper]{scrartcl}
\usepackage[isbn=false,style=authoryear-comp,backend=biber,natbib,maxbibnames=99,maxcitenames=2,hyperref=true]{biblatex} % To get fancy bibliography as desired.
\usepackage{csquotes} % To make sure that my Bibliography loads correctly.

% REFERENCES SETTINGS

\usepackage[colorlinks=true,urlcolor=blue,linkcolor=black]{hyperref}

% BIBLIOGRAPHY SETTINGS

\addbibresource{Bib.bib}
\setlength\bibitemsep{2\itemsep}
\AtBeginBibliography{ 
\renewcommand*{\mkbibnamefamily}[1]{\textsc{#1}}
\renewcommand*{\mkbibnamegiven}[1]{\textsc{#1}}
\renewcommand*{\mkbibnameprefix}[1]{\textsc{#1}}
\renewcommand*{\mkbibnamesuffix}[1]{\textsc{#1}}
}
\DeclareNameAlias{author}{last-first}
\DeclareDelimFormat[cbx@textcite]{nameyeardelim}{\addspace}
\renewcommand*{\bibfont}{\small}

\begin{document}
Following \citet{hartmascolell,evans}, utilities... 
\printbibliography
\end{document}

将关联的 .bib 文件命名为 Bib.bib 并将其保存在与 MWE 相同的文件夹中,以便 MWE 运行。.bib 文件应该准确如下:

@article{hartmascolell,
author = "S. Hart and A. Mas-Colell",
title = "Bargaining and Value",
journal = "Econometrica",
volume = "64",
pages = "357--380",
year = "1996",
url = "https://doi.org/10.2307/2171787"
}

@article{evans,
author = "R. Evans",
title = "Coalitional Bargaining with Competition to Make Offers",
journal = "Games and Economic Behavior",
volume = "19",
pages = "211--220",
year = "1997",
url = "https://doi.org/10.1006/game.1997.0553"
}

然后,我们得到以下输出:

在此处输入图片描述

我怀疑 Evans 出现在 Hart & Mas-Colell 之前是因为顺序是按照字典顺序的。但是,对我来说,先找到 Hart & Mas-Colell 再找到 Evans 更合理,因为论文的顺序是按照时间顺序的(一篇来自 1996 年,另一篇来自 1997 年)。

因此,我的问题是:我怎样才能将作者出现的顺序从词典顺序改为时间顺序?并且:有什么理由认为字典顺序更好(又名默认顺序)?

注意:除非有理由不这样做,否则我想保持参考书目中条目的顺序不变。

注 2:有相关问题,但没有一个用 \citet{...} 来解决这个问题

答案1

您之所以看到这种行为,是因为authoryear-comp内部设置了sortcites=true。该选项会导致引用按参考书目中引用作品的方式排序。这对于您使用的紧凑/压缩样式至关重要,因为 的所有排列\cite{knuth:ct:b,sigfridsson,knuth:ct:a}都应显示为“Knuth 1984, 1986; Sigfridsson and Ryde 1998”。

如果您根本不想对引文进行任何排序,而希望手动确定排序,则可以使用 禁用排序sortcites=false。但这会严重损害 的-compauthoryear-comp。除非您手动对条目进行排序,否则您通常会得到authoryear而不是authoryear-comp

由于多引用命令默认不排序(见使用 biblatex 中的 \cites 命令对引用进行排序),你可以用它\textcites来抑制排序

\textcites{hartmascolell}{evans}

可以使用与参考书目不同的排序模板对引文进行排序,请参阅Biblatex:当参考文献按名称排序(sorting=nyt)时,如何自动按年份对引用进行排序(sortcites=ynt)

相关内容