改ページを防止するときに、複数段組の列の下部を不揃いにするにはどうすればよいですか?

改ページを防止するときに、複数段組の列の下部を不揃いにするにはどうすればよいですか?

設定: 多数の小さなセクションがある 3 列の場合、たとえば multicols を使用する必要があります。一部のセクションが途中で分割され、次の列に折り返されることに気付きましたが、これは望ましくありません。

少し調べた結果 (つまり、グーグル検索)、\interlinepenalty=10000これを追加するとこれが防止されることがわかりました。そして、実際にそうなります。複数段 - 折り返さない

しかし、列の下部に隙間(不揃いの底、または正しい名前は何であれ)ができる代わりに、列の間に大きな空きスペースができてしまい、見栄えが悪くなります。

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}

セクションの途中でページが区切られないようにし、余分なスペースをセクション間ではなく下部に配置する正しい方法は何ですか?

Linux で Tex live 2013 を使用しています。(追記: いつか、同じコードを何度もコピーして貼り付けなくて済むように、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}

ここに画像の説明を入力してください

関連情報