大多数命令用于{}
接收参数。例如,$\binom{6}{2}$
排版二项式系数 6 选择 2。但是\sqrt
接收一个[]
参数作为其第一个参数。例如,$\sqrt[3]{2}$
排版 2 的立方根。这两个参数分隔符有何不同?
答案1
LaTeX 命令可以有强制参数和可选参数。但并非所有命令都同时具有这两种参数。强制参数由大括号 {}
,而可选的括号 []
。
我们来举个例子:
\newtheorem{theorem}{Theorem}
定义一个名为的新环境theorem
,它将自动接收编号并以特殊方式排版文本。您可以可选地决定定理的编号从属于另一个计数器,通常section
;在这种情况下,你可以通过以下方式定义环境
\newtheorem{theorem}{Theorem}[section]
括号[]
界定选修的争论。
在这种情况下,第 3 节中的第一个定理将编号为 3.1,第 4 节中的第一个定理将编号为 4.1,而在前一种情况下,编号将只有一个数字独立于节而增加。
现在你还想lemma
为引理定义一个环境。你可以这样做
\newtheorem{lemma}{Lemma}
因此引理将获得其独立的编号(可能像section
以前一样从属于),但一种常见的风格是定义lemma
它与共享编号theorem
(这使得读者更容易找到陈述,因为引理 2 将在定理 3 之前找到,例如)。因此,您可以可选地决定定义
\newtheorem{lemma}[theorem]{Theorem}
注意可选参数的不同定位。
的情况\sqrt
有点不幸。在普通的 TeX 中,42 的立方根用 排版\root 3 \of {42}
,而这在 LaTeX 样式语法中是没有位置的。Leslie Lamport\root
决定通过添加可选参数来重载,而不是定义带有两个强制参数的通用命令\sqrt
,因此上述内容由 实现\sqrt[3]{42}
。
是否有规则可以知道命令有多少个参数(强制参数或可选参数)?没有。手册中有描述。
该\newtheorem
命令有两个强制参数和两个可选参数;出于明显的语义原因,指定一个参数将排除指定另一个参数,但这并不常见。例如,
\makebox{abc def}
\makebox[3cm]{abc def}
\makebox[3cm][s]{abc def}
这三个函数都打印出一个包含文本“abc def”的不可分割单元,但是
第一个将占据文本的“自然宽度”,相当于
\mbox{abc def}
第二个将占据规定的宽度,中间是“abc def”
第三个将占据规定的宽度,左侧为“abc”,右侧为“def”。
尝试
X\makebox{abc def}X\par
X\makebox[3cm]{abc def}X\par
X\makebox[3cm][s]{abc def}\par
进行比较。请注意,在这种情况下,不可能将可选参数留空:例如
\makebox[][]{abc def}
终端将充满错误消息。仅在某些情况下,[]
与不指定可选参数相同:
\usepackage[]{amsmath}
与 without 相同[]
;也\sqrt[]{42}
排版相同\sqrt{42}
(但不是严格来说,是一样的。反之,\makebox[]{abc def}
则是错误的。
有时,不指定可选参数将使用默认值。这是 的情况\parbox
:声明\parbox{3cm}{...}
与 相同\parbox[c]{3cm}{...}
。同样,命令的文档解释了其语法和可选参数的可能默认值。
您的示例命令\binom
有两个强制参数:您必须告诉 LaTeX 您从中选择了多少个元素以及您想要选择多少个元素,这样就可以排版所需的二项式符号。此命令没有可选参数。
答案2
花括号{}
表示必需参数。方括号[]
表示可选参数。LaTeX 宏最多可以有 1 个可选参数和多个必需参数。必须在必需参数之前指定可选参数。例如,\sqrt[3]{2}
“2 的立方根”。
“可选参数”中的“可选”一词表示如果未指定可选参数,则使用默认值。默认值可以为空。例如,\sqrt{2}
表示默认值(恰好为“空白”)适用,因此我们将结果读为“2 的平方根”。(实际上写 是完全合法的\sqrt[2]{2}
;但是,据我所知没有数学文本坚持以这种方式写“普通”平方根...)