为什么加载“newenviron”会导致编译失败?

为什么加载“newenviron”会导致编译失败?

为了避免不必要的努力,请注意我要求具体说明错误原因,而不是如何避免。此外,我知道\NewDocumentEnvironment现在提供了这个b选项。

考虑以下 MNWE,

\documentclass[]{article}
\usepackage{newenviron}
\begin{document}
hylo
\end{document}

这无法编译,声称有一个额外的\endgroup,因此\document以结尾\endgroup

This is pdfTeX, Version 3.141592653-2.6-1.40.25 (TeX Live 2023) (preloaded format=pdflatex)
 restricted \write18 enabled.
entering extended mode
(./prawf.tex
LaTeX2e <2023-06-01> patch level 1
L3 programming layer <2023-10-10>
(/usr/local/texlive/2023/texmf-dist/tex/latex/base/article.cls
Document Class: article 2023/05/17 v1.4n Standard LaTeX document class
(/usr/local/texlive/2023/texmf-dist/tex/latex/base/size10.clo))
(/usr/local/texlive/2023/texmf-dist/tex/latex/newenviron/newenviron.sty
(/usr/local/texlive/2023/texmf-dist/tex/latex/catoptions/catoptions.sty))
! Extra \endgroup.
\document ->\endgroup 
                      \let \BeforeStartOfDocument \@firstofone \cpt@beforest...
l.199 \begin{document}
                      
? 

是什么原因导致了这个错误?

答案1

几年前添加钩子代码时,\document为了添加钩子,命令的某些细节发生了变化,这意味着修补的软件包\document 可能做出了不再有效的假设。catoptions这里使用的总是故意以不受支持的方式改变乳胶内部结构,最终它坏了,到目前为止还没有更新。

实际上,如今大多数newenviron(和) 包的使用最好使用不需要加载任何包的参数类型。environ\NewDocumentEnvironment b

相关内容