2015年3月5日木曜日

dvipdfmxやdvioutでGhostscript 9.15が\undefinedresourceエラーを出す場合の対処

dvioutやdvipdfmxがeps形式の画像を処理する場合,Ghostscriptが呼ばれます.
最近 TeX Live 2014 をインストールしたマシンでこの処理が

Error: /undefinedresource in resourcestatus
Operand stack:
   false   ct_StyleDicts   --dict:0/4(L)--   Adobe-Japan1   --dict:0/4(L)--   Serif   HeiseiMin-W3-83pv-RKSJ-H   Font   HeiseiMin-W3   CIDFont
Execution stack:
   %interp_exit   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--   --nostringval--   --nostringval--   false   1   %stopped_push   1983   1   3   %oparray_pop   1983   1   3   %oparray_pop   1982   1   3   %oparray_pop   --nostringval--   1966   1   3   %oparray_pop   1852   1   3   %oparray_pop   --nostringval--   %errorexec_pop   .runexec2 --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--   --nostringval--   --nostringval--   1931   10   9   %oparray_pop
Dictionary stack:
   --dict:1196/1684(ro)(G)--   --dict:0/20(G)--   --dict:87/200(L)--   --dict:57/75(L)--   --dict:2/10(L)--   --dict:39/70(L)--   --dict:0/4(L)--   --dict:0/4(L)--   --dict:20/27(ro)(G)--   --dict:20/26(ro)(G)--
Current allocation mode is local
Last OS error: No such file or directory
GPL Ghostscript 9.15: Unrecoverable error, exit code 1

という感じのエラーを出していたので,いろいろ調べてみたところ
TeX Live に付属のGhostscript(tlgs)がバージョン 9.15になったときの変更で
動作しなくなったようです.

場当たり的な対応ですが,とりあえず
http://www.ghostscript.com/GPL_Ghostscript_9.10.html
からバージョン9.10のGhostscriptをインストールして
C:\Program Files (x86)\gs\gs9.10\bin
の内容を
C:\texlive\2014\tlpkg\tlgs\bin
にコピーすれば動くようになります.

Ghostscriptの置き換え方については↓のQ&Aを参考にしました.
http://tex.stackexchange.com/a/204490

あまりよいやり方ではなく,TeX Live をアップデートした拍子に新しいバージョンで
上書きされたりしそうなので,よりよい方法をご存知の方がおられましたら,ぜひ教えてください.