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の出力は次のようになる。
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=numeric
、citestyle=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に対応していて専用オプションがあるだけあって、その文献リストのデフォルトの出力も多くの場合満足のいくものになっている。
これら以外にも全てのカスタマイズはパッケージドキュメントから見つけられる。