Minipage 和 multicol,垂直对齐

Minipage 和 multicol,垂直对齐

我想创建两列并排的文本。左侧包含两列文本,使用多色包。左侧是一些其他内容。

我试过了小页面,但结合多色它无法正确地垂直对齐两个小页面。最小工作示例:

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

相关内容