Wie kann ich in einer Enumerate-Umgebung, die eine \newpage enthält, nach jedem \item ein \vfill erhalten?

Wie kann ich in einer Enumerate-Umgebung, die eine \newpage enthält, nach jedem \item ein \vfill erhalten?

Ich versuche, ein Notizpaket für meinen Unterricht zu erstellen, das im Wesentlichen aus einer langen Liste von Fragen besteht, 2 oder 3 pro Seite, mit Platz nach jeder Frage, wo die Schüler Lösungen erarbeiten können. Ich verwende das enumitemPaket und habe einefastperfekte Lösung, indem Sie eine benutzerdefinierte Listenumgebung verwenden und die vertikale Abstandsarbeit definieren itemsepund ausführen:after

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

Das funktioniert gut, bis ich beschließe, die Fragen auf zwei Seiten zu verteilen und manuell Folgendes einfüge \newpage:

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

In dieser Version landet Frage 2 am Ende von Seite 1, ohne Leerzeichen danach. Ich kann das irgendwie beheben, indem ich die questionsListe vor der neuen Seite beende und sie danach neu starte, wie folgt:

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

...aber das Beenden und Neustarten der Liste jedes Mal, wenn ich eine neue Seite einfügen möchte, ist mühsam.

Gibt es eine „elegantere“ (sprich: einfachere) Möglichkeit, mit dem enumitem-Paket das gewünschte Verhalten zu erzielen? Ich bin von enumitem ziemlich überzeugt und würde lieber nicht zu einem anderen Paket wechseln, es sei denn, es gibt einen wirklich guten Grund dafür.

Antwort1

Es gibt eine Automatik \vfilmit \newpage. Es wurde von zerquetscht \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}

Antwort2

Das Problem besteht darin, dass der \itemsepKleber durch den Befehl eingefügt wird \item, sich also oben auf der zweiten Seite befindet und durch die Regel verworfen wird.

Ich sehe keine Möglichkeit zum „Zurückverfolgen“, denn wenn TeX eine Seite fertiggestellt hat, löscht es sie aus dem Speicher. Sie müssen also \vfillvor manuell hinzufügen \newpage.

Durch das Hinzufügen einiger Semantiken können Sie Folgendes tun

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

Beispiel:

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

Bildbeschreibung hier eingeben

Überprüfen Sie die kleinen Änderungen: \itshapenimmt kein Argument an. Wenn Sie möchten, dass auch die Nummer kursiv ist, tun Sie dies

label=\textit{Question \arabic*.}

verwandte Informationen