括号位置规则

括号位置规则

指定括号位置的规则是什么:

\foo[]{} %or 
\foo{}[]  

下面的语法很清楚,还有其他组合吗?

\foo{}{} 
\foo{} 
...

答案1

xparse包裹允许您轻松指定提供给参数的参数的类型和顺序。对于带方括号的可选参数[](最常见),使用oO{<default>},而强制参数则使用 指定m。因此,例如,

\foo[]{}

\NewDocumentCommand{\foo}{o m}

\foo{}[]

\NewDocumentCommand{\foo}{m o}

\foo{}{}

\NewDocumentCommand{\foo}{m m}

xparse允许上述内容的任意组合(最多 9 个参数)及其混合版本。这主要取决于应用或预期用途。例如,wrapfig包裹提供wrapfig采用以下形式的参数的环境(使用xparse符号)o m o m:。

使用多个连续的通常会避免使用可选参数,因为如果不指定前者就无法指定后者,这使得它们有点非可选,因此会造成混淆。

以“传统”方式生成可选参数是通过“辅助宏”实现的 - 根据提供的参数类型执行的附加宏。这允许将以下参数[]视为可选:

\def\mycmd{\@ifnextchar[{\@with}{\@without}}
\def\@with[#1]#2{hello #1, have you met #2?}
\def\@without#1{goodbye #1}

上述简写来自带有和不带有可选参数的不同命令定义

相关内容