制御シーケンス文字 \ の後にマクロパラメータ # を使用する

制御シーケンス文字 \ の後にマクロパラメータ # を使用する

次のような新しいコマンドを作成しています。

\newcommand\mycommand[1]{\#1section}

では、と\mycommand{sub}{blah}入力してを出力したいと思っています。これは可能でしょうか?\subsection{blah}\mycommand{subsub}{blah}\subsubsection{blah}

答え1

\csnameコマンドシーケンス名を構築できます:

\newcommand*{\mycommand}[1]{\csname#1section\endcsname}

構築されたコマンドが定義されていない場合、エラーはスローされません。代わりに、構築されたコマンドは の意味を持ちます\relax

関連情報