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}
場合によっては、後続の引用でも著者の完全なリストを取得できると便利です。それは可能ですか? 理想的な解決策は、後続のすべての引用を最初の引用として扱うスイッチです。これにより、「スイッチ」の後の 2 番目の引用のみが省略されます。
この質問の動機は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}