\newcommand 及其复杂性

\newcommand 及其复杂性

我最近遇到了以下命令:

\newcommand{\minitab}[2][c]{\begin{tabular}{#1}#2\end{tabular}}

嗯,这接近 TLC 第 845 页列出的语法,但我仍然不明白。我的解释是这样的:

正在定义一个新命令minitab。该命令具有可选参数 2(第一对方括号)和默认参数c(第二对方括号)。

虽然可选参数是 2,但它可以是 0 到 9 之间的任何值。

c仅当 (a) 指定了可选参数,或者 (b) 不存在时,默认参数才会生效。

默认参数c本身并不意味着中心。例如,它可以用作幂:a$^{c}$。

那么,

  1. 到目前为止我理解得对吗?如果正确,

  2. 表格命令如何区分(a)和(b)?

  3. 表格中非花括号参数有什么意义?

举个例子就很好了。

答案1

注意力:您的代码有错误。您忘记}在 之前添加右括号[2]

代码

\newcommand{\minitab}[2][c]{\begin{tabular}{#1}#2\end{tabular}}

\minitab定义具有两个参数的命令。

第一个是可选的,具有默认值c(如果不使用其他值,将使用该默认值)。它用于确定单列的对齐方式tabular。因此它也可以是right 或left。

第二个参数是强制性的,它实际上是 的内容tabular

因此你可以使用命令

\minitab{foo and foo}

或者

\minitab[l]{foo and foo}

回想一下,命令的选项在括号中传递,而强制参数在括号中传递\command[<optional>]{<mandatory>}

编辑:

命令名称: \minitab

参数数量: [2](因此#1是可选的;#2是强制性的)

默认值#1 [c](如果传递另一个有效值,将被覆盖)

如何处理这些论点?#2在 内使用tabular作为其内容;用于#1中的列对齐tabular

(!)因此您必须{#1}在定义中使用。另外,例如,如果您想插入右边框,则应使用{#1|}。括号对于分组很重要。

回想一下,使用 a 的正确方法tabular是:

\begin{tabular}{cols}
content...
\end{tabular}

简历中: \minitab[l]{a lot of text}将与

\begin{tabular}{l}
a lot of text
\end{tabular}

相关内容