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周りでは。。。
これでレポートの続きができます!
俺は英語しか使ってないな
それだとTeXのコンパイルの度にeps->pdfへの変換が起こってdvipdfmxが遅いので
何らかの方法でpdf+bbに先に変換しておいてTeXの文章からはそっちを参照することをおすすめします。
> yayuguさん
英語を使って書くのがベストなのかもしれませんねw
一度PDFの方法も行ないましたが,bbファイルが少々面倒くさいですね。。。
ebbを叩くだけですがw
その方法でも試してみたいと思います。
まったく同じ問題が発生しましたが、
こちらに書いてある通りにして、一発で問題解決しました。
ありがとうございました!