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 をこのように書き換えてみました.
いろんなパターンを確かめたわけではありませんが, 今の所上手く動いているようです.