@MISC{john_big_1991,
author = {John, Oliver P. and Donahue, E. M. and Kentle, R. L.},
title = {The Big Five Inventory--Versions 4a and 54},
date = {1991},
langid = {american},
publisher = {Berkeley, {CA:} University of California, Berkeley, Institute of
Personality and Social Research}
}
@INCOLLECTION{john_paradigm_2008,
author = {John, Oliver P. and Naumann, Laura P. and Soto, Christopher J.},
editor = {John, Oliver P. and Robins, Richard W. and Pervin, Lawrence A.},
title = {Paradigm Shift to the Integrative Big Five Trait Taxonomy: History,
Measurement, and Conceptual Issues},
booktitle = {Handbook of personality: theory and research},
date = {2008},
edition = {3},
publisher = {Guilford Press},
location = {New York},
isbn = {9781593858360},
pages = {114-158},
langid = {american}
}
Essas duas entradas do BibLaTeX citadas entre parênteses com...
\parencite{john_big_1991, john_paradigm_2008}
...leva à seguinte saída de citação:
(John, Donahue e Kentle, 1991, 2008)
Como os coautores claramente não são os mesmos, embora o primeiro autor seja, acho que isso não deveria acontecer.
Minhas configurações do Babel e do BibLaTeX são as seguintes:
\usepackage[american,ngerman]{babel}
\usepackage[
style=apa,
sortcites=true,
sorting=nyt,
backend=biber,
autolang=other
]{biblatex}
\DeclareLanguageMapping{ngerman}{ngerman-apa} % for language switching
\DeclareLanguageMapping{american}{american-apa} % for language switching
Também suprimo alguns campos como url e redefino algumas sequências de bibliografia, mas presumo que essa não deva ser a raiz do problema relatado.
Além disso, se eu inverter a citação ...
\parencite{john_paradigm_2008, john_big_1991}
... e desativar a classificação, minha saída será:
(John, Naumann & Soto, 2008, 1991)
Existe alguma configuração do BibLaTeX que perdi que resolva esse problema ou esse é o comportamento esperado?
EDITAR:Eu esperaria que a primeira citação múltipla fosse assim:
(John, Donahue & Kentle, 1991; John, Naumann & Soto, 2008)
Eu realmente não tinha ideia de como deveriam ser as possíveis citações múltiplas subsequentes com as mesmas referências. O seguinte pareceria pelo menos estranho, conforme afirmado por moewe em sua resposta abaixo:
(John e outros, 1991; John e outros, 2008)
Responder1
Conforme explicado em meus comentários acima, isso tem a ver com a maneira biblatex-apa
como lidar com as citações subsequentes.
No estilo APA, a primeira citação deve conter uma lista completa de autores, enquanto as citações subsequentes têm apenas um rótulo truncado muito curto, geralmente do primeiro autor mais "et al.". Isto é implementado num formato apa.cbx
muito especial labelname
, que labelname
no entanto não é impresso na primeira ocorrência. Esse comportamento faz com que o nome exibido e o namehash
(que é baseado em labelname
) diverjam em determinadas situações.
Uma solução é alterar todos os namehash
itens apa.cbx
para fullhash
assim.
\makeatletter
\def\cbx@apa@ifnamesaved{%
\xifinlist{\thefield{fullhash}}{\cbx@apa@names}
{\@firstoftwo}
{\@secondoftwo}}
\newbibmacro*{cite:author}{%
\iffieldequals{fullhash}{\cbx@lasthash}
% Multiple cites in one command
{\setunit{\compcitedelim}%
\usebibmacro{cite:plabelyear+extrayear}}%
% Single cite
{\ifthenelse{\ifnameundef{labelname}\OR\iffieldequalstr{entrytype}{patent}}
% No author/editor
{\usebibmacro{cite:noname}%
\savefield{fullhash}{\cbx@lasthash}}
% Normal cite
{\ifnameundef{shortauthor}
{\printnames[labelname][-\value{listtotal}]{labelname}}%
{\cbx@apa@ifnamesaved
{\printnames{shortauthor}}
{\printnames[labelname][-\value{listtotal}]{author}\addspace\printnames[sabrackets]{shortauthor}}}%
\savefield{fullhash}{\cbx@lasthash}}}%
\setunit{\multicitedelim}}
\newbibmacro*{cite}{%
\iffieldequals{fullhash}{\cbx@lasthash}
% Multiple cites in one command
{\setunit{\compcitedelim}%
\usebibmacro{cite:plabelyear+extrayear}}%
% Single cite
{\ifthenelse{\ifnameundef{labelname}\OR\iffieldequalstr{entrytype}{patent}}
% No author/editor
{\usebibmacro{cite:noname}%
\setunit{\nameyeardelim}%
\usebibmacro{cite:plabelyear+extrayear}%
\savefield{fullhash}{\cbx@lasthash}}
% Normal cite
{\ifnameundef{shortauthor}
{\printnames[labelname][-\value{listtotal}]{labelname}}%
{\cbx@apa@ifnamesaved
{\printnames{shortauthor}}
{\printnames[labelname][-\value{listtotal}]{author}\addspace\printnames[sabrackets]{shortauthor}}}%
\setunit{\nameyeardelim}%
\usebibmacro{cite:plabelyear+extrayear}%
\savefield{fullhash}{\cbx@lasthash}}}%
\setunit{\multicitedelim}}
\newbibmacro*{textcite}{%
\iffieldequals{fullhash}{\cbx@lasthash}
% Compact cite - more than one thing for same author
{\setunit{\compcitedelim}%
\usebibmacro{cite:plabelyear+extrayear}}
% New cite
{%
\ifbool{cbx:parens}
{\bibcloseparen\global\boolfalse{cbx:parens}}
{}%
\setunit{\compcitedelim}%
\ifthenelse{\ifnameundef{labelname}\OR\iffieldequalstr{entrytype}{patent}}
% No author/editor or patent
{\iffieldundef{shorthand}%
% Cite using title
{\usebibmacro{cite:noname}%
\setunit{\ifbool{cbx:np}%
{\nameyeardelim}%
{\global\booltrue{cbx:parens}\addspace\bibopenparen}}%
\usebibmacro{cite:plabelyear+extrayear}}
% Cite using shorthand
{\usebibmacro{cite:shorthand}}}
% Normal cite with author/editor
% Normal full cite
{\ifnameundef{shortauthor}%
% Normal full cite
{\printnames[labelname][-\value{listtotal}]{labelname}}
% Cite using short author
{\cbx@apa@ifnamesaved
{\printnames{shortauthor}}
{\printnames[labelname][-\value{listtotal}]{author}}}%
% Year
\setunit{\ifbool{cbx:np}
{\nameyeardelim}
{\global\booltrue{cbx:parens}\addspace\bibopenparen}}%
% Put the shortauthor inside the year brackets if necessary
\ifnameundef{shortauthor}
{}
{\cbx@apa@ifnamesaved
{}
{\printnames{shortauthor}\setunit{\nameyeardelim}}}%
% Actual year printing
\usebibmacro{cite:plabelyear+extrayear}%
% Save name hash for checks later
\savefield{fullhash}{\cbx@lasthash}}}}
\newbibmacro*{citeyear}{%
\iffieldundef{labelyear}
{\usebibmacro{cite:init}}
{\iffieldequals{fullhash}{\cbx@lasthash}
{\setunit{\compcitedelim}%
\usebibmacro{cite:plabelyear+extrayear}}
{\usebibmacro{cite:plabelyear+extrayear}%
\savefield{fullhash}{\cbx@lasthash}}}%
\setunit{\multicitedelim}}
\newbibmacro*{cite:post}{%
\xifinlist{\thefield{fullhash}}{\cbx@apa@names}
{}
{\listxadd{\cbx@apa@names}{\thefield{fullhash}}}}
\makeatother
O MWE
\documentclass{scrartcl}
\usepackage{csquotes}
\usepackage[ngerman]{babel}
\usepackage[style=apa, backend=biber]{biblatex}
\DeclareLanguageMapping{ngerman}{ngerman-apa} % for language switching
\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@MISC{john_big_1991,
author = {John, Oliver P. and Donahue, E. M. and Kentle, R. L.},
title = {The Big Five Inventory--Versions 4a and 54},
date = {1991},
langid = {american},
publisher = {Berkeley, {CA:} University of California, Berkeley, Institute of
Personality and Social Research}
}
@MISC{john_big_1992,
author = {John, Oliver P. and Donahue, E. M. and Kentle, R. L.},
title = {The Big Five Inventory--Versions 4b and 5},
date = {1992},
langid = {american},
publisher = {Berkeley, {CA:} University of California, Berkeley, Institute of
Personality and Social Research}
}
@INCOLLECTION{john_paradigm_2008,
author = {John, Oliver P. and Naumann, Laura P. and Soto, Christopher J.},
editor = {John, Oliver P. and Robins, Richard W. and Pervin, Lawrence A.},
title = {Paradigm Shift to the Integrative Big Five Trait Taxonomy: History,
Measurement, and Conceptual Issues},
booktitle = {Handbook of personality: theory and research},
date = {2008},
edition = {3},
publisher = {Guilford Press},
location = {New York},
isbn = {9781593858360},
pages = {114-158},
langid = {american}
}
\end{filecontents*}
\bibliography{\jobname.bib}
\makeatletter
\def\cbx@apa@ifnamesaved{%
\xifinlist{\thefield{fullhash}}{\cbx@apa@names}
{\@firstoftwo}
{\@secondoftwo}}
\newbibmacro*{cite:author}{%
\iffieldequals{fullhash}{\cbx@lasthash}
% Multiple cites in one command
{\setunit{\compcitedelim}%
\usebibmacro{cite:plabelyear+extrayear}}%
% Single cite
{\ifthenelse{\ifnameundef{labelname}\OR\iffieldequalstr{entrytype}{patent}}
% No author/editor
{\usebibmacro{cite:noname}%
\savefield{fullhash}{\cbx@lasthash}}
% Normal cite
{\ifnameundef{shortauthor}
{\printnames[labelname][-\value{listtotal}]{labelname}}%
{\cbx@apa@ifnamesaved
{\printnames{shortauthor}}
{\printnames[labelname][-\value{listtotal}]{author}\addspace\printnames[sabrackets]{shortauthor}}}%
\savefield{fullhash}{\cbx@lasthash}}}%
\setunit{\multicitedelim}}
\newbibmacro*{cite}{%
\iffieldequals{fullhash}{\cbx@lasthash}
% Multiple cites in one command
{\setunit{\compcitedelim}%
\usebibmacro{cite:plabelyear+extrayear}}%
% Single cite
{\ifthenelse{\ifnameundef{labelname}\OR\iffieldequalstr{entrytype}{patent}}
% No author/editor
{\usebibmacro{cite:noname}%
\setunit{\nameyeardelim}%
\usebibmacro{cite:plabelyear+extrayear}%
\savefield{fullhash}{\cbx@lasthash}}
% Normal cite
{\ifnameundef{shortauthor}
{\printnames[labelname][-\value{listtotal}]{labelname}}%
{\cbx@apa@ifnamesaved
{\printnames{shortauthor}}
{\printnames[labelname][-\value{listtotal}]{author}\addspace\printnames[sabrackets]{shortauthor}}}%
\setunit{\nameyeardelim}%
\usebibmacro{cite:plabelyear+extrayear}%
\savefield{fullhash}{\cbx@lasthash}}}%
\setunit{\multicitedelim}}
\newbibmacro*{textcite}{%
\iffieldequals{fullhash}{\cbx@lasthash}
% Compact cite - more than one thing for same author
{\setunit{\compcitedelim}%
\usebibmacro{cite:plabelyear+extrayear}}
% New cite
{%
\ifbool{cbx:parens}
{\bibcloseparen\global\boolfalse{cbx:parens}}
{}%
\setunit{\compcitedelim}%
\ifthenelse{\ifnameundef{labelname}\OR\iffieldequalstr{entrytype}{patent}}
% No author/editor or patent
{\iffieldundef{shorthand}%
% Cite using title
{\usebibmacro{cite:noname}%
\setunit{\ifbool{cbx:np}%
{\nameyeardelim}%
{\global\booltrue{cbx:parens}\addspace\bibopenparen}}%
\usebibmacro{cite:plabelyear+extrayear}}
% Cite using shorthand
{\usebibmacro{cite:shorthand}}}
% Normal cite with author/editor
% Normal full cite
{\ifnameundef{shortauthor}%
% Normal full cite
{\printnames[labelname][-\value{listtotal}]{labelname}}
% Cite using short author
{\cbx@apa@ifnamesaved
{\printnames{shortauthor}}
{\printnames[labelname][-\value{listtotal}]{author}}}%
% Year
\setunit{\ifbool{cbx:np}
{\nameyeardelim}
{\global\booltrue{cbx:parens}\addspace\bibopenparen}}%
% Put the shortauthor inside the year brackets if necessary
\ifnameundef{shortauthor}
{}
{\cbx@apa@ifnamesaved
{}
{\printnames{shortauthor}\setunit{\nameyeardelim}}}%
% Actual year printing
\usebibmacro{cite:plabelyear+extrayear}%
% Save name hash for checks later
\savefield{fullhash}{\cbx@lasthash}}}}
\newbibmacro*{citeyear}{%
\iffieldundef{labelyear}
{\usebibmacro{cite:init}}
{\iffieldequals{fullhash}{\cbx@lasthash}
{\setunit{\compcitedelim}%
\usebibmacro{cite:plabelyear+extrayear}}
{\usebibmacro{cite:plabelyear+extrayear}%
\savefield{fullhash}{\cbx@lasthash}}}%
\setunit{\multicitedelim}}
\newbibmacro*{cite:post}{%
\xifinlist{\thefield{fullhash}}{\cbx@apa@names}
{}
{\listxadd{\cbx@apa@names}{\thefield{fullhash}}}}
\makeatother
\begin{document}
\parencite{john_big_1991}
\parencite{john_big_1992}
\parencite{john_big_1991,john_big_1992}
\parencite{john_big_1991,john_paradigm_2008}
\parencite{john_big_1991}
\parencite{john_big_1991}
\parencite{john_paradigm_2008}
\parencite{john_big_1991,john_paradigm_2008}
\printbibliography
\end{document}
fornece o resultado (indiscutivelmente) esperado de