マクロツイーター

はてダから移行した記事の表示が崩れてますが、そのうちに直せればいいのに(えっ)

bxgrassator における「文字」の扱い

bxgrassator パッケージ文字コードについての扱いを書き留めておく。書くと長くなるが、太字の部分を除くと、そんなに不自然なことにはなっていない。

  • 8 ビット欧文 TeX 上で動作させる場合:
    • プログラムソースは ASCII 文字でのみ入力できる。
    • 「ほむほむ」はソースの記述に非 ASCII 文字の使用を前提とするので、そもそも環境自体が提供されない。
    • 前述の通り「入力」の文字列は LaTeX の展開処理の対象となるが、この展開結果の中に高位バイト(80h〜FFh)がある場合もそのまま有効な入力となる。
    • 「出力」に高位バイトがある場合も、それ以外のバイトと同じ扱いになる。verbatim である場合はその符号位置の文字が出力され、ない場合は更なる LaTeX の処理の対象となる。
  • pTeX 系または Unicode 対応 TeX 上で動作させる場合:
    • プログラムソースは「LaTeX 文書の文字コード」で入力する。Grass の全角文字のトークンや「ほむ」も文字コードが対応していれば入力できる。(だから「ほむほむ」言語の機能が有効となる。)
    • この場合も、Grass/「ほむほむ」が入出力をバイト単位で行うという性質は変わらない。
    • 「入力」に使用できるのは ASCII 文字のみである。*1
    • 「出力」のバイト列を「文書の文字コード」でデコードしたものが実際の出力となる。(やはり verbatim でない場合はさらに LaTeX の処理対象になる。)

*1:実際は「内部文字コード」が 80h〜FFh の文字を含めると 80h〜FFh のバイトと見做されるのだが、極めて不自然なのでこの規定にしておく。