biblatex は、参考文献の体裁を LaTeX 側で組み立てる現代的なパッケージです。古典的な BibTeX が .bst という独特の言語で体裁を決めていたのに対し、biblatex はスタイルを LaTeX マクロで書き、Unicode をそのまま扱い、並べ替えや複数文献リストを細かく制御できます。データの読み込み・整列を担う相棒が biber。本文では \addbibresource で .bib を読み込み、\parencite や \textcite で引用し、\printbibliography でリストを出力します。
biblatex と biber とは
混同しやすいので、まず役割を分けて押さえます。biblatex は LaTeX のパッケージ で、引用の表示と参考文献リストの体裁を受け持ちます。biber は biblatex 専用の 外部プログラム(バックエンド) で、.bib ファイルを読み、エントリを並べ替え・処理して、biblatex が組版できる形に渡します。BibTeX では .bst がやっていた仕事のうち、整形は biblatex(LaTeX 側)、データの読み込みと整列は biber に分かれた、と考えると分かりやすいでしょう。
biblatex のパッケージ説明書は biber を「biblatex の既定のバックエンド」と明記しています。biber は us-ascii・8 ビット符号・UTF-8 を扱え、ロケールに応じた並べ替え(sortlocale)にも対応します。バックエンドは backend= オプションで選べ、古典的な bibtex/bibtex8 も指定できますが、Unicode や柔軟な整列を活かすには **biber が事実上の標準** です。
最小の設定(読み込みと出力)
使い方は三段構えです。プリアンブルで **\usepackage[...]{biblatex} によりスタイルとバックエンドを選び、続けて \addbibresource{refs.bib}** で文献データベースを登録します。本文中では \cite 系の命令で引用し、参考文献を出したい位置に **\printbibliography** を置きます。
\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 なら \cite、autocite=inline なら \parencite、autocite=footnote なら \footcite、autocite=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 パッケージ)、自然科学の nature や science、シカゴ式の 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 を使う場合も同様で、latex を pdflatex に置き換えるだけです。
$ 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 referencesbiber に渡すのは .tex ではなく ジョブ名(拡張子なし) です。biber は biblatex が書き出す制御ファイル .bcf(XML)を読み込みます。よくある失敗が、エディタや latexmk が **bibtex を呼ぶ設定のまま** になっていて「未定義引用」や文献空白になるケース。backend=biber を選んだら、ツール側も biber を呼ぶよう設定 してください。手作業の 4 回は煩雑なので、実務では **latexmk** に任せるのが定番です。
$ latexmk -pdf document.tex # detects biblatex and runs biber automaticallylatexmk は近年の版で 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=(.bib の keywords フィールドで絞る)・heading= / title=(見出しの指定)などがあります。
\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 風コマンドを別名として使えます。移行時の橋渡しに便利です。