.bib ファイルは、文献情報をためておくテキストのデータベースです。一件ずつを エントリ として書き、種類(@article など)とフィールド(author・title など)で素のデータを表します。体裁はここには書きません。BibTeX のページが「どう動かすか」を扱うのに対し、このページは .bib 自体の構造——エントリの種類、フィールドの書き方、そして文献リストがどんな順に並ぶか——を詳しく見ていきます。
.bib の最大の利点は、同じデータを使い回せることです。一度きちんと書けば、複数の論文で共有でき、投稿先が変わってもデータには手を触れず、スタイルだけ差し替えれば体裁が変わります。ビルド手順(latex → bibtex → latex → latex)や .bst スタイルの選び方は [BibTeX のページ](/learn/bibliography/bibtex-page) で扱うので、ここでは触れません。
エントリの構文
一件のエントリは、@ に続けて 種類 を書き、波括弧の中に 引用キー とそれに続く フィールド を並べた形をしています。骨格はこうです。
@article{shannon1948,
author = {Shannon, Claude E.},
title = {A Mathematical Theory of Communication},
journal = {Bell System Technical Journal},
volume = {27},
number = {3},
pages = {379--423},
year = {1948}
}波括弧を開けた直後の shannon1948 が 引用キー——本文の \cite{shannon1948} と一字一句一致させる、自分で決める識別子です(著者姓+年 がよく使われますが、ファイル内で一意でありさえすれば自由です)。以降は フィールド名 = {値} を **, で区切って** 並べます。最後のフィールドの後ろの , は付けても付けなくても構いません。値は波括弧 { } か二重引用符 " " で囲み、year = 1948 のように数字なら囲みを省けます。フィールド名・種類名は 大文字小文字を区別しません(@Article でも @article でも同じ)。
エントリの種類
種類は、その文献が 何であるか——雑誌論文か、書籍か、会議録の発表か——を表します。種類を決めると、スタイルがどのフィールドをどの順で組むかが決まります。下の表が、古典的な BibTeX で使える標準の種類です。各種類には 必須フィールド(欠けると警告が出る)と 任意フィールド があり、その対応はスタイル(.bst)が定めます。
| 種類 | 用途 | 主な必須フィールド |
|---|---|---|
@article | 雑誌・紀要などの論文 | author, title, journal, year |
@book | 出版社の明確な書籍 | author か editor, title, publisher, year |
@inproceedings | 会議録(proceedings)所収の発表論文 | author, title, booktitle, year |
@conference | @inproceedings の別名(Scribe 互換) | (@inproceedings に同じ) |
@incollection | 編著書の中の、独立した題を持つ一章 | author, title, booktitle, publisher, year |
@inbook | 書籍の一部(章・節やページ範囲) | author/editor, title, chapter か pages, publisher, year |
@phdthesis | 博士論文 | author, title, school, year |
@mastersthesis | 修士論文 | author, title, school, year |
@techreport | 研究機関などのテクニカルレポート | author, title, institution, year |
@manual | ソフト・機器などのマニュアル | title(最低限) |
@unpublished | 未公刊の原稿・草稿 | author, title, note |
@misc | 上記に当てはまらない雑多なもの | 必須なし(要素は note などで補う) |
使い分けで迷いやすいのが二組です。**@inbook と @incollection は、前者が「ある本の一部分(自分の本の第 3 章など)」、後者が「編者が編んだ論文集の中の、別著者による独立した一編」を指します。@inproceedings と @conference** は機能的に同一で、@conference は古い Scribe 互換の別名にすぎません。学位論文は学位で @phdthesis/@mastersthesis を選びます。当てはまる種類が無ければ @misc を使い、howpublished や note で補います。
モダンな biblatex はこれをほぼ包含したうえで、Web 資料のための **@online**(別名 @electronic)、汎用の **@report**(type フィールドで「technical report」などを指定)、学位を問わない **@thesis**(同じく type で種別を書く)などを加えます。@online は arXiv やプレプリントの記述に向き、後述の eprint 系フィールドと組み合わせます。これら新しい種類は biber/biblatex を前提とし、古典的な bibtex + .bst では解釈できないことがある点に注意してください。
フィールドの書き方
フィールドは文献の属性を表す 名前 = {値} の組です。種類を問わず頻出するものを挙げます。
author/editor** — 著者・編者。複数人の書き方は次節で詳述します。title** — 表題。論文名・書名・章題など。journal/booktitle** — 掲載誌名(@article)/所収の書名・会議録名(@inproceedings・@incollection)。year/date** — 発行年。古典 BibTeX はyear(+任意のmonth)、biblatex はdate = {2026-05-01}のような ISO 形式を推奨(年だけdate = {2026}も可)。volume/number** — 巻/号。pages = {379--423}は 二重ハイフン で範囲を表します(出力は en ダッシュ「–」)。publisher/institution/school** — 出版社/(レポートの)発行機関/(学位論文の)大学。doi/url** — DOI(10.…の本体のみ)と URL。スタイルがリンクとして出力します。eprint/eprinttype/eprintclass** — biblatex のプレプリント用。arXiv ならeprint = {2405.00001}、eprinttype = {arxiv}(旧称archivePrefix)、eprintclass(旧称primaryClass)に分野を書きます。note/howpublished** — 補足の自由記述/「どう公開されたか」(@miscで URL 等を入れる場所)。
どのフィールドが 必須か任意かは種類ごとに異なり、その判断はスタイルが下します。必須が欠けると BibTeX は警告を出し、未知のフィールドは(多くのスタイルで)黙って無視されます。だから取り込み元のメタデータが余分なフィールドを持っていても、害にはなりません。
著者名と波括弧の保護
author は最も誤りやすいフィールドです。複数の著者は **and で区切ります**(カンマではありません)。各人の名前は二通りに書けます。First Last の自然順(Claude E. Shannon)か、Last, First の姓・名順(Shannon, Claude E.)です。姓が複数語だったり「von/van der」のような 接頭辞 を含むときは後者が安全で、van der Plas, Geert と書けば「van der」が姓側だと明示できます(自然順なら Geert {Van der Plas} のように波括弧でひとまとめにします)。
@book{example2026,
author = {Knuth, Donald E. and Lamport, Leslie},
editor = {{The TeX Users Group}},
title = {On the {NASA} Mission to {TeX}},
publisher = {Addison-Wesley},
year = {2026}
}著者が多すぎて全員は書きたくないときは、末尾を **and others** とします。スタイルがこれを「ほか」や「et al.」に変えます。なお、組織や団体を著者にするとき(The TeX Users Group)は、and を人名の区切りと誤解されないよう **二重の波括弧 {{...}}** で包むのが定石です。
もう一つ実用上重要なのが 大文字の保護 です。多くのスタイルは表題を「文頭だけ大文字(sentence case)」に変換するため、NASA や TeX のような固有名詞・頭字語が Nasa・Tex と崩されてしまいます。守りたい部分を もう一段の波括弧 で囲むと——title = {On the {NASA} Mission to {TeX}}——その範囲は変換から保護されます。
@string マクロとコメント
同じ値を何度も書くなら、@string で マクロ を定義しておけます。定義した名前は、値の位置で(波括弧で囲まずに)使い、# で文字列と連結できます。誌名の略記・正式名の切り替えなどに便利です。
@string{bstj = {Bell System Technical Journal}}
@article{shannon1948,
author = {Shannon, Claude E.},
title = {A Mathematical Theory of Communication},
journal = bstj,
year = {1948}
}コメントについては、よくある誤解を解いておきます。**.bib では % はコメント記号ではありません**(LaTeX 本文とは違います)。古典的な bibtex は **エントリ(@...{})の外にある文字をすべて無視する ので、メモはエントリの外に普通の文として置けば実害なく残せます。ただし biber(biblatex のバックエンド)はより厳格で、エントリ外の素のテキストに警告を出します。移植性の高い書き方は @comment{ ... }** で、ここに書いた内容はすべて読み飛ばされます。
文献リストの並び順
リストに出る順番は、.bib に書いた順とは無関係です。決め方は仕組みによって二通りに分かれます。
**古典的な BibTeX では、並び順はスタイル(.bst)が固定します。** 利用者が指定する余地はほとんどなく、スタイルを選ぶことが並びを選ぶことに等しいのです。代表例として plain と alpha は 著者名のアルファベット順、unsrt は 本文で引用した順、ieeetr のような工学系スタイルも引用順を採ります。同じデータでも、\bibliographystyle{plain} から \bibliographystyle{unsrt} に変えるだけで並びが変わります。日本語では pbibtex/upbibtex がコードポイント順に並べ替えます(詳細は [BibTeX のページ](/learn/bibliography/bibtex-page))。
**biblatex では、並びを sorting= オプションで明示的に制御します。** スタイルとは独立に、\usepackage[sorting=nyt]{biblatex} のように指定するだけです。並べ替えキーは文字の組み合わせで表します——n=名前(name)、y=年(year)、t=表題(title)。下表が代表的な指定です。
| 指定 | キーの順 | 意味 |
|---|---|---|
nty | name → title → year | 名前・表題・年(biblatex の既定) |
nyt | name → year → title | 名前・年・表題(著者‑年式で好まれる) |
ynt | year → name → title | 年・名前・表題(時系列順) |
ydnt | year (降順) → name → title | 新しい年から古い年へ |
none | (並べ替えなし) | 本文で引用した順(unsrt 相当) |
要するに、引用順のままにしたいなら BibTeX では unsrt スタイル、biblatex では sorting=none を選びます。アルファベット順なら BibTeX では plain、biblatex では既定の nty(または著者‑年なら nyt)です。どちらを使うにせよ、.bib のエントリを並べ替える必要は一切ありません——順序の決定は完全に処理側の仕事です。