我把有问题的代码简化为:
\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}