设置:我需要使用多列来表示 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。(注:有一天,我需要学习如何使用 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}