ebb と extractbb
最近、pTeX で画像を貼る必要があって、久しぶりに dvipdfmx で graphicx を使って \includegraphics で画像を貼り込もうとしたら、どうもおかしい。画像の位置や大きさが無茶苦茶になるのである。最初のうちは(TeX をなまじ使い慣れている弊害だが)ad hoc に誤魔化していたのだが、どうにも我慢し切れなくなった。
graphicx の \includegraphics では、画像の大きさを検出するのに、バウンディングボックスの情報を要求する。EPS ファイルとかならばそのファイル自体にバウンディングボックスの記述があるからいいのだが、それ以外の画像ファイルの場合は、別途この情報を用意しておく必要がある。従来だったら、
などとやってebb foo.jpg
しかし、どうもおかしい。foo.bb のバウンディングボックスを丸写しにしても、どうしても画像がとんでもない位置に行く。おっかしーなー、他にバウンディングボックスを生成するコマンドあったっけー、などと探しつつ、TeX document 内のバウンディングボックスの値をわざと消去してみたら、
ん?! LaTeX Error: File `foo.xbb' not found. Use -shell-escape option to generate automatically.
うーん、この
For each JPEG, PNG, or PDF file given on the command line, extractbb extracts the bounding box information and writes it into a file with extension .xbb, together with some header information. These files can then be used by dvipdfmx or other programs. For PDF files, the number of pages and the PDF version number are reported as well. The input filename extension may be in upper or lower case.
If called as ebb, the output is written in the ``bb'' format (and with extension .bb) as used by dvipdfm. Xbb may be defined as a synomym for extractbb on your system.
480×562ピクセルの JPEG ファイルに対して生成した bb ファイルと xbb ファイルの例を以下に示す:
foo.bb
%%Title: ./foo.jpg
%%Creator: extractbb 20090708
%%BoundingBox: 0 0 346 405
%%CreationDate: Thu Mar 10 18:46:22 2011
foo.xbbというわけで、バウンディングボックスの値が全然違うのである。そりゃあ画像がおかしくなるはずだ。というわけで、pTeXLive で graphicx + \includegraphics で EPS 以外の画像ファイルを貼り込む方は、ebb コマンドではなく extractbb コマンドを用いて xbb 形式のファイルを生成しないと、こういうことになるのでご注意を。
%%Title: ./foo.jpg
%%Creator: extractbb 20090708
%%BoundingBox: 0 0 98 115
%%HiResBoundingBox: 0.000000 0.000000 98.181818 114.954545
%%CreationDate: Thu Mar 10 18:27:38 2011