TeX用プリプロセッサをgithubに置いた

僕のゴーストは「互換性を無視して識別子に数値を含められるようにしろ」ってささやくけど、いまいち確信は持てないなー。そういうのはブランチを切って開発すればいいんだよな。というわけでgithubに置いた https://github.com/nishio/pp4tex/tree/alnum_tokens

% define S X
\[ SN \]
% define SN S_N
\[ SN \]

これで

こうなる。最初のはSNがSと完全マッチじゃないから置換されず、SNの定義の時点でSはXだと定義されているからSNがX_Nになる。

% define S^ \hat{S}

これは、左辺が複数トークンから構成されている。こういうのは、できたほうが自由度は高いだろうけど、逆にS^のSの部分が置換されてしまわないためのシステムを導入する必要が出てきて複雑になるし、そもそもこれは名前への代入だと考えるなら左辺が識別子でないのはNGだからエラーでいいんじゃないか。そういうわけで「RuntimeError: line 15: key 'S^' should have only one token but has ['S', '^']」ってことにした。


あとは引数を取るマクロを作りたい。引数を取るマクロが出来たら今度は複数行のマクロが作りたい。そこら辺を作ると名前まわりで今予想できてない別のトラブルが発覚するかもしれない。