如何才能防止在插入部分标题之前出现分页符,同时保留标题前的垂直间距?
根据如何防止在逐项列表之前出现分页符?,我将运行标题定义为
\makeatletter
\newcommand{\runinheading}{\@startsection{paragraph}{4}{\z@}%
{2.1ex \@plus1ex \@minus 0.64ex}{-1em}%
{\sffamily\normalsize\bfseries}}
\newcommand{\nobreakruninheading}{\par\nobreak\@afterheading\runinheading}
\makeatother
我以下列方式使用此标题:
..., but the process assignment is still in bijective
correspondence with the proof rules.
\nobreakruninheading*{Cut reduction as computation.}
The principal cut reduction is
\begin{equation*}
\text{several lines of math go here}
\end{equation*}
When annotated according to the process interpretation,
we can extract the process reduction
确实,LaTeX 不会在插入标题前插入分页符。但是,段落末尾 ( ... with the proof rules.
) 和插入标题之间没有垂直空格。
我确实知道页面上有足够的空间,1.6ex
标题前有垂直空间,因为如果我将其定义\nobreakruninheading*
为\vspace{1.6ex}\noindent{\sffamily\normalsize\bfseries #1}\hspace{1em}
,则所有内容都会符合我的要求。如果可能的话,我想避免使用这种替代定义,因为它与我论文中的其他部分标题(使用)不匹配\@startsection
。
答案1
我的感觉是,如果你想如果在标题前留有垂直空间,那么分页符也很好。
无论如何,通过在后面添加空格,您就可以得到您想要的结果\nobreak
:
\makeatletter
\newcommand{\runinheading}{\@startsection{paragraph}{4}{\z@}%
{2.1ex \@plus1ex \@minus 0.64ex}{-1em}%
{\sffamily\normalsize\bfseries}}
\newcommand{\nobreakruninheading}{\par\nobreak\vskip\bigskipamount\@afterheading\runinheading}
\makeatother