プログラムdeタマゴ

nodamushiの著作物は、文章、画像、プログラムにかかわらず全てUnlicenseです

TeXの^^の謎が分からない

 Latexライクな処理系Lamuriyanの制作はどうなっているのかというと、0から作り直しています。何せマクロの引数?何それ?な人が作り始めたのです。当然、後から後から知らなかった事柄付け足すはめになりますよ。結果として、もうコードがごっちゃごちゃの酷いことになってるわけです。


 だってさー、後から展開とかさー、プロテクトとかさー、展開しないとかさー、マクロの中には{を引数に取ったりー、数値を引数に取ったりー、\verbとかー、それどころか引数としてではないけど、ブロックをあたかも引数のように使うとかー(\hbox)、そんなのライトユーザーの私が知るわけねーじゃーん。知らないなりに何となく動くレベルになってたんだから、逆に褒めてよー。



 その辺の知らなかった事柄をまとめて綺麗に作り直しています。かなり見通しは良くなった。


 で、作り直してはいるのですが、どうしても分からないことがあります。^^Iとか^^Mとかの「^^〜」が分からない…。

たとえば、

\catcode `\^^a=11
^^a

とかやって表示してみると、文字が出てきます。

 ^^a〜^^zはそれぞれ!〜:に変換され、逆に^^!〜^^:はa〜zに変換されます。これだけならわかりやすいんだけどね。

^^A=∆、^^B=Θ、^^C=Λ、^^D=Ξ、^^E=Π、^^F=Σ,...^^Z=æ となります。まったく法則性わからな〜い。^^IとかΨがでてくるんだけど、Ψって直接入力したのと、^^IででてくるΨってなんか別物なんだよ。意味分からない。(ちなみに、^^Iはデフォルトでは空白に割り当てられてる。)
(レンダリングした図)


 あと、\^^Iとかのcatcodeでの扱いもよく分からないんだよね〜。とにかく、^^が謎すぎて頭がパーンになりそうなわけです。誰か分かる人いたら教えて下さる人がいればありがたい。


 ついでだけど、「\^ o」とかHTMLでは表示できないと思ってたんだけど、o&#771;みたいに表示できるって知った。ただ、Windowsを使ってる人は、たぶんデフォルトフォントでは結合文字に対応できないから、<span style="font-family:arial,helvetica">o&#771;</span>という風にしている。この辺、指定しなくてもうまく表現する方法ないかなぁ。私は他人にフォントを強制するのは嫌だ。