Получение полного списка авторов после первого цитирования с помощью biblatex-apa

Получение полного списка авторов после первого цитирования с помощью biblatex-apa

Стиль APA требует, чтобы первая ссылка на 3–6(?) авторов использовала полный список авторов, а последующие ссылки использовали сокращенный список авторов. Это реализуется следующим образом 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}

введите описание изображения здесь

В некоторых случаях было бы интересно получить полный список авторов даже в последующей цитате. Возможно ли это? Идеальным решением был бы переключатель, который заставил бы все последующие цитаты рассматриваться как первые, так что только вторая цитата после «переключателя» была бы сокращена.

Этот вопрос мотивированвопрос по SOгде пользователь пытается сделать что-то подобное в контексте cslи pandoc-citeproc. Я надеюсь, что biblatexоснованный рабочий процесс более гибок.

решение1

biblatex-apaиспользует тест \ifciteseenдля проверки того, следует ли использовать цитирование в длинной или короткой форме. Этот трекер можно полностью сбросить с помощью \citereset. biblatex-apaтакже определяет дополнительный специальный трекер, который можно сбросить с помощью \citeresetapa(этот трекер используется только в очень особых обстоятельствах с полями shortauthor/ shorteditor, поэтому если забыть сбросить его, в большинстве случаев использования это не принесет почти никакого вреда).

Так что если вы выпускаете

\citereset\citeresetapa

В любом месте документа все первые цитаты после этой строки будут использовать длинную форму, а последующие цитаты снова будут краткими. Это влияет на все записи одинаково.

\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, & Hoffmann, 2006)//(Yoon, Ryu, Kim, & Ahn, 2006)//(Herrmann et al., 2006)//(Yoon et al., 2006)//(Herrmann, Öfele, Schneider, Herdtweck, & Hoffmann, 2006)//(Yoon, Ryu, Kim, & Ahn, 2006)//(Herrmann et al., 2006)//(Yoon et al., 2006)

Параметр пакета времени загрузки citereset=<section level>позволяет автоматически выполняться \citeresetво всех заголовках <section level>. Так что citereset=sectionвызов будет выполняться \citeresetв каждом \section. Аналогичного параметра для \citeresetapa.


Если вы хотите повлиять только на определенную цитату, сделайте что-то вроде

\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}

может подойти вам лучше.

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

При таком определении \longparenciteлокально создается видимость того, что цитата ранее не встречалась, поэтому мы получаем длинную форму. \longparenciteне влияет на другие цитаты и, по крайней мере, при таком определении \longparenciteучитывается \ifciteseenв таких ситуациях, как \longparencite{herrmann}\parencite{herrmann}(конечно, это можно изменить).

Связанный контент