
Estou na infeliz situação que devo citar conforme descrita no título.
Isso não é problema, desde que não haja duas entradas bibliográficas diferentes com o mesmo autor e o mesmo ano. Nesse caso, recebo entradas de texto como (Author 2012a)
e, (Author 2012b)
mas nas referências deve haver uma entrada anexada que deve se parecer com (cited as: 2012a)
.
Não sou bom o suficiente em redefinir coisas no biblatex para lidar com isso. Idealmente, seria necessária a seguinte solução:
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.
Atualmente este é meu exemplo mínimo de trabalho:
\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}
Atualmente isso se parece com:
Enquanto sou forçado a fazer assim:
(Na captura de tela, resolvi o problema inserindo manualmente " addendum = {(cited as: 2012a)}
)"
Espero que alguém possa me ajudar a conseguir isso da maneira condicional que descrevi.
Responder1
Renomeie de bibmacro{finentry}
. A parte 'a' está no extrayear
campo e no 2012
campo labelyear
. Em seguida, adicione uma lógica que se extrayear
for indefinido não imprime nada. Por outro lado, se estiver definido, imprima os labelyear
campos entrayear
e entre parênteses.
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}