我正在使用exercise包在一本书中显示练习。我已经重新定义了一些这样的命令,基本上在练习前后增加了一些空间,一支铅笔和两个小节:

\renewcommand{\ExerciseHeader}{\vskip 1em\hrule\vskip 1em\centerline{\textbf{\large\smallpencil
\ExerciseHeaderNB\ExerciseHeaderTitle%
\ExerciseHeaderDifficulty\ExerciseHeaderOrigin\medskip}}}
\makeatletter\def\endExerciseEnv{\termineliste{1}\@EndExeBox\vskip .5em\hrule\vskip 1em}\makeatother

现在可以使用,但是有一个小问题:

在某些情况下,只有\hrule最终出现在页面的底部,其余的练习在下一页进行。也存在相反的行为:整个练习都在一页上,除了“endExerciseEnv”中的\hrule,它刷新到了下一页。

我如何迫使最高的小礼节来临?
  • 或练习的标题(标题,标题等),至少要说“练习文本”的5em左右(这样看起来并不难看),
  • 还是整个练习都被冲洗掉了?

  • 下段的类似问题:

    我如何强制它在小节本身所在的可见页面上至少有5 em的“练习文本”? (或“练习”环境的开始,以先到者为准-如果环境不高于5em,则是这种情况)

    附录

    过去,我曾问过类似LaTeX的问题,而我得到的答案则需要我手动做一些事情,例如“在这里和那里插入\vskip”。

    让我清楚一点:这是一本书,有很多练习,我需要通过重新声明命令&co的正确方法来“自动”完成。

    最佳答案

    TeX可以在任何胶水之前插入分页符,例如\vskip 1em

    进行一些更改:

    1)你写\vskip 1em\hrule\vskip 1em替换为

    \vskip 1em\hrule \nobreak \vskip 1em
    

    2)您编写\vskip .5em\hrule\vskip 1em替换为
    \nobreak\vskip .5em\hrule\vskip 1em
    

    您也可以插入\goodbreak以显示中断页面的好方法。
    您可以在运动前后插入这个优点。

    1)\goodbreak\vskip 1em\hrule \nobreak \vskip 1em
    2)\nobreak\vskip .5em\hrule \goodbreak \vskip 1em

    关于latex - 跨页面打破LaTeX环境-智能方式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2829024/

    10-09 13:32