
Estoy usando biblatex
con style=authoryear
y maxcitenames=2
. Para una referencia con más de dos autores el comando \cite produce
Erkus et al. 2010
y el comando \textcite produce
Erkus et al. (2010)
Me gustaría agregar una coma entre et al.
y el año solo para el \cite
comando (pero no para el \textcite
comando), es decir,
Erkus et al., 2010
Erkus et al. (2010)
\renewcommand*{\nameyeardelim}{\addcomma\space}
Funciona solo para referencias de un solo autor (ver esta pregunta), pero no funciona con el uso abreviado de et al.
para referencias con más de dos autores. No quiero usar \DefineBibliographyStrings
para redefinir andothers
y agregar una coma después, et al.
ya que también agrega una coma a \textcite
la cita, lo cual no quiero.
Intenté lo siguiente (ver esta pregunta) pero no funcionó:
\renewcommand*{\nameyeardelim}{%
\ifnumgreater{\value{listcount}}{2}{\nameyeardelim}{\addcomma\space}%
\ifnumequal{\value{listcount}}{1}{\nameyeardelim}{\addcomma\space}%
}
Respuesta1
Puede lograr esto configurando la natbib=true
opción en \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}
Que produce:
Respuesta2
\renewcommand*{\nameyeardelim}{\addcomma\space}
debería funcionar independientemente de si cita uno o más autores. En versiones recientes de biblatex
nameyeardelim
es un delimitador sensible al contexto, lo que significa que debes usarlo \DeclareDelimFormat
para modificarlo.
\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}
Si echas un vistazo ablx-natbib.def
, verá que utiliza exactamente el mismo comando que se sugiere aquí. Por eso natbib=true
(como se sugiere enAlex'respuesta) también produce la coma deseada.