Convert .bbl file to .bib file

I don't see how you're going to get around a lot of hand-editing to recreate a .bib file from the .bbl file. A lot of essential meta information is embedded in bib files that's not contained in bbl files:

  • For each and every entry, somebody competent has to decide the appropriate entry type: @article, @book, something else?

  • You'll have to assign a key to each entry. If you have the full bbl file, the keys (aka labels) of the entries should be available as the argument to each \bibitem. If you still have the tex file, you could (should, really) use the arguments of the \cite commands to come up with the keys.

  • Within each author field, replace , between authors (but not between surnames and first names...) with the reserved word and. Replace any and all & symbols between authors with and. Or, if the author is a "corporate" author, surround the entire name with an extra set of curly braces.

  • Within each title field (for entries of type @article, @techreport, @unpublished, and @misc), find the words that need to stay capitalized even if so-called sentence style is in effect; surround these words with curly braces.

  • Any remaining & symbols (probably in the entries' titles) will need to be escaped, i.e., written as \&.

  • Etc.

The ordering of the entries inside a bib file is of no relevance to BibTeX. Well, crossref-ed entries should be placed last, but you're not likely to construct entries with crossref fields, right?


If you are in mathematics then you can use AMS MRef web page to reconstruct many of the bibtex entries directly from your PDF or bbl file. For example, if you cut and paste the reference

A. Beilinson, V. Ginzburg, and W. Soergel, Koszul duality patterns in representation theory, J. Amer. Math. Soc., 9 (1996), 473–527.

into mref, click on the bibtex button and search, then mref returns the bibtex entry:

@article {MR1322847,
    AUTHOR = {Beilinson, Alexander and Ginzburg, Victor and Soergel,
              Wolfgang},
     TITLE = {Koszul duality patterns in representation theory},
   JOURNAL = {J. Amer. Math. Soc.},
  FJOURNAL = {Journal of the American Mathematical Society},
    VOLUME = {9},
      YEAR = {1996},
    NUMBER = {2},
     PAGES = {473--527},
      ISSN = {0894-0347},
   MRCLASS = {17B10 (14F10 16W50)},
  MRNUMBER = {1322847 (96k:17010)},
MRREVIEWER = {Rolf K{\"a}llstr{\"o}m},
       DOI = {10.1090/S0894-0347-96-00192-0},
       URL = {http://dx.doi.org/10.1090/S0894-0347-96-00192-0},
}

Now you only need to replace replace MR1322847 with the bibtex citation key that you use.

Of course, this is not perfect in that mref will sometimes fail to find your reference. In particular, this will not work with preprints, reports or, more generally, any references that MathSciNet does not know about. It may also fail if there are errors in your reference (although often mref is smart enough to correct these for you). In these cases you will have to resort to the techniques that Mico details.


In JabRef, open a new entry with ALT SHIFT N, select Article, cut and paste the reference text into the paste text here window, then Parse With FreeCite. If the reference text is formatted in a standard way (Author, title, journal, vol, pp., year), FreeCite does a decent job inserting the appropriate fields into JabRef, which uses .bib formatting. You will need to do a bit of corrections by hand, but that is easy to do in JabRef.

Tags:

Bibtex