防止在小节后分页

防止在小节后分页

虽然命令后通常不允许分页\subsection,但我在 ExPex 包中遇到了分页。如果有人具体了解该包,欢迎提出具体问题。不过,我也对任何更通用的解决方案感兴趣,这些解决方案可能涵盖了许多我不确定宏中的内容的情况。

目前,我把所有内容都放在一个小页面中;不过,感觉应该有更好的方法来做到这一点。

\documentclass[10pt]{book}
\usepackage{expex,lipsum}
\begin{document}
\lipsum[1-4]\lipsum[4]
\subsection{My heading}
\ex
\begingl
\gla Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nam consectetuer mollis dolor. Quisque malesuada nulla sed pede volutpat pulvinar. Aliquam metus. Morbi turpis arcu, egestas congue, condimentum quis, tristique cursus, leo. //
\endgl
\xe
\end{document}

答案1

来自文档:“\exbreak 插入在每个 \ex 或 \pex 块的开头。”。\exbreak插入一个惩罚,告诉 TeX 这里是断点的好地方。您可以重新定义这个惩罚(局部或永久,其默认值为 -50):

\documentclass[10pt]{book}
\usepackage{expex} 
\usepackage{lipsum}
\begin{document}
\lipsum[1-4]\lipsum[4]
\renewcommand\lingexbreakpenalty{10000}
\subsection{My heading}

\ex 
\begingl
\gla Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nam consectetuer mollis dolor. Quisque malesuada nulla sed pede volutpat pulvinar. Aliquam metus. Morbi turpis arcu, egestas congue, condimentum quis, tristique cursus, leo. //
\endgl
\xe
\end{document}

答案2

我没有使用该ExPex软件包的经验,但\ex添加了2.7ex plus .4ex minus .4ex上述项目,因此看起来 LaTeX 在这里找到了一个分页符的好地方。

我想到的一个解决方案是用一个空框开始该部分(第一段),例如\hbox{},然后使用选项aboveexskip将多余的空间减少到 0pt:

\documentclass[10pt]{book}
\usepackage{expex,lipsum}
\begin{document}
\lipsum[1-4]\lipsum[4]
\subsection{My heading}
\hbox{}\ex[aboveexskip=0pt]
\begingl
\gla Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nam consectetuer mollis dolor. Quisque malesuada nulla sed pede volutpat pulvinar. Aliquam metus. Morbi turpis arcu, egestas congue, condimentum quis, tristique cursus, leo. //
\endgl
\xe
\end{document}

相关内容