我正在使用 biblatex 和 biber,并尝试修改常用样式以包含 AMS MathReviews 编号的字段。我的 BibTeX 文件(嗯,我猜它现在是一个 Biber 文件)有mrnumber
字段,我已经修改了相关.bbx
文件,但当我运行 Biber 时,它不会对 mrnumber 字段执行任何操作 - 因此这些字段永远不会出现在参考书目中。
我手动修改了.bbl
文件(我输入了\field{mrnumber}{123456}
),MR 号码被打印出来了。那么,除了修改文件之外.bbx
,我如何让 Biber 将相关字段传递到.bbl
文件中?
答案1
好问题。您真正需要的是能够修改 biblatex 内部数据模型,目前还无法直接修改。事实上,这在 biber 中是可能的,但目前没有 biblatex 接口。这是 biblatex 2.x 版计划实现的。
但是,您可以通过将“mrnumber”字段重新映射到受支持的 biblatex 字段(如“usera”),然后在 .bbx 中使用“usera”作为字段名来解决此问题。
将其放入您的 biber.conf 中以执行重新映射(参见 biber 手册,第 3.1.1 节):
<map>
<bibtex>
BMAP_OVERWRITE 1
<globalfield>
MRNUMBER USERA
</globalfield>
</bibtex>
</map>
顺便说一句,您的 .bib 文件仍然是 bibtex 数据文件 - biber 没有自己的数据格式(目前...)。bibtex 程序和 bibtex 数据格式之间存在区别。从 biblatex 2.x 开始,bibtex 程序可能不再受支持,但 bibtex 数据格式将始终受支持。
编辑:配置文件格式将在 Biber 0.9.8 中发生变化,因为当前格式限制太多。映射将不会太混乱。以下是新格式的相同解决方案:
<config>
<sourcemap>
<maps datatype="bibtex" map_overwrite="1">
<map>
<map_step map_field_source="MRNUMBER" map_field_target="USERA"/>
</map>
</maps>
</sourcemap>
</config>
答案2
使用 BibLaTeX 2.x 只需将以下几行添加到您的biblatex-dm.cfg
:
\DeclareDatamodelFields[type=field,datatype=literal,nullok=false]{mrnumber}
\DeclareDatamodelEntryfields[article,book]{mrnumber}
编辑:我已经发布了用于添加 mathscinet 链接的样式文件在 github。