BibTeX hacks

Dec 27, 2013
Sometimes \(\LaTeX\) compilation can give fairly unhelpful error messages like these: ! Missing $ inserted. $ l.190 ... pp. 225--236, 10.1007/978-3-642-31340-0_19 18. [Online]. ? If these error message are in .bbl file, when you are using BibTeX (.bib file) for bibliography then it is possible that these error messages are result of some special characters in your .bib file. I have seen it frequently that some DOI links contain some special characters. Following are some ways to get around these issues so that resulting document is rendered correctly.
  • Escape underscore (_) with a backslash (\). In the above example, the original DOI url was 10.1007/978-3-642-31340-0_19 which was resulting into errors. Escaping the underscore with backslash fixed the issue for me: 10.1007/978-3-642-31340-0\_19 (notice a backslash before _19 near the end).
  • Sometimes DOI urls would contain less-than (<) and greater-than (>) character. These characters do not result into errors during compilation but would be rendered incorrectly. Escaping these characters with backslash generally does not work and often result into errors similar to that shown near the top of the post. An example (fake) DOI url is 2/3<80::AID-HBM2>3.0 which was rendering upside down question mark and exclamation marks (probably because of issues with font encoding). I found that putting < in math mode helps to resolve this issue, i.e. replace with $<$ and $>$ so that new DOI url looks like 2/3$<$80::AID-HBM2$>$3.0.
  • Changing font encoding by adding following lines in \(\LaTeX\) preamble can also help to resolve above issue with < and >, as discussed here. \usepackage[T1]{fontenc} \usepackage{lmodern}
  • \(\LaTeX\) provides means to describe special characters like accents or umlauts using a special notation as described in following table hot-linked from official homepage. In addition, also check out this really great answer on stackexchange about accented letters.