{} 和 [] 参数之间有什么区别?

{} 和 [] 参数之间有什么区别?

大多数命令用于{}接收参数。例如,$\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”的不可分割单元,但是

  1. 第一个将占据文本的“自然宽度”,相当于\mbox{abc def}

  2. 第二个将占据规定的宽度,中间是“abc def”

  3. 第三个将占据规定的宽度,左侧为“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};但是,据我所知没有数学文本坚持以这种方式写“普通”平方根...)

相关内容