我有按 multicol 排列的两列页面:
\begin{multicols}{2}
Lorem ipsum dolor sit amet...
\end{multicols}
有没有办法禁止换行到第二列。我的意思是,我需要第一列中的一个完整的段落,但我不想换行。
答案1
如果您不想要任何列平衡:只需用作multicols*
环境。
如果您确实想要平衡但控制断点,那么\columnbreak
将允许您根据需要明确设置它们。
如果你只是想确保分栏符只发生在段落之间,那么你可以设置
\interlinepenalty=10000
在 multicols 环境中。但是,要使其工作,您需要最新版本的软件包(1.8a),到目前为止,它仅在LaTeX 的 SVN 站点。对于旧版本的 multicol,这可能会导致列溢出,因为算法并不认为几乎没有断点。另请参阅“多列未正确换行至第二列“从而产生了这个新版本。
答案2
通常是通过发出\columnbreak
来强制从一列换到下一列。因此,它之前的文档元素应该保持在一起,而不是换到下一列。
\documentclass{article}
\usepackage{multicol}% http://ctan.org/pkg/multicol
\usepackage{lipsum}% http://ctan.org/pkg/lipsum
\begin{document}
\lipsum[1]
\begin{multicols}{2}
\lipsum[3] \columnbreak
\lipsum[2]
\end{multicols}
\lipsum[4]
\end{document}
\lipsum[3]
无论各个文档元素(查看、切换和\lipsum[2]
)的长度如何,这都是有效的。