Seitenumbruch vor Abschnitten erzwingen, wenn der Abschnitt nicht auf die Seite passt

Seitenumbruch vor Abschnitten erzwingen, wenn der Abschnitt nicht auf die Seite passt

Ich versuche, ein Kochbuch zu erstellen. Ich möchte vor jedem neuen Rezept einen Seitenumbruch haben, es sei denn, es passt auf den verbleibenden Platz der Seite.

Ich versuche zunächst, mein Rezept in eine Miniseite einzubinden, aber Rezepte, die länger als eine Seite sind, werden auf einer Seite angezeigt (und/oder gekürzt).

Ich probiere das Needspace-Paket aus, das aber anscheinend nicht das ist, was ich möchte, da ich keinen Platz verlieren möchte, wenn auf den verbleibenden Platz der Seite auch ein kurzes Rezept passt.

Hier ist ein nicht funktionierendes Beispiel: Ich möchte Abschnitt 2 auf einer neuen Seite.

\documentclass[11pt]{article}
\usepackage[T1]{fontenc}
\usepackage[a6paper]{geometry}
\usepackage[french]{babel}
\usepackage{lipsum}
\linespread{1.5} 
\newenvironment{env1}{\vspace{-1em}\begin{flushright} \itshape }{\end{flushright}\vspace{-1em}}
\title{Test2}

\begin{document}

\section*{section 1}
\begin{env1}
env1 text
\end{env1}
\lipsum[1][1-4]
\section*{section 2}
\begin{env1}
env1 text
\end{env1}
\begin{enumerate}
    \item item1
    \item item2
    \item item3
\end{enumerate}
\lipsum[1][1-4]
\section*{section 3}
\begin{env1}
env1 text
\end{env1}
\lipsum[1][1-4]
\begin{enumerate}
    \item item1
    \item item2
    \item item3
    \item item4
    \item item5
    \item item6
\end{enumerate}
\section*{section 4}
\begin{env1}
env1 text
\end{env1}
\lipsum[1][1-3]
\end{document}

BEARBEITEN

@David Calisle: Danke für die Hilfe. Vielleicht verwende ich needspace falsch: Wenn ich Abschnitt 2 auf einer neuen Seite haben möchte (weil er nicht in den verbleibenden Platz passt), muss ich \needspace{.7\textheight} verwenden (0,6 ist nicht genug). Aber jetzt wird Abschnitt 4 auf eine neue Seite gesendet, obwohl er unter Abschnitt 3 (auf derselben Seite) passen könnte.

Hier ist der Link auf der Rückseite des folgenden Codes:https://www.overleaf.com/read/mdstfpxpwwsp

\documentclass[11pt]{article}
\usepackage[T1]{fontenc}
\usepackage{needspace}
\usepackage[a6paper]{geometry}
\usepackage[french]{babel}
\usepackage{lipsum}
\usepackage{titlesec}
\linespread{1.5} 
\let\LaTeXStandardSection\section
\makeatletter
\renewcommand{\section}[1]{\needspace{0.7\textheight}\LaTeXStandardSection{#1} }
\makeatother
\newenvironment{env1}{\vspace{-1em}\begin{flushright} \itshape }{\end{flushright}\vspace{-1em}}
\title{Test2}

\begin{document}

\section{section 1}
\begin{env1}
env1 text
\end{env1}
\lipsum[1][1-2]
\section{section 2}
\begin{env1}
env1 text
\end{env1}
\begin{enumerate}
    \item item1
    \item item2
    \item item3
\end{enumerate}
\lipsum[1][1-4]
\section{section 3}
\begin{env1}
env1 text
\end{env1}
\lipsum[1][1-2]
\begin{enumerate}
    \item item1
    \item item2
\end{enumerate}
\section{section 4}
\begin{env1}
env1 text
\end{env1}
\lipsum[1][1-2]
\end{document}

Antwort1

Donals Arseneau gibt mir die Antwort, die ich brauche. Aber ich kann diese Antwort nicht auswählen, da es sich um einen Kommentar handelt. Indem ich vor allen Abschnitten \filbreak hinzufüge, erreiche ich das Verhalten des Seitenumbruchs, das ich brauche.

\let\LaTeXStandardSubsection\subsection
\makeatletter
\renewcommand{\subsection}[1]{\filbreak\LaTeXStandardSubsection{#1}}
\makeatother

Vielen Dank an alle für Ihre Hilfe.

verwandte Informationen