似乎在制表环境中使用嵌套环境以及新行会导致错误Extra }, or forgotten \endgroup
。
这是一个最小的工作示例:
\documentclass{article}
\usepackage{xparse}
\newenvironment{myouter}{\begin{tabbing}}{\end{tabbing}}
\newenvironment{myinner}{}{}
\begin{document}
\begin{myouter}
this works \\
\end{myouter}
\begin{myouter}
\begin{myinner}
so does this
\end{myinner}
\end{myouter}
\begin{myouter}
\begin{myinner}
this doesn't \\
\end{myinner}
\end{myouter}
\end{document}
有人知道如何解决这个问题,或者是什么原因造成的?
答案1
如果您的内部环境设置了一个\\
具有适当定义的环境,那么它就可以正常工作。
\documentclass{article}
\newenvironment{myouter}{\begin{tabbing}}{\end{tabbing}}
\newenvironment{myinner}{\begin{minipage}{2cm}}{\end{minipage}}
\begin{document}
\begin{myouter}
this works \\
\end{myouter}
\begin{myouter}
\begin{myinner}
so does this
\end{myinner}
\end{myouter}
\begin{myouter}
\begin{myinner}
this doesn't \\
\end{myinner}
\end{myouter}
\end{document}
如果环境定义是空的,则\\
内部环境中的是\\
从tabbing
,并且不能像所有对齐单元格一样作为制表单元格工作,它们是组您不能在一个组中启动环境并在另一个组中结束它,它本质上是这样的,这会产生相同的错误
\documentclass{article}
\newenvironment{myinner}{}{}
\begin{document}
{ \begin{myinner} } { \end{myinner} }
\end{document}