最新的 xparse/amsmath 更新在 align 中无法正常工作

最新的 xparse/amsmath 更新在 align 中无法正常工作

\macro当使用可选参数时,以下最小示例无法编译:

\documentclass{article}

\usepackage{xparse,amsmath}

\NewDocumentCommand{\macro}{o}{A\IfValueT{#1}{(#1)}}%

\begin{document}

\begin{align}
  abc \macro \\
  def \macro[A]% Error
\end{align}

\end{document}

我正在使用以下文件列表:

*文件列表*
 article.cls 2014/09/29 v1.4h 标准 LaTeX 文档类
  size10.clo 2014/09/29 v1.4h 标准 LaTeX 文件(尺寸选项)
  xparse.sty 2016/03/26 v6466 L3 实验文档命令解析器
   expl3.sty 2016/03/26 v6466 L3 编程层(加载器)
expl3-code.tex 2016/03/26 v6466 L3 编程层
l3pdfmode.def 2016/03/26 v6465 L3 实验驱动程序:PDF 模式
 amsmath.sty 2016/03/03 v2.15a AMS 数学功能
 amstext.sty 2000/06/29 v2.01 AMS 文本
  amsgen.sty 1999/11/30 v2.0 通用函数
  amsbsy.sty 1999/11/29 v1.2d 粗体符号
  amsopn.sty 1999/12/14 v2.01 运营商名称
 ************

我不确定问题是否出在这里,因为xparseamsmath已于近期更新。

答案1

最新的更新使得l3kernel由 定义的命令中的可选参数的代码\NewDocumentCommand在所有情况下都不起作用(这种情况尤其会发生align)。

2016/03/28发布的更新l3packages(其中包括)修复了该问题。xparse

不幸的是,它也变得xparse无法使用,因为它需要一个不存在的版本l3kernel(它需要 2016/03/28,但 2016/03/26 是可作为发布日期的l3kernel)。

我手动修复了日期,您的示例可以正常工作。我很确定这只是一个暂时的问题,我们会尽快修复这个错误。

更新,2016 年 4 月 1 日

今天更新后tlmgr,TeX Live 的问题已经解决,您的示例编译时没有错误。

我相信更新的 MiKTeX 也能起作用。

> tlmgr info l3kernel l3packages
package:     l3kernel
category:    Package
shortdesc:   LaTeX3 programming conventions
longdesc:    [...]
installed:   Yes
revision:    40184
sizes:       src: 2329k, doc: 7473k, run: 877k
relocatable: No
cat-version: SVN 6468
cat-date:    2016-03-30 18:26:01 +0200
cat-license: lppl1.3
cat-topics:  format latex3 pre-release
cat-related: l3packages l3experimental
collection:  collection-latexrecommended

package:     l3packages
category:    Package
shortdesc:   High-level LaTeX3 concepts
longdesc:    [...]
installed:   Yes
revision:    40176
sizes:       src: 301k, doc: 1673k, run: 141k
relocatable: No
cat-version: SVN 6468
cat-date:    2016-03-29 00:16:53 +0200
cat-license: lppl1.3
cat-topics:  macro-supp latex3 pre-release
cat-related: l3kernel l3experimental
collection:  collection-latexrecommended

相关内容