JTeX Implementation Note
				桜井貴文

[1] trip testについて

JTeXはtrip testに通ります。しかし、あらゆるTeXのソースについてTeXと
同じふるまいをするかというと、

1. jtexnoteで述べた、エラーメッセージの表示の仕方の違い。
2. ファイルの最後が<return>でその<return>をspacerと解釈しなければ
   ならないときファイルのcloseの処理とその<return>の処理が前後する。

という違いがありえます。これらは、JTeXでは行末の<return>を読んだとき
すぐにspacerとはみなさず次の行を読みにいくために起こる現象です。
作られるdviには影響しないのでJTeXはTeXにupper compatibleといっても
かまわないと思います。

以上は \kanjifiletype \kanjiterminaltype とは関係ありませんが、
たとえば8bitめが立っている文字が直接書き込まれているTeXのソースを
処理するときTeXと同じふるまいをさせるためには、\kanjifiletype=0 に
する必要があります。そうしないとその文字をEUCまたはSJIS(の一部)と
みなすからです。

ただし、実際にtrip testを実行した人は、標準のlog等とのdiffがたくさん
でるのに気が付くでしょう。この違いはglueの大きさが少し異るというもの
ですが、この違いはTeXのtrip testを行なったときも出る違いで、違いかた
は全く同じなので、これはJTeXの問題ではないでしょう。なぜ違いが出るか
の原因は追及はしていません。


[2] 使用できるフォント数

TeXでは使用可能なフォントの数は最大256ですが、JTeXではさらに大きくして 
512にしてあります。元々TeXではフォント番号はquaterwordに収まると仮定
してあり、quaterwordは1byteなので256個を越えることはできないのですが、
bigTeXの場合quaterwordは2byte分取られるので256より大きくすることが
可能になります。しかし、implicitに256を仮定してる所もあるので見落とし
がないという保証はありません。ちなみにさらにフォント数を大きくするには
cjtex.ch中の
	@!font_max=511;
および
	@d font_max_limit=512
を変更すればよいのですが、フォント番号を添字にする配列がいくつかある
のでやたらに大きくするわけにはいきません。


[3] 文字の内部表現

buffer, spool, trick_buf では文字を以下のように表現しています。
	7bit文字	そのまま
	8bit文字 c	0x80 c&0x7f	8bitめが立っている文字
	漢字 c1 c2	c1|0x80 c2	c1 c2 はその漢字のJIS code
つまり8bit文字をわざわざ2byte使って表わしています。ASCII_codeの範囲を
2byte分にしたほうが簡単なのですが、こうしたのには深い理由があるのでは
なく、spoolの大きさが倍になってしまう(100Kbyteほどなのでそれほど気に
しなくてもよい程度ではあるが)ので、節約できるやり方を試してみた、という
程度のことです。
