如果我根据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}