文献データベースと並び

.bib ファイルは、文献情報をためておくテキストのデータベースです。一件ずつを エントリ として書き、種類(@article など)とフィールド(authortitle など)で素のデータを表します。体裁はここには書きません。BibTeX のページが「どう動かすか」を扱うのに対し、このページは .bib 自体の構造——エントリの種類、フィールドの書き方、そして文献リストがどんな順に並ぶか——を詳しく見ていきます。

.bib の最大の利点は、同じデータを使い回せることです。一度きちんと書けば、複数の論文で共有でき、投稿先が変わってもデータには手を触れず、スタイルだけ差し替えれば体裁が変わります。ビルド手順(latex → bibtex → latex → latex)や .bst スタイルの選び方は [BibTeX のページ](/learn/bibliography/bibtex-page) で扱うので、ここでは触れません。

エントリの構文

一件のエントリは、@ に続けて 種類 を書き、波括弧の中に 引用キー とそれに続く フィールド を並べた形をしています。骨格はこうです。

references.bib
@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 を使い、howpublishednote で補います。

モダンな 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} のように波括弧でひとまとめにします)。

references.bib
@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)」に変換するため、NASATeX のような固有名詞・頭字語が NasaTex と崩されてしまいます。守りたい部分を もう一段の波括弧 で囲むと——title = {On the {NASA} Mission to {TeX}}——その範囲は変換から保護されます。

@string マクロとコメント

同じ値を何度も書くなら、@stringマクロ を定義しておけます。定義した名前は、値の位置で(波括弧で囲まずに)使い、# で文字列と連結できます。誌名の略記・正式名の切り替えなどに便利です。

references.bib
@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)が固定します。** 利用者が指定する余地はほとんどなく、スタイルを選ぶことが並びを選ぶことに等しいのです。代表例として plainalpha著者名のアルファベット順unsrt本文で引用した順ieeetr のような工学系スタイルも引用順を採ります。同じデータでも、\bibliographystyle{plain} から \bibliographystyle{unsrt} に変えるだけで並びが変わります。日本語では pbibtexupbibtex がコードポイント順に並べ替えます(詳細は [BibTeX のページ](/learn/bibliography/bibtex-page))。

**biblatex では、並びを sorting= オプションで明示的に制御します。** スタイルとは独立に、\usepackage[sorting=nyt]{biblatex} のように指定するだけです。並べ替えキーは文字の組み合わせで表します——n=名前(name)、y=年(year)、t=表題(title)。下表が代表的な指定です。

指定キーの順意味
ntyname → title → year名前・表題・年(biblatex の既定)
nytname → year → title名前・年・表題(著者‑年式で好まれる)
yntyear → name → title年・名前・表題(時系列順)
ydntyear (降順) → name → title新しい年から古い年へ
none(並べ替えなし)本文で引用した順(unsrt 相当)

要するに、引用順のままにしたいなら BibTeX では unsrt スタイル、biblatex では sorting=none を選びます。アルファベット順なら BibTeX では plain、biblatex では既定の nty(または著者‑年なら nyt)です。どちらを使うにせよ、.bib のエントリを並べ替える必要は一切ありません——順序の決定は完全に処理側の仕事です。