User:Johannes Bo/draft:Bibtex
Title to be: Bibliographies with BibTeX
Learn how to create a bibliography using the stable BibTeX workflow - A short tutorial.
BibTeX has been developed in the 1980's to ease the creation and management of
citations and bibliographies within LaTeX. The workflow is split in different parts.
- The user provides a plain text database which includes the bibliographic information of the sources used.
- The user also points the BibTeX system to a bibliographystyle file, a plain text file that defines the layout of the bibliography, including styling author lists, the appearance of titles as well as the order in which the information is output.
- The user calls the BibTeX program, an external tool, which then grabs which citations are needed in the document, takes them from the database and formats them according to the chosen bibliographystyle. The result is a finished bibliography that can be read and typeset by LaTeX.
The database
editCreating a bibliography using BibTeX means storing
all of your available bibliographic information in a simple
text-based database. The name should be as unique as possible,
for example melanieMasters2018.bib
. This is helpful when
transferring files with your advisor, students or colleagues.
The helper program BibTeX is used to deal with the database.
A sample database file could look like this:
@article{capybara2017,
author = {Carl Capybara and Walter Wombat},
title = {How hard would it be to build a spaceship from scrap -- A closer look at the expenses},
journal = {Journal of Metal Detectors},
year = {2017},
volume = {8},
number = {12},
pages = {12-14},
}
@book{lion2010,
author = {Laura Lion and Peter Platypus and Eel, Emil},
title = {Finding Water on Mars},
publisher = {extraterrestrial publishing house},
year = {2010},
}
@misc{wikibook,
title = {Generating Bibliographies with BibTeX},
organization = {Wikibooks},
year = {2018},
note = {accessed 2018-03-10},
url = {https://en.wikibooks.org/wiki/LaTeX/Bibliographies_with_BibTeX},
}
Every entry in the database starts with an @
-sign followed by the
entry type (book or article for example). More types are available. The
bibliographic information for each entry are stored in a pair of braces,
beginning with a unique keyword for every source item (bibkey). Least complicated way
of presenting the data is every field type in a new line, the content in curly
braces, followed by a comma. The order in which you give the information is not
important.
Please have a close look at the authors, every individual author
is separated by the keyword and
.
A simple example - Step by Step
edit
\documentclass{article}
\usepackage{url}
\begin{document}
I doubt that there is any useful information here~\cite{wikibook}.
Some research has been done on spaceships capable of going to Mars~\cite{capybara2017}.
Maybe a future journey will confirm the predictions of Lion et al.~\cite[9]{lion2010}.
\bibliographystyle{plain}
\bibliography{melanieMasters2017}
\end{document}
|
\cite
is a command provided by LaTeX, it takes a key from the
database (see above) as argument. Every time something is cited, a note is
written for the BibTeX program in an auxiliary file.
\bibliographystyle
takes the name of the style you want the
bibliography to have and is also written to the auxiliary file.
\bibliography
takes the name of the database (without the file
extension). After the first LaTeX run, we see question marks instead of
citation numbers and the log
file tells us
LaTeX Warning: Citation `wikibook' on page 1 undefined on input line 4.
LaTeX Warning: Citation `capybara2017' on page 1 undefined on input line 6.
LaTeX Warning: Citation `lion2010' on page 1 undefined on input line 8.
No file melanieMasters2018Main.bbl.
[1{/usr/local/texlive/2017/texmf-var/fonts/map/pdftex/updmap/pdftex.map}]
(./bibtexWikibookTest.aux)
LaTeX Warning: There were undefined references.
All the citations are undefined and there is no bbl
. Now,
BibTeX is needed to get the needed citations and create the bibliography
list. It needs to be run on the name of the main project file, but without
the file extension. Your favourite LaTeX editor will have a button for
that. The result is the following output in the terminal.
This is BibTeX, Version 0.99d (TeX Live 2017)
The top-level auxiliary file: melanieMasters2018Main.aux
The style file: plain.bst
Database file #1: melanieMasters2018.bib
BibTeX has read in three different files, the aforementioned auxiliary file
(aux
), the bibliographystyle file and the database and has
generated two new files. One has the file ending blg
and is
the log file of BibTeX, the other on has the ending bbl
. This
is the file LaTeX was complaining about missing earlier.
Since this file is now available, LaTeX can be run again.
The bibliography is done, but LaTeX still warns about undefined references but also gives a hint:
LaTeX Warning: Label(s) may have changed. Rerun to get cross-references right.
After another (few) LaTeX runs, all citations and cross references will be resolved.
The reference list is sorted by author names. A closer look shows us some mysterious results:
- The names are formatted slightly differently in the first two entries, the second one having an Oxford comma.
- The journal title of the first entry is italic, but it is the book title for the second
- The title of the third entry lost its uppercased letters and the url is missing completely in the output
The order of elements and the formatting are defined in the
bibliographystyle file. plain
, which was introduced in 1984, does not
support URLs.
Several other default styles are available.
Splitting into different Topics
editbibtopic
Bibliographies per Section or Chapter
editYou can have a bibliography for each chapter using the multibib
package.