我试图理解为什么:
这有效:
\documentclass{article}
\usepackage{amsmath}
\newenvironment{myenv}
{\begin{tabular}{@{}l}}
{\end{tabular}}
\newenvironment{myotherenv}
{}
{}
\begin{document}
\begin{myenv}
Thing\\
\end{myenv}
\end{document}
这也有效:
\documentclass{article}
\usepackage{amsmath}
\newenvironment{myenv}
{\begin{tabular}{@{}l}}
{\end{tabular}}
\newenvironment{myotherenv}
{}
{}
\begin{document}
\begin{myenv}
\begin{myotherenv}
Thing
\end{myotherenv}
\end{myenv}
\end{document}
但这会引发错误:
\documentclass{article}
\usepackage{amsmath}
\newenvironment{myenv}
{\begin{tabular}{@{}l}}
{\end{tabular}}
\newenvironment{myotherenv}
{}
{}
\begin{document}
\begin{myenv}
\begin{myotherenv}
Thing\\
\end{myotherenv}
\end{myenv}
\end{document}
答案1
这与定义无关,如果直接使用构造,则会得到相同的错误。您不能在一个单元中启动环境并在另一个单元中结束它,
\begin{tabular}{l}
\begin{empty}
\\
\end{empty}
\end{tabular}
会产生与结束表格单元格相同的错误,\\
因此结束组并生成错误,因为环境尚未完成。