¿Cómo evitar saltos de página en las últimas tres líneas de un entorno?

¿Cómo evitar saltos de página en las últimas tres líneas de un entorno?

Quiero crear un entorno, ese contenido no debería permitir un salto de página en las últimas tres líneas del último párrafo.

Si las últimas tres líneas del texto dentro del entorno llegan al borde de la página, el salto de página debe ocurrir después de la cuarta línea desde abajo.

Fuera del entorno no se debe cambiar el comportamiento normal de los saltos de página.

El entorno sólo contendrá texto normal, pero con márgenes aumentados en el lado izquierdo y derecho. También pueden aparecer algunas ecuaciones matemáticas en línea, pero eso debería ser todo.

\documentclass{scrartcl}

\usepackage{lipsum}

\newenvironment{env}{%
    \begin{addmargin}{2em}%
}{%
    \end{addmargin}
}%


\begin{document}
\lipsum[1-3]

\begin{env}
    \lipsum[1]
    This is just some filler text, to reach the page break.
    This is just some filler text, to reach the page break.
    This is just some filler text, to reach the page break.
    This is just some filler text, to reach the page break.
    This is just some filler text, to reach the page break.
    This is just some filler text, to reach the page break.
    This is just some filler text, to reach the page break.
    This is just some filler text, to reach the page break.
    This last lines should not be broken to the next page.
    This last lines should not be broken to the next page.
    This last lines should not be broken to the next page.
\end{env}
\end{document}

Editar:

No estoy seguro de poder dejar claro lo que intento lograr: normalmente no sabré dónde comenzarán exactamente las últimas líneas. En cambio, es más bien evitar las viudas, pero no sólo evitar que la última línea del párrafo pase a la página siguiente, sino que las últimas tres líneas de texto dentro del entorno {env}siempre permanecerán juntas, ya sea en la página real o en la página siguiente. siguiente página.

Respuesta1

Puedes usar \widowpenalties; con

\widowpenalties 3 10000 10000 0

agrega una penalización de 10000 entre las últimas tres líneas y ninguna entre las líneas anteriores. Ver también¿Cómo evitar saltos de página dentro de párrafos?

\documentclass{scrartcl}

\usepackage{lipsum}

\newenvironment{env}
 {\begin{addmargin}{2em}\widowpenalties 3 10000 10000 0 }
 {\end{addmargin}}


\begin{document}
\lipsum[1-3]

\begin{env}
    \lipsum[1]
    This is just some filler text, to reach the page break.
    This is just some filler text, to reach the page break.
    This is just some filler text, to reach the page break.
    This is just some filler text, to reach the page break.
    This is just some filler text, to reach the page break.
    This is just some filler text, to reach the page break.
    This is just some filler text, to reach the page break.
    This is just some filler text, to reach the page break.
    This last lines should not be broken to the next page.
    This last lines should not be broken to the next page.
    This last lines should not be broken to the next page.
\end{env}
\end{document}

ingrese la descripción de la imagen aquí

información relacionada