Я использую пакет осуществления для отображения упражнений в книге. Я переопределил некоторые команды как это, которое в основном добавляет некоторое пространство, карандаш, и два hrule's прежде и после осуществления:
\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 заканчивает тем, что был внизу страницы, и остальная часть осуществления идет на следующую страницу. Существует также противоположное поведение: все осуществление находится на одной странице, кроме \hrule в "endExerciseEnv", который сбрасывается к следующей странице.
Как я вызываю вершину hrule, прибывают?
Подобный вопрос для нижней части hrule:
Как я вызываю его, имеют по крайней мере 5 их "текста осуществления" перед ним на видимой странице, куда сам hrule переходит в? (или начало среды Осуществления, какой бы ни на первом месте - поскольку имеет место, не ли среда выше, чем 5em),
Приложение
Я спросил в прошлых вопросах о ЛАТЕКСЕ как это, и у меня есть ответы, которые потребовали, чтобы я сделал, материал вручную, как "вставляют \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
Престижность к я: https://ctan.org/pkg/needspace
Предоставляет команды для отключения разбиения по страницам в заданном вертикальном пространстве. Если между командой и нижней частью страницы недостаточно места, будет запущена новая страница.