如何避免类似标题的内容出现在页面底部,希望自动分页并出现在第二页

如何避免类似标题的内容出现在页面底部,希望自动分页并出现在第二页

首先我来描述一下我想要的效果。对于\section命令,当它后面有文本时。其中的内容\section不会出现在页面底部。下面是一个示例代码来演示此效果。

\documentclass{article}
\usepackage{showframe}
\usepackage{lipsum}
\begin{document}
\lipsum[2-6]
\par
xxx\par
\section{zzzz}
xxxx
\end{document}

在此处输入图片描述

\documentclass{article}
\usepackage{showframe}
\usepackage{lipsum}
\begin{document}
\lipsum[2-6]
\par
xxx\par
\section{zzzz}
% xxxx
\end{document}

在此处输入图片描述

我想知道这个是怎么实现的,我想自定义一个命令只实现这个效果,如何修改命令的定义 \aaa才能有上面的效果。

\documentclass{article}
\usepackage{showframe}
\usepackage{lipsum}
\newcommand{\aaa}[1]{\vspace{15pt}\textbf{#1}\vspace{15pt}\par}
\begin{document}
\lipsum[2-6]
\par
xxx\par
% \section{zzzz}
\aaa{zzzz}
xxxx
\end{document}

答案1

\section 借助\nobreak之前的\vspace(应该在 之后\par)来防止中断。此外,它还添加了\@afterheading

\documentclass{article}
\usepackage{showframe}
\usepackage{lipsum}
\makeatletter
\newcommand{\aaa}[1]{\vspace{15pt}\textbf{#1}\par\nobreak\vspace{15pt}\@afterheading}
\makeatother
\begin{document}
\lipsum[2-6]
\par
xxx\par
% \section{zzzz}
\aaa{zzzz}
xxxx
\end{document}

相关内容