引用または参考文献エントリにbiblatexマクロの変更を適用する

引用または参考文献エントリにbiblatexマクロの変更を適用する

マクロを\finalnamedelim引用と書誌エントリに対して異なる動作をするようにしたいです。

特に、ちょうど2つ著者(複数いる場合は、引用スタイルではとにかく「et al」を使用します)では、引用では区切りとして「and」を使用する必要がありますが、コンマゼッケンエントリーに記入してください。

これが私の MWE です:

\documentclass[a4paper,12pt,oneside]{scrreprt}
% ----------------------------------------------------------
\usepackage[%
    style=authoryear,
    bibstyle=authoryear,
    maxcitenames=2,
    dashed=false,
    firstinits=true
    backend=biber,
]{biblatex}
% ----------------------------------------------------------
\renewcommand*{\finalnamedelim}{\addcomma\space}
\renewcommand*{\revsdnamepunct}{}
% ----------------------------------------------------------
\addbibresource{biblatex-examples.bib}
% ----------------------------------------------------------
\begin{document}

\parencite{bertram}

\printbibliography
\end{document}

その結果、次の引用が生まれました: ここに画像の説明を入力してください そしてこのゼッケンのエントリー: ここに画像の説明を入力してください

しかし、私はこれを達成したいのです: ここに画像の説明を入力してください ここに画像の説明を入力してください

それを実行する最善の方法は何ですか?

よろしくお願いいたします。デビッド

答え1

\AtBeginBibliographyフックを使用してのみ参考文献に特定の設定を適用できます

\AtBeginBibliography{\renewcommand*{\finalnamedelim}{\addcomma\space}}

フック\AtEveryCiteは引用についても同じことを行うので、原則として、

\renewcommand*{\finalnamedelim}{\addcomma\space}
\AtEveryCite{%
  \renewcommand*{\finalnamedelim}{%
    \ifnumgreater{\value{liststop}}{2}{\finalandcomma}{}%
    \addspace\bibstring{and}\space}}

しかし、なぜそうするのでしょうか?


\AtEveryCitekeyまた、および もあります\AtEveryBibitem。これらのフックは、問題のエントリの書誌データがすでに利用可能なコンテキストで実行されます。これはここで使用するコマンドでは重要ではありませんが、および の仲間はおよび\clearfieldでのみ機能します。\AtEveryCitekey\AtEveryBibitem

これらのコードフックの詳細については、§4.10.6を参照してください。汎用フック、244-246ページ、biblatexドキュメンテーション

関連情報