¿Cómo hacer partes inferiores irregulares de las columnas en varias columnas para evitar saltos de página?

¿Cómo hacer partes inferiores irregulares de las columnas en varias columnas para evitar saltos de página?

La configuración: necesito usar multicols para, digamos, 3 columnas donde tengo muchas secciones pequeñas. Noté que algunas secciones están divididas en el medio y terminan pasando a la siguiente columna, lo cual no quiero.

Después de algunas investigaciones (es decir, buscar en Google), se descubrió que agregar\interlinepenalty=10000 evita esto. Y lo hace.Multicol - no envolver

Pero en lugar de tener espacios en la parte inferior de las columnas (partes inferiores irregulares, o como se llame correctamente), las columnas terminan con un gran espacio vacío en el medio, lo que no se ve bien.

gráficos matemáticos

generado usando:

\documentclass[10pt,notitlepage]{article}%
\setlength{\columnseprule}{0pt} %column thicnkess 
\setlength{\columnsep}{5.0pt}
\usepackage{lipsum}
\usepackage{multicol}
\usepackage{titlesec}
\titleformat{\section}{\large\bfseries}{\thesection}{1em}{}
\begin{document}
\begin{multicols*}{3}     
\interlinepenalty=10000
\section{some section}
\lipsum[75]
\section{some section}
\lipsum[75]
\section{some section}
\lipsum[3]
\section{some section}
\lipsum[75]
\section{some section}
\lipsum[75]
\section{some section}
\lipsum[75]
\section{some section}
\lipsum[4]
\section{some section}
\lipsum[75]
\end{multicols*}
\end{document}

quitar \interlinepenalty=10000da

gráficos matemáticos

lo cual no quiero ya que la sección fluye a través de las columnas.

Eliminar la versión estrella tampoco ayuda. Se debe utilizar \interlinepenalty=10000para evitar saltos de página dentro de una sección. Pero entonces el problema son esas grandes brechas entre secciones.

Luego solía samepageenvolver cada sección dentro con la esperanza de que sirviera de ayuda. Pero este resultado fue más extraño. Debo haber hecho algo mal aquí:

gráficos matemáticos

Aquí está el código para lo anterior.

\documentclass[10pt,notitlepage]{article}%
\setlength{\columnseprule}{0pt} %column thicnkess 
\setlength{\columnsep}{5.0pt}
\usepackage{lipsum}
\usepackage{multicol}
\usepackage{titlesec}
\titleformat{\section}{\large\bfseries}{\thesection}{1em}{}
\begin{document}
\begin{multicols}{3}     
%\interlinepenalty=10000

\begin{samepage}
\section{some section}
\lipsum[75]
\end{samepage}

\begin{samepage}
\section{some section}
\lipsum[75]
\end{samepage}

\begin{samepage}
\section{some section}
\lipsum[3]
\end{samepage}

\begin{samepage}
\section{some section}
\lipsum[75]
\end{samepage}

\begin{samepage}
\section{some section}
\lipsum[75]
\end{samepage}

\begin{samepage}
\section{some section}
\lipsum[75]
\end{samepage}

\begin{samepage}
\section{some section}
\lipsum[4]
\end{samepage}

\begin{samepage}
\section{some section}
\lipsum[75]
\end{samepage}

\end{multicols}
\end{document}

¿Cuál es la forma correcta de evitar saltos de página en medio de las secciones, pero dejar el espacio adicional en la parte inferior y no en el medio?

Usando Tex live 2013 en Linux. (ps. un día, necesito aprender a usar Latex para hacer copias de fragmentos de código para no copiar y pegar el mismo código una y otra vez).

Respuesta1

El efecto deseado se puede lograr usando la \raggedcolumnsmacro:

\documentclass[10pt,notitlepage]{article}%
\setlength{\columnseprule}{0pt} %column thicnkess 
\setlength{\columnsep}{5.0pt}
\usepackage{lipsum}
\usepackage{multicol}
\usepackage{titlesec}
\titleformat{\section}{\large\bfseries}{\thesection}{1em}{}
\begin{document}
\begin{multicols}{3}
\raggedcolumns     %new code
\interlinepenalty=10000
\section{some section}
\lipsum[75]
\section{some section}
\lipsum[75]
\section{some section}
\lipsum[3]
\section{some section}
\lipsum[75]
\section{some section}
\lipsum[75]
\section{some section}
\lipsum[75]
\section{some section}
\lipsum[4]
\section{some section}
\lipsum[75]
\end{multicols}
\end{document}

ingrese la descripción de la imagen aquí

información relacionada