我编写了一个 Sourcemap,在作者字段中执行正则表达式替换。
\DeclareStyleSourcemap{%
\maps[datatype=bibtex]{%
\map{%
\step[fieldsource=author,%
match={\regexp{...}}, replace={\regexp{...}}]
...
我希望其他名称字段(例如编辑器)以完全相同的方式处理。
当然,我可以复制/粘贴作者使用的匹配/替换步骤。
但是正则表达式相当长且复杂。所以我想知道是否有办法告诉源映射将给定步骤应用于多个字段?这样代码就会更短更优雅。
有任何想法吗 ?
答案1
您可以使用Sourceforge 上的biber
2.5 和biblatex
3.4 dev 版本执行此操作;foreach
源映射的选项现在可以采用显式 CSV 列表、包含 CSV 列表的另一个字段的名称或使用 new 定义的自定义数据字段集的名称\DeclareDatafieldSet
。因此,您的用例只是这样的:
\DeclareSourcemap{
\maps[datatype=bibtex]{
\map[overwrite, foreach={author,editor}]{
\step[fieldsource=\regexp{$MAPLOOP},
match=\regexp{bigre},
replace={replacement}]
}
}
}