biblatex:當使用 introcite=label 的 ext-authoryear 風格時,參考書目中作者和年份之間的逗號

biblatex:當使用 introcite=label 的 ext-authoryear 風格時,參考書目中作者和年份之間的逗號

我正在使用biblatex-extwithintrocite=label來獲取引用樣式,如以下問題所示:

使用 biblatex 和 biber 建立具有固定縮排和作者年份標籤的參考書目

這為我提供了標籤和參考書目中作者和年份之間有空格的標籤。但是,我需要在標籤中的作者和年份之間有一個空格,在參考書目條目中的作者和年份之間有一個逗號。所以我需要這樣的東西:

Tietze et al. 2012    Tietze, Ulrich; Schenk, Christoph, 2012.
                      Halbleiterschaltungstechnik. ...

請注意,我使用以下解決方案刪除了年份周圍的括號:biblatex:如何以作者年份風格刪除年份周圍的括號?

在尋找解決方案時,我發現

\renewcommand*{\nameyeardelim}{\addcomma\space}

但這僅適用於製作上述條目的標籤

Tietze et al., 2012    Tietze, Ulrich; Schenk, Christoph 2012.
                      Halbleiterschaltungstechnik. ...

這與我需要的相反。我需要在標籤中的作者和年份之間添加一個空格,並在參考書目條目中添加逗號。

答案1

正如所提到的大衛·珀頓評論,nameyeardelim是上下文相關的分隔符號。這意味著您可以為參考書目和引文賦予不同的定義。標籤introcite具有 context ,它與參考書目其餘部分的bbx@introcitecontext 不同,因此我們可以在這裡使用不同的值。bibnameyeardelim

nameyeardelim所有上下文的預設分隔符號都是\addspace,因此我們只需要將bib上下文的分隔符號變更為逗號後跟空格即可。

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[british]{babel}
\usepackage{csquotes}
\usepackage[style=ext-authoryear, backend=biber, introcite=label, dashed=false]{biblatex}
\addbibresource{biblatex-examples.bib}

\setlength{\bibitemsep}{0.5\baselineskip plus 0.5\baselineskip}
\setlength{\introcitewidth}{6em}

\DeclareDelimFormat[bib]{nameyeardelim}{\addcomma\space}

\DeclareFieldFormat{biblabeldate}{#1}

\begin{document}
\cite{sigfridsson,worman,geer,knuth:ct:a}
\printbibliography
\end{document}

西格弗里德森和賴德 1998//西格弗里德森、艾瑪和烏爾夫賴德,1998。

相關內容