为什么有些命令使用 [],有些命令使用 {},有些命令两者兼用?

为什么有些命令使用 [],有些命令使用 {},有些命令两者兼用?

我发现很难记住哪些命令需要{}参数,哪些命令需要[]参数。这两者之间是否存在经验法则或语义差异?如果有,那是什么?(因为在我看来它们的作用相同。)

答案1

为了进一步阐述 Joel 的回答,我补充几点。Knuth 的纯 TeX 和 LaTeX 都使用{}作为分组标记。然后使用它们来分隔强制参数,例如

\section{A section title}

然后 LaTeX 使用[]来表示可选参数,例如

\section[Short title]{A section title}

这个想法是,有些信息并不总是需要的:如果简称与全称相同,就没有必要提供两次。

这种惯例并不是 TeX 的“硬编码”:可以改变所使用的方法。例如,ConTeXt 使用{}作为将要排版的强制参数,并使用 进行分组,例如

\quotation{Damit ich dich besser {\em sehen} kann!}

另一方面,它使用[]作为设置的参数,因此不会被排版

\setupbodyfontenvironment[default][em=italic]

答案2

通常{}为必需参数,而[]为可选参数。在学习定义命令时,可以阅读更多相关信息,例如这里。如果混淆,则可能是{}。有些情况看起来特别奇怪吗?请注意,TikZ 确实不算数,因为它们的解析方式完全不同(尽管助记符相似)。

相关内容