Evitar saltos de página después de una subsección

Evitar saltos de página después de una subsección

Aunque normalmente no se permiten saltos de página después de \subsectionlos comandos, me encuentro con uno con el paquete ExPex. Si alguien conoce ese paquete específicamente, una pregunta específica sería bienvenida. Sin embargo, también estoy interesado en cualquier solución más general, que tal vez cubra muchos casos en los que no estoy seguro de lo que hay en la macro.

Por el momento estoy poniendo todo en una minipágina; Sin embargo, parece que debería haber una mejor manera de hacerlo.

\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}

Respuesta1

De la documentación: "\exbreak se inserta al principio de cada bloque \ex o \pex". \exbreakinserta una penalización que le dice a TeX que este es un buen lugar para romper. Podrías redefinir esta penalización (localmente o permanentemente, su valor predeterminado es -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}

Respuesta2

No tengo experiencia con el ExPexpaquete, pero \exagregué 2.7ex plus .4ex minus .4exel elemento encima, por lo que parece que LaTeX encuentra un buen lugar para un salto de página aquí.

Una solución que se me ocurre es comenzar la sección (primer párrafo) con un cuadro vacío, por ejemplo \hbox{}, y luego usar la opción aboveexskippara reducir el espacio extra a 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}

información relacionada