どうも!@Suimaです。今回は、traPavilionで出題したTeXの問題の解説をしていきます
問題文
以下のコードの出力に応じて、スタンプを押してください。実行コマンドはpdftex -halt-on-error filename です
1. BOX
2. CRT
3. BOT
4. ANT
5. そのほか
\uccode`4=`^^41
\uccode`7=`^^4e
\uccode`5=`^^53
\uccode`A=`B
\uccode`N=`O
\uccode`S=`X
\uccode`B=`C
\uccode`O=`Q
\uccode`X=`T
\uppercase{\uppercase{47\uppercase5}}
\end解説
まあ普通に展開をしていけば良いですね。uccodeの部分については、説明を省略します。最後の行の前の行が問題です。
- 最も左の`\uppercase`が展開されます。
残りは`\uppercase{AN\uppercaseS}`となります(2つめの`\uppercase`と`S`は別のトークンとして処理されています) - 次の`\uppercase`が展開されます。
残りは`BO\uppercaseX`となります(`\uppercase`と`X`は別のトークンです) - 次の`\upppercase`を展開しようとしますが、`\uppercase`は直後に`{`を期待しているため、エラーが発生します
- `-halt-on-error`オプションがあるため、このエラーはFATALとなり、処理が終了します。PDF出力は存在しません。そのほかの出力も選択肢には合致しないため、答えは5. のそのほかとなります。
反省
ちょっと意地悪くしようと思ったら、やや議論の余地がある上、あまり咄嗟に解けるものではなくなってしまいました。LLMが解ければ良かったのですが、私が試した限り全てのLLMは5. とはしなかったため、難しい…
と、今回のブログは短めですが、この辺で…