BibLaTeX+Biberの始め方

/ LaTeX

LaTeXの文献管理でBibTeXを使っている人がBibLaTeX+Biberを始める方法

はじめに

TeXとLaTeXが別物であるようにBibLaTeXもBibTeXとは別物です。前者の2つを区別するとほとんどの人はTeXではなくLaTeXを使っているはずです。BibTeXとBibLaTeXの差はその差に匹敵するほどなのでBibTeXではなくBibLaTeXを使わない理由はありません。使い方の慣れを除けばBibLaTeXはBibTeXの上位互換といっていいです。BibTeXの.bibファイルはそのまま使えるので安心してください。

正確にはBibLaTeXとBibTeXは相反するものでは無く前者はLaTeXのパッケージなのでBibLaTeXからBibTeXを呼び出すこともできます。.bibを処理しているBibTeXの代わりとなるものはBiberです。しかし実際はBibLaTeXとBiberはお互いを前提としているのでセットで使うのが普通です。BibLaTeX+Biberで出来ることは以下です。

  • 完全なUnicodeのサポート
  • 簡単なラベルのコントロール(難解なbstは必要ありません!)
  • 複数の異なる順番にソートされた文献リスト
  • 高度なデータモデルによるあいまいさ回避
  • hyperrefやnatbibなどに対応
  • arXivのフィールドに元から対応。専用オプションあり

これらは全てではありません。完全なリストはCTANのBibLaTeXのページに載っています。これらはおそらくBibTeXでは簡単にできないことでしょう。

クイックスタート

パッケージが無ければ何も始まりません。TeXLiveを使っているならtlmgrからbiblatexとbiberをインストールします。

tlmgr install biblatex
tlmgr install biber

このほかにも必要なパッケージはあります。etex, etoolbox, logreq, keyval, ifthen, urlです。しかしそれらはエラーが出たときにインストールすればよいでしょう。

BibTeXによる文献管理を行っていた文章をBibLaTeX+Biberに以降するために既存の.texに加えるべき変更をリストアップしました。いままでの書き方はコメントアウトで残してあります。

\documentclass[uplatex]{jsarticle}

\usepackage{biblatex}
\addbibresource{sample.bib}

\begin{document}

私は\cite{elements}を引用する。

%\bibliographystyle{unsrt}
%\bibliography{sample}

\printbibliography

\end{document}

変更すべきところはこれだけです。プリアンブルでパッケージを読み込んでこれまでBibTeXで使っていた.bibファイルを\addbibresourceコマンドに拡張子付きで指定します。いくつかのファイルに分かれていても問題ありません。その数だけ\addbibresourceを呼び出すだけです。いままで\bibliographyを書いていた箇所では代わりに\printbibliographyコマンドを呼び出します。

いまどき.texをコマンドでPDF化する人などいないだろうが、このファイルがsample.texという名前だったとすると実行すべきコマンドは以下の通り。といってもBibTeXを使ったことがあるなら変わるのはbibtexがbiberになることだけ。

uplatex sample.tex
biber sample
uplatex sample.tex
uplatex sample.tex
dvipdfmx sample.dvi

簡単でしょう?TeXのコンパイルでこういう風に何回か呼び出して参照を解決しないといけないのは周知のことであろうがTeXstudioを使っているなら気にする必要はなし。「TeXstudioの設定」「ビルド」から「既定の文献作成ツール」を「txs:///biber」に変更するだけ。TeXstudioより後からbiberをインストールしたなら「コマンド」から「biber」の項目に「biber.exe %」を入力する必要があるかもしれない。latexmkでも大差はない。

ここまで成功すればあなたは既にBibTeXからBibLaTeX+Biberへの移行が完了しています。あとは好きなようにスタイルをいじるだけ。BibTeXのときと違ってひたすら.bstを探したり、無駄に難解な構文をしている.bstファイルの書き方を勉強する必要は全くありません。

文献リストの見出し

sample.bibの内容を例として示す。

@book{elements,
  title={The Elements of Statistical Learning},
  subtitle={Data Mining, Inference, and Prediction},
  author={Trevor Hastie and Robert Tibshirani and Jerome Friedman},
  year={2009},
  publisher={Springer-Verlag New York},
  edition={2},
  issn={0172-7397},
  doi={10.1007/978-0-387-84858-7},
  series={Springer Series in Statistics}
}

メモ .bibにおける著者名authorのフィールドは何人であってもandで区切るようにする。biberではコンマは全て無視されてandで1人1人の名前に分解して高度なあいまいさ回避などの処理に用いられる。出力時は整形される(下図参照)。

このときのPDFの出力は次のようになる。 example output

BibLaTeXのデフォルトは@bookなどの文献タイプと与えた情報からそれなりによい出力を行ってくれる。最初にクラスファイル「jsarticle」のとき文献リストの見出しは「参考文献」であったところが「References」で上書きされてしまっているのでこれを手動で元に戻す。単に\printbibliographyコマンドだった箇所を次のように変更する。

\renewcommand\refname{参考文献}
\defbibheading{bunken}[\refname]{\section*{#1}}
%\addcontentsline{toc}{section}{\refname}
\printbibliography[heading=bunken]

bunkenというキーワードは何でも良い。これで文献リストの見出しが「参考文献」に戻ったはずだ。コメントアウトしている箇所は目次に参考文献を加える場合に解除するとよいだろう。

文献リストのフォント

Beamerの文献リストなどでフォントサイズを変更したい場合、BibTeXの場合は直前に\small\footnotesizeを書けばそれが文献リストにそのまま反映されたがBibLaTeXでは反映されないようだ。この場合は次のようにする。

\renewcommand\bibfont{\footnotesize}
...
\printbibliography[heading=bunken]

これで文献リストのフォントサイズが小さくなる。\beamertemplatetextbibitemsなどは関係が無くなっているようだ。

スタイルの指定

BibLaTeXの引用スタイルや文献リストの並び順その他は基本的にパッケージオプションによって指定する。複数ある場合はコンマで区切って指定する。

\usepackage[style=numeric]{biblatex}

この場合は\citeした箇所に文献リストの番号を印字するデフォルトの動作となる。そのほかのスタイルと出力例を表にまとめておく。

スタイル 出力例
style=numeric 私は [1] を引用する。 デフォルト
style=alphabetic 私は [HTF09] を引用する。 alpha.bstと等価
style=authoryear 私は (Hastie, Tibshirani, and Friedman 2009) を引用する。 \parenciteを使用。
style=authortitle 私は (Hastie, Tibshirani, and Friedman, The Elements of Statistical Learning) を引用する。 \parenciteを使用。
style=verbose 私は <文献リストそのまま> を引用する。 長い。
style=draft 私は elements を引用する。 bibのキー

スタイルはbibstyle=numericcitestyle=numericなどで文献リストと引用箇所を別々に指定できる。普通は同じスタイルを指定しておけばよいがcitestyleには指定できるオプションが多い。パッケージドキュメントを参照。.bstと同じように.bbxファイルや.cbxファイルをここでスタイル名の代わりに指定することもできる。決まった引用や文献リストのスタイルがあるなら.bbxを要求しよう。

文献リストのソート

\usepackage[style=numeric,sorting=nty]{biblatex}
ソートの種類 意味
sorting=none 文献リストをソートしない(引用された順)。 unsrt.bstと等価
sorting=nty 文献リストを名前、タイトル、年の順にソートする。
sorting=nyt 文献リストを名前、年、タイトルの順にソートする。
sorting=nyvt 文献リストを名前、年、ボリューム、タイトルの順にソートする。
sorting=anyt 文献リストをキー、名前、年、タイトルの順にソートする。 alphabeticのとき
sorting=anyvt 文献リストをキー、名前、年、ボリューム、タイトルの順にソートする。 alphabeticのとき
sorting=ynt 文献リストを年、名前、タイトルの順にソートする。
sorting=ydnt 文献リストを年の降順、名前、タイトルの順にソートする。
sorting=debug bibファイルの順番にソートする。 デバッグ用

ソートの種類を変えるためだけに無駄に難解な.bstを編集したり探してくることは無いということを繰り返しておく。

不要な項目を非表示

オプション 意味
isbn=false isbn、issn、isrnフィールドの情報を非表示
url=false urlフィールドの情報を非表示
doi=false doiフィールドの情報を非表示
eprint=false eprintフィールドの情報を非表示

これらのオプションはデフォルトでtrueになっているので非表示にしたいとき以外は指定する必要はない。

ハイパーリンク

\usepackage[dvipdfmx]{hyperref}
\usepackage[hyperref=false]{biblatex}

デフォルトではhyperref=trueとなっている。hyperrefを他のところで使うが引用キーには適用させたくない場合にfalseを明示的にしていする。

arXivへのリンク

\usepackage[arxiv=abs]{biblatex}
オプション 意味
arxiv=abs ArXivの文献に概要ページへのリンクを貼る(デフォルト)
arxiv=ps ArXivの文献にPS形式の本文へのリンクを貼る
arxiv=pdf ArXivの文献にPDF形式の本文へのリンクを貼る

bstファイルをarXivのページから拾ってきてプロジェクトのフォルダに配置する必要はない。BibLaTeXはarXivに対応していて専用オプションがあるだけあって、その文献リストのデフォルトの出力も多くの場合満足のいくものになっている。

これら以外にも全てのカスタマイズはパッケージドキュメントから見つけられる。

リンク