TeXの参考文献管理といえばBibTeXが定番だが,最近ではBibLaTeX+biberというのがあって,BibTeXよりもカスタマイズがしやすいらしい.日本語ドキュメントがほとんどないので,適当に公式マニュアルとStack Exchangeあたりを参考にまとめてみた.
使い方
biberはTeX Live2013から同梱されているらしい.ないならば,CTANあたりかtlmgrを使って適当にインストールする.
使いたいTeXファイルのプリアンブルに以下のように書く.
\usepackage{biblatex} \addbibresource{sample.bib} % bibファイルを拡張子つきで書く
\addbibresourceは\bibliographyに対応すると思っておけばよいのだが,拡張子が必要なことに注意.
参考文献を表示したいところには
\printbibliography % 参考文献を表示
と書くだけ.そこまで難しくない.
カスタマイズ
BibTeXにくらべてBibLaTeXはカスタマイズが容易.たいていの変更はスタイルファイルを編集せずとも実行できる.
citeスタイル
デフォルトは[1],[2],... のようなnumericスタイルだが,[Smith13]のようなalphabeticスタイルも簡単に指定できる.
\usepackage[style=alphabetic]{biblatex} % eg., [Smith13]
natbibのようなauthoryearスタイルもある.
\usepackage[style=authoryear]{biblatex} % eg., (Smith et al., 2013)
参考文献リストのスタイル
論文タイトルにダブルクオーテーションをつけたい(取りたい)とか,巻数を太字にしたいとか,ある部分を斜体にしたい(ローマンにしたい)とか,色々なこともできる.\DeclareFieldFormatをプリアンブルに書く.
\DeclareFieldFormat*{volume}{\mkbibbold{#1}} % 巻数を太字にする \DeclareFieldFormat*{title}{\mkbibquote{#1\adddot}} % タイトルにダブルクオーテーションをつける \DeclareFieldFormat[article]{book}{\mkbibemph{#1}} % article要素のbookを斜体にする
\mkbibquoteはダブルクオーテーションでくくるコマンドで,\adddotはドットが必要ならドットを補うコマンド.なお,publisherとかはfieldではなくlist扱いらしいので,\DeclareListFormatを使う.*1
著者名とタイトルの間の区切り文字をコロンにしたい・コロンを取りたいなどもできる.
\renewcommand{\labelnamepunct}{\addcolon\addspace} % eg., J. Smith: "A great paper." \renewbibmacro{in:}{} % in: Some journal の "in:" を取る
In: は "in:" という名前のマクロが使われているので,それを空文字列に再定義している.*2
ジャーナル名の短縮
SIAM Journal of Computing -> SIAM J. Comput. みたいな短縮は,BibTeXだとbibファイルにaliasを登録しないとできなかったが,BibLaTeXだとTeXソースから可能.しかも正規表現まで使える.変換規則は\DeclareSourcemapで宣言する.
\DeclareSourcemap{ \maps[datatype=bibtex, overwrite=true]{ \map{ \step[fieldsource=journal, % journalエントリーを変更 match=\regexp{Journal\sof\sthe\sLondon\sMathematical\sSociety}, %正規表現 replace={J. London Math. Sci.}] % 正規表現にマッチしたらこれに置き換わる \step[fieldsource=journal, match=\regexp{SIAM\sJournal\sof\sDiscrete\sMathematics}, replace={SIAM J. Discrete Math.}] % 別のジャーナル用 } } }
\mapsが\mapをまとめるためのコマンド.\mapが1つの置換マクロで,\stepが1ステップの置換に相当する.\stepをたくさん書くと置換を次々に行う\mapを定義できる.