新版本的xparse
手册中指出了以下内容:(在 2.向后兼容性中)
xparse 的一个作用是描述现有的 LaTeX 接口,包括一些在 LaTeX 中相当不常见的接口(与纯 TeX 等格式相反),例如分隔参数。因此,该包定义了一些参数说明符,这些说明符现在应该尽量避免使用,因为在包中使用它们会导致用户界面不一致。最简单的语法通常是最好的,参数说明符如 mmmm 或 ommmm (...)
例如,使用 g 参数或 G 参数时,可能会出现哪些类型的问题,比如‘不一致的用户界面’?
我是依赖于基于这些参数的宏的类的作者,并且很高兴知道 LaTeX3 的作者是否xparse
会放弃对这些参数的支持,或者在什么情况下可能出现什么问题......
编辑:由于并非所有人都熟悉该包提供的不同参数类型,因此这里是来自文档的xparse
描述:g
G
g
:一对 TeX 组标记(在标准 LaTeX 中,)内给出的可选参数{...}
,-NoValue-
如果不存在则返回。
G
:与此相同,但如果没有给出值则g
返回: 。<default>
G{<default>}
答案1
该xparse
软件包主要用于定义“LaTeX2e 类”命令,但它也可以标准化更广泛的接口描述。LaTeX2e 内核在使用{...}
强制参数和[...]
可选参数((...)
用于图片模式参数)方面非常一致。因此,g
-type 参数是一个异常值:它根本不是标准的 LaTeX2e 用法。我们将其包括在内,因为它确实出现在例如 beamer
,
\begin{frame}{title}{sub-title}
可能,今天写的人们通常会使用 keyval 系统来处理这种情况。
\begin{frame}[title = ..., subtitle = ...]
一般来说,我会避免使用g
-type 参数新的命令。