昨日,Izhitsa-ltn 教会スラヴ語 LaTeX パッケージを修正した。Izhitsa-ltn はもう五年近く前に,Oleg Motygin 氏のパッケージを pLaTeX でも使えるようにしたものだ。OldSlav を公開したいまとなっては,私にとってもう手を加える気はなくなってしまっていたが,I 氏からのご連絡で METAFONT ソースに問題があり,CVS 環境作成途中で放置していたコードを久しぶりに眺めることになった。
問題は I 氏が PDF を生成するとある文字が別のものに入れ替わってしまうというものだった。私は PDF 作成を UNIX dvipdfmx で行っており,この場合問題ないのだが,Windows の DVIOUT から呼ばれる PDF ゼネレータで作成するとだめのようである。原因がさっぱり分らなかったが,入れ替わる文字を調べると,METAFONT の定義が重複しているところがあり,この結果,Type1 フォントを生成する Windows ソフトが誤動作(間違いはこちらにあるのだけど)したらしい。
METAFONT ブックを片手に,ソースの構造を復習しなければならなかったが,修正はさっさと終わった。I 氏は Type1 フォントを生成してご利用なさっていた延長で問題が出た,ということもあり,私も mftrace で Type1 を生成して確認し,ついでにこれをパッケージに添付することにした。
mftrace は Python と T1util を予め組み込んでおく必要がある。izhitsa の pfb 生成にはエンコーディングを指定しなければ 128 番以上のグリフがきちんと生成されないことも教えられた。また pfa フォントを pfb フォントと一緒に TeX ツリーに格納してしまうと,Type1 が使用されずビットマップが使われてしまうことも知った。
% mftrace -e tex256.enc izhkoi8 % t1binary izhkoi8.pfa izhkoi8.pfb % cat > izhitsa-ltn.map izhkoi8 izhkoi8 <izhkoi8.pfb (Control-D) # su -m # mkdir -p $TEXDIR/fonts/{map/dvips,type1}/izhitsa-ltn # cp -p izhitsa-ltn.map $TEXDIR/fonts/map/dvips/izhitsa-ltn/ # cp -p izhkoi8.pfb $TEXDIR/fonts/type1/izhitsa-ltn/ # mktexlsr # updmap-sys --enable Map izhitsa-ltn.map
これで Type1 フォントが使えるようになった。古いビットマップフォントは削除しておく。
% su -m # find /var/tmp/texfonts/pk $TEXDIR/fonts/pk -name "izhitsa*" -type d | \ xargs rm -fr # mktexlsr
新しい版 izhitsa-ltn-1.1.{zip,tar.gz} を公開したけれど,まだドキュメント(インストール部分)が古いまま。TDS の構造でパッケージアーカイブを作ったのでユーザもだいたい分るかなと勝手に考え,こちらはそのうちにということで。