Properly Formatting References

Sun 17 Mar 2019

One noticeable and basic mistake in most papers is improperly formatted references. I think this mainly stems from the misconception that automated citation export works. It doesn’t.

The system I am going to focus on is BibTeX but the recommendations are general. The first release of BibTeX was thirty four years ago and the last stable release was nine years ago. On top of that BibTeX was a hack to begin with. This makes it rather difficult to understand or modify the output from BibTeX.

Most publications require their own bibliography style, so when submitting make sure to use it. If I have a choice I prefer including \usepackage[numbers,sort&compress]{natbib} in the preample and \bibliographystyle{plainnat} because it adds digital object identifier (DOI) information and it enumerates entries, which is common in my field. You can use whichever you prefer but I encourage using a style that includes DOI information.

I have found that exporting from dblp produces singificantly better initial output than any other exporter. That is, if the entry exists. However, the only way to assure references are properly formatted is to manually inspect and correct them.

The style of your references is largely personal preference. Some of the advice below is merely that; my personal prefence. There is only one strict rule, be consistent. Your references should not use different stylistic choices.

I exported one of my papers from a popular website. Here it is:

@inproceedings{bakirtzis2018model,
  title        = {A model-based approach to security analysis
                  for cyber-physical systems},
  author       = {Bakirtzis, Georgios and Carter, Bryan T
                  and Elks, Carl R and Fleming, Cody H},
  booktitle    = {2018 Annual IEEE International
                  Systems Conference (SysCon)},
  pages        = {1--8},
  year         = {2018},
  organization = {IEEE}
}

Output:

[1] Georgios Bakirtzis, Bryan T Carter, Carl R Elks, and Cody H Fleming. A model-based approach to security analysis for cyber-physical systems. In 2018 Annual IEEE International Systems Conference (SysCon), pages 1–8. IEEE, 2018.

Include the DOI or URL

The easiest way to find a paper is through its associated DOI. It’s criminal that most exporters do not by default export the DOI of a given reference. The DOI number can be found at the publishers website.

@inproceedings{bakirtzis2018model,
  ...
  organization = {IEEE},
  doi          = {10.1109/SYSCON.2018.8369518}
}

Which now adds the DOI to the reference:

[1] Georgios Bakirtzis, Bryan T Carter, Carl R Elks, and Cody H Fleming. A model-based approach to security analysis for cyber-physical systems. In 2018 Annual IEEE International Systems Conference (SysCon), pages 1–8. IEEE, 2018. doi:10.1109/SYSCON.2018.8369518.

Be careful, some DOI numbers include underscores (_) and therefore you will need to escape them properly; that is, \_.

I also recommend including \usepackage{doi} in the preample, which properly hyperlinks to the publishers website.

Sometimes an interesting publication does not have a DOI, for example, lecture notes, newspaper articles, or older conference publications, to name a few. In that case include the url field and produce a persistent link with perma.cc. The last step is important because of link rot. As researchers it is our responsibility to provide accessible references and this is one way to ensure that links are always accessible. I have been frustrated multiple times when an interesting point is supported by a reference I cannot locate.

Remove and abbreviate unecessary information

Automated exporters usually add unnecessary metadata. For example, if I had exported through dblp I would also get the following information:

...
doi       = {10.1109/SYSCON.2018.8369518},
url       = {https://doi.org/10.1109/SYSCON.2018.8369518},
timestamp = {Tue, 12 Jun 2018 18:04:41 +0200},
biburl    = {https://dblp.org/rec/bib/conf/syscon/BakirtzisCEF18},
bibsource = {dblp computer science bibliography, https://dblp.org},
...

Since a DOI exists and I am using the doi package there is no reason to print the URL to the DOI. The rest of the information is obviously unnecessary as well. Removing this content makes sense, such that there is no duplicate information.

I usually keep the year and remove volume, number, and pages. Practically everyone will be accessing the paper online and providing a DOI number is enough in that case. I, also, abbreviate first and middle names and add a period after them because—as you can see—BibTeX is not good at adding proper periods (if the style requires no periods, however, BibTeX is good at removing them).

Though common, I choose not to abbreviate journal or conference names and prefer to add “Proceedings of the …” preceding the conference name. Sometimes automated exporters do this weird thing where the conference name is shown before the publishing authority, for example, “2018 Systems Conference, Annual IEEE International Conference on”. I change it to “Proceedings of the 2018 Annual IEEE International Systems Conference”.

With those modifications the entry now looks like:

@inproceedings{bakirtzis:2018,
  title        = {A model-based approach to security analysis
                  for cyber-physical systems},
  author       = {Bakirtzis, G. and Carter, B. T.
                  and Elks, C. R. and Fleming, C. H.},
  booktitle    = {Proceedings of the 2018 Annual IEEE International
                  Systems Conference, SysCon 2018},
  year         = {2018},
  organization = {IEEE},
  doi          = {10.1109/SYSCON.2018.8369518}
}

Output:

[1] G. Bakirtzis, B. T. Carter, C. R. Elks, and C. H. Fleming. A model-based approach to security analysis for cyber-physical systems. In Proceedings of the 2018 Annual IEEE International Systems Conference, SysCon 2018. IEEE, 2018. doi:10.1109/SYSCON.2018.8369518.

No new line for enumerated references

Force a non-breaking space; that is, adding ’~’ between the word and the reference. Care should be taken to do this to all references.

This doesn’t make sense for all citation styles. In fact, it only makes sense for styles that require a break between the word and the reference. This is the most common style in my field of study but it is not, for example, in chemical engineering.

In enumerated reference styles use \usepackage[space]{cite} to make sure that multiple references have a space between them, for example, [1,2,3] should be [1, 2, 3]. You can do this on an individual basis but because this is desired globally it is more in alignment with the LaTeX ethos to use a package that enforces this behaviour, well, globally.