使用 `xparse` 的说明符 `b` 和 tabulars 时出现问题

使用 `xparse` 的说明符 `b` 和 tabulars 时出现问题

编辑:Phelype Oleinik 已在 LaTeX3 的错误跟踪器中针对该问题提出了一个问题: https://github.com/latex3/latex3/issues/839


以下代码出现错误。

\documentclass{article}
\usepackage{array}
\NewDocumentEnvironment{MyEnv}{b}
  {$\begin{array}{cc}#1\end{array}$}
  {}

\begin{document}

\begin{MyEnv}x&y\end{MyEnv} 

\begin{tabular}{cc}
smth & \begin{MyEnv}x&y\end{MyEnv}
\end{tabular}
\end{document}

b这是说明符的一个错误吗xparse

答案1

正如 Phelype 评论的那样,我们研究了这个问题,可能会添加隐藏嵌套所需的特殊表组&,但同时您可以使用新的环境挂钩功能添加它们。

\documentclass{article}
\usepackage{array}
\NewDocumentEnvironment{MyEnv}{b}
  {$\begin{array}{cc}#1\end{array}$}
  {}

\BeforeBeginEnvironment{MyEnv}{{\ifnum0=`}\fi}
\AfterEndEnvironment{MyEnv}{\ifnum0=`{\fi}}

\begin{document}

\begin{MyEnv}x&y\end{MyEnv} 

\begin{tabular}{cc}
smth & \begin{MyEnv}x&y\end{MyEnv}
\end{tabular}
\end{document}

相关内容