
У меня есть окружение (определено ниже). Я хотел бы, чтобы весь экземпляр окружения не разделялся по страницам. Одно из решений, которое я нашел, — это обернуть его в \vbox. Итак, моя проблема сводится к созданию окружения, которое обертывает экземпляр другого окружения в vbox. Любая помощь будет высоко оценена :)
\NewDocumentEnvironment{exercise}{m}
{
}
{
Write your answer here
\vskip #1cm
}
решение1
Вы можете использовать \vbox\bgroup
в начале и \egroup
и в конце. Я не знаю насчет \NewDocumentEnvironment
, но обычные среды LaTeX2e не допускают параметров, где у вас есть \vskip
. Вот пример.
\documentclass{article}
\newenvironment{exercise}[1]{%
\def\exerciseskipamount{#1cm}%
\vbox\bgroup
}{%
\par
Write your answer here.\par
\vspace{\exerciseskipamount}%
\egroup
}
\begin{document}
\begin{exercise}{8}
Here is the first exercise.
\end{exercise}
\begin{exercise}{8}
Here is the second exercise.
\end{exercise}
\begin{exercise}{8}
Here is the third exercise.
\end{exercise}
\end{document}
Если вы скомпилируете, то увидите 2 упражнения на первой странице и одно на второй. Каждое из них упаковано в \vbox
.
Конечно, есть и другие пакеты для письменных упражнений, которые могут подойти для вашего случая использования, не прибегая к изобретению велосипеда. Поищите TeX SX, чтобы найти их.