[Tex/LaTex] Natbib agsm – comma and ampersand

ampersandharvard-stylenatbibpunctuation

I am writing my dissertation and I must use a Harvard style bibliography.

I am using natbib and agsm. The problem I have is the following: if I want to cite a book that has only 2 authors either I do not get an & between the authors or I do not get a comma between the authors and the date.

I get (author1 and author2, year) if I use

\usepackage{natbib}
\bibliographystyle{agsm}
\citestyle{aysep{char}}

or (author1 & author2 year) if I use

\usepackage[style=authoryear]{natbib}
\bibliographystyle{agsm}

What do I have to do to get (author1 & author2, year)? What am I doing wrong?

Best Answer

Not sure where the problem is:

\begin{filecontents*}{\jobname.bib}
@book{test,
  author={First, A. and Second, B.},
  title={Title},
  publisher={Publisher},
  year=2017,
}
\end{filecontents*}

\documentclass{article}
\usepackage[authoryear]{natbib}

\citestyle{aysep={,}}

\begin{document}

\citet{test}

\citep{test}

\bibliographystyle{agsm}
\bibliography{\jobname}

\end{document}

I used the filecontents* environment just to make the example self-contained. Use your own file, instead.

enter image description here

If you want & between names (I hope not or that's an imposition by the publisher), do as follows

\begin{filecontents*}{\jobname.bib}
@book{test,
  author={First, A. and Second, B.},
  title={Title},
  publisher={Publisher},
  year=2017,
}
\end{filecontents*}

\documentclass{article}
\usepackage[authoryear]{natbib}

\citestyle{aysep={,}}
\AtBeginDocument{\renewcommand{\harvardand}{\&}}

\begin{document}

\citet{test}

\citep{test}

\bibliographystyle{agsm}
\bibliography{\jobname}

\end{document}

enter image description here

Related Question