Minipage 和 multicols,垂直對齊

Minipage 和 multicols,垂直對齊

我想建立兩列相鄰的列。左側包含兩列文本,使用多列包裹。左側是一些其他內容。

我試過了小型頁面,但結合多列它無法正確垂直對齊兩個小型頁面。最小工作範例:

\documentclass{article}

\usepackage{multicol}
\usepackage{blindtext}

\begin{document}
   \begin{minipage}[t]{0.5\linewidth}
        \noindent
        \begin{multicols}{2}
            \blindtext
        \end{multicols}
    \end{minipage}
    \begin{minipage}[t]{0.5\linewidth}
            \blindtext
    \end{minipage}
\end{document}

結果,兩個文字的頂部垂直未對齊: 未對齊的小頁

我在這裡做錯了什麼嗎?

答案1

你必須在頂部設置一個錨點才能[t]生效,因為multicols環境中的頂線是不是信封中的頂行minipage:\vspace{0pt}就足夠了。此外,您還需要取消插入一團膠水(我們需要透過\topskip支柱之間的差異和高度進行備份)並設定初始值\strut以確保基線之間良好對齊。

\documentclass{article}

\usepackage{multicol,calc}
\usepackage{blindtext}

\begin{document}

\noindent % or the indent would apply
\begin{minipage}[t]{0.5\linewidth-0.5em} % some separation
  \vspace{0pt} % anchor for [t]
  \vspace{\dimexpr\ht\strutbox-\topskip}% remove excess glue
  \begin{multicols}{2}
    \strut\makebox[0pt][l]{\vrule width 10cm height 0pt depth 0.1pt}%
    \blindtext
  \end{multicols}
\end{minipage}\hfill
\begin{minipage}[t]{0.5\linewidth-0.5em} % some separation
  \vspace{0pt} % anchor for [t]
  \strut\blindtext
\end{minipage}

\end{document}

在此輸入影像描述

該規則顯示對齊方式。感謝 Frank Mittelbach 發現了錯誤。

答案2

使用 paracol 和 multicol 不是更簡單的方法嗎?

\documentclass{article}
\usepackage{paracol}
\usepackage{multicol}
\usepackage{mwe}

\begin{document}
   \begin{paracol}{2}
       \begin{multicols}{2}
            \blindtext
        \end{multicols}
  \switchcolumn
     \blindtext
  \end{paracol}
\end{document}

相關內容