¿Cómo puedo obtener un \vfill después de cada \item en un entorno de enumeración que incluye una \newpage?

¿Cómo puedo obtener un \vfill después de cada \item en un entorno de enumeración que incluye una \newpage?

Estoy intentando crear un paquete de notas para mi clase, que es básicamente una larga lista de preguntas, 2 o 3 por página, con espacio después de cada pregunta donde los estudiantes pueden encontrar soluciones. Estoy usando el enumitempaquete y he elaborado uncasiSolución perfecta, utilizando un entorno de lista personalizado y definiendo itemsepy afterhaciendo el trabajo de espaciado vertical:

\documentclass{article}
\usepackage[shortlabels]{enumitem}
\newlist{questions}{enumerate}{1} 
\setlist[questions]{label=\itshape{{Question }\arabic*.},
                    ref={Question }\arabic*,
                    leftmargin=*,
                    itemindent=*,
                    itemsep=\fill, 
                    after={\vfill},
                    resume}

\begin{document}
    \begin{questions}
        \item First Question
        \item Another Question
        \item Another Question
        \item Another Question
    \end{questions}
\end{document}

Esto funciona bien, hasta que decida que quiero distribuir estas preguntas en dos páginas, insertando manualmente un \newpage:

\begin{document}
    \begin{questions}
        \item First Question
        \item Another Question
           \newpage
        \item Another Question
        \item Another Question
    \end{questions}
\end{document}

En esta versión, la pregunta 2 termina al final de la página 1, sin espacios después. Puedo solucionarlo finalizando la questionslista antes de la nueva página y reiniciándola después, así:

\begin{document}
    \begin{questions}
        \item First Question
        \item Another Question
    \end{questions}
           \newpage
    \begin{questions}
        \item Another Question
        \item Another Question
    \end{questions}
\end{document}

...pero terminar y reiniciar la lista cada vez que quiero insertar una nueva página es una molestia.

¿Existe una manera más "elegante" (léase: más fácil) de obtener el comportamiento que deseo usando el paquete enumitem? Estoy bastante convencido de enumitem y prefiero no cambiar a un paquete diferente a menos que haya una muy buena razón para hacerlo.

Respuesta1

Hay una automática \vfilcon \newpage. Estaba siendo aplastado por \fill.

\documentclass{article}
\usepackage[shortlabels]{enumitem}
\newlist{questions}{enumerate}{1} 
\setlist[questions]{label=\itshape{{Question }\arabic*.},
                    ref={Question }\arabic*,
                    leftmargin=*,
                    itemindent=*,
                    itemsep=0pt plus 1fil, 
                    resume}

\begin{document}
    \begin{questions}
        \item First Question
        \item Another Question
    \newpage
        \item Another Question
        \item Another Question
    \end{questions}
\end{document}

Respuesta2

El problema es que el \itemseppegamento se inserta mediante el comando \item, por lo que está en la parte superior de la segunda página y se descarta por regla.

No veo forma de “retroceder”, porque cuando TeX ha completado una página la elimina de la memoria. Por lo tanto, debe agregar manualmente \vfilldelante de \newpage.

Agregando algo de semántica, puedes hacer

\newcommand{\questionbreak}{\vfill\pagebreak}

Ejemplo:

\documentclass{article}
\usepackage{enumitem}

\newlist{questions}{enumerate}{1}
\setlist[questions]{
  label=\textit{Question} \arabic*.,
  ref=Question \arabic*,
  leftmargin=*,
  itemindent=*,
  itemsep=\fill,
  after=\vfill,
  resume,
}

\newcommand{\questionbreak}{\vfill\pagebreak}

\begin{document}

\begin{questions}
\item First Question

\item Another Question

\questionbreak

\item Another Question

\item Another Question

\end{questions}

\end{document}

ingrese la descripción de la imagen aquí

Compruebe los pequeños cambios: \itshapeno requiere discusión. Si quieres que también el número esté en cursiva, hazlo.

label=\textit{Question \arabic*.}

información relacionada