方程环境的新环境包装器的间距问题

方程环境的新环境包装器的间距问题

如果我根据equation环境创建自定义环境,则会遇到间距问题:环境关闭后下一行文本不会从左边距开始。

示例代码:

\documentclass{article}
\begin{document}
\newenvironment{myenv}{\begin{equation}}{\end{equation}}
\noindent $| \leftarrow$ this is the left margin.
\begin{myenv}
e ^{i \pi} + 1 = 0
\end{myenv}
$| \leftarrow$ this isn't the left margin.
\end{document}

输出:

在此处输入图片描述

删除后面的换行符\end{myenv}可以解决间距问题,但生成的代码不可读。

当然,在这个例子中,我可以只使用方程式环境本身。我真正的问题涉及一个更复杂的自定义环境,该环境也存在同样的问题,并且其中还包括一个方程式环境。

答案1

\end{equation}命令终止显示数学模式,因此 TeX 恢复水平模式,并且只有在此操作之后,它才能看到后面的行尾\end{myenv},并将其作为段落的一部分进行处理。

解决方案是附加\ignorespacesafterend到环境定义的“结束”部分:

\newenvironment{myenv}
  {\begin{equation}}
  {\end{equation}\ignorespacesafterend}

相关内容