Re: NTT JTeX と Babel (Re: japaneseパッケージ...)

名前: ZR
日時: 2007-07-10 13:56:07
IPアドレス: 59.140.98.*

>>48642 JTeX について、少々実験をしてみました。 1. 高値バイト(128 以上の値のバイト)の処理 簡単なテストを行った結果、次の結果になりました。 - エスケープ形式(^^ab)は確実に欧文トークンとして通る。 - 漢字コードにおいて不正な高値バイトは予期せぬ結果になる。 - (sjis の?)半角カナ部分の文字は '?' に置き換えられる。 他言語処理における実用においては、現在の pTeX と同等の 能力と判断していいと思います。 2. エスケープ形式のバグ(?) >このうちピンイン語,オランダ語,ロシア語を除き 8bt2ptex.pl で >アスキー変換処理を済ませたものを使っていますが,JTeX では >それでも引っかかるようです。 実験したところ、次のようなコードでエラーが起こります。 <対話モードで> *\catcode`\^^e1=11 *\uccode`\^^e1=0 ! Improper alphabetic or japanese constant. <to be read again> \^^e1 <*> \uccode`\^^e1 =0 <END> ^^e1 の catcode が 11 の時に、\^^e1 が想定外の動作を起こします。 この挙動を見て、8bt2ptex.pl の次の記述を思い出しました。 <8bt2ptex.pl;抜粋> > #**** 「Invalid code 〜」への対処 > if ( $switch{'c'} || $switch{'C'} ) { > $line =~ s/(\S)\\lccode/$1 \\lccode/g; > # 「\lccode」の前に空白文字以外の > # 文字があれば、それ以上深く考えずに > # 半角スペースを挿入する > # こんなに大雑把でいいのかしらん >...(中略)... > <エラーA> > ファイル冒頭でのコード・テーブルを設定する \lccode/\uccode 命令で > Invalid code (XXXX), should be in the range 0..255. > というエラー・メッセージ(「XXXX」の部分は不定)が表示される[*4]。 >...(中略)... >この perl スクリプトは、これらのエラーが生じないように、ハイフネーション・ >パターン・ファイルに改変を加えるものです。ただし、<エラーA> については、 >pTeX p3.1.8 では生じなくなっているため、スクリプト実行時にオプション・ >スイッチで指定された場合に限り対処するようになっています。 <END> そこで、pTeX p3.1.8 で何が修正されているかを pTeX のサイトで 調べると、次のように記載されていました。 >■pTeX 3.1.8 (TeX 3.141592, Web2C 7.5.4) > pTeX 3.1.7 からの変更点: > - make install の最後に mktexlsr の実行を追加 > - Makefile.in, INSTALL.txt: teTeX-3.0のTEXMFディレクトリの > 変更に伴い修正 > - コントロールシーケンス名の処理誤りを修正。(例:\Te^^5e^58 > ⇒ \Te^^58 となり、\TeX として評価されない) > - コントロールシーケンス直後の ^^形式が漢字として認識されて > しまう場合があるのを修正 (例:\TeX^^83A ⇒ \TeXア) > - 端末やログファイルでの改行位置のタイミングの修正 エスケープ形式絡みの 2 つが怪しそうです。 JTeX にはこれと「同種」の不具合が残っているのかもしれません。

この書き込みへの返事:

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