Support for BibTex at the SCI Institute

At the SCI institute, we have developed cohesive support for creating and maintaining BibTex databases. Much of this is only available to people with local accounts but the concepts are certainly exportable. If you want to know more, please contact me (macleod@sci.utah.edu). I also have some general support information so check them out before sending me email.

1 Getting BibTex databases

At SCI we have a number of existing databases of citations that one can use for writing. In fact, it is silly to make your own when the references you need are in another file so it pays to look around a little in existing files.

We keep all these files on Github in a private repository, which means anyone with access to the SCI Github can download (and upload) them. To check out the current set of files in the SCI BibTex repository, use your favorite Github clone process from this SCI-bibtex link If this links fails, you likely do not have access; again, email me for permissions.

This repository of BibTex files is growing and you will also see some additional directory and files there for help tools for testing and using bibtex files. Some contain tools for testing and cleaning BibTex files-see the README files there for more details.

2 SCI website literature database

We maintain a database of literature published by members of the SCI Institute with general access for searching and downloading citations and even electronic versions of the papers.

The latest edition of this database is available as sci.bib, one of the files in the SCI-bibtex archive described above.

3 Naming conventions

It helps a lot when we agree on how to name the keys that identify each entry in a BibTex file, hopefully uniquely. For example, the output of a run of BibTex might look like this:

Warning--I didn't find a database entry for "CRJ:Bramley00"
Warning--I didn't find a database entry for "CRJ:Gallopoulos94"
Warning--I didn't find a database entry for "scirunpapers"
Warning--I didn't find a database entry for "biopsepapers"
Warning--I didn't find a database entry for "ccapapers"
Warning--I didn't find a database entry for "virtualcellpapers"
Warning--I didn't find a database entry for "uintahpapers"
Warning--I didn't find a database entry for "OMG95"
Warning--I didn't find a database entry for "COM03"

The challenge in practice is to find where these citations arise, who might have entered them, and hence which BibTex file might contain them. To help with this, at SCI we have a naming convention for keys.

  1. Each ref key starts with a set of initials that map directly to the Bibtex source file, e.g., ``CRJ'' means crj.bib, ``DMW'' means dmw.bib, and ``RSM'' means biglit.bib (Yeah, I know, not the most obvious mapping but every system needs an exception). This allows us to track down the source of the missing reference. In this case, Chris has 2 in the list above and it helps a lot to know who to bug (and where to look) about errors or edits needed to an entry.
  2. The full key-naming scheme is as follows: ABC:DEFXY[V] where

    ABC = initials of the owner of the bib file, e.g., RSM, CRJ, LML

    DEF = first three letters of the last name of the first author of the paper, e.g, Mac for MacLeod, MacNiel, MacXXXX. With names like Di Ambroggi, this become DiA and for Le Mond, LeM. (The reason for such a short reference is that in the bad old days one could not leave spaces between entries in a list within a \cite command and long keys made things very unwieldy.)

    XY = year (for years after 1999, use 20XY explicitly).

    V is an optional suffix to differentiate between entries that would otherwise be identical, e.g., Mac99a, Mac99b, Mac99c, etc.

This may not be the perfect system, but it works and the main thing to stick to is the initials of the owner. As an example of why such adhearance helps, in the list above, it is impossible to tell where uintahpapers is and who is responsible (= pain in the ass).

3.1 Testing a BibTex file

There is a simple way to test a BibTex file for completeness using LATEX and the bibtex commands from your own computer. Testing is a good plan, especially if you do it after editing the file and not when you are in a hurry and have to build a document using the file.

To test a BibTex file, e.g., sci.bib in this case, make a LaTeX file, call it testbib.tex with the following contents:

\documentclass[]{article} \begin{document}

    Some text.
     \nocite{*}

    \bibliography{sci}
    \bibliographystyle{unsrt}

    \end{document}
where ``sci.bib'' is the name of the BibTex file to test.

Then run

    latex testbib
    bibtex testbib
and the output will list all the errors or warnings resulting from trying to parse the file sci.bib. Some of the output will be warnings that you can ignore but other errors can be fatal the next time you use the file.

4 Converting PubMed to BibTex

Here is some support for converting PubMed/Medline to BibTex.

5 More information

Don't forget to visit here for some general information on using BibTex.



Rob Macleod 2014-05-26