Creando un entorno para poner otra instancia de entorno en vbox

Creando un entorno para poner otra instancia de entorno en vbox

Tengo un entorno (definido a continuación). Me gustaría evitar que toda la instancia del entorno se divida en páginas. Una solución que encontré es envolverlo en \vbox. Entonces, mi problema se reduce a crear un entorno que envuelva la instancia de otro entorno en un vbox. Cualquier ayuda muy apreciada :)

\NewDocumentEnvironment{exercise}{m}
{
} 
{ 
    Write your answer here
    \vskip #1cm
}

Respuesta1

Puedes usarlo \vbox\bgroupal principio y \egroupal final. No lo sé \NewDocumentEnvironment, pero los entornos normales de LaTeX2e no permiten parámetros donde tienes el archivo \vskip. He aquí un ejemplo.

\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}

Si compilas, verás 2 ejercicios en la primera página y uno en la segunda. Cada uno de ellos está envuelto en un \vbox.

Por supuesto, existen otros paquetes para ejercicios de escritura que pueden adaptarse a su caso de uso sin que tenga que reinventar la rueda. Busque TeX SX para encontrarlos.

información relacionada