Caso especial de un autor, varios años (estilo APA en biblatex)

Caso especial de un autor, varios años (estilo APA en biblatex)

Estoy intentando representar el estilo de cita apa en el paquete biblatex usando Authoryear-comp. El caso especial que estoy usando es que en la primera cita en el texto, todos los nombres de los autores se imprimen, pero en las próximas citas, todos los autores, excepto el primero, se incluyen en 'et al'. El problema del fragmento de código que uso para personalizar esto es que la funcionalidad de Authoryear-comp se interrumpe de modo que las referencias de un solo autor (por ejemplo, MacDonald, 2011, 2015) ya no se agrupan (por ejemplo, MacDonald 2011, MacDonald 2015).

El fragmento de código problemático es este:

\AtEveryCitekey{%
    \ifciteseen{}{\defcounter{maxnames}{99}\clearfield{namehash}}}

¿Alguien podría ayudarme a solucionar este comportamiento peculiar? Aquí está el código completo:

\documentclass[a4paper, 11pt]{article}
\usepackage[top=0.85in,left=1in, right=1in, footskip=0.75in]{geometry}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage[T1]{fontenc}
\usepackage[style=authoryear-comp,citetracker=true, mincitenames=1, maxcitenames=2, maxbibnames=6, uniquename=false, uniquelist=false, dashed=false, giveninits=true, doi=false, isbn=false, url=false]{biblatex}

%%% To make the all names visible at the first reference
\AtEveryCitekey{%
    \ifciteseen{}{\defcounter{maxnames}{99}\clearfield{namehash}}}

%%% Use '&' instead of 'and' in parencite and bibliography list
\renewcommand*{\finalnamedelim}{%
    \ifnumgreater{\value{liststop}}{2}{\finalandcomma}{}%
    \addspace\&\space}

%%% Use 'and' in textcite
\DeclareDelimFormat[textcite]{finalnamedelim}{\addspace{and}\space}

\AtEveryBibitem{\clearfield{month}}
\AtEveryBibitem{\clearfield{day}}
\AtEveryBibitem{\clearfield{eprint}}

\begin{filecontents}{\jobname.bib}
    @article{macdonald2015,
        title = {On Having a Farm},
        volume = {42},
        journaltitle = {Journal of Science and Stuff},
        author = {MacDonald, O.},
        date = {2015}
    }
    @article{macdonald2016,
        title = {Noise reduction in livestock},
        volume = {43},
        journaltitle = {Journal of Science and Stuff},
        author = {MacDonald, O.},
        date = {2016}
    }
    
\end{filecontents}
\addbibresource{\jobname.bib}

\title{A document}
\begin{document}
    \maketitle
    In this text I cite \parencite{macdonald2015, macdonald2016} for the mwe. 
    And now i cite the same clever fellow \parencite{macdonald2015, macdonald2016} again.
    \printbibliography
\end{document}

Respuesta1

Si desea el estilo APA (real), probablemente sea mejor usar biblatex-apa's style=apa,(para el estilo APA de la séptima edición) o biblatex-apa6's style=apa6,(para el estilo APA de la sexta edición; la primera cita muestra todos los autores, las siguientes solo "Primera + et al." es una característica de la sexta edición, en la séptima edición, es "et al." hasta el final). El estilo APA es bastante complejo y tratar de replicar todas sus complejidades style=authoryear-comp,puede llevar un tiempo.

Utilice las opciones de estilo sólo si es realmente necesario. Todo ya está configurado para el cumplimiento adecuado de la APA y las opciones adicionales probablemente sólo estropearán las cosas. Lo mismo se aplica a la mayor parte del biblatexcódigo adicional en el preámbulo del documento de ejemplo.

\documentclass[a4paper, 11pt]{article}
\usepackage[top=0.85in,left=1in, right=1in, footskip=0.75in]{geometry}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage[T1]{fontenc}
\usepackage[backend=biber, style=apa]{biblatex}

\begin{filecontents}{\jobname.bib}
@article{macdonald2015,
  title = {On Having a Farm},
  volume = {42},
  journaltitle = {Journal of Science and Stuff},
  author = {MacDonald, O.},
  date = {2015}
}
@article{macdonald2016,
  title = {Noise reduction in livestock},
  volume = {43},
  journaltitle = {Journal of Science and Stuff},
  author = {MacDonald, O.},
  date = {2016}
}
\end{filecontents}
\addbibresource{\jobname.bib}

\begin{document}
  In this text I cite \parencite{macdonald2015, macdonald2016} for the mwe. 
  And now i cite the same clever fellow \parencite{macdonald2015, macdonald2016} again.
  \printbibliography
\end{document}

Si no desea el estilo APA real, sino sólo algo "como APA", dependerá de sus requisitos exactos si es una buena idea basar su estilo en style=apa,, style=apa6,o en un estilo de la authoryearfamilia genérica. (En términos generales, los estilos APA son más difíciles de modificar porque fueron creados específicamente para implementar los complejos requisitos de APA, mientras que se supone que los estilos genéricos deben ser modificados por los usuarios finales).

información relacionada