BibTeX


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. The name is a portmanteau of the word bibliography and the name of the TeX typesetting software.
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 Oren Patashnik:

Here’s how BibTeX works. It takes as input
BibTeX chooses from the .bib file only those entries specified by the .aux file, 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, a stationary state was reached for 22 years.
In March 2010, version 0.99d was released to improve URL printing. Further releases were announced.

Reimplementations

During the period following BibTeX's implementation in 1985, several reimplementations have been published:
;BibTeXu
;bibtex8
;CL-BibTeX
;MLBibTeX
;BibLaTeX
;Bibulous

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

If a document references this handbook, the bibliographic information may be formatted in different ways depending on which citation style is employed. The way LaTeX deals with this is by specifying commands and the desired bibliography style in the LaTeX document. If the command 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:
; article: An article from a journal or magazine.
Required fields: author, title, journal, year, volume
Optional fields: number, pages, month, doi, note, key
; book: A book with an explicit publisher.
Required fields: author/editor, title, publisher, year
Optional fields: volume/number, series, address, edition, month, note, key, url
; booklet: A work that is printed and bound, but without a named publisher or sponsoring institution.
Required fields: title
Optional fields: author, howpublished, address, month, year, note, key
; conference: The same as inproceedings, included for Scribe compatibility.
; inbook: A part of a book, usually untitled. May be a chapter and/or a range of pages.
Required fields: author/editor, title, chapter/pages, publisher, year
Optional fields: volume/number, series, type, address, edition, month, note, key
; incollection: A part of a book having its own title.
Required fields: author, title, booktitle, publisher, year
Optional fields: editor, volume/number, series, type, chapter, pages, address, edition, month, note, key
; inproceedings: An article in a conference proceedings.
Required fields: author, title, booktitle, year
Optional fields: editor, volume/number, series, pages, address, month, organization, publisher, note, key
; manual: Technical documentation.
Required fields: title
Optional fields: author, organization, address, edition, month, year, note, key
; mastersthesis: A Master's thesis.
Required fields: author, title, school, year
Optional fields: type, address, month, note, key
; misc: For use when nothing else fits.
Required fields: none
Optional fields: author, title, howpublished, month, year, note, key
; phdthesis: A Ph.D. thesis.
Required fields: author, title, school, year
Optional fields: type, address, month, note, key
; proceedings: The proceedings of a conference.
Required fields: title, year
Optional fields: editor, volume/number, series, address, month, publisher, organization, note, key
; techreport: A report published by a school or other institution, usually numbered within a series.
Required fields: author, title, institution, year
Optional fields: type, number, address, month, note, key
; unpublished: A document having an author and title, but not formally published.
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:
;address
;annote
;author
;booktitle
;Email
;chapter
;crossref
;doi
;edition
;editor
;howpublished
;institution
;journal
;key
;month
;note
;number
;organization
;pages
;publisher
;school
;series
;title
;type
;volume
;year
In addition, each entry contains a key 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 that describes how bibliography items should be formatted. There are some packages which can generate .bst files automatically.
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.

Uses