Biblatex 条件标点取决于字段值

Biblatex 条件标点取决于字段值

我使用的是 Biblatex 中的样式authoryear,目前期刊名称后面有一个逗号,如下所示

\DeclareFieldFormat{journaltitle}{#1, } 

我获得的输出例如是Journal of Medcine, 8: 45-60期刊名称后跟逗号、卷数和页码。在某些情况下,期刊字段的值为In press.

因此基于上述格式,我得到以下输出In press.,

我的问题是,如何添加一个条件,使得当journaltitle等于时In press.排除逗号?

编辑:

参见下面的示例。

在此处输入图片描述

答案1

biblatex提供pubstate字段来记录“正在印刷”等信息。因此,journaltitle不应使用 来存储此类信息。

如果有人拥有此类信息journaltitle,则可以使用biber动态操作 bibtex 条目的功能将信息放入适当的字段。

\DeclareSourcemap{
  \maps[datatype=bibtex]{
    \map{
      \step[fieldsource=journaltitle, 
                        match=\regexp{,\s+in\s+press},
                        fieldset=pubstate,
                        fieldvalue={in press}]
      \step[fieldsource=journaltitle, 
                        match=\regexp{,\s+in\s+press},
                        replace={}]
    }
  }
} 

上述操作检查是否journaltitle包含字符串, in press并将其复制到pubstate字段。然后,在第二步中,它从中删除字符串journaltitle

相关内容