MnWE は次のとおりです。
\documentclass{minimal}
\usepackage{amsmath}
\newcommand{\funk}[2]{#1}{-#2}
\begin{document}
$\funk{x}{2}$
\end{document}
コンパイルされず、次のエラー メッセージが表示されます:
水平モードでは「マクロパラメータ文字 #」は使用できません。\newcommand{\funk}[2]{#1}{-#
コマンドの何が問題なのですか?
答え1
\newcommand*{<cmd>}[<args>][<default>]{<stuff>}
ここで*
、 はオプション(結果の\def
初期化が になる\long
かどうかを示します)、<cmd>
は存在しない制御シーケンス、<args>
(これもオプション) に渡される引数の数を示し<cmd>
、は指定されていない場合( > 0 の場合)<default>
のオプション引数のデフォルト値、 は引数を初期化した後の の展開(または置換テキスト)です。 各引数(最大 9 個)は、番目の引数に対してに置き換えられます(最初の引数に対して 、2 番目の引数に対して など)。<args>
<stuff>
<cmd>
#<num>
<num>
#1
#2
あなたの設定で
\newcommand{\funk}[2]{#1}{-#2}
\funk
引数は2
必須であり、置換テキストは最初の引数のみです#1
(実質的に 2 番目の引数を飲み込みます)。
{-#2}
制御シーケンス作成の一部を形成しないため、そのまま展開され、-#2
入力ストリーム (プリアンブル内) に残ります。これは#
特別な意味を持つため許可されません。マクロ パラメーター文字です。
おそらくあなたは興味があるでしょう
\newcommand{\funk}[2]{#1-#2}