xparse 在环境之后丢失可选参数的默认值

xparse 在环境之后丢失可选参数的默认值

一些曾经可以运行的代码在最近更新的系统上停止了工作(据我所知,是 l3packages 的修订版 61040;我不知道它能运行的版本号),我试图了解这是否是一个新的错误或者我是否做错了什么。

简而言之:对于使用NewDocumentEnvironment具有指定默认值的可选参数(O类型参数)定义的环境,该参数的值在环境主体前代码中正确设置为指定值或默认值 - 但如果使用默认值,则参数值将在环境主体后代码中恢复-NoValue-。例如:

\documentclass{article}
\usepackage{xparse}

\NewDocumentEnvironment{env}{ O{a default value} }{%
  Before time began, we had 1=[#1]%
}{%
  but now 1=[#1].
}%

\begin{document}
\begin{env}[A specified argument] foo \end{env}
\begin{env} bar \end{env}
\end{document}

% Expected output:
%   Before time began, we had 1=[A specified argument] foo but now 1=[A specified argument].
%   Before time began, we had 1=[a default value] bar but now 1=[a default value].
% Observed output:
%   Before time began, we had 1=[A specified argument] foo but now 1=[A specified argument].
%   Before time began, we had 1=[a default value] bar but now 1=[-NoValue-].

我做错了什么吗?或者有什么建议吗?

答案1

正如 Ulrike Fischer 在评论中提到的那样,这个问题已在 LaTeX 版本中得到修复2021-11-15-PL1

相关内容