2010年11月21日日曜日

漢字を含むps,epsファイルをps2pdfで変換できない問題の解消

gnuplotで作成したEPSファイルを含んだtexファイルをPDFにしようとしたところ,ps2pdfコマンドでSegmentation fault が起こるために失敗しました.

ウェブで探すと,一回 ps2ps を介すると大丈夫なようですが,EPSファイル中のフォントがきもくなるので,何とか解決策を探りました.

「ps2pdf segmentation fault」とかでぐぐって分かりましたが,ファイルによってはps2pdf12 なら変換可能で、ps2pdf13 や ps2pdf14 (ps2pdf)、ps2pdfwr だとSEGVするらしいです.
http://vdr.jp/d/20100802.html

そこで,次のように対処しました.真似される方は自己責任でおねがいします.

  1. which ps2pdf コマンドで,/usr/bin/ 以下に ps2pdf* があることを確認
  2. sudo rm /usr/bin/ps2pdf
  3. sudo ln -s /usr/bin/ps2pdf12 /usr/bin/ps2pdf

これで,ps2pdf hoge.eps とかは成功するようになります.

しかし,これだけでは dvipdfmx が失敗することがあります.dvipdfmx が ps2pdf コマンドを呼び出すときに,-dCompatibilityLevel=1.4 とかいうオプションをつけているからなようです.
このオプションがつくと,実質的に ps2pdf14 コマンドを呼び出しているのと同じ動作をしている模様.(憶測)

そこで,このオプションを,-dCompatibilityLevel=1.2 に変更します.

  1. dvipdfmx.cfg という設定ファイルを探す.当環境では /usr/local/teTeX/share/texmf/dvipdfmx/dvipdfmx.cfg にありました
  2. エディタで開き,"Compatiblitity"とかで検索し,-dCompatibilityLevel=1.4 を -dCompatibilityLevel=1.2 に変更し保存

これで漢字を含むPS,EPSファイルを使ったtexファイルでも,問題なくPDF化できるようになるのではと思います.

1 件のコメント:

  1. Its really very interesting post full of valuable information. The key part of this post is its descriptive way to define anything.

    返信削除