在防止分頁時如何使多列中的列底部參差不齊?

在防止分頁時如何使多列中的列底部參差不齊?

設定:我需要對 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}

防止部分中間分頁但將多餘空間放在底部而不是中間的正確方法是什麼?

在 Linux 上使用 Tex live 2013。 (ps.有一天,我需要學習如何使用 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}

在此輸入影像描述

相關內容