
Ich verwende biblatex
mit style=authoryear
und maxcitenames=2
. Für eine Referenz mit mehr als zwei Autoren erzeugt der \cite-Befehl
Erkus et al. 2010
und \textcite Befehl erzeugt
Erkus et al. (2010)
Ich möchte et al.
nur für den \cite
Befehl (aber nicht für den \textcite
Befehl) ein Komma zwischen und dem Jahr hinzufügen, d. h.
Erkus et al., 2010
Erkus et al. (2010)
\renewcommand*{\nameyeardelim}{\addcomma\space}
Funktioniert nur für Einzelautorenverweise (siehe diese Frage), funktioniert aber nicht mit der Kurzform von et al.
für Referenzen mit mehr als zwei Autoren. Ich möchte to nicht \DefineBibliographyStrings
neu definieren andothers
und danach ein Komma hinzufügen, et al.
da es auch dem Zitat ein Komma hinzufügt \textcite
, was ich nicht möchte.
Ich habe Folgendes versucht (siehe diese Frage), hat aber nicht funktioniert:
\renewcommand*{\nameyeardelim}{%
\ifnumgreater{\value{listcount}}{2}{\nameyeardelim}{\addcomma\space}%
\ifnumequal{\value{listcount}}{1}{\nameyeardelim}{\addcomma\space}%
}
Antwort1
Dies erreichen Sie durch Setzen der natbib=true
Option im \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}
Das Ergebnis:
Antwort2
\renewcommand*{\nameyeardelim}{\addcomma\space}
sollte für funktionieren, unabhängig davon, ob Sie einen oder mehrere Autoren zitieren. In neueren Versionen von biblatex
nameyeardelim
ist ein kontextsensitives Trennzeichen, was bedeutet, dass Sie \DeclareDelimFormat
es mit ändern sollten
\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}
Wenn Sie einen Blick aufblx-natbib.def
, werden Sie sehen, dass es genau den gleichen Befehl verwendet, wie hier vorgeschlagen. Deshalb natbib=true
(wie in vorgeschlagen)Alex'Antwort) ergibt ebenfalls das gewünschte Komma.