\newcommand に引数がない場合のデフォルトの動作

\newcommand に引数がない場合のデフォルトの動作

明確に説明しようと思います。これ私が探しているものではありません。

私がやろうとしているのは、1 つの引数を取るが、その引数が指定されているかどうかによって動作が異なる新しいコマンドを定義することです。

これまでに私が持っているものは次のとおりです。

\newcommand\Nk[1][k]{N_{#1}}

以下を取得できるようになりたいです:

  • nkもし私が入ると\Nk
  • にもし私が入ると\Nk{i}

今のところ、2 番目のオプションを使用すると、 が得られますニック

それで、私の質問は、どうすれば私が望む動作を実現できるのかということです。

どうもありがとう。

答え1

のルールで\newcommandは、オプションの引数は角括弧で囲み[]、必須の引数は中括弧で囲みます{}

それを忘れるのは初心者のミスですが、それが起こったときに見つけるのはイライラすることがあります。

\documentclass{article}
\newcommand\Nk[1][k]{N_{#1}}
\begin{document}
    $N_k$ if I enter $\Nk$\par
    $N_i$ if I enter $\Nk[i]$\par
    but not $\Nk{i}$.
\end{document}

ここに画像の説明を入力してください

関連情報