Using BIBTeX to create a Bibliography

BIBTeX is the best way to create your bibliography. Quite simply you write a database in which you include the information about articles and books etc. that you may reference. In your master LaTeX file at the end where you wish the bibliography to be you need to add lines of the form


where refsfilename would be refs if your database file were called refs.bib. Note you can have mulitple database files if you wish in which case you list them all serparated by commas. The choosenstyle is to be replaced by the style you require, e.g. plain.

When you run your LaTeX on your master file it makes a list of all the things you have referenced. You then run BIBTeX on the master file and it takes all the relevant information out of your database and sorts it into order and produces a LaTeX file in a particular style. You then run LaTeX 2 further times to allow it to actually incorporate the bibliography and put all the correct citation numbers in.

The database file (say called refs.bib) has typical entries of the form

     AUTHOR = "Aitchison, J.M.",
     TITLE = "Percolation in gently sloping beaches",
     JOURNAL = "IMA J. Appl. Math.",
     VOLUME = 33,
     PAGES = "17--31",
     YEAR = 1984 }

     AUTHOR = "Barenblatt, G.I. and Salganik, R.L. and Cherepanov, G.P.",
     TITLE = "On the nonsteady motion of cracks",
     JOURNAL = "PMM Applied Mathematics and Mechanics",
     VOLUME = "26",
     PAGES = "469--477",
     YEAR = "1962" }

     AUTHOR = "Batchelor, G.K.",
     TITLE = "An Introduction to Fluid Mechanics",
     PUBLISHER = "Cambridge University Press",
     YEAR = 1967 }

     EDITOR = "Bossavit, A. and Damlamian, A. and Fr{\'{e}}mond, M ",
     TITLE = "Free Boundary Problems: Applications and Theory, Pitman
                  Research Notes Math.",
     PUBLISHER = "Pitman",
     ADDRESS = "London",
     YEAR = 1985,
     VOLUME = "120,121"  }

  author =       "Cummings, L.",
  title =        "The three cylinder problem in {H}ele--{S}haw Flow",
  note =         "private communication",
  year =         1997

     AUTHOR = "Gillow, K.A.",
     TITLE = "Codimension-two free boundary problems",
     YEAR = 1998,
     SCHOOL = "Oxford"  }

Instead of writing a bibtex file by hand in a text editor you could use a graphical tool such as gbib.


Each entry has some fields that are required, some that are optional and some that would be ignored. Possible fields are ADDRESS, ANNOTE, AUTHOR, BOOKTITLE, CHAPTER, CROSSREF, EDITION, EDITOR, HOWPUBLISHED, INSITUTION, JOURNAL, KEY, MONTH, NOTE, NUMBER, ORGANIZATION, PAGES, PUBLISHER, SCHOOL, SERIES, TITLE, TYPE, VOLUME and YEAR.

To refer to an entry one uses the \cite LaTeX command, e.g. \cite{Gil-98p} may produce in the text [12] or perhaps [Gillow 1998] depending on the bibtex style chosen.

Some key points to note that can sometime be misunderstood are

  • between every author you need to put and, BibTeX will do the rest.
  • Some BibTeX styles will change some uppercase letter to lowercase, to protect the capital letters in say Hele-Shaw you need to put curly braces around the capital letter, e.g. {H}ele-{S}haw.
  • Similarly use curly braces to protect LaTeX code such as accents.

Possible BibTeX styles available on our system include plain, abbrv, alpha, apalike, ieeetr, siam, unsrt, amsalpha, amsplain, gerabbrv, geralpha, gerapali, gerplain, gerunsrt, addrconv, birthday, email, acm, abbrvnat, plainnat, unsrtnat, jphysicsB, agsm, apsr, dcu, jmr, nederlands, kluwer, prsty, achicago, osa, prsty, seg, siam

There is also the gillow style made by me which is a modification of the plain style which added a DPHILTHESIS entry type, makes the volume numbers bold and uses small capitals for the author names.

For a more details see the LaTeX book by Leslie Lamport.