How can I convert a .bbl file to a .bib file. I lost my .bib file but I still have my .bbl file. Now , I need to add more references to my .bbl file according to a specific format which I need to produce using Bibtex, so how can I convert my .bbl file to a .bib file so I can add the new references according to the format.

Thanks for any insight.

  • My main issue is the ordering of the references, is there a way to find out what ordering the current .bbl file is using?
    – kolonel
    Commented Sep 25, 2014 at 20:22
  • You are the one who has access to the bbl file: You tell us what the apparent ordering is. (Unless something truly odd has happened, the ordering of the entries in the bbl file is the same as that of the entries in the typeset pdf file... Do yo have access to the pdf file?)
    – Mico
    Commented Sep 25, 2014 at 20:25
  • @Mico I'm using IEEEtrans.cls, ctan.uib.no/macros/latex/contrib/IEEEtran/IEEEtran.cls .
    – kolonel
    Commented Sep 25, 2014 at 20:27
  • I'm not sure what the document class file is supposed to tell me about the ordering of the entries in the bbl file. Please advise.
    – Mico
    Commented Sep 25, 2014 at 20:29
  • 3
    You may try here: text2bib.economics.utoronto.ca
    – egreg
    Commented Sep 25, 2014 at 21:00

3 Answers 3


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?

  • BibTeX cannot deal with having an entry which is cross-referenced before the entry which cross-references it. If the file is being reconstructed from the bbl, this may or may not be an issue depending on how such entries are handled.
    – cfr
    Commented Sep 25, 2014 at 21:18
  • 1
    @cfr - Thanks. I've modified the final para of the answer to put in a caveat about the crossref possibility.
    – Mico
    Commented Sep 25, 2014 at 21:29

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,
     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.

  • Nothing quite like a random unexplained down-vote...
    – user30471
    Commented Dec 19, 2018 at 1:10

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.

  • 1
    For those of use who aren't fully familiar with jabref, please provide a bit more information about how this approach works. E.g., should Article be chosen for all entries, or only for those that look like they were published in a journal? Does jabref do a good job of encasing words that should remain upper-cased in curly braces? How does jabref determine if the author is "corporate", say, "National Space and Aeronautics Administration" or "International Monetary Fund"? E.g., would it know to sort NASA under "N" and IMF under "I"?
    – Mico
    Commented May 22, 2016 at 20:09
  • The help page for that is written at: help.jabref.org/en/NewEntryFromPlainText
    – koppor
    Commented Feb 27, 2019 at 17:45

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .