余白の書きなぐり

aueweのブログ

Linux Mint の TeX Live で画像挿入するノウハウ

Linux MintTeX Live 2013 で画像を挿入したいのに、 コンパイルエラーが出て困った(そして解決した)という話。

latexファイルの書き方

[改訂第6版]LaTeX2e 美文書作成入門の120ページや151ページによると、 以下のようにして画像を挿入するのが良いらしい。

\documentclass{jsarticle}
\usepackage[dvipdfmx]{graphicx}
\begin{document}

\begin{figure}[htpd]
  \centering
  \includegraphics[width=5cm]{gazo.pdf}
  \caption{画像だよ}
  \label{fig:gazo}
\end{figure}

% \begin{figure}[H]にすれば、必ずその位置に画像を挿入
% \includegraphics[]{./figdir/gazo.pdf} も可能
% \includegraphics[]{../figdir/gazo.pdf} も可能
% \includegraphics[]{gazo.png} も可能。jpgも可能
% 今後は eps より pdf が推奨される
% ファイル名にアンダースコア_が含まれるとエラーになる

\end{document}

しかし上記ファイルのコンパイルを試みると、gazo.xbbが見つかりません 的なエラーメッセージが現れた。

$ platex hoge.latex
... いろいろ表示される ...
! LaTeX Error: File `gazo.xbb' not found.
Use -shell-escape option to generate automatically.

なんで画像入れるだけで怒られなあかんのや。

解決法: texmf.cnf を編集する

TeX Live 2013 のインストール時に作成される usr/share/texlive/texmf/web2c/texmf.cnf というファイルを編集し、 shell_escape_commands =extractbb を追加すれば、 コンパイルが通るようになった。

具体的には、texmf.cnf の547行目あたりに

%...
%
shell_escape_commands = \
bibtex,bibtex8,\
kpsewhich,\
makeindex,\
mpost,\
repstopdf,\

% we'd like to allow:
%...

という箇所を見つけたので、 以下のように extractbbを追加したらうまくいった。

%...
%
shell_escape_commands = \
bibtex,bibtex8,\
kpsewhich,\
makeindex,\
mpost,\
repstopdf,\
extractbb,\

% we'd like to allow:
%...

[追記 2014/01/10]

Windowsw32tex環境でも同様のコンパイルエラーが発生したので、 以下のように設定して問題を解決した。

....\w32tex\share\texmf-dist\web2c\texmf.cnf の485行目あたりの

% for being called from TeX.
% 
shell_escape_commands = \
bibtex,pbibtex,jbibtex,repstopdf,epspdf,extractbb,\
makeindex,mendex,mpost,pmpost,upmpost,kpsewhich

% we'd like to allow:

% for being called from TeX.
% 
shell_escape_commands = \
bibtex,pbibtex,jbibtex,repstopdf,epspdf,extractbb,\
makeindex,mendex,mpost,pmpost,upmpost,kpsewhich,\
extractbb

% we'd like to allow:

に変更すれば、コンパイルエラーが消えた。