Written in WEB | Development status Maintained | |
![]() | ||
Original author(s) Initial release March 1985; 31 years ago (1985-03) Stable release 0.99d / March 2010; 6 years ago (2010-03) |
BibTeX is reference management software for formatting lists of references. The BibTeX tool is typically used together with the LaTeX document preparation system. Within the typesetting system, its name is styled as
Contents
- Basic structure
- History
- Reimplementations
- Bibliographic information file
- Entry types
- Field types
- Style files
- Uses
- References
The purpose of BibTeX is to make it easy to cite sources in a consistent manner, by separating bibliographic information from the presentation of this information, similarly to the separation of content and presentation/style supported by LaTeX itself.
Basic structure
In the words of the program’s author:
Here’s how BibTeX works. It takes as input
BibTeX chooses from the .bib
file(s) only those entries specified by the .aux
file (that is, those given by LaTeX's cite
or ocite
commands), and creates as output a .bbl
file containing these entries together with the formatting commands specified by the .bst
file [..]. LaTeX will use the .bbl
file, perhaps edited by the user, to produce the reference list.
History
BibTeX was created by Oren Patashnik and Leslie Lamport in 1985. It is written in WEB/Pascal.
Version 0.98f was released in March 1985.
With version 0.99c (released February 1988), a stationary state was reached for 22 years.
In March 2010, version 0.99d was released. Further releases were announced.
Reimplementations
During the period following BibTeX's implementation in 1985, several reimplementations have been published:
Bibliographic information file
BibTeX uses a style-independent text-based file format for lists of bibliography items, such as articles, books, and theses. BibTeX bibliography file names usually end in .bib
. A BibTeX database file is formed by a list of entries, with each entry corresponding to a bibliographical item. Entry types correspond to various types of bibliographic sources such as article, book, or conference.
An example entry which describes a mathematical handbook would be structured as an entry name followed by a list of fields, such as author and title:
@Book{abramowitz+stegun, author = "Milton {Abramowitz} and Irene A. {Stegun}", title = "Handbook of Mathematical Functions with Formulas, Graphs, and Mathematical Tables", publisher = "Dover", year = 1964, address = "New York City", edition = "ninth Dover printing, tenth GPO printing"}If a document references this handbook, the bibliographic information may be formatted in different ways depending on which citation style (APA, MLA, Chicago etc.) is employed. The way LaTeX deals with this is by specifying cite
commands and the desired bibliography style in the LaTeX document. If the command cite{abramowitz+stegun}
appears inside a LaTeX document, the bibtex
program will include this book in the list of references for the document and generate appropriate LaTeX formatting code. When viewing the formatted LaTeX document, the result might look like this:
Depending on the style file, BibTeX may rearrange authors' last names, change the case of titles, omit fields present in the .bib
file, format text in italics, add punctuation, etc. Since the same style file is used for an entire list of references, these are all formatted consistently with minimal effort required from authors or editors.
The types of entries and fields used in virtually all BibTeX styles BibTeX are listed below.
Entry types
A BibTeX database can contain the following types of entries:
Required fields: author, title, journal, year, volume
Optional fields: number, pages, month, note, key
Required fields: author/editor, title, publisher, year
Optional fields: volume/number, series, address, edition, month, note, key
Required fields: title
Optional fields: author, howpublished, address, month, year, note, key
Required fields: author/editor, title, chapter/pages, publisher, year
Optional fields: volume/number, series, type, address, edition, month, note, key
Required fields: author, title, booktitle, publisher, year
Optional fields: editor, volume/number, series, type, chapter, pages, address, edition, month, note, key
Required fields: author, title, booktitle, year
Optional fields: editor, volume/number, series, pages, address, month, organization, publisher, note, key
Required fields: title
Optional fields: author, organization, address, edition, month, year, note, key
Required fields: author, title, school, year
Optional fields: type, address, month, note, key
Required fields: none
Optional fields: author, title, howpublished, month, year, note, key
Required fields: author, title, school, year
Optional fields: type, address, month, note, key
Required fields: title, year
Optional fields: editor, volume/number, series, address, month, publisher, organization, note, key
Required fields: author, title, institution, year
Optional fields: type, number, address, month, note, key
Required fields: author, title, note
Optional fields: month, year, key
Field types
A BibTeX entry can contain various types of fields. The following types are recognized by the default bibliography styles; some third-party styles may accept additional ones:
In addition, each entry contains a key (Bibtexkey) that is used to cite or cross-reference the entry. This key is the first item in a BibTeX entry, and is not part of any field.
Style files
BibTeX formats bibliographic items according to a style file, typically by generating TeX or LaTeX formatting commands. However, style files for generating HTML output also exist. BibTeX style files, for which the suffix .bst
is common, are written in a simple, stack-based programming language (dubbed "BibTeX Anonymous Forth-Like Language", or "BAFLL", by Drew McDermott) that describes how bibliography items should be formatted. There are some packages which can generate .bst
files automatically (like custom-bib or Bib-it).
Most journals or publishers that support LaTeX have a customized bibliographic style file for the convenience of the authors. This ensures that the bibliographic style meets the guidelines of the publisher with minimal effort.