
Estou usando biblatex
com style=authoryear
e 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 \cite
comando (mas não para o \textcite
comando), 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 \DefineBibliographyStrings
para redefinir andothers
e adicionar vírgula depois, et al.
pois também adiciona vírgula à \textcite
citaçã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=true
opção no \usepackage
for 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:
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á- \DeclareDelimFormat
lo 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}
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.