1

How do I have only the first author displayed in citation call-out, when using the natbib package?

There is a question similar to mine, which has never received an accepted answer: BibTeX: Chicago style citation with same first authors

Here is my preamble:

\usepackage[square,authoryear]{natbib}
\bibliographystyle{plainnat}
%...
\bibliography{references}

I use natbib, because it is the one mentioned in the wikibook on LaTeX:

https://en.wikibooks.org/wiki/LaTeX/More_Bibliographies

https://en.wikibooks.org/wiki/LaTeX/Bibliography_Management

But I feel I should maybe have used biblatex, but I can't get it to work at the moment, so I would like to stick with natbib if possible.

I tried to get biblatex to work with this preamble, but it fails, because my file references.bib contains the characters @, %, <, >, ×, ç in some of the abstracts and author lists and the dates are malformed according to biblatex and it doesn't like entries such as M3 = {...}:

\usepackage[natbib,sorting=none,defernumbers=true,uniquelist=false,
            backend=biber]{biblatex}
\addbibresource{references.bib}
\printbibliography
Mico
  • 506,678
  • How are the remaining authors, for publications with two or more authors, supposed to be "shown" -- as "et al", or not at all? Please advise. – Mico Nov 21 '17 at 10:58
  • 1
    You need to run biber to get biblatex working. https://tex.stackexchange.com/questions/154751/biblatex-with-biber-configuring-my-editor-to-avoid-undefined-citations – Ulrike Fischer Nov 21 '17 at 11:03
  • 1
    @Mico the remaining authors are to be shown as et. al. – tommy.carstensen Nov 21 '17 at 11:10

1 Answers1

2

I suggest you proceed as follows:

  • Find the file plainnat.bst in your TeX distribution. Make a copy of this file and call the copy, say, plainnatsingle.bst. (Do not directly edit an original file of the TeX distribution.)

  • Open the file plainnatsingle.bst in a text editor. The program you use to edit your tex files will do fine.

  • In the bst file, locate the function format.lab.names. (In my copy of the file, this function starts on line 1101.)

  • In this function, replace the block

      #2 >
        { pop$ " et~al." * }
        { #2 <
            'skip$
            { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
                { " et~al." * }
                { " and " * s #2 "{vv~}{ll}" format.name$ * }
              if$
            }  
          if$
        }
      if$
    

    with

      #1 >
        { pop$ " et~al." * }
        { pop$ "" * }
      if$
    

    In case you're curious what's going on: The second half of the function format.lab.names has been simplified drastically, to output "et~al." if the number of authors exceeds 1 -- and to output nothing otherwise.

  • Save the file plainnatsingle.bst either in the directory where your main tex file is located or in a directory that's searched by BibTeX. If you choose the latter option, be sure to also update the filename database of your TeX distribution suitably.

  • In your main tex file, change the instruction \bibliographystyle{plainnat} to \bibliographystyle{plainnatsingle}. Then, rerun LaTeX, BibTeX, and LaTeX twice more to fully propagate all changes.

Happy BibTeXing!

A full MWE:

enter image description here

\RequirePackage{filecontents}
\begin{filecontents}{mybib.bib}
@misc{a,
  author = "Annie Author", 
  title = "Thoughts", year = 3001 }
@misc{ab,
  author = "Annie Author and Brenda Buthor", 
  title = "Further Thoughts", year = 3002 }
@misc{abc,
  author = "Annie Author and Brenda Buthor and Carla Cuthor", 
  title = "Final Thoughts", year = 3003 }
\end{filecontents}

\documentclass{article}
\usepackage[authoryear,round]{natbib}
\bibliographystyle{plainnatsingle}

\begin{document}
\noindent
\citet{a}, \citet{ab}, \cite{abc}
\bibliography{mybib}
\end{document} 
Mico
  • 506,678