这个 \newcommand 参数是什么?

这个 \newcommand 参数是什么?
\newcommand*{\name}[1][C]{%

我对此非常熟悉\newcommand,但是,当我遇到这行代码时,我不知道它[C]是做什么用的。

答案1

LaTeX 的\newcommand语法如下:

\newcommand *{<\FOO>}[<i>]{<TEXT>}

用户命令定义\FOO为具有i参数的宏(i如果缺失则为 0),其定义是<TEXT>。如果已定义,则会产生错误\FOO。通常,命令定义为\longIE星号形式表示命令的首字母缩写(它可能在其参数中占用多个段落)。在星号形式中,命令未定义为\long ,并且命令的任何参数中的空行都将生成错误。

如果您定义一个至少带有一个参数 ( i> 0) 的命令,则可以在定义前指定一个附加 (可选) 参数<TEXT>。此可选参数将用作第一的的可选参数\FOO

举个例子,考虑

\newcommand{\FOO}[2]{<TEXT>}

此命令具有两个强制参数,因此用作\FOO{<one>}{<two>}。但是,

\newcommand{\FOO}[2][X]{<TEXT>}

接受两个 ( 2) 个参数,第一个参数是可选的,如果未提供,则默认值为X。您可以将其用作\FOO{<one>}(相当于\FOO[X]{<one>})或\FOO[<one>]{<two>}。同样,

\newcommand{\FOO}[1][X]{<TEXT>}

接受一个(1)可选参数,该参数具有默认值X(如果未提供)并且可以用作\FOO(相当于\FOO[X])或\FOO[<one>]


就你的情况而言,

\newcommand*{\name}[1][C]{<TEXT>}

定义\name为(非\long;即<TEXT>不能有空行,并且)采用单个(1)可选参数,C如果未提供,则默认为 。您可以将其用作\name(相当于\name[C])或\name[<one>]

参考:

相关内容