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}
로드 타임 패키지 옵션을 사용하면 의 모든 제목에서 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}
당신에게 더 잘 작동할 수도 있습니다.
이 정의를 사용하면 \longparencite
해당 인용이 이전에 볼 수 없었던 것처럼 로컬에서 가장하므로 긴 형식을 얻게 됩니다. \longparencite
다른 인용에는 영향을 미치지 않으며 적어도 이 정의를 사용하면 다음 과 같은 상황에서 \longparencite
계산됩니다 (물론 변경될 수 있음).\ifciteseen
\longparencite{herrmann}\parencite{herrmann}