I use the biblatex package coupled with biber (see terminology disambiguation) for my personal writings.

I want to submit a paper using a template requiring the natbib package — hence the use of bibtex. However, I use biber features in my .bib file (such as crossref) that are not handled by natbib, making the switch not straightforward.


Given the.bib file where all my references are stored, which are all the steps/modifications needed to switch from {biblatex+biber} to {natbib+bibtex}?

  • 2
    Partial answer addressing the biber -> bibtex compatibility: Converting from biblatex to BibTeX format using biber – ebosi Mar 11 '16 at 8:29
  • 1
    It also depends on the .bst style you use with natbib, some styles support an URL field, some don't. So it can get arbitrarily messy. – moewe Mar 11 '16 at 9:39
  • Is authoryear answering your question? (The class I have to use includes this line: \RequirePackage[authoryear]{natbib}). Within the tex document, the bibliography is called as following: \begin{thebibliography}{9}. – ebosi Mar 11 '16 at 9:47
  • 1
    Also related: Compatibility of bibtex and biblatex bibliography files? – ebosi Mar 11 '16 at 9:53
  • 1
    You seem to have collected quite some info yourself. What would you like an answer to add to that? Do you maybe want to write an answer yourself? – moewe Mar 15 '16 at 8:14

Disclaimer: This answer is a work-in-progress, since final solution have not been found yet.

Roadmap overview

  1. Clean-up the biber-specific features of your .bib file using biber-tool

  2. ...

1/ Clean-up the biber-specific features of your .bib file using biber-tool

The .bib file might use biber-specific features (such as the @inbook entry, crossref or urldate fields, etc.). A new .bib file that is BibTeX-compatible must thus be generated. Following answer based on this and this treads.

  • Create a file named myBiberConfig.conf containing following code. It defines how your original .bib file should be transformed in order to be BibTeX-compatible.
<?xml version="1.0" encoding="UTF-8"?>
        <maps datatype="bibtex" map_overwrite="1">
            <map map_overwrite="1">
                <map_step map_field_source="date" map_match="[0-9]{4}?-([0-9]{2}?)" map_final="1"/>
                <map_step map_field_set="month" map_field_value="$1"/>
            <map map_overwrite="1">
                <map_step map_field_source="date" map_match="([0-9]{4}?)" map_final="1"/>
                <map_step map_field_set="year" map_field_value="$1"/>
        <maps datatype="bibtex">
                <map_step map_type_source="conference" map_type_target="inproceedings"/>
                <map_step map_type_source="electronic" map_type_target="online"/>
                <map_step map_type_source="www" map_type_target="online"/>
                <map_step map_type_source="mastersthesis" map_type_target="thesis" map_final="1"/>
                <map_step map_field_set="type" map_field_value="mathesis"/>
                <map_step map_type_source="phdthesis" map_type_target="thesis" map_final="1"/>
                <map_step map_field_set="type" map_field_value="phdthesis"/>
                <map_step map_type_source="techreport" map_type_target="report" map_final="1"/>
                <map_step map_field_set="type" map_field_value="techreport"/>
                <map_step map_field_source="address" map_field_target="location"/>
                <map_step map_field_source="school" map_field_target="institution"/>
                <map_step map_field_source="annote" map_field_target="annotation"/>
                <map_step map_field_source="archiveprefix" map_field_target="eprinttype"/>
                <map_step map_field_source="journal" map_field_target="journaltitle"/>
                <map_step map_field_source="primaryclass" map_field_target="eprintclass"/>
                <map_step map_field_source="key" map_field_target="sortkey"/>
                <map_step map_field_source="pdf" map_field_target="file"/>
  • Process your original .bib file with the --tool option of biber

    biber --tool --configfile=myBiberConfig.conf <yourbibfile>.bib
  • Your processed .bib file is the freshly created <yourbibfile>_bibertool.bib

| improve this answer | |
  • 2
    Note that one problem with this project is that there is no such thing as BibTeX (or even natbib) compatibility. The fields and entry types that you can use are ultimately decided on by your .bst file, some support a url field, some don't etc. There are some features of biblatex that no .bst style can deal with (as far as I know), the date field being one, advanced crossref being another. – moewe Mar 16 '16 at 15:43
  • Actually, what I want is only to be able to use my .bib database (that is intended for a processing using biber) with the given template (that require natbib package, hence a processing with bibtex. If every feature of biber (e.g. url) are not available, I don't care as long as it is not needed by journal's .bst style. – ebosi Mar 16 '16 at 15:56
  • What I'm saying is that an answer can depend quite heavily on the exact style you use. A problem with unsupported url or date field is that if they are not "recovered" in some way for the .bst to be able to understand them the important information contained there is lost. – moewe Mar 16 '16 at 16:02
  • Got it! The mapping (via the xml code) is thus "style (i.e. .bst) dependent", right ? As no specific information is given in the template, I'll assume the authoryear style is used. – ebosi Mar 16 '16 at 16:11
  • Mhhh, no the necessary mapping will in last detail depend on the .bst you plan to use with BibTeX. It does not depend on the biblatex style used. (authoryear is not a .bst style that I would know) – moewe Mar 16 '16 at 16:14

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.