[Tex/LaTex] How to get biber to pass fields into the .bbl file

biberbiblatex

I'm using biblatex and biber, and trying to modify the usual styles to include a field for the AMS MathReviews number. My BibTeX file (well, I guess it's a Biber file now) has mrnumber fields, and I've modified the relevant .bbx files, but when I run Biber, it doesn't do anything with the mrnumber field — and so those never appear in the bibliography.

I manually modified the .bbl file (I put in \field{mrnumber}{123456}) and the MR number gets printed. So, in addition to modifying the .bbx files, how do I get Biber to pass the relevant fields into the .bbl file?

Best Answer

Good question. What you really need here is to be able to modify the biblatex internal data model which isn't currently possible directly. In fact, this is possible in biber but currently has no biblatex interface. This is planned for biblatex version 2.x.

However, you can work around this by re-mapping the "mrnumber" field into a supported biblatex field like "usera" and then using "usera" in your .bbx as the fieldname.

Put this in your biber.conf to perform the remapping (see biber manual, section 3.1.1):

<map>
  <bibtex>
    BMAP_OVERWRITE 1
    <globalfield>
      MRNUMBER USERA
    </globalfield>
  </bibtex>
</map>      

By the way, your .bib file is still a bibtex data file - biber has no data format of its own (yet ...). There is a distinction between bibtex the program and bibtex the data format. As of biblatex 2.x, bibtex the program will probably no longer be supported but the bibtex data format always will be.

EDIT: The config file format will change in Biber 0.9.8 because the current format is too restrictive. Mapping will be less confusing. Here is the same solution in the new format:

<config>
  <sourcemap>
    <maps datatype="bibtex" map_overwrite="1">
      <map>
        <map_step map_field_source="MRNUMBER" map_field_target="USERA"/>
      </map>
    </maps>
  </sourcemap>
</config>
Related Question