![]() | |
Original author(s) | Oren Patashnik, Leslie Lamport |
---|---|
Developer(s) | Oren Patashnik |
Initial release | March 1985 |
Stable release | 0.99d / March 2010 |
Repository | https://tug.org/svn/texlive/trunk/Build/source/texk/web2c/ |
Written in | WEB |
Platform | Cross-platform |
Included with | TeX Live |
Size | 384 KB |
Available in | English |
Type | Reference management software |
License | Knuth License |
Website | Official website ![]() |
BibTeX is both a bibliographic flat-file database file format and a software program for processing these files to produce lists of references (citations). The BibTeX file format is a widely used standard with broad support by reference management software.
The BibTeX program comes bundled with the LaTeX document preparation system, and is not available as a stand-alone program. [1] Within this typesetting system its name is styled as . The name is a portmanteau of the word bibliography and the name of the TeX typesetting software.
BibTeX was created by Oren Patashnik in 1985. No updates were published between February 1988 and March 2010, when the package was updated to improve URL printing and clarify the license. There are various reimplementations of the program.
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.
The processor program works with several specific files to produce the reference list and format the citations. In the words of the program's author Oren Patashnik, the processor works as follows: [2]
It takes as input:
- an
.aux
file produced by LaTeX on an earlier run;- a
.bst
file (the style file), which specifies the general reference-list style and specifies how to format individual entries, and which is written by a style designer [..] in a special-purpose language [..], and.bib
file(s) constituting a database of all reference-list entries the user might ever hope to use.BibTeX chooses from the
.bib
file(s) only those entries specified by the.aux
file (that is, those given by LaTeX's\cite
or\nocite
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.
BibTeX was created by Oren Patashnik and Leslie Lamport in 1985. [2] The program is written in WEB/Pascal. [2]
Version 0.98f was released in March 1985. [2]
With version 0.99c (released February 1988), a stationary state was reached for 22 years. [2]
In March 2010, version 0.99d was released to improve URL printing. Further releases were announced. [2]
BibTeX uses a style-independent text-based file format, a kind of flat-file database, to store bibliography items, such as articles, books, and theses. BibTeX database 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 describing a mathematical handbook is structured with an entry type—here, @book
—followed by a unique citation key, such as abramowitz+stegun
. It also includes a list of fields, like 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 can be formatted in different ways depending on the chosen citation style (e.g., APA, MLA, Chicago). LaTeX handles this by specifying the citation command \cite
, which addresses the citation key and relies on the desired bibliography style defined in the LaTeX document.
For example, if the command \cite{abramowitz+stegun}
appears in a LaTeX document, the bibtex program will include this book in the list of references 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.
A BibTeX database can contain the following types of entries:
article
book
booklet
conference
inproceedings
, included for Scribe compatibility.inbook
incollection
inproceedings
manual
mastersthesis
misc
phdthesis
proceedings
techreport
unpublished
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
and
)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 (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.
BibTeX formats bibliographic items according to a style file, typically by generating TeX or LaTeX formatting commands, but style files can also be used to generate other types of output like HTML. BibTeX style files commonly use the file extension .bst
and are written in a simple, stack-based programming language (dubbed "BibTeX Anonymous Forth-Like Language", or "BAFLL", by Drew McDermott [8] ) that describes how bibliography items should be formatted. There are some packages that can generate .bst
files automatically, such as custom-bib and Bib-it. [9] [10]
Most journals or publishers that support LaTeX use a customized bibliographic style file for the convenience of the authors, often included as part of a complete LaTeX template.
Data schemes
Other