LaTeX doesn't recognize "et al." in the Bibliography
The input conventions of BibTeX are rather strict; multiple authors must be separated by the and
keyword:
author={Alpher, Ralph and Bethe, Hans and Gamow, George}
or, if you want to keep only initials,
author={Alpher, R. and Bethe, H. and Gamow, G.}
If you want only the first author and automatically add et al. in the bibliography, use the others
keyword:
author={Alpher, R. and others}
I imagine two reasons for you to ask this question:
- You only have partial information about your references → use egreg's great answer in this case.
- What you really want is how to display one author name only in your bibliography/citation. (You here thus face a X/Y problem.)
The solution below answer this second question.
I would suggest you to keep as much information as possible in your database (in the event that you change your mind later or in another document).
To show only one author name in your bibliography, you can use features of you bibliographical package. With the package biblatex
, the relevant option is maxnames=<maximal number of authors to display>
.
\documentclass{article}
\usepackage[
maxnames=1,%<---------- the key option
style=authoryear-comp,
]{biblatex}
\addbibresource{\jobname.bib}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{keyone,
author = {Single Author, A.},
year = {2001},
title = {Title},
publisher = {Publisher},
}
@book{keytwo,
author = {Firstof Threeauthors, J. and Secondof Threeauthors, E. and Thirdof Threeautors, G.},
year = {2017},
title = {A catchy title},
publisher = {Same publisher},
}
\end{filecontents}
\begin{document}
First reference: \cite{keyone}. Second one: \cite{keytwo}.
Which are these references' authors? \citeauthor{keyone} and \citeauthor{keytwo}, respectively.
\printbibliography
\end{document}
Note that you can differentiate between the number of authors listed in a citation (option maxcitenames=
), and in the bibliography (maxbibnames=
). The option maxnames=
just sets both of these options together.
If you have max[x]names
> 1, you might want to specify the fallback number of cited names if your reference contains more than max[x]names
authors. In other words, define:
If my reference has x authors or less, then cite all of them. Otherwise, cite only the y first authors, and append 'et al'.
For that, you can use the minnames=
option:
\usepackage[
maxnames=<x>,
minnames=<y>,
]{biblatex}
Obviously, one assume x >= y
. And similarly, you can define mincitenames
and minbibnames
separately.
Example with maxnames=2, minnames=2
Same example with maxnames=2, minnames=1