環境内などで\def
コマンドによってマクロを定義すれば、その範囲(スコープ)内だけで使えるマクロになります(local macro)。
しかし、スライドのbeamer
クラスで用意されるframe
環境内で引数を取るlocal macroを定義しようと思ったら怒られました。
ダメ:
\begin{frame}{たいとる}{さぶ} \def\hoge#1{\relax} \end{frame} %% エラー %% -> Illegal parameter number in definition of \iterate.
どうやら#
を使うのがまずいみたいです。
代償はよくわかりませんが、frame
環境にfragile
オプションを与えれば使えるようになります。
OK:
\begin[fragile]{frame}{たいとる}{さぶ} \def\hoge#1{\relax} こんにち\hoge{こんばん}は \end{frame}
なんか、vrb
という中間ファイルが生成されますが、タイプセット後に消せば問題ないでしょう。
以上。