マクロツイーター

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

TeX芸人実力判定問題、その6

「えるたそ」な解説の途中であるが、「えるたそ」なパズルをどうぞ。
(初心者の人は気にしないで!)

TeX 芸人 2 級相当。

plain pTeX または pLaTeX において、以下の仕様を満たす完全展開可能なマクロ \eltasoname を実装せよ:
  • \eltasoname{<正整数n>} を完全展開すると、n に対する「えるたそ名」(1 → 一反田えー、2 → 二反田びー、3 → 三反田しー、……、26 → 二十六反田ぜっと、27 → 二十七反田えー、……)を表すトークン列が得られる。
  • 有効な n の範囲は TeX で扱える正整数全体(1〜2³¹−1)とする。
  • 整数は内部値(数字表記以外の形式、例えば \count200 等)で与えられるかも知れない。
  • 不正な入力を与えた場合の動作は規定しない。
  • e-TeX 拡張、およびその他の(pTeX 以外の)エンジン拡張機能を用いてはならない。
  • 「まともな速度」で動作する必要がある。(普通のマシンで 1 秒以内)

実行例。

\edef\result{\eltasoname{5}}
\show\result %==>五反田いー
\mathchardef\constA=1000 % 整数定数
\edef\result{\eltasoname\constA}
\show\result %==>千反田える
\newcount\countA \countA=20121110 % 整数レジスタ
\edef\result{\eltasoname\countA}
\show\result %==>二千十二万千百十反田ぶい
\edef\result{\eltasoname{"7FFFFFFF}} % 有効な最大の整数
\show\result %==>二十一億四千七百四十八万三千六百四十七反田だぶりゅー