此代码
\documentclass[12pt]{article}
\usepackage[parfill]{parskip}
\usepackage{multicol}
\widowpenalties 2 9999 9999
\begin{document}
\setlength\baselineskip{4ex plus 2ex minus 2ex}
\begin{multicols}{2}
A\hrulefill1\newline
A\hrulefill2\newline
A\hrulefill3\newline
A\hrulefill4\newline\par
B\hrulefill1\newline
B\hrulefill2\newline
B\hrulefill3\newline
B\hrulefill4\newline
B\hrulefill5\newline\par
\end{multicols}
\end{document}
生成这个
基线跳过值的自动选择看起来很奇怪,因为两列有几乎垂直尺寸相同,但不完全相同。
有没有办法实现垂直对齐,使得第一列的最后一行与第二列的最后一行处于相同的垂直位置?
答案1
\newline\par
您永远不应该在段落末尾使用\\
或。您正在强制一行没有文本(以及未满框警告),两列确实具有相同的垂直大小:\newline
不要忽视警告
Underfull \hbox (badness 10000) in paragraph at lines 11--14
Underfull \hbox (badness 10000) in paragraph at lines 15--19
它警告每个段落中的所有白线,并且还强迫您使用\widowpenalties 2
可见的最后一行不是最后一行。
如果段落最后一行有文字,则更容易看到发生了什么,这也会消除警告
\documentclass[12pt]{article}
\usepackage[parfill]{parskip}
\usepackage{multicol}
\widowpenalties 2 9999 9999
\begin{document}
\setlength\baselineskip{4ex plus 2ex minus 2ex}
\begin{multicols}{2}
A\hrulefill1\newline
A\hrulefill2\newline
A\hrulefill3\newline
A\hrulefill4\newline xxx\par
B\hrulefill1\newline
B\hrulefill2\newline
B\hrulefill3\newline
B\hrulefill4\newline
B\hrulefill5\newline xxx\par
\end{multicols}
\end{document}