我对 LaTeX 中的用户定义环境有疑问。尽管环境的内容似乎合适,但有时 LaTeX 还是会做出不必要的分页符。
这是我的 MWE:
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[latin9]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{lmodern}
\newenvironment{testenviron}
{}
{}
\begin{document}
\begin{testenviron}
Irgendein Text\dots
\vspace{17.5cm}
\dots und am Ende eine Formel:
\[f(x)=x\]
\end{testenviron}
\end{document}
为了简单起见,环境有一个空的前缀和邮政编码。此外,\vspace{17.5cm}
代表任何此长度的文本。但由于某些无法解释的原因,pdfLaTeX 在其后放置了一个空白页。所以我的问题是:我做错了什么,我误解了什么?如果我不使用环境而直接编写前缀和邮政编码,则不会出现其他页面 - 这有点奇怪。
答案1
通过在和处插入替换文本(一个空组{}
),您将获得相同的结果。我假设您只是注释掉了这些行,从而生成一份 1 页的文档。testenviron
\begin{testenviron}
\end{testenviron}
使用显示方程式结束您的环境会导致任何\end{testenviron}
内容都被设置在新行上,即使它是一个空组。
您将如何修复它?这取决于您在 中包含的内容testenviron
,或者您通常是否以显示方程式结束您的环境。在这种情况下,最简单的方法是使用以下方法忽略末尾的空白空间:
\newenvironment{testenviron}
{}% \begin{testenviron}
{\ignorespacesafterend}% \end{testenviron}