mdframed está provocando una alineación incorrecta en la parte inferior de las páginas

mdframed está provocando una alineación incorrecta en la parte inferior de las páginas

Si fuera tan amable de compilar este documento LaTeX:

\documentclass[a4paper,11pt]{book}

\usepackage[paper=a4paper,twoside=true,lmargin=4cm,
rmargin=4cm,bindingoffset=0cm]{geometry}

\usepackage{mdframed,lipsum,kantlipsum}
\mdfsetup{font=\small}

\begin{document}
\kant[1-8]


\begin{mdframed}
\kant[1-5]
\end{mdframed}

\end{document}

Encontrará que las partes inferiores de las páginas 2 y 3 están desalineadas de la siguiente manera:

páginas desalineadas

Preguntas:

  1. ¿No debería expandirse el espacio entre el párrafo y el marco en la página 3 de manera que las partes inferiores se alineen? ¿Por qué esto no sucede?

  2. ¿Cómo agregaría un espacio flexible (cero, más algo flexible si es necesario, como para el espaciado entre párrafos) encima del cuadro mdframed también? Eso ejercería menos presión sobre el espacio entre los párrafos, suponiendo que resuelva la pregunta 1 anterior.

Respuesta1

Por razones que no entiendo, mdframedgenera el primer cuadro (dividido) de manera que la parte inferior de la página estará irregular sin importar si está configurado \raggedbottomo \flushbottom(predeterminado con book).

Puede obtener un comportamiento más normal con los siguientes parches:

\usepackage{mdframed}

\makeatletter

\patchcmd\mdf@put@frame@i{\hrule \@height\z@ \@width\hsize\vfill}{}{}{}
\patchcmd\mdf@put@frame@i{\hrule \@height\z@ \@width\hsize\vfill}{}{}{}
\patchcmd\mdf@put@frame@i{\hrule \@height\z@ \@width\hsize\vfill}{}{}{}

\makeatother

Como realmente no sé qué se supone que se debe lograr con esto, probablemente se rompa algo, pero al menos la parte inferior de la página está alineada ahora ;-)

El espacio encima de la mdframedcaja está configurado con skipabove, por lo que obtienes pegamento flexible al

\mdfsetup{font=\small,skipabove=\parskip}

ejemplo

información relacionada