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:如何删除 authoryear 样式中年份周围的括号?

在寻找解决方案时,我发现

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

但这只适用于进行上述输入的标签

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

这与我的要求正好相反。我需要在标签中的作者和年份之间留一个空格,并在参考书目条目中留一个逗号。

答案1

正如所提到的大卫·普顿评论nameyeardelim是上下文敏感的分隔符。这意味着您可以为参考书目和引文赋予不同的定义。标签introcite具有上下文,它与参考书目其余部分的bbx@introcite上下文不同,因此我们可以在此处使用不同的值。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}

Sigfridsson 和 Ryde 1998//Sigfridsson,Emma 和 Ulf Ryde,1998。

相关内容