マクロツイーター

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

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

これが解けたら TeX 芸人 2 級相当!

e-TeX 拡張エンジン上の plain TeX または LaTeX において、以下の要件を満たすように制御綴 \en を定義せよ。

  • \en は (La)TeX の寸法指定における「単位」の位置に書くことができる。
  • そして、「現在の 0.5em」の長さを表す。すなわち、1\en0.5em は常に同じ長さを表す。

補足条件:ただし、plain TeXLaTeX で既に定義済の制御綴の定義を変えてはいけない。

実行例。

\font\cmttX=cmtt10 \cmttX % cmtt10 では 1em=10.4999pt, 0.5em=5.24994pt
\skip2=-\en plus 1.23\en minus \en
\showthe\skip2 %==> -5.24994pt plus 6.4574pt minus 5.24994pt.
\ifdim1\en=0.5em \else\errmessage{Oops}\fi %==> エラーなし
\noindent A\kern3.14159em\hbox to0pt{\hss A\kern6.28318\en} %==> 2つのAが重なって見える

丸め誤差のため、2\en1em は完全に一致するとは限らない。)