upTeX のフォントと dviout

名前: ZR
日時: 2008-03-18 01:04:39
IPアドレス: 124.102.99.*

現状の dviout (3.18.1)で upTeX で組版した DVI を読ませると、(set3 の 有無等に関わらず)必ず落ちます。というか、upTeX でなくとも、pTeX の makejvf で作成した和文フォントを扱わせると必ず落ちます。 # 例えば、jis.{tfm,vf} を xxjis.{tfm,vf} にコピーして(xxjis は結局 # rml を参照する)xxjis を含む DVI を開くと落ちる。本物の jis や # min10 で落ちないのは、dviout でこれらが特別扱い(VF を見ない)に # なっている為。 この現象の原因が推定できました。 # サイトの upLaTeX の説明で dviout の話を書こうとして困っていた ;-) dviout の仕様に不備があるようです。 makejvf で作られる和文 VF(+TFM) の中身を VPL 風に書くと次のように なります。 (VTITLE ) (FAMILY JIS KANJI) (FACE F MRR) (CODINGSCHEME TEX KANJI TEXT) (DESIGNSIZE R 10.0) (FONTDIMEN ……(略)…… ) (MAPFONT D 1 ← 'D 0' ではない! (FONTNAME rml) (FONTAT R 0.962216) (FONTDSIZE R 10.0) ) ……(略)…… (CHARACTER H 2121 (CHARWD R 0.962216) (MAP (SETCHAR H 2121) ) ) ……(略)…… ここで、先頭の MAPFONT の番号が 0 でなく 1 であることに注意して ください。VF の仕様では MAP 内の初期フォントは 「VF で最初に定義されたもの」 となっています。だから、この VF では 1 番ということになります。 ところが、dviout では初期フォントを常に「0 番」と仮定している ように見えます。ここには 0 番のフォントはないので、当然正常に 処理されません。 # ちなみに、UTF/OTF パッケージの VF は先頭の MAPFONT が 0 番 # なので大丈夫です。 dviout の方で本来の VF の仕様に合うように修正して貰うべきだと 考えますが、upTeX に関して言えば、upTeX の makejvf を改造して 逃げる手もあります。 0 番に直したもので設定してみたところ、全てのフォントが上手く 扱えているようです。set3 を含むものも、実際に set3 が現れない 限りは大丈夫にみえます。 # upTeX の VF は巨大なので、dviout のフォント用メモリサイズを # 増やす必要があります。 # (プロパティ→[System]→font buffer size)

この書き込みへの返事:

お名前
題名 
メッセージ(タグは <a href="...">...</a> だけ使えます。適宜改行を入れてください)