`NewDocumentCommand \sidenote { oo +m }` 是什么意思?

`NewDocumentCommand \sidenote { oo +m }` 是什么意思?

我显然错过了一些关于指定 LaTeX 命令的更新信息我习惯的是

\newcommand{<command-name>}[<numargs>][<default>]{<command definition>}

现在我看到了这样的定义

\NewDocumentCommand \sidenote { o o +m }

这对我来说毫无意义,并且与我过去 30 年来指定新命令的方式没有明显的关系。

在哪里可以找到有关命令定义设施的彻底改变的信息,以及为什么没有关于它的任何明显的公告?

我在 comp.text.tex 新组上并运行 TeXlive 2021,但正在等待 DVD 到达后再更新到 2022。

答案1

它的格式比较新(2020 年 10 月),但已作为软件包提供xparse十年左右了,并且这种形式的一些版本的提供时间更长:xparse.dtx版权日期可以追溯到 1999 年。

格式中的新代码记录在texdoc source2eg 章(ltcmd)中,尽管更方便的是更新的用户指南(目前texdoc usrguide3我们可能usrguide很快会将其合并回来)

\NewDocumentCommand \sidenote { o o +m }{...#1 ... #2 ... #3}

定义\sidenote两个可选参数和一个强制参数。here+表示\long可以接受空行(\par)的参数,类似于 using\newcommand而不是\newcommand*except,它\NewDocumentCommand允许为每个参数单独指定。

因此
\sidenote[a][b]{main}
不能轻易使用来定义\newcommand,它只允许声明一个可选参数。

一般来说,每个版本的新功能描述如下ltnews

texdoc ltnews

显示包含完整系列的 pdf,您需要记录此内容的 LaTeX News 32 (2020/10)。

相关内容