
Eu tenho um ambiente (definido abaixo). Gostaria de evitar que toda a instância do ambiente se dividisse entre as páginas. Uma solução que encontrei é envolvê-lo em \vbox. Então, meu problema se resume a criar um ambiente que envolva a instância de outro ambiente em um vbox. Qualquer ajuda muito apreciada :)
\NewDocumentEnvironment{exercise}{m}
{
}
{
Write your answer here
\vskip #1cm
}
Responder1
Você pode usar \vbox\bgroup
no início e \egroup
no final. Eu não sei \NewDocumentEnvironment
, mas ambientes LaTeX2e normais não permitem parâmetros onde você tem o arquivo \vskip
. Aqui está um exemplo.
\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}
Se você compilar, verá 2 exercícios na primeira página e um na segunda. Cada um deles está envolto em um arquivo \vbox
.
Claro, existem outros pacotes para escrever exercícios que podem se adequar ao seu caso de uso, sem que você precise reinventar a roda. Pesquise TeX SX para encontrá-los.