12

Classically maxcitenames in biblatex is set to something like \usepackage[maxcitenames=2,style=authoryear]{biblatex} to get the following citations:

  • One author name if there is only one author
  • Two author names if there are two authors
  • Two author names + et.al if there are more than two authors

Is there a way to modify maxcitenames in a way that I get

  • One author name if there is only one author
  • Two author names if there are two authors
  • First author name + et.al if there are more than two authors

This would require to count how many authors are in an bib-entry and decide which of the three cases is applicable.

I am happy to hack a bit myself if someone can give me at least a starting point. Handling author lists in biblatex does not seem trivial to me.

  • I think it already works as you want. – karlkoeller Jun 28 '13 at 18:58
16

If you want to achieve:

  • One author name if there is only one author
  • Two author names if there are two authors
  • First author name + et.al if there are more than two authors

then

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

is correct already, while if you want to achieve:

  • One author name if there is only one author
  • Two author names if there are two authors
  • Two author names + et.al if there are more than two authors

then you have to add mincitenames=2:

\usepackage[mincitenames=2,maxcitenames=2,style=authoryear]{biblatex}
  • mincitenames was the answer I was looking for as well. – mlt Jun 4 '14 at 19:06
  • Mine didn't work until I combined this with @Holger 's answer: \usepackage[mincitenames=2,maxcitenames=2,uniquelist=minyear,style=authoryear]{biblatex} – Alisa Sep 13 '18 at 5:52
10

Sometimes you don't get the expected result because biblatex is trying to be smart about disambiguating the labels, e.g., if you are citing two different four-author papers in your document that would be cited as "Cotton et al. 1999" and "Cotton et al. 2001". To deactivate this behavior entirely, use uniquelist=false. You can also set it so that it disambiguates only if the year of the two publications is also identical:

\usepackage[style=authoryear,uniquelist=minyear]{biblatex}
  • I now recommend biblatex-chicago, which seems to have more reasonable default settings for the authoryear citation style: \usepackage[authordate,useprefix=true,backend=biber]{biblatex-chicago} – Holger Feb 26 '15 at 15:25
2

If I compile the example below I get your required result:

\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}

enter image description here

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.