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}