示例之前的 Expex \vskip 不会在分页符处消失

示例之前的 Expex \vskip 不会在分页符处消失

我有一份book文件\flushbottom。我使用专家用于语言示例。当示例是页面上的第一项时,前一页会以一些虚假的空白结束,如下面的 MWE 所示。

\ex(开始示例)插入\exbreak,其定义为:

\def\exbreak{\endgraf\bgroup\@getoptionalarg\exbreak@a}
\def\exbreak@a{%
   \ifx\@optionalarg\empty
         \skip255=\lingexbreakfil
      \else
         \skip255= 0pt plus\@optionalarg
      \fi
   \vskip\skip255
   \penalty\lingexbreakpenalty
   \vskip-\skip255
   \egroup
}

(默认情况下,\lingexbreakfil=0pt plus 4ex\lingexbreakpenalty=-50文档相反。)

\exbreak文档中对的行为解释如下:

它不仅会结束当前段落,并且如果在该点进行分页则给予惩罚(如果惩罚为负数则给予奖励),而且通过允许页面以一些垂直填充结束,允许在分页的底部出现一些空白,使得更容易进行令人满意的分页。

\flushbottom我可以通过删除 来获得所需的效果\vskip\skip255。我不确定\vskip惩罚后的负数的目的是什么。这意味着我也可以使用 来获得所需的效果\lingset{exbreakfil=0pt}

我不明白为什么会发生这种情况。根据这个答案, "间距插入\vskip总是在分页符处消失”。那么为什么第一个插入的空格\vskip在这里没有消失呢?

在此处输入图片描述

\documentclass[a4paper]{book}
\usepackage[showframe,margin=4cm,top=6cm,bottom=6cm]{geometry}
\usepackage{blindtext}
\usepackage{expex}
\begin{document}

\Blindtext[4][1]

\ex
\begingl
\glpreamble A rather long example //
\gla with glosses //
\glb explaining the //
\glc meaning of //
\glft `the text' //
\endgl
\xe

\end{document}

相关内容