xparse 使用可选参数吞噬字符

xparse 使用可选参数吞噬字符

软件包或 LaTeX3 基础的一些最新变化xparse似乎导致参数处理方面的行为有所改变。在某些情况下,至少一个字符被吞噬,而它不应该被吞噬。

以下 MWE 显示了一种相当无害的情况,但我真正的问题是基于xparse逐字文本的环境删除了该文本的第一个字符,请参阅https://github.com/TFS/tcolorbox/issues/43

MWEmyenv使用一个可选参数构造环境。如果不使用此参数,则空格会被吞噬。在更复杂的场景中使用,如上所述,关键内容可能会被吞噬。

有第二个myENV没有参数的环境来显示预期的行为。

\documentclass{article}
\usepackage{xparse}

\NewDocumentEnvironment{myenv}{ O{} }{Alpha}{Omega}

\NewDocumentEnvironment{myENV}{}{Alpha}{Omega}

\begin{document}

\begin{myenv}[parameter]
Test
\end{myenv}

\begin{myenv}[]
Test
\end{myenv}

\begin{myenv}
Test
\end{myenv}

\begin{myENV}
Test
\end{myENV}

\end{document}

如果此代码针对的安装进行编译xparse (2018/02/21),则输出将符合预期:

在此处输入图片描述

xparse (2018/04/30)但是,如果针对或 的安装编译此代码xparse (2018/05/12),则输出为:

在此处输入图片描述

我认为这是一个错误。但是,如果这是一个功能,我该如何摆脱它?有没有办法用 clean 或 dirty 技巧恢复旧的行为,从而帮助解决我真正的问题(见上文)?

相关内容