著者が 1 人、年が複数ある場合の特殊なケース (biblatex の APA スタイル)

著者が 1 人、年が複数ある場合の特殊なケース (biblatex の APA スタイル)

私は、authoryear-comp を使用して、biblatex パッケージの APA 引用スタイルをレンダリングしようとしています。私が使用している特殊なケースは、最初の本文引用ではすべての著者名が印刷されますが、次回の引用では最初の著者を除くすべての著者が「et al.」にまとめられることです。これをカスタマイズするために使用するコード スニペットの問題は、authoryear-comp の機能が中断され、単一の著者の参照 (例: MacDonald、2011、2015) がグループ化されなくなることです (例: MacDonald 2011、MacDonald 2015)。

問題のあるコードスニペットは次のとおりです。

\AtEveryCitekey{%
    \ifciteseen{}{\defcounter{maxnames}{99}\clearfield{namehash}}}

この奇妙な動作を修正するのに誰か手伝ってくれませんか? コード全体は次のとおりです:

\documentclass[a4paper, 11pt]{article}
\usepackage[top=0.85in,left=1in, right=1in, footskip=0.75in]{geometry}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage[T1]{fontenc}
\usepackage[style=authoryear-comp,citetracker=true, mincitenames=1, maxcitenames=2, maxbibnames=6, uniquename=false, uniquelist=false, dashed=false, giveninits=true, doi=false, isbn=false, url=false]{biblatex}

%%% To make the all names visible at the first reference
\AtEveryCitekey{%
    \ifciteseen{}{\defcounter{maxnames}{99}\clearfield{namehash}}}

%%% Use '&' instead of 'and' in parencite and bibliography list
\renewcommand*{\finalnamedelim}{%
    \ifnumgreater{\value{liststop}}{2}{\finalandcomma}{}%
    \addspace\&\space}

%%% Use 'and' in textcite
\DeclareDelimFormat[textcite]{finalnamedelim}{\addspace{and}\space}

\AtEveryBibitem{\clearfield{month}}
\AtEveryBibitem{\clearfield{day}}
\AtEveryBibitem{\clearfield{eprint}}

\begin{filecontents}{\jobname.bib}
    @article{macdonald2015,
        title = {On Having a Farm},
        volume = {42},
        journaltitle = {Journal of Science and Stuff},
        author = {MacDonald, O.},
        date = {2015}
    }
    @article{macdonald2016,
        title = {Noise reduction in livestock},
        volume = {43},
        journaltitle = {Journal of Science and Stuff},
        author = {MacDonald, O.},
        date = {2016}
    }
    
\end{filecontents}
\addbibresource{\jobname.bib}

\title{A document}
\begin{document}
    \maketitle
    In this text I cite \parencite{macdonald2015, macdonald2016} for the mwe. 
    And now i cite the same clever fellow \parencite{macdonald2015, macdonald2016} again.
    \printbibliography
\end{document}

答え1

(本物の) APA スタイルが必要な場合は、biblatex-apa's style=apa,(第 7 版 APA スタイル) またはbiblatex-apa6's style=apa6,(第 6 版 APA スタイル - 最初の引用ではほぼすべての著者が表示され、その後の「First + et al.」のみが第 6 版の特徴で、第 7 版ではすべて「et al.」) を使用するのがおそらく最善です。APA スタイルはかなり複雑で、その複雑さをすべて再現しようとすると、style=authoryear-comp,しばらく時間がかかるかもしれません。

スタイル オプションは、本当に必要な場合にのみ使用してください。適切な APA 準拠のためにすでに設定されており、追加のオプションはおそらく混乱を招くだけです。biblatexサンプル ドキュメントのプリアンブルにある追加コードのほとんどについても同様です。

\documentclass[a4paper, 11pt]{article}
\usepackage[top=0.85in,left=1in, right=1in, footskip=0.75in]{geometry}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage[T1]{fontenc}
\usepackage[backend=biber, style=apa]{biblatex}

\begin{filecontents}{\jobname.bib}
@article{macdonald2015,
  title = {On Having a Farm},
  volume = {42},
  journaltitle = {Journal of Science and Stuff},
  author = {MacDonald, O.},
  date = {2015}
}
@article{macdonald2016,
  title = {Noise reduction in livestock},
  volume = {43},
  journaltitle = {Journal of Science and Stuff},
  author = {MacDonald, O.},
  date = {2016}
}
\end{filecontents}
\addbibresource{\jobname.bib}

\begin{document}
  In this text I cite \parencite{macdonald2015, macdonald2016} for the mwe. 
  And now i cite the same clever fellow \parencite{macdonald2015, macdonald2016} again.
  \printbibliography
\end{document}

実際の APA スタイルではなく、「APA のような」スタイルだけが必要な場合は、スタイルを または汎用ファミリーのスタイルに基づいて作成するのがよいかどうかは、正確な要件によって異なりますstyle=apa,style=apa6,(authoryear一般的に、APA スタイルは複雑な APA 要件を実装するために特別に構築されているため、変更が困難です。一方、汎用スタイルはエンドユーザーが変更することを想定しています。)

関連情報