как сделать нижние края колонок в многоколоночных текстах неровными, предотвращая разрывы страниц?

как сделать нижние края колонок в многоколоночных текстах неровными, предотвращая разрывы страниц?

Настройка: Мне нужно использовать multicols, скажем, для 3 столбцов, где у меня много маленьких разделов. Я заметил, что некоторые разделы разрываются посередине и в итоге переносятся на следующий столбец, чего я не хочу.

После некоторых исследований (например, гугления) обнаружил, что добавление \interlinepenalty=10000предотвращает это. И это действительно так.Multicol - не переносить

Но вместо того, чтобы иметь зазоры в нижней части колонн (рваные нижние части, или как это правильно называется), между колоннами остаются большие пустые пространства, что выглядит не очень хорошо.

Графика Mathematica

сгенерировано с использованием:

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

удаление \interlinepenalty=10000дает

Графика Mathematica

чего я не хочу, так как раздел течет по столбцам.

Удаление версии со звездой тоже не помогает. Нужно использовать, \interlinepenalty=10000чтобы предотвратить разрыв страницы внутри раздела. Но тогда проблема в этих больших пробелах между разделами.

Затем я samepageзаворачивал каждую секцию внутрь в надежде, что это поможет. Но этот результат был более странным. Должно быть, я сделал что-то не так:

Графика Mathematica

Вот код для вышеприведенного

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

Как правильно предотвратить разрывы страниц в середине разделов, но оставить дополнительное пространство внизу, а не между ними?

Использую Tex live 2013 на Linux. (P.S. Однажды мне нужно будет научиться использовать Latex для копирования фрагментов кода, чтобы не копировать и вставлять один и тот же код снова и снова).

решение1

Желаемого эффекта можно добиться с помощью \raggedcolumnsмакроса:

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

введите описание изображения здесь

Связанный контент