
Ich befinde mich in der misslichen Lage, die im Titel beschriebenen Ausführungen zitieren zu müssen.
Das ist kein Problem, solange es nicht zwei verschiedene Bibliographieeinträge mit demselben Autor und demselben Jahr gibt. In diesem Fall erhalte ich im Text Einträge wie (Author 2012a)
und, (Author 2012b)
aber in den Referenzen sollte ein Eintrag angehängt werden, der wie aussieht (cited as: 2012a)
.
Ich bin nicht gut genug darin, Dinge in Biblatex neu zu definieren, um damit umzugehen. Idealerweise wäre die folgende Lösung erforderlich:
If there are multiple citations of the same author and year, then append "(cited as: <year><year_label>)", if not, do whatever you would normally do.
Derzeit ist dies mein minimales Arbeitsbeispiel:
\documentclass{article}
\usepackage[maxcitenames=3,style=authortitle,citestyle=authoryear,dashed=false,backend=biber]{biblatex}
\DeclareNameAlias{sortname}{last-first}
\newbibmacro*{publisher+location+date}{%
\printlist{publisher}%
\iflistundef{location}
{\setunit*{\addcomma\space}}
{\setunit*{\addcolon\space}}%
\printlist{location}%
\setunit*{\space}%
\usebibmacro{date}%
\newunit
}
\begin{filecontents}{\jobname.bib}
@article{JoeDoe2012,
Author = {Joe Doe},
Title = {My article's title},
Journal = {My journal's title},
Editor = {Ben Editor},
URL = {http://webpage.com},
Year = {2012},
}
@article{JoeDoe20121,
Author = {Joe Doe},
Title = {Same author same year},
Journal = {My journal's title},
Editor = {Ben Editor},
URL = {http://webpage.com},
Year = {2012},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
We cite \autocite{JoeDoe2012} and \autocite{JoeDoe20121}
\printbibliography
\end{document}
Aktuell sieht das so aus:
Während ich gezwungen bin, es so zu machen:
(Im Screenshot habe ich das Problem umgangen, indem ich manuell " addendum = {(cited as: 2012a)}
)" eingefügt habe.
Ich hoffe, dass mir jemand helfen kann, dies auf die beschriebene bedingte Weise zu erreichen.
Antwort1
Benennen Sie de um bibmacro{finentry}
. Der Teil „a“ ist in extrayear
das Feld und das 2012
in das labelyear
Feld. Fügen Sie dann eine Logik hinzu, die, wenn extrayear
sie nicht definiert ist, nichts ausgibt. Wenn sie hingegen definiert ist, geben Sie die Felder labelyear
und entrayear
zwischen den Klammern aus.
MWE:
\documentclass{article}
\usepackage[maxcitenames=3,style=authortitle,citestyle=authoryear,dashed=false,backend=biber]{biblatex}
\DeclareNameAlias{sortname}{last-first}
\newbibmacro*{publisher+location+date}{%
\printlist{publisher}%
\iflistundef{location}
{\setunit*{\addcomma\space}}
{\setunit*{\addcolon\space}}%
\printlist{location}%
\setunit*{\space}%
\usebibmacro{date}%
\newunit
}
\renewbibmacro{finentry}{%
\usebibmacro{citeas}%
\finentry}
\newbibmacro*{citeas}{%
\iffieldundef{extrayear}
{}
{\setunit{\adddot\space}
\newunit\newblock
\printtext[citeas]{%
\printfield{labelyear}%
\printfield{extrayear}}}}
\DeclareFieldFormat{citeas}{\mkbibparens{Cite as:\space#1}}
\begin{filecontents}{\jobname.bib}
@article{JoeDoe2012,
Author = {Joe Doe},
Title = {My article's title},
Journal = {My journal's title},
Editor = {Ben Editor},
URL = {http://webpage.com},
Year = {2012},
}
@article{JoeDoe20121,
Author = {Joe Doe},
Title = {Same author same year},
Journal = {My journal's title},
Editor = {Ben Editor},
URL = {http://webpage.com},
Year = {2012},
}
@article{Moe2013,
Author = {Moe Doe},
Title = {Other author},
Journal = {My journal's title},
Editor = {Ben Editor},
URL = {http://webpage.com},
Year = {2010},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
We cite \parencite{JoeDoe2012} and \parencite{JoeDoe20121}.
Other author \parencite{Moe2013}
\printbibliography
\end{document}