\newcommand*{\name}[1][C]{%
我对此非常熟悉\newcommand
,但是,当我遇到这行代码时,我不知道它[C]
是做什么用的。
答案1
LaTeX 的\newcommand
语法如下:
\newcommand *{<\FOO>}[<i>]{<TEXT>}
用户命令定义
\FOO
为具有i
参数的宏(i
如果缺失则为 0),其定义是<TEXT>
。如果已定义,则会产生错误\FOO
。通常,命令定义为\long
(IE星号形式表示命令的首字母缩写(它可能在其参数中占用多个段落)。在星号形式中,命令未定义为\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>]
。
参考: