有时我[]
以前也看到过{}
,比如:
\documentclass[letter,12pt]{article}
有时我{}
以前也看到过[]
,比如:
\newcommand{name}[num]{definition}
哪一个应该先去,[]
或者{}
?这有关系吗?
答案1
参数的数量和位置是命令定义的一部分,因此顺序绝对很重要。
\documentclass
例如有两个可选参数,一个在强制参数之前,一个在强制参数之后。
\documentclass[letter,12pt]{article}[2020/01/01]
例如,会指定您需要不早于明年的类文件版本(这将产生版本不可用的错误,只是为了让您看到效果)。
所以如果你使用
\documentclass{article}[letter,12pt]
那么您收到的错误并不是因为可选参数是最后一个,而是因为letter,12pt
不是一个有效的日期。
\documentclass{article}[2000/01/01]
将会正常运行。
基本\newcommand
定义形式只允许定义带有单个可选参数的命令,该参数首先出现,但是该限制只是为了保持语法\newcommand
简单,很少有具有可选参数的标准 latex 命令是通过 定义的\newcommand
。
有关允许指定具有相对于强制参数的任意位置的多个可选参数的命令的记录用户界面,请参阅软件包xparse
。