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가 있는 매우 특별한 상황에서만 사용되므로 재설정하는 것을 잊어도 대부분의 사용 사례에서 거의 해를 끼치지 않습니다).shortauthorshorteditor

그래서 발행하면

\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)//(윤, 류, 김, & 안, 2006)//(Herrmann 외, 2006)//(윤 외, 2006)// (Herrmann, Öfele, Schneider, Herdtweck, & Hoffmann, 2006)//(윤, 류, 김, & 안, 2006)//(Herrmann 외, 2006)//(윤 외, 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)//(윤, 류, 김, & 안, 2006)//(Herrmann 외, 2006)//(윤 외, 2006)// (Herrmann, Öfele, Schneider, Herdtweck, & Hoffmann, 2006)//(Yoon 외, 2006)//(Herrmann 외, 2006)//(Yoon 외, 2006)

이 정의를 사용하면 \longparencite해당 인용이 이전에 볼 수 없었던 것처럼 로컬에서 가장하므로 긴 형식을 얻게 됩니다. \longparencite다른 인용에는 영향을 미치지 않으며 적어도 이 정의를 사용하면 다음 과 같은 상황에서 \longparencite계산됩니다 (물론 변경될 수 있음).\ifciteseen\longparencite{herrmann}\parencite{herrmann}

관련 정보