Ampliar el espacio vertical y reducir la maldad en la parte inferior de una página

Ampliar el espacio vertical y reducir la maldad en la parte inferior de una página

Problema

¿Hay alguna manera en TeX/LaTeX de reducir de alguna manera la maldad que proviene de una distancia de una línea desde la altura objetivo de una página?

Contexto

Estoy creando una clase de documentos para que mis alumnos utilicen LaTeX, en lugar de MS Word, para automatizar la creación de documentos portátiles. Se espera que los estudiantes no estén familiarizados con LaTeX en absoluto, por lo que me gustaría manejar automáticamente tantos casos de esquina como sea posible en mi clase de LaTeX.

Al mismo tiempo, mi institución tiene requisitos para los tipos de documentos que intento cubrir, en cuanto a fuentes, espacios, justificaciones, etc. Sin embargo, se permite que los márgenes de la página inferior sean algo inconsistentes en un documento.

En particular, se requiere que las tesis utilicen fuentes específicas de 14 puntos de tamaño con un intervalo entre líneas de 1,5. Por lo tanto, xelatexse utiliza para la compilación y, lo que es más importante, la maldad condicionada a la distancia vertical de una línea desde la parte inferior de una página crece mucho más rápido que en los documentos TeX/LaTeX normales.

El siguiente MWE reproduce el problema ( pdflatextambién):

\documentclass{book}

\renewcommand{\section}[1]{\ifhmode\par\fi\addvspace{0.5em}\textbf{#1}\par
   \penalty201\addvspace{0.5em}}
\renewcommand{\subsection}[1]{\ifhmode\par\fi\addvspace{0.5em}\textbf{\textit{#1}}\par\penalty301}

\begin{document}

\parskip=1em\raggedbottom
\tracingonline=1\tracingpages=1

1\par2\par3\par4\par5\par6\par7\par8\par9\par10\par11\par12\par13\par14\par
15\par16\par17\par18\par19\par20\par21\par22

\section{Section 1}\section{Section 2}\subsection{Subsection}
\par23

\end{document}

lo que produce el resultado (aquí para facilitar la lectura, recorté artificialmente la imagen y reduje los márgenes de la página): resultado recortado de la compilación

El seguimiento de página produce (la parte entre las páginas):

% t=472.0 g=550.0 b=10000 p=0 c=100000#
% t=499.0 g=550.0 b=10000 p=201 c=100000#
% t=526.0 g=550.0 b=10000 p=201 c=100000#
% t=553.0 g=550.0 b=* p=301 c=*
[1]
%% goal height=550.0, max depth=5.0
% t=10.0 g=550.0 b=10000 p=301 c=100000#
% t=32.0 g=550.0 b=10000 p=0 c=100000#

En este ejemplo me gustaría que la sección 2 estuviera en la misma página que la subsección, y quiero que la subsección esté en la misma página que el párrafo "23" respetando las sanciones circundantes.

Sé que podría simplemente asignar infinitamente malo \penalty 10000después del título de una sección, pero eso introduciría otro problema. Me parece común que la gente primero defina una estructura de contenido colocando capítulos/secciones/subsecciones vacías, etc., y luego completen el contenido propiamente dicho. Con penalización infinita, todas esas secciones estarían en la misma página y ubicadas más allá del borde de la página. Y esto es lo que \@startsectionhace.

Es decir, me gustaría que existiera la posibilidad de un salto de página entre la Sección 1 y la Sección 2 en el MWE aunque con una penalización.

La única forma de lograr estos objetivos que pude encontrar es jugando con \parskipel estiramiento (5em en el ejemplo real) y la contracción, aunque no parece ser una solución confiable, introduciría la posibilidad de violar los requisitos del institución, y he oído que generalmente no es deseado en tipografía. Por lo tanto, prefiero hacer que el margen inferior sea extensible pero sin hacer que la maldad sea infinita para respetar las penalizaciones, y mi pregunta es sobre la posibilidad de hacerlo en una clase de LaTeX.

También intenté usar \raggedbottomy \def\@textbottom{...}para ello, pero no afectan la maldad/los costos de los saltos de página de ninguna manera. Comparé los archivos PDF resultantes usando la diff-pdfherramienta, colocar esas macros no hace ninguna diferencia.

información relacionada