Этот код
\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}