BibTeX is an essential tool for preparing references for a LaTeX document. It collects entries from a BibTeX .bib
database and formats a reference list in a .bbl
file. Here are my top BibTeX tips.
Protect Capitals
The title field should be typed in title case, with all words capitalized except for articles (the, a, an), prepositions (to, with, on, etc.), and conjunctions (and, for, or, etc.). BibTeX will convert words to lower case if the style requires it, which it typically does for the article entry type.
Capitalized words that must not be converted to lower case because they are proper nouns must be protected by putting them in braces, as in the example
title = "A {Krylov} Methods Toolbox for {MATLAB}"
Without the braces this title appears with most styles as “A krylov methods toolbox for matlab”.
Failing to protect capitals is the most common error I see in bib entries. Note that bib entries downloaded from publisher’s websites usually do not protect capitals (and often have other errors), so you should always carefully check them.
Identify Surnames
When a surname comprises two words but is not hyphenated, BibTeX will interpret the first part of the surname as a given name. This is problematic when the BibTeX style abbreviates given names to initials. For example,
author = "Charles F. Van Loan",
will produce “C. F. V. Loan” instead of “C. F. Van Loan”. The cure is to reverse the order of the given names and surname
author = "Van Loan, Charles F.",
Alternatively, you can protect the surname with braces:
author = "Charles F. {Van Loan}",
Add a DOI Field
A digital object identifier (DOI) provides a persistent link to an object on the web, and almost every published paper has one, as do many books that are available electronically. I recommend including the DOI in a doi
field, such as
doi = "10.1137/1.9781611976106",
With an appropriate BibTeX style file either the DOI will be displayed and hyperlinked or the title will be hyperlinked. The doi
field above generates the hyperlink
https://doi.org/10.1137/1.9781611976106
which resolves to the object in question. Here is an example of a bibliography entry from a SIAM paper that contains a DOI:
Some styles that support the doi field are listed here; see also myplain2-doi.bst (my modification of an existing style file) and the siamplain.bst
style file available here.
Get a Bib Entry from a DOI
If you have a paper that has a DOI and wish to obtain a bib entry you can type the DOI into doi2bib or DOI to BibTeX converter. I use doi2bib rather than download bib entries from publisher websites, as I find the results are more reliable.
Include a URL Field
For items that do not have a DOI it is desirable to include a url
field that gives the URL of the item on the web, especially for preprints, general articles, and software. Again, this is not a standard field, but some styles support it and print the URL or produce a hyperlink.
Include Date Fields
The last two fields in my bib entries are of the form
created = "2019.04.23", updated = "2020.03.01"
These are nonstandard fields so are ignored by BibTeX. I include them because these two dates can be very useful. They give me clues about when I first came across or read a paper. The “updated” field indicates when I have added a DOI to an old entry, corrected a nontrivial error in an entry, or a preprint has been revised or become a published paper.
Use Strings for Journal Names
If you type the journal field explicitly, as in
journal = "SIAM J. Sci. Comput.",
it will be hard to keep these fields consistent across hundreds of entries. It is better to use an abbreviation
@String{j-SISC = "SIAM J. Sci. Comput."}
then type
journal = j-SISC,
These String
lines must appear before the string is used. I collect them into a separate bib file, strings.bib, and load it before my other bib files:
\bibliography{strings,njhigham,paper}
For mathematics journals I use abbreviations used by Mathematical Reviews, which can be found in this PDF document.
Use Backref
For larger documents it is helpful for the reader to know where bibliography items are cited in the text. Including
\usepackage{backref}
in the preamble of the LaTeX document will cause each bibliography entry to be appended with a list of the pages on which it is cited. Here is an example of a bibliography entry annotated by backref
:
Further Reading
More tips on BibTeX can be found in
- these earlier blog posts,
- section 8.34 of my Handbook of Writing for the Mathematical Sciences (third edition, 2020).
Thank you for the tips, I learnt something new.
I would mention that the excellent JabRef manager allows to fetch BibTeX entries not only from DOI, but also from many other sources (ISBN, title, zbMATH, etc.). You can find the list of supported sources here: https://docs.jabref.org/collect/add-entry-using-an-id