定义一个新环境,不需要写两页纸

定义一个新环境,不需要写两页纸

我已经定义了一个环境

\newenvironment{definiere}{\begin{leftbar} \textbf{Definition:}\newline }{\end{leftbar}}

不幸的是,有时这种环境会分布在两页上,其中左侧栏长约 2 厘米,标题为“定义”,但实际定义本身在下一页。

我使用这个环境大多是这样的:

\begin{definiere}
   \begin{equation}
     WMC=\sum_{i=1}^n {c_i} \label{eq:WMC}
   \end{equation}
\end{definiere}

我可以通过将段落移到定义下方或上方来避免这种行为,但有时它不再有意义。我的问题是,有人能找到更优雅的解决方案来满足我的需求吗?

答案1

您的\textbf{Definition}标题类似于章节标题。 抑制分页符,如下\section所示:

\makeatletter
\newenvironment{definiere}
  {\begin{leftbar}%
   \textbf{Definition:}\par\nobreak\@afterheading}
  {\end{leftbar}}
\makeatother

答案2

Ulrike 的回答可能是做类似事情的正确方法。另一种方法似乎对我有用---您可以将所有内容打包到迷你页面中。希望其他人可以确切解释它为什么有效。

\newenvironment{definiere}{\begin{minipage}{\textwidth}\begin{leftbar} \textbf{Definition:}\newline }{\end{leftbar}\end{minipage}}

相关内容