17

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.

Stefan Pinnow
  • 29,535
Martin H
  • 18,164

3 Answers3

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}
karlkoeller
  • 124,410
  • mincitenames was the answer I was looking for as well. – mlt Jun 04 '14 at 19:06
  • 1
    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 05:52
13

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}
Holger
  • 486
  • 3
  • 11
  • 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
  • Thank you! After two hours trying to get it fixed your hint was a blessing! – Funkwecker Sep 23 '21 at 09:57
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

Marco Daniel
  • 95,681