Posted at

LaTeX Beamer + bibliography

More than 5 years have passed since last update.

Beamer で bibliography を使おうとしたら、色々とつまずいたので覚書。


dvipdfm(x) を使っていると "`beamericonarticle.xbb' not found" といわれる

dvipdfmx (or dvipdfm) を使っている場合、\thebibliography のところで次のようなエラーが出ます。

      ./slide.bbl:1: LaTeX Error: File `beamericonarticle.xbb' not found. Use -shell-

escape option to generate automatically.
:
:
l.1 \begin{thebibliography}{1}

?
./slide.bbl:1: LaTeX Error: Cannot determine size of graphic in beamericonartic
le.xbb (no BoundingBox).
:
:
Transcript written on slide.log.
*** Errors detected while running LaTeX on slide.tex:
./slide.bbl:1: LaTeX Error: File `beamericonarticle.xbb' not found. Use -shell-
./slide.bbl:1: LaTeX Error: Cannot determine size of graphic in beamericonartic
./slide.bbl:1: Emergency stop.

見ての通り、beamericonarticle.xbb が存在しないため怒られています。実は各参考文献の頭に文献アイコン beamericonarticle.pdf が自動で埋め込まれるのですが、そのバウンディング・ボックスの情報を保存する .xbb ファイルがデフォルトでは用意されていません。(次の図は、正しくアイコンを埋め込めた場合のスクリーンショットです。)

ss-beamericon-20131222.png

これを直すには、.xbb ファイル(もしくは .bb ファイル)を用意してやります。Debian の場合であれば、問題の PDF ファイルは /usr/share/texmf/tex/latex/beamer/base/art/beamericonbook.20.pdf にあります。

uda@host:~/slide $ extractbb -O /usr/share/texmf/tex/latex/beamer/base/art/beamericonbook.20.pdf > beamericonbook.xbb

-O オプションを使って tex ファイルと同じディレクトリに .xbb ファイルを書き出しています。書き込み権限があれば、直接 /usr/share/texmf/tex/latex/beamer/base/art/ 以下に .xbb ファイルを出力することもできます。

# ebb beamericonbook.20.pdf としてできた beamericonbook.bb ファイルの拡張子を変更して beamericonbook.xbb にすればいいなんて言っている人もいましたが…… ちゃんと dvipdfmx の場合は extractbb で作った .xbb ファイルを、dvipdfm の場合は ebb で作った .bb ファイルを使った方が良いでしょう。


\cite{...} の行で "Undefined control sequence" といわれる

次に、\cite したときに出るエラーです。

./section8.tex:7: Undefined control sequence.

\beamer@sort #1#2->\long \def \beamer@todo
{#1}\def \beamer@ospec {}\beamer@...
l.7 \cite{book:hoge:fuga}
,
?

このエラーは \usepackage{cite} との競合(?)により出るようです。cite パッケージを使わないようにすると解消します。