首先我来描述一下我想要的效果。对于\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}