5

If citing several items with \citet, I want to achieve a specific separator (like "and") between the last and the second last item. For example \citet{Grieg,Greg,Gregor} should give something like ...Grieg (2002), Greg (2001) and Gregor (2003) ...

A minimal working example:

\documentclass{article}

\usepackage[natbib=true,firstinits=true,
            bibstyle=authoryear,citestyle=authoryear-comp,
            minnames=1,maxnames=2,isbn=false,url=false,eprint=false,doi=false,
            maxbibnames=20
]{biblatex}
\renewcommand*{\finalnamedelim}{\addspace\&\addspace}


\usepackage{filecontents}

\begin{filecontents}{test.bib}
@misc{A01,
  author = {Author, A. A. and Buthor, B. B. and Cuthor, C. C.},
  year = {2001},
  title = {Alpha},
}
@misc{B01,
  author = {Dodelson, D. and Edward, E.},
  year = {2011},
  title = {Beta},
}
\end{filecontents}

\addbibresource{test.bib}


\begin{document}
As shown in \citet{A01,B01}, ...

\printbibliography

\end{document}

Edit: I have seen the answear by Guido (https://tex.stackexchange.com/a/89634/30051) but it does not work for the authoryear style. Therefore, here the more specific question.

  • You can always use \citet{grieg}, \citet{greg} and \citet{gregor}... but I get your point. – Mario S. E. May 2 '13 at 12:56
  • \citet is just \textcite. One would like to write \textcites{A1}{B1}[and][]{C1}, but that doesn't work in the expected way (I don't know whether it is a bug). – Andrew Swann May 2 '13 at 13:27
2

A solution using the xpatch packages (\usepackage{xpatch})

\xpatchbibmacro{textcite}
  {\multicitedelim}
  {\ifnumequal{\value{citecount}}{\value{citetotal}}
        {\addspace\bibstring{and}\addspace}
        {\multicitedelim}}
  {}
  {}
  • This probably works for authoryear, but definitely not authoryear-comp when the last labels in the list are compressed. With biblatex 2.7 released the solution now should be to simply upgrade. – Audrey Jul 13 '13 at 19:31

Not the answer you're looking for? Browse other questions tagged or ask your own question.