I'm currently writing a 15 ECTS (quarter years worth) report as a part of my two-year masters in computer science, and I'm using LaTeX with BibTeX.

In my report I use and "talk about" different pieces of software. As we know software can change when time goes on, I believe I need to be able to quote a specific version of these pieces of software.

I've read mailinglists suggestion to use "@misc" with Author, Howpublished, Lastchecked, Title and Url. Somehow that feels a bit crude, and since new "@things" have been created for example website references maybe something exists for software as well?

How do I do this the best way?


5 Answers 5


This is driven by the format of the citation required by the institution or journal.

For example, the APA has guidelines for computer software references and, if these are to be followed, then the output from LaTeX needs to produce the appropriate format. An example they give (reference entry 92 for computer software) is

Miller, M. E. (1993). The Interactive Tester (Version 4.0) [Computer software]. Westminster, CA: Psytek Services.

but there are a lot of precise rules for different categories of software. In many cases the software is not put into a reference entry but just mentioned in the text with its proper name and version number (see Publication Manual of the American Psychological Society (5th edition, 2001), p.280)

Another mailing list example is at http://newsgroups.derkeiler.com/Archive/Comp/comp.text.tex/2007-10/msg01823.html:

Software with a manual:

AUTHOR = {Anderson, E. and Bai, Z. and Bischof, C. and
Blackford, S. and Demmel, J. and Dongarra, J. and
Du Croz, J. and Greenbaum, A. and Hammarling, S. and
McKenney, A. and Sorensen, D.},
TITLE = {{LAPACK} Users' Guide},
EDITION = {Third},
PUBLISHER = {Society for Industrial and Applied Mathematics},
YEAR = {1999},
ADDRESS = {Philadelphia, PA},
ISBN = {0-89871-447-8 (paperback)} 

author =   {Matteo Frigo and Steven G. Johnson},
title =    {The design and implementation of {FFTW3}},
journal =  pieee,
year =     2005,
volume =   93,
number =   2,
pages =    {216--231},
month =    {February}

Free software with no published manual:

author =   {Stephane Popinet},
title =    {{GTS}: {GNU} {Triangulated} {Surface} library},
howpublished = {\url{http://gts.sourceforge.net/}},
year = {2000--2004}

BibLaTeX has a @software entry type which is an alias for @misc, and a version field:

  author = {{Apache Software Foundation}},
  title = {Hadoop},
  url = {https://hadoop.apache.org},
  version = {0.20.2},
  date = {2010-02-19},

It produces:

Apache Software Foundation. Hadoop. Version 0.20.2. Feb. 19, 2010. URL: https://hadoop.apache.org


I use the BibTeX @misc format, and diddle the fields until I'm happy with the result. You need enough info for the read to unambiguously know which version you're using and where to get it.

So I put the version in the note, the release data in the year and month fields, software name in title, the author or project name in author, and try to include a url.

But then, I've never faced an stylesheet that constrained me in this: editors simply don't expect you to cite a piece of code...


Unless the software doesn't specify what to cite (SPRNG for example asks that you cite a specific paper where the software was presented and many software that originated in academic circles does similarly) I'd use @misc as it's the best BibTeX has to offer in that regard.

Also, one usually only cites works that consist mostly of words, not of pretty windows, so when just talking about software and not citing from some publication I'd rather use a footnote or something in parentheses instead of a citation.


There is a @manual field that may fit better than @book for technical documentation, and thus software. Here, for instance, is the citation to The R Project for Statistical Computing

  title = {R: A Language and Environment for Statistical Computing},
  author = {{R Core Team}},
  organization = {R Foundation for Statistical Computing},
  address = {Vienna, Austria},
  year = {2016},
  url = {https://www.R-project.org/},

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .