使用不可拉伸的 parskip 平衡多色

使用不可拉伸的 parskip 平衡多色

我想使用multicols固定\parskip\baselineskip(即不使用可拉伸胶水)以获得具有网格排版的两列文档。

问题是,当我想要插入高度不是倍数的内容\baselineskip(如具有不同字体大小的图像或环境)时,平衡会\end{\multicols}失败。

以下是一个例子:

\documentclass{book}
\usepackage[utf8]{inputenc}
\usepackage{multicol}
\usepackage{parskip}
\usepackage{lipsum}

\begin{document}

\parskip 1\baselineskip

\begin{multicols}{2}

\lipsum[1-2]

\vspace{0pt plus 1\baselineskip}
{\footnotesize \lipsum[3]}
\vspace{0pt plus 1\baselineskip}

\lipsum[4]

\end{multicols}

\end{document}

尽管我手动在周围插入胶水{\footnotesize \lipsum[3]},但平衡仍然不起作用。

平衡问题

答案1

可以使用\parbox强制奇数大小的块适合给定数量的\baselineskips。但是,您首先必须知道\baselineskip要使用多少个 s。此外,当 2 个连续行的深度和高度大于 时,LaTeX 使用不同的规则。\baselineskip当最后一行没有降部时,您需要添加约 约.3\baselineskip(取决于\lineskip}。

\documentclass{book}
\usepackage[utf8]{inputenc}
\usepackage{multicol}
\usepackage{parskip}
\usepackage{lipsum}


\begin{document}

\parskip=1\baselineskip
\lineskip=1pt

\begin{multicols}{2}

\lipsum[1-2]

\parbox[c][\dimexpr 13.3\baselineskip][c]{\columnwidth}{\footnotesize \lipsum[3]}

\lipsum[4]
\end{multicols}

\end{document}

答案2

你可以multicol通过添加以下方法强制自己更加努力

\setcounter{columnbadness}{2000}

在环境之前。

在此处输入图片描述

相关内容