O estilo APA exige que a primeira citação de 3 a 6 (?) autores use a lista completa de autores, enquanto as citações subsequentes usem uma lista abreviada de autores. Isso é implementado por 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}
Em alguns casos seria interessante obter a lista completa dos autores mesmo numa citação posterior. Isso é possível? A solução ideal seria uma mudança que fizesse com que todas as citações subsequentes fossem tratadas como primeiras, de modo que apenas a segunda citação após a "mudança" fosse abreviada.
Esta questão é motivada por umapergunta sobre SOonde um usuário tenta fazer algo assim no contexto de csl
e pandoc-citeproc
. Tenho esperança de que um biblatex
fluxo de trabalho baseado seja mais flexível.
Responder1
biblatex-apa
usa o teste \ifciteseen
para verificar se uma citação deve usar a forma longa ou curta. Este rastreador pode ser redefinido completamente com \citereset
. biblatex-apa
também define um rastreador especial adicional que pode ser redefinido \citeresetapa
(este rastreador é usado apenas em circunstâncias muito especiais com campos shortauthor
/ shorteditor
, portanto, esquecer de redefini-lo quase não causará danos na maioria dos casos de uso).
Então, se você emitir
\citereset\citeresetapa
em qualquer lugar do documento, todas as primeiras citações após essa linha usarão o formato longo e as citações subsequentes serão curtas novamente. Isso afeta todas as entradas da mesma forma.
\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}
A opção de pacote de tempo de carregamento citereset=<section level>
permite executar automaticamente \citereset
todos os títulos do arquivo <section level>
. Então citereset=section
ligaria \citereset
para cada um \section
. Não há opção análoga para \citeresetapa
.
Se você quiser afetar apenas uma citação específica, 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}
pode funcionar melhor para você.
Com esta definição \longparencite
pretende-se localmente que a citação não foi vista antes, daí obtemos a forma longa. \longparencite
não afeta outras citações e pelo menos com esta definição \longparencite
conta \ifciteseen
em situações como \longparencite{herrmann}\parencite{herrmann}
(isso pode ser alterado, é claro).