[Tex/LaTex] Biblatex: Comma after first author with two authors

babelbiblatexpunctuation

In my bibliography, I want a comma after the first author when there are only two authors (i.e. I want a comma before the last (=first) author).
Putting a comma after the first author when there are only two has been discussed before: Comma after first author name in authoryear biblatex style with two authors or also Biblatex — how to add comma before and between two names

While the suggested solustions wouldn't totally solve my problem (because I do not want that comma when there have been more than two authors), the solutions do not work for me anyway – it seems to me that this is because I'm using ngerman-babel. I never get a comma before the "und".

Can anybody help?

MWE:

\documentclass{article}
\usepackage[style=authoryear, citestyle=authoryear-comp]{biblatex}
\usepackage[ngerman]{babel} 
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@BOOK{lennon1971,
   AUTHOR = "John Lennon and Second Author",
   TITLE = "My really long book on my life",
   YEAR = "1971",
   LOCATION = "Liverpool",
   PUBLISHER = "Penny Lane Press"}}
@BOOK{mccartney1979,
   AUTHOR = "Paul McCartney and Second Author and Third Author",
   TITLE = "Penny Lane is still in my ears",
   YEAR = "1979",
   LOCATION = "New York",
   PUBLISHER = "Peter Alden"} 
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
\nocite{*}
\printbibliography
\end{document}

Best Answer

You can redefine \finalnamedelim by using the internal counter listtotal:

\renewcommand*{\finalnamedelim}{%
  \ifnumgreater{\value{liststop}}{2}{\finalandcomma}{}%
  \ifnumequal{\value{listtotal}}{2}{\addcomma\space}{\addspace\bibstring{and}\space}%
  }
Related Question