名前: ttk 日時: 2007-10-31 22:19:09 IPアドレス: 61.210.210.*
>>50031 \kchar"115555 は、 文字コード: 0x115555 + kcatcode: 「0x115555 のグループのもの」 として扱います。 そして、dviに書き込むときに、0x115555 → 0x5555 という変換をします。 \kchar"5555 は、 文字コード: 0x5555 + kcatcode: 「0x5555 のグループのもの」 として扱います。 そして、dviに書き込むときに、0x5555 → 0x5555 という変換(変換なし)をします。 多対一の変換ではありますが、 utf/otf パッケージの\UTF などから内部コードへの変換はマクロで計算しているものなので、 それとの整合性をきちんとしていれば、問題は発生しません。 ちなみに pTeXでは、内部の文字コード EUC または SJIS であり、 dvi に書き込む直前にEUC → JIS または SJIS → JIS に変換をします。 utf/otf パッケージの\UTF などは、かなり特殊な計算をマクロでおこなって EUCなどの漢字のコードレンジに収まるような工夫がなされています。 utf/otf パッケージの vf では、私の記憶によると 符号位置 0x3030 〜 0x7F7F あたりが使われていると思います。 upTeX 内部では、文字コード 0x113030 〜 0x117F7F として扱えばいいわけです。 また、kcatcode の管理が、0x3030 〜 0x7F7F とは別になるので、 そこの kcatcode を変更されても大丈夫だ、というメリットもあります。 vf を新しく作り直すことも考えたのですが、 分けるとディスク容量を食うし、 pTeX で使う方が当分の間多いだろうし、ということで、 vf そのものは pTeX と兼用にすることにしました。 マクロと「内部コード→dvi用コードの関数」に細工が入っています。 本文用のフォントはこうはいかないので、 作り直す必要があるのですが、今後の課題です。
この書き込みへの返事: