BibTeX

とは参考文献の一覧の整形に使われるツールである。

 概要 
 はオーレン・パタシュニク (Oren Patashnik) とレスリー・ランポート (Leslie Lamport) が1985年に開発した。 では文献書誌情報とその情報の表記方法とを分離して記述できるため、文献の参照形式を一貫した形式で書くことが可能である。コンテンツと表記・スタイルの分離という同様の方式は、 や XHTML、HTML と CSS といったマークアップ言語にも見てとることができる。

なお、 を基にして日本語処理に対応させたものが である。そのため、日本語文字を含む ファイルを処理する場合には、 ではなく を使用する必要がある。

 書誌情報ファイル 
 は参考文献の一覧用に、出力形式とは独立したテキストベースのファイル形式を用いる。各書誌情報は論文・書籍・学位論文といった書誌項目の種別を持つ。 書誌情報ファイルは通常 「」 の拡張子を持つ。

書誌情報には以下のような標準的なデータ項目がある。

データ項目説明address出版社の住所。出版地として通常は都市名が記載されるが、あまり知られていない出版社等については正式な住所が記載される。annote注釈附きの書誌スタイル用の注釈（あまり使われない）。author著者名。著者が複数である場合には、「and」 でつなげる。booktitle（書籍中の一部のみを参照している場合に）書籍タイトル。crossref相互参照用のキー。chapter章番号。edition書籍の版（「第一版」・「改訂版」などの形式で表記される）。editor編著者名。eprint電子出版時の指定。プレプリントもしくはテクニカルレポート。howpublished出版形態（出版形態が特殊な場合）。institution出版社とは別に出版に関わった機関。journal雑誌名。keyエントリのアルファベット順での並びを指定する際に使われる隠れ項目。引用参照や相互参照時に使われるキーとは異なる。month出版月。出版されていない場合は制作月。note注記。number雑誌・テクニカルレポートの号数。大半の雑誌には 「」（巻数）が付与されているが、「」（号数）は付与されていない場合がある。organization会議の主催者。pagesページ数。publisher出版社名。school学位論文の場合に、学位の提出大学名。series書籍のシリーズ名。titleタイトル。type報告種別。(例：「」)urlWWW 上の URI（URL を含む）。volume雑誌または書籍の巻数。year出版年（出版されていない場合は制作年）。

さらに各書誌項目には、その書誌を引用参照もしくは相互参照する際に用いられるキーが付与される。このキーは各書誌項目の先頭で与えられ、データ項目の一部とはならない。

 エントリ種別 
書誌情報ファイルに含まれる各エントリは、いくつかの種類に分けられる。以下の種類は全て スタイルが解釈する。
article 雑誌に掲載された論文。必須項目：author, title, journal, yearオプション項目：volume, number, pages, month, note, key
book 出版社が刊行した書籍。必須項目：author/editor, title, publisher, yearオプション項目：volume, series, address, edition, month, note, key
booklet 出版社や機関名が明示的されていない印刷物や製本済の作品。必須項目：titleオプション項目：author, howpublished, address, month, year, note, key
conference inproceedings と同一。Scribe との互換性のために残されている。必須項目：author, title, booktitle, yearオプション項目：editor, pages, organization, publisher, address, month, note, key
inbook 書籍中の一部。一章もしくは一節など。範囲ページの指定による。必須項目：author/editor, title, chapter/pages, publisher, yearオプション項目：volume, series, address, edition, month, note, key
incollection それ自体がタイトルを持っている書籍中の一部。必須項目：author, title, booktitle, yearオプション項目：editor, pages, organization, publisher, address, month, note, key
inproceedings 会議論文集中の一論文。必須項目：author, title, booktitle, yearオプション項目：editor, pages, organization, publisher, address, month, note, key
manual マニュアル。技術文書。必須項目：titleオプション項目：author, organization, address, edition, month, year, note, key
mastersthesis 修士学位論文。必須項目：author, title, school, yearオプション項目：address, month, note, key
misc その他該当種別が無いもの。必須項目：無しオプション項目：author, title, howpublished, month, year, note, key
phdthesis 博士学位論文。必須項目：author, title, school, yearオプション項目：address, month, note, key
proceedings 会議論文集。必須項目：title, yearオプション項目：editor, publisher, organization, address, month, note, key
techreport 大学、研究機関などから出版された報告書。通常シリーズ化され、番号付けされる。必須項目：author, title, institution, yearオプション項目：type, number, address, month, note, key
unpublished 著者とタイトルがある文書であるが、公式に刊行されていないもの。必須項目：author, title, noteオプション項目：month, year, key

 書誌スタイルファイル 
 文書中では \bibliographystyle
コマンドにより書誌スタイルを指定する必要がある。一般的な指定値として、「\bibliographystyle{plain}」や 「\bibliographystyle{abbrv}」 といった指定がある。

 の書誌スタイルファイルは 「」という拡張子を持ち、書誌項目をどのように整形するかを記述するのに、単純なスタックベースのプログラミング言語を用いる。 プログラム bibtex はこのスタイルファイルに従って書誌事項を整形し、 または の整形コマンドに変換する。なお、HTML を出力するようなスタイルファイルも存在する。固有の スタイルファイルは latex makebst コマンドにより生成することができる。

 コマンドの動作 
参考文献一覧の情報を出力するには ツールを動作させる必要がある。
まず latex コマンドを起動し、元の論文ファイルを整形し、参照情報を取り出す。この時点では、 ツールからは参考文献情報が未定義であるとの警告メッセージが出力される。
 ツールを動作させる。
再度 ツールを動作させる。この時点でも再び参考文献情報が未定義であるとの警告メッセージが出力される。
3回目の ツールの動作。参考文献情報が整形され、出力される。
参照情報を加えるもしくは削除するたびに、上記手順を繰り返す。

 例 

ファイルに以下のような数学ハンドブックのエントリが含まれているとする。

 @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",
 edition = "ninth Dover printing, tenth GPO printing"
 }

本文中でこのハンドブックを参照する場合に、書誌情報は参照スタイル（APA、MLA、Chicago など）に応じて様々な形式で表記される。 は \cite コマンドおよび書誌参照スタイルの指定に従って、これを扱う。 文書中に \cite{abramowitz+stegun} というコマンドが現れた場合に、bibtex プログラムはこれを参考文献リストに追加し、 の整形用コードを出力する。 文書を組版した結果としては、以下のような見栄えになることが多い。

スタイルファイルに応じて は著者名の姓名の順を入れ替えたり、タイトルの大文字・小文字を変えたり、 ファイルにある情報のうちいくつかの項目については省略したり、テキストの一部を斜体に変更したり、約物を加えたりなどの整形を行う。参考文献一覧の情報全体を同一のスタイルファイルで整形することによって、最小限の労力で全体の出力の一貫性を保ち、一定の整形結果を得ることができる。

 著者名の整形 
「von」、「van」、「der」のような姓に付与される接頭辞は自動的に処理され、ミドルネームと区別するために小文字で整形される。複数語からなる姓を名・ミドルネームと区別する場合には、姓を先に書き、カンマを間に加えてから、名・ミドルネームを書く。「Jr.」、「Sr.」や 「III」などの、名に付与される接尾辞は通常2つのカンマを間に加えることで自動的に処理できる。

 @Book{hicks2001,
 author = "von Hicks, III, Michael",
 title = "Design of a Carbon Fiber Composite Grid Structure for the GLAST
 Spacecraft Using a Novel Manufacturing Technique",
 publisher = "Stanford Press",
 year = 2001,
 address = "Palo Alto",
 edition = "1st,",
 isbn = "0-69-697269-4"
 }

姓接頭辞を認識させるのにカンマを使わない場合、代わりに波括弧を用いる書き方（「{Hicks III}」）もある。

 相互参照 
 では crossref フィールドを用いて、他の書誌情報を参照することができる。以下の例では、文献「author:06」 から文献 「conference:06」を参照している。

 @INPROCEEDINGS {author:06,
 title = {Some publication title},
 author = {First Author and Second Author},
 crossref = {conference:06},
 pages = {330--331},
 }
 @PROCEEDINGS {conference:06,
 editor = {First Editor and Second Editor},
 booktitle = {Proceedings of the Xth Conference on XYZ},
 year = {2006},
 month = {October},
 }

上記入力を にかけると、以下のような出力が得られる。

 用途別スタイルファイル 
学術雑誌毎に多くの異なるスタイルファイルがいわば「お手製」で作られてきた。引用スタイルをカスタマイズする必要がある場合は、natbib や jurabib といった 
マクロパッケージを使うか、makebst といったツールを使える。

 フリーソフトウェア 
大半の参考文献管理ソフトウェアが 形式の入出力に対応している。以下のパッケージは を内部形式として用いている。

ソフトウェア名説明Bib-it 形式による書誌情報の管理用フロントエンドの Java 実装。スタイルファイル () の生成機能もある。(GPL)bib2xhtml ファイルを XHTML による一覧に変換。(GPL)BibDesk 形式による書誌情報管理用の macOS アプリケーション。(GPL) BibTex2Word2007 形式を Office Open XML Document 形式に変換する簡易 AWK スクリプト。(GPL)Bibtex4Word データベースから指定の書式で文献参照するための Microsoft Word マクロ。bibutils XML ベースの米国議会図書館による Metadata Object Description Schema (MODS) 形式を中間形式として、いくつかの書誌形式間の変換を行う。クロスプラットフォーム。(GPL)Bibwiki 参照情報を管理する Mediawiki 用拡張。いくつかの情報源（Aleph、Amazon など）からの入力に対応し、 形式での一覧作成を行える。Jabref 形式による書誌情報の管理用フロントエンドの Java 実装。PubMed や CiteSeer への検索機能もある。(GPL)KBibTeX 形式で参考文献情報を管理する KDE アプリケーション。Web 検索機能（Google、PubMed など）や RTF、XML、HTML への出力機能など。(GPL)Pybliographer 形式による書誌情報の管理用フロントエンドの Python 実装。(GPL)Referencer 形式で参考文献情報を管理する GNOME アプリケーション。自動メタデータ取得機能（DOI、Arxiv ID など）や、PDF プレビュー機能、タグ付け機能など。(GPL)RefTeX 形式に対応した Emacs 上の引用情報管理ソフトウェア。AUCTeX パッケージに対応。(GPL)Rtfbtx スタイルファイルから（ 出力ではなく、）RTF 出力を行う。(Pre- Project Public License)

 書誌情報データベース 
データベース名説明ACM ポータル リンクをクリックすると、エントリを取得可能。Amatex amazon.com の情報から エントリを自動生成。BibSonomy ベースのソーシャルブックマーク・論文情報管理ソフトウェア。CiteSeerオンラインの研究論文データベース。 形式の引用情報を生成している。CiteULikeコミュニティベースの論文情報データベース。入出力に 形式を使用。Google ScholarGoogle の学術論文検索システム。「Scholar Preferences」 のオプションを有効にすると、 形式での参考文献情報が入手できる。HubMed カスタマイズ可能な PubMed インタフェース。 出力機能附き。Lead2Amazon Amazon.comから エントリを自動生成する。MathSciNet米国数学会によるデータベース（登録者オプション）。 「Select alternative format」 オプションの選択で 形式を取得可能。TeXMed PubMed 用の インタフェース。The Collection of Computer Science Bibliographies 形式を内部形式として使用。検索結果や新規情報の追加も 形式で行われる。