將 biblatex 巨集變更套用至引文或參考書目條目

將 biblatex 巨集變更套用至引文或參考書目條目

我希望宏\finalnamedelim對引文和圍兜條目有不同的行為。

特別是在以下情況正好兩個作者(如果我們有更多,引用樣式無論如何都使用“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,這些鉤子是在相關條目的書目資料已經可用的上下文中執行的。這對於此處使用的命令並不重要,但\clearfieldand 朋友只能使用\AtEveryCitekey\AtEveryBibitem

您可以在 §4.10.6 中閱讀有關這些代碼掛鉤的更多信息通用掛鉤,第 244-246 頁,biblatex文件

相關內容