JabRef is a reference manager, a tool that can be extremely useful for a researcher. I use it to order all my PDFs of articles and books and to search in them. In this post, I’ll give a tour of the features I use and the ones I find useful. Many of them are slightly hidden. I still find new options when using the software. I recommend to read everything before starting to import your whole library. In particular, I show some options to automatize certain tasks. Also this is not supposed to be a tutorial for the basic use. The documentation of JabRef is made for that.
A reference manager is a software that order all bibliographic data given to it. JabRef is one amongst many other, but it has the advantage to be based on LaTeX. Actually, it works directly on a .bib file, making it natural to work with for us.
1. Adding an entry
First, one can use the buttons on the top-right corner to add, in order, an empty entry, a normal entry, an entry from an ID (e.g. DOI, ISBN, arXiv) or an entry from plain code. The third button is the most interesting, as it fetches information online. Click on the second button to see a list of possible sources.
Second, one can search online for a reference. The menu is on the left (if not visible, search in the view menu). You can search in various databases online for your file, in particular arXiv and MathSciNet and import multiple entries at once.
Third, look for unliked local files (in the Lookup menu on top). JabRef can look directly for PDFs on your computer and add them to your library. It will try to extract bibliographic data from the PDF but it is usually not really good at it.
There is also a browser plugin to extract references from an online page. My recommendation: import from MathSciNet as much as possible and then update the content using DOI or ISBN (see below). This add directly the MR number to the entry. With that number, JabRef add a tab “MathSciNet” review where you can directly see the page of the entry. It’s good to update the information from MathSciNet because you often get more from other sources.
2. Working on entries
Once an entry is created, it is good to work the details to have a clean database. There are various tabs where one can edit the data. My recommendation:
a. At least look up online (using the button next to DOI) for another DOI, then update the content (in the general tab).
b. While merging with online content, use brackets to protect capitals in the title. BibTeX often remove capital letters in titles of articles. It’s good practice to protect them: write {Hecke} or {H}ecke. One should also put dollars and brackets around math expressions: {$\mathbb R$}.
c. Change the type of entry. I usually only keep two types: article and book. This can be edited directly in the BibLaTeX source tab.
d. Regenerate citation key using the left button on the top-right corner:
e. Add a PDF file if you have one.
f. Cleanup entries using the right button on the top-right corner (see below for more details).
3. Organizing the library
A feature I use a lot is the groups tab. It is on the left side of the window (search in the view menu if you don’t have it). It is possible to add groups and subgroups in various way.
In particular, in the Collect by menu, the Cited entries option is for a group that has all the citations of a LaTeX file. It suffices to link the .aux file.
I also have 4 technical groups, to see which papers have missing fields, e.g. because they are not published yet. I put all of them in a group with a red color, so I can notice them in a given project.
a. No file: I use the Free search expression option with Regular expression checked. The search expression is: file!=.+
b. No journal: Similar option, but I have to exclude books from the search. The search expression is: entrytype!=book and journaltitle!=.+ and journal!=.+ and booktitle!=.+
c. No MR number: Similar again. The search expression is: mrnumber!=.+
c. No DOI: Similar again. The search expression is: doi!=.+
Finally, I have a Revised group, where I add manually all entries once I checked them.
Sometimes, one want to work on multiple entries at the same time. The cleanup entries button is for that. It is in the top-right corner. It has many options. Among them, the most interesting one for me is to rename the PDF files.
4. Automatize tasks
In Files->Preferences, there are a lot of useful options.
a. Preferences->Citation keys generator:
One can choose how to generate the key that one use later in a .tex file. I used a regular expression to get exactly what I wanted:
[authorsAlpha][year:regex("^19",""):regex("^20","")]
This creates a key of the form IK04, where IK are the first letter of the name of each author and 04 is the year of publication. The regex remove the first two numbers of the year if it starts with 19 or 20. E.g. if the year is 2004, it only writes 04.
b. Preferences->Linked files:
In the linked file name conventions, for the filename format pattern, I used [bibtexkey] - [title]. For the file directory pattern, I used [entrytype]. Thus, the imported files are directly put into two folders, Article and Book, located at the same place as my .bib file.
c. Preferences->Entry
I like to check the time stamp options. It add the fields creationdate and modificationdate. Then one can sort the library by new entries or last modified entries.
Finally, it is possible to write an absolute path in a .tex file for the library (at least as long as they are on the same disk). I write the following line in my template (using BibLaTeX):
\addbibresource{/Library/citations.bib}
That way, I use only one .bib file for all my projects and it is always up to date with all the citations in JabRef.