
Я пытаюсь сделать книгу рецептов. Я хочу, чтобы перед каждым новым рецептом был разрыв страницы, но он может поместиться на оставшемся пространстве страницы.
Сначала я пытаюсь разместить свой рецепт на мини-странице, но рецепты, длина которых превышает страницу, отображаются на одной странице (и/или обрезаются).
Я пробую пакет Needspace, который, похоже, не совсем то, что мне нужно, поскольку я не хочу терять место, если короткий рецепт можно разместить на оставшемся пространстве страницы.
Вот нерабочий пример: я хотел бы, чтобы раздел 2 был на новой странице.
\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}
РЕДАКТИРОВАТЬ
@David Calisle: Спасибо за помощь. Возможно, я неправильно использую needspace: если я хочу, чтобы раздел 2 был на новой странице (потому что он не помещается на оставшемся месте), мне нужно использовать \needspace{.7\texttheight} (0.6 недостаточно). Но теперь Section4 отправляется на новую страницу, хотя он мог бы поместиться под section3 (на той же странице).
Ниже приведена ссылка на код ниже: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}
решение1
Donals Arseneau дайте мне нужный ответ. Но я не могу выбрать этот ответ, так как это комментарии. Добавляя \filbreak перед всеми разделами, поведение разрыва страницы — это то, что мне нужно.
\let\LaTeXStandardSubsection\subsection
\makeatletter
\renewcommand{\subsection}[1]{\filbreak\LaTeXStandardSubsection{#1}}
\makeatother
Спасибо за вашу помощь.