嵌套环境错误以及制表符内强制换行

嵌套环境错误以及制表符内强制换行

我把有问题的代码简化为:

\documentclass[12pt,a4paper,notitlepage]{report}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\begin{document}

\newenvironment{foo}{}{}
\begin{tabbing}
\begin{foo}
bar\\
\end{foo}
\end{tabbing}

\end{document}

! Extra }, or forgotten \endgroup.在第 9 行得到了:bar\\

我是否忽略了制表环境的一些特殊之处?

答案1

\\被环境用来tabbing断线。

由于您是在环境内发出的foo,因此环境在换行符之前不会结束,因此tabbing会造成混乱。这就是错误的原因forgotten \endgroup

如果您foo在换行符之前结束,则不会收到错误,如以下 MWE 所示:

\documentclass[12pt,a4paper,notitlepage]{report}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\begin{document}

\newenvironment{foo}{}{}
\begin{tabbing}
\begin{foo}\end{foo}\\
bar\\
\end{tabbing}

\end{document} 

相关内容