¥newcommand{¥答}[1]{}
¥newcommand{¥解答}{¥renewcommand{¥答}[1]{#1}}
作りたいのは\解答commandを入力した時 \答{####} の文章が表示され
\解答commandを入力しなければ \答{####} の文章は表示しないようなマクロです。
しかし2行目でエラーが出てしまいます。2行目の#1が\解答のものと判断されているようです
このように引数がどちらのcommandのものか正しく認識させるにはどうすれば良いのでしょうか。
LaTeX の“仕様”(Lamport 本に書いてあるもの)では以下のように定められているようです:
\newcommand
等)は入れ子にすることができる。しかし、実際(つまり“実装”)では、\newcommand
の定義本体はそのまま \def
の定義本体となるため、結局 TeX のマクロの定義の入れ子と同じ処理(#
を二重にする)で通ってしまいます。
(恐らく Lamport 氏は「#
を二重にする」という文法を LaTeX に入れたくなかったのだと想像しています。)
というわけで、この話は、pure-LaTeX を書こうとする(酔狂な?)人以外にはどうでもよいトリビアでした。