dvipdfmxで日本語EPSを含んだDVIファイルを変換する

Ubuntu 10.10で日本語を含んだEPSファイルをTeXで図として挿入し、platexでコンパイルして作成されたDVIファイルをdvipdfmxに掛けると、通らないor文字化けが起こりました。
その解決方法をメモしておきます。

例えば、こんな感じのエラーが出ます。

hayato@hayato-U30Jc ~ % dvipdfmx -f hiragino.map test.dvi
test.dvi -> test.pdf
[1Segmentation fault

** WARNING ** Filtering file via command -->gs -q -dNOPAUSE -dBATCH -sPAPERSIZE=a0 -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dAutoFilterGrayImages=false -dGrayImageFilter=/FlateEncode -dAutoFilterColorImages=false -dColorImageFilter=/FlateEncode -sOutputFile=/tmp/dvipdfmx.XyHs71K ./data.eps -c quit<-- failed.
** WARNING ** Image format conversion for "./data.eps" failed...
** ERROR ** pdf_ref_obj(): passed invalid object.

Output file removed.

Segmentation faultで落ちてますねw

ちなみにEPSファイルが含まれている場合、dvipdfmxはEPSファイルをghostscriptに掛けて変換などを行っているようです。(gsというコマンドはghostscriptのこと)
その際、どうやらdvipdfmxのデフォルトの設定だと日本語フォントを埋め込もうとする(?)ようです。

下記のサイトを参考にオプションを書き換えてみました。(12-5)
http://www.geocities.jp/tanaken_1018/tex/dvipdfmx.html

こちらのサイトではWindows上での話のようなので、読み替えて書いていきます。

dvipdfmx.cfgを編集する
上記のサイトによると、dvipdfmxの設定を書き換えるだけで良いみたいです。


dvipdfmx.cfgの位置は

/etc/texmf/dvipdfmx/dvipdfmx.cfg

です。

下記の行に似た行を、%でコメントアウトし、下記の行を挿入します。

D "gs -q -dSAFER -dNOPAUSE -dBATCH -sPAPERSIZE=a0 -sDEVICE=pdfwrite -dCompatibilityLevel=1.3 -dAutoFilterGrayImages=false -dAutoFilterColorImages=false -dGrayImageFilter=/FlateEncode -dColorImageFilter=/FlateEncode -dUseFlateCompression=true -sOutputFile=%o -c .setpdfwrite '<</NeverEmbed [/Courier /Courier-Bold /Courier-Oblique /Courier-BoldOblique /Helvetica /Helvetica-Bold /Helvetica-Oblique /Helvetica-BoldOblique /Times-Roman /Times-Bold /Times-Italic /Times-BoldItalic /Symbol /ZapfDingbats /Ryumin-Light /GothicBBB-Medium] >> setdistillerparams' -f %i -c quit"

これで、dvipdfmxで変換してみましょう。

hayato@hayato-U30Jc ~ % dvipdfmx test.dvi
test.dvi -> test.pdf
[1]
66176 bytes written

OKですね!

これを解決するのにかなり時間が掛かってしまいました。。。
ghostscript周りが怪しいとは疑っていたのですが、dvipdfmx側はあまり疑っていませんでした。
日本語などといった言語を扱うときは、大変ですね。特に、TeXやghostscript周りでは。。。

これでレポートの続きができます!


3 Responses

  1. yayugu 2011年4月23日 / 6:47 AM

    俺は英語しか使ってないな

    それだとTeXのコンパイルの度にeps->pdfへの変換が起こってdvipdfmxが遅いので
    何らかの方法でpdf+bbに先に変換しておいてTeXの文章からはそっちを参照することをおすすめします。

  2. Falcon 2011年4月24日 / 9:05 AM

    > yayuguさん
    英語を使って書くのがベストなのかもしれませんねw

    一度PDFの方法も行ないましたが,bbファイルが少々面倒くさいですね。。。
    ebbを叩くだけですがw
    その方法でも試してみたいと思います。

  3. Kikuk 2011年11月22日 / 12:36 AM

    まったく同じ問題が発生しましたが、
    こちらに書いてある通りにして、一発で問題解決しました。
    ありがとうございました!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください