
我正在嘗試製作一本食譜書。我想在每個新食譜之前有一個分頁符,除非它可以適合頁面的剩餘空間。
我首先嘗試將我的食譜包含在小型頁面中,但是比一頁長的食譜顯示在一頁上(和/或剪切)。
我嘗試的 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}
編輯
@大衛卡萊爾:感謝您的幫助。也許我誤用了 needspace :如果我想在新頁面上顯示第 2 部分(因為它不適合剩餘空間),我需要使用 \needspace{.7\textheight} (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
多納爾斯·阿瑟諾給了我我需要的答案。但我不能選擇這個答案,因為它是評論。透過在所有部分之前加上 \filbreak,分頁行為就是我所需要的。
\let\LaTeXStandardSubsection\subsection
\makeatletter
\renewcommand{\subsection}[1]{\filbreak\LaTeXStandardSubsection{#1}}
\makeatother
感謝大家的幫忙。