在我的汇编中,其中一个部分占据一页的一小部分,其余内容占据另一页。
是否有一个命令可以强制该部分转到下一页,如果它只填满了,例如,只有页面末尾的 10%?
\documentclass[11pt,fleqn]{book}
\usepackage[portuguese]{babel}
\usepackage[utf8]{inputenc}
\usepackage{graphicx}
\usepackage[]{titlesec}
\usepackage[many]{tcolorbox}
\usepackage{tikz}
\usepackage{enumitem}
\begin{document}
%----------------------------------------------------------------------------------------
% PARTE 1
%----------------------------------------------------------------------------------------
\part{Parte 1}
%---------------------------------------------------------------------------------------
% Capítulo 1
%---------------------------------------------------------------------------------------
\chapter{Conhecendo o SolidWorks}
%---------------------------------------------------------------------------------------
% Seções
%---------------------------------------------------------------------------------------
\section{Introdução}
Quando você abre o aplicativo SOLIDWORKS pela primeira vez, a tela que você vê é a seguinte:
\begin{figure}[!htb]
\centering
\includegraphics[width=14cm]{1.png}
\caption{Tela inicial}
\label{fig:1}
\end{figure}
\section{Interface do Usuário}
Abra no botão Novo:
\begin{figure}[!htb]
\centering
\includegraphics[width=14cm]{2.png}
\caption{Botão novo}
\label{fig:2}
\end{figure}
\section{Comandos da Interface do usuário}
\begin{enumerate}
\item Barra de menus
\item Barras de ferramentas
\item Gerenciador de comandos (CommandManager)
\item Gerenciador de configurações
\item Gerenciador de propriedades
\item Filtro da árvore de projeto
\item Trilhas de seleção
\item Árvore de projeto do FeatureManager
\item Barra de status
\item Barra de ferramentas transparente
\item Painel de tarefas
\item Área de gráficos
\end{enumerate}
\end{document}
1.png
2.png
答案1
needspace
如果空间不足, 可以使用该包插入分页符。根据文档,该包提供了以下两个命令:\needspace{<length>}
包插入分页符。根据文档,该包提供以下两个命令:保留近似length
while指定的空间量\Needspace{<length>}
指定的空间精确的数量。如果你在文本中使用这些命令,latex 将根据指定的长度自动决定是否插入分页符。
如果您想要全局启用此行为(针对\section
整个文档中的所有命令),例如,您可以使用以下 MWE 中的解决方案。由于有足够的空间容纳第 2 节的内容,因此在此节开始之前不会出现分页,而第 3 节将从新页面开始。
在这个例子中,我选择了6\baselineskip
它,length
因为它适合 MWE,但你当然可以将其调整到你想要的长度。
\documentclass{book}
\usepackage{lipsum}
\usepackage{needspace}
\usepackage{xpatch}
\xpretocmd{\section}{\needspace{6\baselineskip}}{}{}
\begin{document}
\section{one}
\lipsum
\section{two}
\lipsum
\section{3}
\lipsum
\end{document}
下图比较了 MWE 的输出和(左半部分)和没有(右半部分)的使用\needspace
。
答案2
由于您使用titlesec
,您可以在包内部做所有事情:在您的序言中写入
\usepackage[nobottomtitles*]{titlesec}
摘自文档(第 5-6 页):
如果
nobottomtitles
设置了,靠近底部边距的标题将被移动到下一页,并且边距会变得参差不齐。底部边距中不移动标题所需的最小空间(大约)设置为\renewcommand{\bottomtitlespace}{<length>}
默认值为
.2\textheight
。 前一页底部的简单参差不齐效果通过值为 0 pt 获得。bottomtitles
是默认值,它只是设置\bottomtitlespace
为负值。 该nobottomtitles*
选项提供了更准确的计算,但边距、环绕或下拉形状的标题可能位置不佳。 通常,您应该使用带星号的版本。