Biblatex:修改 maxcitenames 以在三种情况下工作

Biblatex:修改 maxcitenames 以在三种情况下工作

经典的maxcitenames设置biblatex为类似于\usepackage[maxcitenames=2,style=authoryear]{biblatex}获取以下引用:

  • 如果只有一位作者,则需填写作者姓名
  • 如果有两位作者,则需提供两位作者姓名
  • 如果有两位以上的作者,则为两位作者姓名 + et.al

有没有办法修改maxcitenames我得到的方式

  • 如果只有一位作者,则需填写作者姓名
  • 如果有两位作者,则需提供两位作者姓名
  • 第一的如果有两位以上的作者,则为作者姓名 + et.al

这需要计算一个 bib-entry 中有多少位作者,并决定哪三种情况适用。

如果有人能给我一个起点,我很乐意自己做一些破解。处理作者列表对biblatex我来说似乎并不是一件小事。

答案1

如果你想实现:

  • 如果只有一位作者,则需填写作者姓名
  • 如果有两位作者,则需提供两位作者姓名
  • 如果有两位以上的作者,则为第一作者姓名 + et.al

然后

\usepackage[maxcitenames=2,style=authoryear]{biblatex}

已经正确了,但是如果你想实现:

  • 如果只有一位作者,则需填写作者姓名
  • 如果有两位作者,则需提供两位作者姓名
  • 如果有两位以上的作者,则为两位作者姓名 + et.al

那么你必须添加mincitenames=2

\usepackage[mincitenames=2,maxcitenames=2,style=authoryear]{biblatex}

答案2

有时您无法获得预期的结果,因为 biblatex 试图巧妙地消除标签的歧义,例如,如果您在文档中引用了两篇不同的四作者论文,则引用为“Cotton et al. 1999”和“Cotton et al. 2001”。要完全停用此行为,请使用uniquelist=false。您还可以将其设置为仅当两个出版物的年份也相同时才消除歧义:

\usepackage[style=authoryear,uniquelist=minyear]{biblatex}

答案3

如果我编译下面的例子我会得到你需要的结果:

\documentclass{article}
\usepackage[maxcitenames=2,style=authoryear]{biblatex}
\addbibresource{biblatex-examples.bib}
\begin{document}
\cite{weinberg}%one author

\cite{bertram}%two authors

\cite{companion}%three authors

\cite{cotton}%four authors

\printbibliography
\end{document}

在此处输入图片描述

相关内容