TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Many works are published on a preprint server such as the arXiv before publication in a peer-reviewed journal. Since the arXiv can be updated during the peer-review process, it is common to find practically identical copies of journal articles on the arXiv. When writing an article, it is recommended to include both the journal reference and the preprint link.

Is there a tool, which can go through a bibtex file, look for entries

  • with a arXiv:333.1234v1 preprint identifier but lacking a journal reference or
  • a journal article without an eprint identifier

and tries to fill in the missing information?

This could be implemented in two ways:

  1. Go through two .bib files, one with preprints and one with journal articles. Find matching pairs (by comparing authors and title) and write a third .bib file

  2. Take a .bib file and use online resources (such as Google Scholar, Arxiv, ...) to fill in any missing fields.

While reference manager software can often lookup information about journal articles (e.g. via DOI) and sometimes query the arxiv, I'm not aware of any semi-automatic method to match this information.

share|improve this question
I suspect this is borderline off-topic. Also, 'many works' is rather subject-dependent: in chemistry, for example, any type of 'pre-publication' prevents submission to a peer-reviewed journal. – Joseph Wright Nov 18 '11 at 21:41
up vote 4 down vote accepted

This is in general a very difficult question. (I spent some time working on it a few years ago, but don't have much concrete to show for it. I found it difficult!) Very very often metadata on the MathSciNet and the arXiv don't match up well --- abstracts and titles often change, and it's surprising how frequently even author names don't match up completely.

The main tool, if anyone wanted to try again, is MathSciNet's MRef. Going the other way (finding arXiv preprints corresponding to published articles) you get even less help. My approach was simply to build a database of all the successful MRef lookups my software performed!

I did write some very basic scripts to automatically import BIBTEX from MathSciNet, described at the Secret Blogging Seminar.

share|improve this answer

A few years ago I wrote a python program bibupdate that does essentially this. I came across this old post and I decided to make the program publicly available. So, I have just updated the code a little, added some documentation and a few improvements. Any one who would like to use it can download it from the bitbucket link above.

What my program actually does is it add missing fields to the entries in a BibTeX database file by searching the for the paper in MathSciNet using the AMS mrlookup. Consequently, it will only be of interest to people who cite papers that are usually listed on MathSciNet.

The syntax for using the command-line script is:

bibupdate [options] bibtex_file

I wrote the program primarily to add missing DOI links to my bibtex database (for use with hypreref). I have found that it is also quite good at filling in the publication details when a preprint is published -- after the paper is listed on MathSciNet, of course.

I recently added the capability of searching directly on MathSciNet, assuming that you have a subscription. In principle, it would be easy to add a similar feature for the arXiv, however, I am not sure if this is worth doing as the arXiv locks up if it receives too many requests from the same IP address.

Even though the program works well on my bibtex files (~800 papers) there are bound to be some bugs. Feedback welcome.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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