biber / biblatex

biblatex は、参考文献の体裁を LaTeX 側で組み立てる現代的なパッケージです。古典的な BibTeX が .bst という独特の言語で体裁を決めていたのに対し、biblatex はスタイルを LaTeX マクロで書き、Unicode をそのまま扱い、並べ替えや複数文献リストを細かく制御できます。データの読み込み・整列を担う相棒が biber。本文では \addbibresource.bib を読み込み、\parencite\textcite で引用し、\printbibliography でリストを出力します。

biblatex と biber とは

混同しやすいので、まず役割を分けて押さえます。biblatexLaTeX のパッケージ で、引用の表示と参考文献リストの体裁を受け持ちます。biber は biblatex 専用の 外部プログラム(バックエンド) で、.bib ファイルを読み、エントリを並べ替え・処理して、biblatex が組版できる形に渡します。BibTeX では .bst がやっていた仕事のうち、整形は biblatex(LaTeX 側)データの読み込みと整列は biber に分かれた、と考えると分かりやすいでしょう。

biblatex のパッケージ説明書は biber を「biblatex の既定のバックエンド」と明記しています。biber は us-ascii・8 ビット符号・UTF-8 を扱え、ロケールに応じた並べ替え(sortlocale)にも対応します。バックエンドは backend= オプションで選べ、古典的な bibtexbibtex8 も指定できますが、Unicode や柔軟な整列を活かすには **biber が事実上の標準** です。

最小の設定(読み込みと出力)

使い方は三段構えです。プリアンブルで **\usepackage[...]{biblatex} によりスタイルとバックエンドを選び、続けて \addbibresource{refs.bib}** で文献データベースを登録します。本文中では \cite 系の命令で引用し、参考文献を出したい位置に **\printbibliography** を置きます。

document.tex
\documentclass{article}
\usepackage[style=authoryear, backend=biber]{biblatex}
\addbibresource{refs.bib}   % preamble; the .bib extension IS included

\begin{document}

The theory was introduced by \textcite{shannon1948}.
Later work built on it~\parencite{knuth1984}.

\printbibliography

\end{document}

BibTeX との 最大の見た目の違いは二つ です。第一に、文献データベースの登録は本文末の \bibliography{refs} ではなく、**プリアンブルの \addbibresource{refs.bib} で行います。第二に、ここでは拡張子 .bib を必ず付けます**(BibTeX の \bibliography は拡張子を付けませんでした)。\addbibresource は複数回書けるので、ファイルを分けて管理できます。

スタイルは style= 一語で選びます。これは内部的に **bibliography 用スタイル(.bbx)と citation 用スタイル(.cbx)の両方を同時に読み込む** マスターオプションです。両者を別々に変えたいときだけ、bibstyle=(リストの体裁)と citestyle=(引用の体裁)を個別に指定します。.bib ファイル自体の書き方(@article などのエントリと引用鍵)は BibTeX と共通で、別ページで詳しく扱います。

引用命令

biblatex の強みのひとつが、意味ごとに使い分ける豊富な引用命令 です。素の \cite のほか、文脈に応じて次を選びます。すべての命令は \parencite[前注][後注]{鍵} のように 前注(「see」など)と後注(ページ番号など) を取り、鍵をカンマ区切りで複数渡すこともできます。

命令出す形使いどころ
\cite付加なしの素のラベル(数値・英数字式では角括弧)地の文に溶け込ませたい最小形
\parencite全体を丸括弧で囲む(数値・英数字式では角括弧)文末などの括弧書き引用
\textcite著者名+括弧付きラベル「Author (year)」主語など文の構成要素として引くとき
\footcite引用全体を脚注に入れ、末尾に終止符脚注で出典を示す体裁
\autociteスタイル既定の形(句読点も自動移動)スタイルに任せて全体を一括変更したいとき
\citeauthor / \citeyear著者名のみ/発行年のみ本文で著者や年だけに言及するとき

\textcite は「Knuth (1984) が示したように……」のように、引用を文の構成要素にしたいときに使います(著者を主語に置けます)。\parencite は逆に、文末でそっと括弧に入れたいとき。\autocite** は一段抽象度が高く、\parencite\footcite(数値式では \supercite)のどれとして振る舞うかを **autocite= オプション** で切り替えられます。autocite=plain なら \citeautocite=inline なら \parenciteautocite=footnote なら \footciteautocite=superscript なら上付きの形になります(実際には各スタイルが既定値を設定します)。

複数の文献をそれぞれ前注・後注付きで一度に引きたいときは、\parencites\autocites などの 複合引用(multicite) が使えます。\parencites[35]{key1}[88--120]{key2}{key3} のように、各文献に個別の後注を添えられます。

スタイルの体系

biblatex には汎用スタイルが標準で付属し、style= に名前を渡すだけで全体の見た目が変わります。代表的なものを挙げます。これらは引用の見た目(.cbx)とリストの見た目(.bbx)を一括で切り替えます。

スタイル引用の見た目特徴
numeric[1] のような番号既定。LaTeX 標準の番号式に相当。numeric-comp は [1–3] と範囲化
alphabetic[Jon95] のような英数字略号BibTeX の alpha 風。著者・年から短い符号を作る
authoryear「Doe 1995a」のような著者・年同一著者同年は a, b… を付加。-comp は著者をまとめる
authortitle著者+短縮タイトル人文系で多い。年を前面に出さない
verbose初出は完全な書誌、以降は短縮形脚注に詳細な出典を示す体裁向け

さらに、分野別の専用スタイルも豊富です。工学系の **ieee、心理学などの apa(biblatex-apa パッケージ)、自然科学の naturescience、シカゴ式の chicago**(biblatex-chicago)、法学の oscola、言語学などの mla といった具合に、.bst を書かずに学会指定の体裁へ寄せられます。これらは CTAN から追加できます。

体裁は読み込み時のオプションでさらに調整できます。**sorting=** で並び順を選び(nty=名前・タイトル・年が既定、nyt=名前・年・タイトル、ynt=年・名前・タイトル、none=引用順で整列しない、など)、**maxbibnames / maxcitenames で「ほか」とまとめる前に出す著者数を、backref=true** で各文献から引用箇所への逆参照を制御します。maxnames はこれらをまとめて設定するマスターオプションです。

ビルド手順(biber を使う)

ここが BibTeX 利用者の最初の関門です。biblatex の文献リストを正しく出すには、古典的には latex → biber → latex → latex の順に処理します。回数の理屈は BibTeX と同じで、本体と biber が補助ファイルを介して情報をやり取りするためですが、**呼ぶのは bibtex ではなく biber** である点が決定的に違います。pdflatex を使う場合も同様で、latexpdflatex に置き換えるだけです。

terminal
$ pdflatex document.tex   # 1st pass: records cited keys
$ biber    document        # NOT bibtex: reads .bcf + .bib, sorts/processes
$ pdflatex document.tex    # pulls in the processed data
$ pdflatex document.tex    # resolves all references

biber に渡すのは .tex ではなく ジョブ名(拡張子なし) です。biber は biblatex が書き出す制御ファイル .bcf(XML)を読み込みます。よくある失敗が、エディタや latexmk が **bibtex を呼ぶ設定のまま** になっていて「未定義引用」や文献空白になるケース。backend=biber を選んだら、ツール側も biber を呼ぶよう設定 してください。手作業の 4 回は煩雑なので、実務では **latexmk** に任せるのが定番です。

terminal
$ latexmk -pdf document.tex   # detects biblatex and runs biber automatically

latexmk は近年の版で biblatex を検出して 自動的に biber を呼ぶ ため、ふつうは一度の起動で必要な反復まで済みます(古い環境では .latexmkrc$pdf_mode などとともに biber を使う設定を書きます)。日本語の場合は upLaTeX 等で組み、DVI を経由して dvipdfmx で PDF にしますが、biber は Unicode 対応なので **sortlocale=ja_JP** を与えれば日本語の並べ替えにも対応できます(langid フィールドで和文・欧文の文献リストを分ける運用もよく使われます)。

なぜ BibTeX より biblatex か

biblatex/biber が新規プロジェクトで好まれる理由は、BibTeX の構造的な制約を正面から解消しているからです。具体的には次のとおりです。

  • 完全な Unicode 対応。 biber は UTF-8 をそのまま扱うため、多言語の著者名やアクセント記号で苦労しません。
  • スタイルが LaTeX で書ける。 体裁は LaTeX マクロと読み込みオプションで制御でき、.bst のスタック指向言語を書かずに済みます。
  • 柔軟な並べ替えとローカライズ。 sorting=sortlocale で並び順や言語を細かく指定できます。
  • 複数の文献リスト。 \printbibliography[type=...][keyword=...] で、種類別・主題別にリストを分割できます。
  • 豊富な引用命令。 \textcite\parencite\autocite などで、意味に応じた引用を一貫して書けます。

最後の「複数リスト」は実務で効きます。たとえば一次資料と二次文献を分ける、あるいは論文種別ごとにまとめるといったことが、データに手を触れずに実現できます。\printbibliography の絞り込みには type=(特定のエントリ種類だけ)・nottype=(その種類を除く)・keyword= / notkeyword=.bibkeywords フィールドで絞る)・heading= / title=(見出しの指定)などがあります。

document.tex
\printbibliography[type=article, title={Journal articles}]
\printbibliography[type=book,    title={Books}]
\printbibliography[keyword=primary, title={Primary sources}]

なお、BibTeX 時代の natbib に慣れているなら、\usepackage[natbib=true]{biblatex}\citep\citet などの natbib 風コマンドを別名として使えます。移行時の橋渡しに便利です。