(TeX & LaTeX Advent Calendar 2021の24日めの記事です。昨日は @wtsnjp による「jlreq + expl3 で学会文書クラスを作った話」でした。他人が使う文書クラス作るのまじすごい) TeXを使っている人たちはよく「コマンド」とか「マクロ」とか「プログラム」について話しています。そういう会話を耳にして「TeXではプログラミングができる」ことを知り、興味を持ったものの、具体的にどこから始めればいいかわからない人も多いでしょう(ほんとに多いのか?)。 ここでちょっとした落とし穴があります。一口に「TeXでプログラミング」といっても、目的や手段や用途に応じて文法や機能や表現能力がまったく異なるいくつかのプログラミング言語があり、それらを使い分ける必要があるからです。つまり「プログラミング言語」という観点から言うと、TeXの本来の目的である「文書の組版」でプ