2011-02-03 に「TeX パズル」を出題していつの間にか 30 日後が過ぎてしまったようである。問題は「指定のコードの和文トークンを得る命令」を作る、つまり次のようなマクロ \getjchartoken
を実装するものであった。
% \getjchartoken \制御綴{<整数ch>}
% 内部漢字コードの値が ch の和文文字トークンに展開されるマクロ
% として \制御綴 を(ローカルに)定義する。
答え(の一例)は次の通り。
%% \getjchartoken \制御綴{<整数ch>}
\def\getjchartoken#1#2{%
\bgroup \kansujichar1=#2\relax
\xdef\xx@g@temp{\kansuji1}%
\egroup
\let#1=\xx@g@temp}
例えば次のコードを実行すると、
\getjchartoken\oku{\jis"317C}
\getjchartoken\soko{\jis"446C}
\edef\name{\oku\soko}
\show\name
\show
の結果は次のようになる。
> \name=macro:
- >奥底.
<*> \show\name
?
\kansujichar
を用いることに気づけば後は簡単であるが、これに気付かず「この処理は不可能だ!」と考えていた時期が 3 か月ほどあった。