Thursday, June 14, 2007

latexにpdfの図を張る

スポンサードリンク

しらなかったけど、いまどき図はEPSなんかにしなくてもpdfでも張れるのね。ただ、pdfの図だと最終的にpsにはできない。図は変換するわけじゃなくて、そのままはめ込んでるだけだからね。psの文書にepsの図ならOKだけど、pdfは張れないので不可。最終的にpdfにするのならOK。私の用途ではpdfにしかしないのでこれは問題なし。

あとpdfはepsとちがってバウンダリーボックス(図の大きさを示すもの)がないので、これを生成しないといけない。dvipdfm(またはdvipdfmx)に付属のebbっていうコマンドで.bbファイルを生成しておけばよいです。figure1.pdfにebbをかけると、figure1.bbっていうファイルができるので、figure1.pdfと同じ場所においておけばいいです。そして、図の張り方は下のようにします。

...
\usepackage[dvipdfm]{graphicx}
...
\begin{figure}
\begin{center}
\includegraphics[scale=1.0]{design-production-sales-divided.pdf}
\caption{Information Are Divided By Each Sections.}
\label{devided-info}
\end{center}
\end{figure}

簡単だねー。でさ、最近、図はomni graffleっていうのでつくってるんですよ。それで作った図をpdfで出力して、張ってみた。platexかけたあと、dviにdvipdfmxをかけると以下のようなエラーが。

** WARNING ** Invalid object label: 53 0
** WARNING ** Could not find a name object.
** WARNING ** Could not find a key in dictionary object.
** WARNING ** Couldn't read xref trailer. Is this a correct PDF file?
** WARNING ** No trailer.
** WARNING ** Trailer not found! Corrupt PDF file?
** WARNING ** pdf: image inclusion failed for "design-production-sales-divided.pdf".
** WARNING ** Failed to read image file: design-production-sales-divided.pdf
** WARNING ** Interpreting special command PSfile (ps:) failed.
** WARNING ** >> at page="25" position="(100.892, 249.382)" (in PDF)
** WARNING ** >> xxx "PSfile="design-production-sales-divided.pdf" llx=0 lly=0 urx=42"

いろいろしらべてみると、どうもdvipdfmxのバグらしい。dvipdfmxの2007年5月版をコンパイルしたらなおりました。古いのを使っているひとは、アップデートしましょう。


No comments: