BibTeX explained

BibTeX
Logo Size:200px
Author:Oren Patashnik, Leslie Lamport
Developer:Oren Patashnik
Latest Release Version:0.99d
Repo:https://tug.org/svn/texlive/trunk/Build/source/texk/web2c/
Programming Language:WEB
Platform:Cross-platform
Included With:TeX Live
Language:English
Genre:Reference management software
License:Knuth License

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

{B{\scriptstyle{IB

} \! T\!_ \! X}}. 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.

Processor

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:

BibTeX chooses from the .bib file(s) only those entries specified by the .aux file (that is, those given by LaTeX's or 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. The program 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 to improve URL printing. Further releases were announced.

Reimplementations

BibTeXu
  • A reimplementation of bibtex (by Yannis Haralambous and his students) that supports the UTF-8 character set. Taco Hoekwater of the LuaTeX team criticized it in 2010 for poor documentation and for generating errors that are difficult to debug.[3]
    bibtex8
  • A reimplementation of bibtex that supports 8-bit character sets.
    CL-BibTeX
  • A completely compatible reimplementation of bibtex in Common Lisp, capable of using bibtex .bst files directly or converting them into human-readable Lisp .lbst files. CL-BibTeX supports Unicode in Unicode Lisp implementations, using any character set that Lisp knows about.
    MLBibTeX
  • A reimplementation of BibTeX focusing on multilingual features, by Jean-Michel Hufflen.[4]
    BibLaTeX
  • A complete reimplementation. "It redesigns the way in which LaTeX interacts with BibTeX at a fairly fundamental level. With biblatex, BibTeX is only used to sort the bibliography and to generate labels. Instead of being implemented in BibTeX's style files, the formatting of the bibliography is entirely controlled by TeX macros."[5] It uses the bibliography processing program Biber and offers full Unicode and theming support. BibLaTeX comes with a new file format specification that uses the same syntax as the BibTeX file format but with more and different bibliographic entry types and field types.
    Bibulous
  • A drop-in BibTeX replacement based on style templates, including full Unicode support, written in Python.[6]

    Database files

    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 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 (APA, MLA, Chicago etc.) 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:

    Abramowitz, Milton and Irene A. Stegun (1964), Handbook of mathematical functions with formulas, graphs, and mathematical tables. New York: Dover.

    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.

    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

    Optional fields:

    volume/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 (or section, etc.) 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
  • Publisher's address (usually just the city, but can be the full address for lesser-known publishers)
    annote
  • An annotation for annotated bibliography styles (not typical)
    author
  • The name(s) of the author(s) (in the case of more than one author, separated by and)
    booktitle
  • The title of the book, if only part of it is being cited
    Email
  • The email of the author(s)
    chapter
  • The chapter number
    crossref
  • The key of the cross-referenced entry
    doi
  • Digital object identifier
    edition
  • The edition of a book, long form (such as "First" or "Second")
    editor
  • The name(s) of the editor(s)
    howpublished
  • How it was published, if the publishing method is nonstandard
    institution
  • The institution that was involved in the publishing, but not necessarily the publisher
    journal
  • The journal or magazine the work was published in
    key
  • A hidden field used for specifying or overriding the alphabetical order of entries (when the "author" and "editor" fields are missing). Note that this is very different from the key (mentioned just after this list) that is used to cite or cross-reference the entry.
    month
  • The month of publication (or, if unpublished, the month of creation)
    note
  • Miscellaneous extra information
    number
  • The "(issue) number" of a journal, magazine, or tech-report, if applicable. Note that this is not the "article number" assigned by some journals.
    organization
  • The conference sponsor
    pages
  • Page numbers, separated either by commas or double-hyphens.
    publisher
  • The publisher's name
    school
  • The school where the thesis was written
    series
  • The series of books the book was published in (e.g. "The Hardy Boys" or "Lecture Notes in Computer Science")
    title
  • The title of the work
    type
  • The field overriding the default type of publication (e.g. "Research Note" for techreport, " dissertation" for phdthesis, "Section" for inbook/incollection)
    volume
  • The volume of a journal or multi-volume book
    year
  • The year of publication (or, if unpublished, the year of creation)

    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, 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[7]) 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.[8] [9]

    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.

    Examples of uses

    See also

    Data schemes

    Other

    External links

    Notes and References

    1. Web site: BibTeX - TeX Users Group . 2024-02-01 . tug.org.
    2. Web site: BibTeX WEB source code . dead . https://web.archive.org/web/20110927042356/http://www.tex.ac.uk/tex-archive/bibliography/bibtex/base/bibtex.web . www.tex.ac.uk . September 27, 2011 . May 24, 2011.
    3. Web site: 2010-06-01 . BibTeXU . dead . https://web.archive.org/web/20160304101017/http://permalink.gmane.org/gmane.comp.tex.live/26044 . 2016-03-04 . 2016-04-21 . permalink.gmane.org.
    4. Web site: MlBibTeX's Architecture | Zeeba TV . 2016-04-21 . river-valley.zeeba.tv.
    5. Description of the package biblatex from Debian's wheezy distribution as of May 2011.
    6. Web site: Bibulous documentation — Bibulous 1.3.2 documentation . 2016-04-21 . nzhagen.github.io.
    7. Web site: Bibtex in Lisp? . 2024-02-01 . groups.google.com.
    8. Web site: CTAN: custom-bib – Customised BibTeX styles . ctan.org . 2024-02-01.
    9. Web site: Bib-it: Help – Generate BibTeX styles . bib-it.sourceforge.net . 2024-02-01.
    10. Web site: HOWTO: Use Mendeley to create citations using LaTeX and BibTeX . Ricardo Vidal . 2011-10-25 . Mendeley.com . 2016-04-21.