Adicione vírgula entre autor e ano com et al

Adicione vírgula entre autor e ano com et al

Estou usando biblatexcom style=authoryeare maxcitenames=2. Para uma referência com mais de dois autores o comando \cite produz

Erkus et al. 2010

e o comando \textcite produz

Erkus et al. (2010)

Gostaria de adicionar uma vírgula entre et al.o ano apenas para o \citecomando (mas não para o \textcitecomando), ou seja,

Erkus et al., 2010

Erkus et al. (2010)

\renewcommand*{\nameyeardelim}{\addcomma\space}

Funciona apenas para referências de um único autor (veja esta pergunta), mas não funciona com o uso abreviado de et al.para referências com mais de dois autores. Não quero usar \DefineBibliographyStringspara redefinir andotherse adicionar vírgula depois, et al.pois também adiciona vírgula à \textcitecitação, o que não quero.

Eu tentei o seguinte (veja esta pergunta) mas não funcionou:

\renewcommand*{\nameyeardelim}{%
     \ifnumgreater{\value{listcount}}{2}{\nameyeardelim}{\addcomma\space}%
     \ifnumequal{\value{listcount}}{1}{\nameyeardelim}{\addcomma\space}%
}

Responder1

Você pode conseguir isso definindo a natbib=trueopção no \usepackagefor biblatex.

MWE:

\begin{filecontents*}{database.bib}
@inproceedings{erkus_2010,
  title = {Title},
  booktitle = {Book Title},
  date = {2010},
  author = {Erkus, Firstname and Lastname, Firstname and Lastname Anotherfirstname}
}
\end{filecontents*}

\documentclass[]{article}

\usepackage{filecontents}

\usepackage[style=authoryear, maxcitenames=2, backend=biber, natbib=true] {biblatex}

\addbibresource{database.bib}

\begin{document}

Cite: \cite{erkus_2010}

Textcite: \textcite{erkus_2010}

\end{document}

O que produz:

Cite com vírgula entre 'et al.' e ano, e textcite sem a vírgula.

Responder2

\renewcommand*{\nameyeardelim}{\addcomma\space}deve funcionar independentemente de você citar um ou mais autores. Nas versões recentes do biblatex nameyeardelimé um delimitador sensível ao contexto, o que significa que você deve usá- \DeclareDelimFormatlo para modificá-lo

\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}

\usepackage[style=authoryear, maxcitenames=2, backend=biber]{biblatex}

\DeclareDelimFormat{nameyeardelim}{\addcomma\space}

\addbibresource{biblatex-examples.bib}

\begin{document}
\cite{sigfridsson,aksin,herrmann,nussbaum}

\textcite{sigfridsson,aksin,herrmann,nussbaum}

\printbibliography
\end{document}

Sigfridsson e Ryde, 1998; Aksın et al., 2006; Herrmann et al., 2006; Nussbaum, 1978//Sigfridsson e Ryde (1998), Aksın et al. (2006), Herrmann et al. (2006) e Nussbaum (1978)

Se você der uma olhadablx-natbib.def, você verá que ele usa exatamente o mesmo comando sugerido aqui. É por isso que natbib=true(como sugerido emAlex'responder) também produz a vírgula desejada.

informação relacionada