我发现很难记住哪些命令需要{}
参数,哪些命令需要[]
参数。这两者之间是否存在经验法则或语义差异?如果有,那是什么?(因为在我看来它们的作用相同。)
答案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 确实不算数,因为它们的解析方式完全不同(尽管助记符相似)。