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.

1
  • I think it already works as you want. Jun 28, 2013 at 18:58

3 Answers 3

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}
2
  • mincitenames was the answer I was looking for as well.
    – mlt
    Jun 4, 2014 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, 2018 at 5: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}
2
  • 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, 2015 at 15:25
  • Thank you! After two hours trying to get it fixed your hint was a blessing!
    – Funkwecker
    Sep 23, 2021 at 9: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

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .