Obtener la lista completa de autores después de la primera cita con biblatex-apa

Obtener la lista completa de autores después de la primera cita con biblatex-apa

El estilo APA requiere que la primera cita de 3 a 6 (?) autores utilice la lista completa de autores, mientras que las citas posteriores utilicen una lista abreviada de autores. Esto se implementa mediante biblatex-apa:

\documentclass{article}

\usepackage[american]{babel}
\usepackage{csquotes}
\usepackage[style=apa]{biblatex}

\addbibresource{biblatex-examples.bib}

\begin{document}

% full author list
\parencite{herrmann}

% abbreviated author list
\parencite{herrmann}

% I would like a full author list here
\parencite{herrmann}

% this should be abbreviated again
\parencite{herrmann}

\printbibliography
\end{document}

ingrese la descripción de la imagen aquí

En algunos casos sería interesante obtener la lista completa de autores incluso en una cita posterior. ¿Es eso posible? La solución ideal sería un cambio que haría que todas las citas posteriores se trataran como primeras, de modo que sólo se abrevie la segunda cita después del "cambio".

Esta pregunta está motivada por unapregunta sobre SOdonde un usuario intenta hacer algo como esto en el contexto de csly pandoc-citeproc. Tengo la esperanza de que un biblatexflujo de trabajo basado sea más flexible.

Respuesta1

biblatex-apautiliza la prueba \ifciteseenpara comprobar si una cita debe utilizar la forma larga o corta. Este rastreador se puede restablecer completamente con \citereset. biblatex-apatambién define un rastreador especial adicional que se puede restablecer \citeresetapa(este rastreador solo se usa en circunstancias muy especiales con los campos shortauthor/ shorteditor, por lo que olvidarse de restablecerlo casi no causará daño en la mayoría de los casos de uso).

Así que si emites

\citereset\citeresetapa

en cualquier parte de su documento, todas las primeras citas después de esa línea utilizarán el formato largo y las citas posteriores volverán a ser cortas. Esto afecta a todas las entradas por igual.

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[american]{babel}
\usepackage{csquotes}
\usepackage[style=apa]{biblatex}

\addbibresource{biblatex-examples.bib}

\begin{document}

% full author list
\parencite{herrmann}

\parencite{yoon}

% abbreviated author list
\parencite{herrmann}

\parencite{yoon}

% I would like a full author list here
\citereset\citeresetapa
\parencite{herrmann}

\parencite{yoon}

% this should be abbreviated again
\parencite{herrmann}

\parencite{yoon}

\printbibliography
\end{document}

(Herrmann, Öfele, Schneider, Herdtweck y Hoffmann, 2006)//(Yoon, Ryu, Kim y Ahn, 2006)//(Herrmann et al., 2006)//(Yoon et al., 2006)// (Herrmann, Öfele, Schneider, Herdtweck y Hoffmann, 2006)//(Yoon, Ryu, Kim y Ahn, 2006)//(Herrmann et al., 2006)//(Yoon et al., 2006)

La opción del paquete de tiempo de carga citereset=<section level>le permite ejecutar automáticamente \citeresettodos los encabezados de <section level>. Entonces citereset=sectionllamaría \citereseta cada uno \section. No existe una opción análoga para \citeresetapa.


Si solo desea afectar una cita en particular, algo como

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[american]{babel}
\usepackage{csquotes}
\usepackage[style=apa]{biblatex}

\addbibresource{biblatex-examples.bib}

\makeatletter
\newcommand*{\longparencite}{%
  \AtNextCite{\AtEachCitekey{%
    \let\blx@imc@ifciteseen\@secondoftwo
    \let\ifciteseen\blx@imc@ifciteseen}}%
  \parencite}
\makeatother

\begin{document}

% full author list
\parencite{herrmann}

\parencite{yoon}

% abbreviated author list
\parencite{herrmann}

\parencite{yoon}

% I would like a full author list here
\longparencite{herrmann}

\parencite{yoon}

% this should be abbreviated again
\parencite{herrmann}

\parencite{yoon}

\printbibliography
\end{document}

podría funcionar mejor para ti.

(Herrmann, Öfele, Schneider, Herdtweck y Hoffmann, 2006)//(Yoon, Ryu, Kim y Ahn, 2006)//(Herrmann et al., 2006)//(Yoon et al., 2006)// (Herrmann, Öfele, Schneider, Herdtweck y Hoffmann, 2006)//(Yoon et al., 2006)//(Herrmann et al., 2006)//(Yoon et al., 2006)

Con esta definición \longparencitelocalmente se pretende que la cita no se haya visto antes, por lo que obtenemos la forma larga. \longparenciteno afecta otras citas y al menos con esta definición \longparencitecuenta \ifciteseenen situaciones como \longparencite{herrmann}\parencite{herrmann}(eso podría cambiarse, por supuesto).

información relacionada