%20statt%20Smith%20(2010a%2C%20b)%20bei%20Inline-Zitaten.png)
Ich verwende zum Schreiben das Natbib-Paket.
Smith hat beispielsweise zwei Arbeiten, die beide 2010 veröffentlicht wurden. Ich habe sie in meiner .bib-Datei als Sm1 und sm2 gekennzeichnet. Wenn ich die Arbeiten jetzt mit \citet{Sm1,Sm2} zitiere, wird Smith (2010a, b) angezeigt. Ich möchte aber, dass es Smith (2010a, 2010b) ist. Kann mir jemand helfen?
Antwort1
Ich würde einen Patch verwenden \NAT@citex
, um die Jahresabfrage zu vermeiden, sodass Sie das Jahr nicht im Voraus kennen müssen. Es funktioniert einfach in jedem Fall.
\begin{filecontents*}{\jobname.bib}
@article{sma,
author={Smith, J.},
title={A},
journal={B},
year={2014},
}
@article{smb,
author={Smith, J.},
title={C},
journal={D},
year={2014},
}
\end{filecontents*}
\documentclass{article}
\usepackage[authoryear,round]{natbib}
\usepackage{xpatch}
% patch \NAT@citex to always use the year
\makeatletter
\xpatchcmd{\NAT@citex}
{\ifx\NAT@last@yr\NAT@year}
{\iffalse}
{}{}
\xpatchcmd{\NAT@citex}
{\ifx\NAT@last@yr\NAT@year}
{\iffalse}
{}{}
\makeatother
\begin{document}
\citep{sma,smb}
\citet{sma,smb}
\bibliographystyle{plainnat}
\bibliography{\jobname}
\end{document}
Wie üblich filecontents*
dient die Umgebung nur dazu, das Beispiel in sich geschlossen zu machen.
Erklärung. Der \NAT@citex
Befehl ist der Hauptteil des Prozesses; an zwei Stellen
\ifx\NAT@last@yr\NAT@year
<something if the current citation has the same year as the preceding one>
\else
<otherwise>
\fi
Mit dem Patch ändern wir die Bedingung (erste Zeile) in \iffalse
, sodass dem „wahren“ Zweig nie gefolgt wird.
Antwort2
Angenommen, die Schlüssel der beiden Einträge sind sm1
und sm2
, können Sie Ihr Ziel erreichen, indem Sie schreiben
\citeauthor{sm1} (\citeyear{sm1}, \citeyear{sm2})
Anmerkung: Das natbib
Paket bietet die Optionen sort
, compress
, und sort&compress
, aber diese scheinen hauptsächlich auf numerische Zitationshinweise ausgerichtet zu sein. Für Zitationshinweise im Autor-Jahr-Stil scheint das Paket keine Optionen wie nosort
oder bereitzustellen nocompress
– daher die Notwendigkeit des oben angegebenen, umständlich aussehenden Codes.