TeX 言語に関して日頃思っている最大の疑問。それは……
「日本に TeX 言語が使える人はどれ位いるのか?」
これである。まるで想像がつかない。*1
もちろん、ここで「TeX 言語が使える」の定義が問題になるが、ここでは「プログラマ発見器」として有名な「FizzBuzz」のレベルで考えたい。ただし「FizzBuzz」は有名過ぎる(だから「答え」がググれてしまう)ので代わりに「NabeAzz」を採用することにする。*2少なくとも、(数分はともかく)一晩かけてもナベアツが実装できなければ、その人は「そのプログラミング言語を使える」集合には属さないと考えて問題ないだろう。
「TeX でナベアツ」問題
以下の動作を行うマクロ
\NabeAzz
を作れ。
\NabeAzz{<整数n>}
は 1 から n までの整数の 10 進表記を順に空白区切りで出力する。ただし、整数が「3 の倍数である」または「(その 10 進表記に)数字 3 を含む」場合は、フォントを「Computer Modern Funny Italic」の 12pt(または LaTeX の場合は\large
)に変えて出力する。その他の条件は以下の通り。
- 引数の
<整数n>
は正であり、かつ数字列で与えられると仮定してよい。想定外の引数を与えた場合の動作は何も規定しない。- 「Computer Modern Funny Italic」の TeX でのフォント名(TFM 名)は「cmfi10」である。LaTeX では「エンコーディング OT1、ファミリ cmfr、シリーズ m、シェープ it」に割り当てられている。
例えば、
\NabeAzz{40}
からは以下の出力が得られる。(もちろん、改行位置は文書レイアウトに依存する。)付帯条件:
さて、あなたは TeX を使えますか……?
[追記 2011-09-23] LaTeX で「CM Funny Italic」の 12pt を指定する際に、単純に OT1/cmfr/m/it/12 を要求しても NFSS の CM フォントの既定設定の特性でフォントサイズ指定が反映されない、という事実を失念しておりました。この件は問題の本質ではないので、ここでは悩まずにさっさと type1cm パッケージを読み込んで解決してしまってください。