Tgif の出力を gs で見る

[戻る]

ThinkPad に Plamo Linux を入れたので, emacsやら Tgif (3.0.18) を入れて, TeX による執筆をはじめました. 絵は Tgif で書いて epsbox で貼り付けるのですが, 日本語を入れた eps ファイルだと xdvi が変な動きをします.

試しにと gs から Tgif が吐いた eps ファイルを読み込ませると
GNU Ghostscript 7.07 (2003-05-17)
Copyright (C) 2003 artofcode LLC, Benicia, CA.  All rights reserved.
This software comes with NO WARRANTY: see the file PUBLIC for details.
Loading NimbusMonL-Regu font from /usr/share/ghostscript/fonts/n022003l.pfb... 2076060 714031 1662616 361267 1 done.
Error: /rangecheck in roll
Operand stack:
   false   3   -1
Execution stack:
   %interp_exit   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--   --nostringval--   --nostringval--   false   1   %stopped_push   1   3   %oparray_pop   1   3   %oparray_pop   1   3   %oparray_pop   1   3   %oparray_pop   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--   --nostringval--   --nostringval--   --nostringval--
Dictionary stack:
   --dict:1058/1123(ro)(G)--   --dict:0/20(G)--   --dict:69/200(L)--   --dict:8/8(L)--   --dict:0/12(L)--   --dict:35/35(ro)(G)--   --dict:7/10(L)--
Current allocation mode is local
Current file position is 4555
GNU Ghostscript 7.07: Unrecoverable error, exit code 1
といったエラーを吐いて終わります.

何か 昔経験したような気がしたので, 駄目元で同じ解決法: fixeucfont で変換してみました (コピーして持ってきたのですが, 後でもともと Plamo の中に入っていたことに 気づきました).

結果はすんなり動くようになりましたが, 今後毎回 Tgif で eps を吐いた後に fixeucfont で変換するのは美しくありません. README の中に「日本語 tgif についてはパッチが公開されてるよん」と書かれて いたので探してみたのですが見つかりませんでした.

処理前, 処理後の euc ファイルを見比べてみると "eucfont" の定義を書き換えている だけのようです. ってことは, Tgif のソースの中で eucfont を吐いている部分をを差し替えれば 上手く動くかもと ps.c をこのように書き換えてみました.

いろんなパターンを確かめたわけではありませんが, 今の所上手く動いているようです.


2005.8