段組みでの列の奇数垂直配置

段組みでの列の奇数垂直配置

このコード

\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}

これを生成する

ここに画像の説明を入力してください

ベースラインスキップ値の自動選択は奇妙に見える。なぜなら、2つの列にはほとんど垂直方向のサイズは同じですが、完全に同じではありません。

最初の列の最後の行が 2 番目の列の最後の行と同じ垂直位置になるように、垂直方向の揃えを実現する方法はありますか?

答え1

\newline\par段落の最後に\\または を置いてはいけません。テキストのない行 (およびボックスが不足しているという警告) を強制していますが、2 つの列の垂直サイズは同じです。\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}

関連情報