![как сделать нижние края колонок в многоколоночных текстах неровными, предотвращая разрывы страниц?](https://rvso.com/image/281463/%D0%BA%D0%B0%D0%BA%20%D1%81%D0%B4%D0%B5%D0%BB%D0%B0%D1%82%D1%8C%20%D0%BD%D0%B8%D0%B6%D0%BD%D0%B8%D0%B5%20%D0%BA%D1%80%D0%B0%D1%8F%20%D0%BA%D0%BE%D0%BB%D0%BE%D0%BD%D0%BE%D0%BA%20%D0%B2%20%D0%BC%D0%BD%D0%BE%D0%B3%D0%BE%D0%BA%D0%BE%D0%BB%D0%BE%D0%BD%D0%BE%D1%87%D0%BD%D1%8B%D1%85%20%D1%82%D0%B5%D0%BA%D1%81%D1%82%D0%B0%D1%85%20%D0%BD%D0%B5%D1%80%D0%BE%D0%B2%D0%BD%D1%8B%D0%BC%D0%B8%2C%20%D0%BF%D1%80%D0%B5%D0%B4%D0%BE%D1%82%D0%B2%D1%80%D0%B0%D1%89%D0%B0%D1%8F%20%D1%80%D0%B0%D0%B7%D1%80%D1%8B%D0%B2%D1%8B%20%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%3F.png)
Настройка: Мне нужно использовать multicols, скажем, для 3 столбцов, где у меня много маленьких разделов. Я заметил, что некоторые разделы разрываются посередине и в итоге переносятся на следующий столбец, чего я не хочу.
После некоторых исследований (например, гугления) обнаружил, что добавление \interlinepenalty=10000
предотвращает это. И это действительно так.Multicol - не переносить
Но вместо того, чтобы иметь зазоры в нижней части колонн (рваные нижние части, или как это правильно называется), между колоннами остаются большие пустые пространства, что выглядит не очень хорошо.
сгенерировано с использованием:
\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
дает
чего я не хочу, так как раздел течет по столбцам.
Удаление версии со звездой тоже не помогает. Нужно использовать, \interlinepenalty=10000
чтобы предотвратить разрыв страницы внутри раздела. Но тогда проблема в этих больших пробелах между разделами.
Затем я samepage
заворачивал каждую секцию внутрь в надежде, что это поможет. Но этот результат был более странным. Должно быть, я сделал что-то не так:
Вот код для вышеприведенного
\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}