Como posso obter um \vfill após cada \item em um ambiente enumerado que inclui uma \newpage?

Como posso obter um \vfill após cada \item em um ambiente enumerado que inclui uma \newpage?

Estou tentando criar um pacote de anotações para minha aula, que é basicamente uma longa lista de questões, 2 ou 3 por página, com espaço após cada questão onde os alunos podem encontrar soluções. Estou usando o enumitempacote e elaborei umquasesolução perfeita, usando um ambiente de lista personalizado e definindo itemsepe afterfazendo o trabalho de espaçamento 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}

Isso funciona bem, até que eu decida que quero espalhar essas questões em duas páginas, inserindo manualmente um \newpage:

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

Nesta versão, a Questão 2 fica no final da página 1, sem espaço depois. Posso consertar isso encerrando a questionslista antes da nova página e reiniciando-a depois, assim:

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

...mas terminar e reiniciar a lista toda vez que quero inserir uma nova página é uma dor.

Existe uma maneira mais "elegante" (leia-se: mais fácil) de obter o comportamento que desejo usando o pacote enumitem? Estou bastante convencido do enumitem e prefiro não mudar para um pacote diferente, a menos que haja um bom motivo para isso.

Responder1

Existe um automático \vfilcom \newpage. Estava sendo esmagado 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}

Responder2

O problema é que a \itemsepcola é inserida pelo comando \item, então fica no topo da segunda página e é descartada por regra.

Não vejo como “retroceder”, pois quando o TeX completa uma página ele a remove da memória. Portanto, você precisa adicionar manualmente \vfillna frente de \newpage.

Adicionando alguma semântica, você pode fazer

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

Exemplo:

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

insira a descrição da imagem aqui

Verifique as pequenas alterações: \itshapenão aceita discussão. Se você quiser que o número também fique em itálico, faça

label=\textit{Question \arabic*.}

informação relacionada