Я использую пакет упражнение для отображения упражнений в книге. Я переопределил некоторые команды, подобные этой, которые в основном добавляют пробел, карандаш и две хруле до и после упражнения:
\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, который сбрасывается на следующую страницу.
Как заставить верхний хруль прийти?
- либо вместе с заголовком упражнения (заголовок, заголовок, что угодно, но не так) и, по крайней мере, произнесите 5em или около того «текста упражнения» (чтобы он не выглядел уродливо),
- ИЛИ быть полностью сброшенным со всего упражнения?
Аналогичный вопрос для нижней хруле:
Как заставить его иметь как минимум 5 em "текста упражнения" перед ним на видимой странице, куда направляется сам hrule? (или начало среды Exercise, в зависимости от того, что наступит раньше - как в случае, если среда не выше 5em)
Добавление
Я задавал в прошлом вопросы LaTeX, подобные этим, и у меня есть ответы, которые требовали, чтобы я что-то делал вручную, например, "вставить \ vskip здесь и там" или что-то подобное.
Позвольте мне прояснить: это книга, в ней много упражнений, и мне нужно это будет сделано "автоматически", пройдя правильный путь повторного выделения команд & co.