biblatex 中最后一位作者字段后的逗号

biblatex 中最后一位作者字段后的逗号

目前,我的references(不是引用)在最后一位作者姓名之间没有逗号,例如

Author, AB, CD Author 2012
Author, AB, CD Author et al. 2012

我想要的是:

Author, AB, CD Author, 2012
Author, AB, CD Author et al., 2012

根据要求,以下是我向 biblatex 提供的选项:

\usepackage[bibstyle=authoryear-icomp,
citestyle=authoryear-icomp,
uniquename=false,
uniquelist=false, 
firstinits=true, 
maxbibnames=5,
minbibnames=5, 
maxcitenames=2,
mincitenames=1, 
sorting=ynt, 
url=false, 
isbn=false, 
eprint=false, 
doi=false, 
dashed=false, 
natbib=true,
ibidtracker=false,
backend=biber]{biblatex}

%Remove comma in (Beadle and Tautum, 1941) This applies to citation only
\renewcommand*{\nameyeardelim}{\addspace}

答案1

一个可能的解决方案是使用该xpatch包来修补date+extrayearbibmacro,如下所示:

\usepackage{xpatch}
\xpretobibmacro{date+extrayear}{\unspace\addcomma\addspace}{}{}

编辑:这是补丁的说明。biblatex文档包含一个bib latex.def文件,其中有许多 bibmacro 和其他方面的定义,其中包括打印哪些 bib 字段以及何时打印 bib 字段以及打印它们的格式化说明。然后biblatex包括standards.blx。此文件中有驱动程序的定义。驱动程序的定义指定了各种元素的顺序。日期/年份不会直接出现在主驱动程序中,但它会出现在 biblatex 宏中。例如,对于样式,authoryear它出现在生成作者/编辑者的宏中(并且调用authoryear-icomp样式authoryear(用于参考)。

答案2

以防 2018 年仍有人对此感兴趣。

现在可以使用biblatex上下文敏感分隔符轻松实现这一点

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

相关内容