Este código
\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}
gera isso
A escolha automática para os valores de salto da linha base parece estranha, porque as duas colunas têmquaseo mesmo tamanho vertical, mas não exatamente.
Existe uma maneira de obter justificação vertical, de modo que a última linha da primeira coluna fique na mesma posição vertical que a última linha da segunda coluna?
Responder1
\newline\par
você nunca deveria ter \\
ou \newline
no final de um parágrafo. Você está forçando uma linha que não possui texto (e avisos de caixa insuficientemente cheia), as duas colunas têm o mesmo tamanho vertical:
Não ignore os avisos
Underfull \hbox (badness 10000) in paragraph at lines 11--14
Underfull \hbox (badness 10000) in paragraph at lines 15--19
que alertava sobre todas as linhas brancas em cada parágrafo, e também obrigava a usar, \widowpenalties 2
pois a última linha visível não era a última.
É mais fácil ver o que está acontecendo se você tiver texto na última linha do parágrafo, o que também remove o aviso
\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}