![改ページを防止するときに、複数段組の列の下部を不揃いにするにはどうすればよいですか?](https://rvso.com/image/281463/%E6%94%B9%E3%83%9A%E3%83%BC%E3%82%B8%E3%82%92%E9%98%B2%E6%AD%A2%E3%81%99%E3%82%8B%E3%81%A8%E3%81%8D%E3%81%AB%E3%80%81%E8%A4%87%E6%95%B0%E6%AE%B5%E7%B5%84%E3%81%AE%E5%88%97%E3%81%AE%E4%B8%8B%E9%83%A8%E3%82%92%E4%B8%8D%E6%8F%83%E3%81%84%E3%81%AB%E3%81%99%E3%82%8B%E3%81%AB%E3%81%AF%E3%81%A9%E3%81%86%E3%81%99%E3%82%8C%E3%81%B0%E3%82%88%E3%81%84%E3%81%A7%E3%81%99%E3%81%8B%3F.png)
設定: 多数の小さなセクションがある 3 列の場合、たとえば multicols を使用する必要があります。一部のセクションが途中で分割され、次の列に折り返されることに気付きましたが、これは望ましくありません。
少し調べた結果 (つまり、グーグル検索)、\interlinepenalty=10000
これを追加するとこれが防止されることがわかりました。そして、実際にそうなります。複数段 - 折り返さない
しかし、列の下部に隙間(不揃いの底、または正しい名前は何であれ)ができる代わりに、列の間に大きな空きスペースができてしまい、見栄えが悪くなります。
生成方法:
\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}
セクションの途中でページが区切られないようにし、余分なスペースをセクション間ではなく下部に配置する正しい方法は何ですか?
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}