BibSync

BibSync is a tool to synchronize your paper database with a BibTeX file which might be most useful for Physicists and Mathematicians since it supports synchronization with DOI and arXiv.

I created this tool during the work on my diploma thesis in physics since I was unhappy with existing tools like Mendeley. I use this tool together with Git for version control and JabRef for browsing. This tool adheres more to the Unix philosophy that a small tool for each task is better than one thing which tries to solve everything. If you use JabRef for browsing and tagging it is unnecessary to sort the papers into different sub directories by hand. Just throw them all in one directory!

Note: This tool is derived from a script which I used during my thesis. It worked quite well and reliable during that time. But be aware that I used Git for version control of the BibTeX file. So any mistakes which might be made by this tool could be reverted.

Features

BibSync supports the following features:

  • Synchronization between a BibTeX file and a directory containing the papers in pdf, ps or djvu format
  • JabRef file fields are generated, so you can open the existing papers directly out of JabRef
  • Downloading of arXiv or DOI metadata
  • Extraction of arXiv or DOI id out of the file using pdftotext
  • Downloading of new versions of arXiv papers
  • Simple validation of BibTeX files (Checks for missing fields etc)
  • Simple transformation of BibTeX fields (Normalization of author, year and journal field...)
  • Works under every platform supporting Ruby and pdftotext (Linux, Windows, ...)

Quick start

At first you have to ensure that you have the pdftotext program available on your $PATH. Under Debian you can install the package using apt-get as follows

$ apt-get install poppler-utils
$ pdftotext
pdftotext version 0.24.1
...

BibSync requires Ruby >= 1.9.2 to run. It is distributed as a RubyGems package. You can install it via the command line

$ gem install bibsync

And for updating, you write

$ gem update bibsync

After that you can use the 'bibsync' tool on the command line. At first let's validate a BibTeX file called 'thesis.bib'.

$ bibsync -b ~/thesis/thesis.bib

Then we want to synchronize all the papers in our paper directory with 'bibsync' and automatically download the missing metadata.

$ bibsync -d ~/thesis/papers -b ~/thesis/thesis.bib

BibSync tries to download the metadata from arxiv.org and dx.doi.org. If you want to know more about the functions of 'bibsync' take a look at the command line help.

$ bibsync --help

My setup

  • BibSync for synchronizing
  • JabRef for browsing the bibliography, tagging and categorizing papers
  • Biblatex to include a bibliography in LaTeX with full Unicode support

Alternatives

  • Mendeley (Commercial, synchronizes with their server, limited disk space, bloated gui application)
  • Zotero (Firefox plugin, Open source)

A better name?

If you have a suggestion for a better name, just let me know...

Author

Daniel Mendler

License

See LICENSE