
Estou tentando fazer um livro de receitas. Quero ter uma quebra de página antes de cada nova receita, exceto que ela caiba no espaço restante da página.
Primeiro tento incluir minha receita na minipágina, mas as receitas com mais de uma página são exibidas em uma página (e/ou cortadas).
O pacote I try Needspace que não parece ser o que eu quero, porque não quero perder espaço se uma receita curta couber no espaço restante da página.
Aqui está um exemplo que não funciona: gostaria da seção2 em uma nova página.
\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}
EDITAR
@David Calisle: Obrigado pela ajuda. Talvez eu use mal o needspace : se eu quiser a seção 2 na nova página (porque ela não cabe no espaço restante), preciso usar \needspace{.7\texttheight} (0,6 não é suficiente). Mas agora a Seção4 é enviada para uma nova página, embora possa caber abaixo da seção3 (na mesma página).
Aqui está um link no verso do código abaixo: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}
Responder1
Donals Arseneau me dá a resposta que preciso. Mas não posso escolher esta resposta porque é um comentário. Ao adicionar \filbreak antes de todas as seções, o comportamento do pagebreak é o que eu preciso.
\let\LaTeXStandardSubsection\subsection
\makeatletter
\renewcommand{\subsection}[1]{\filbreak\LaTeXStandardSubsection{#1}}
\makeatother
Obrigado a todos pela ajuda.