我一直在玩 egreg 在这里给出的代码: 如何在使用 minipages (或 \parboxes) 时保持恒定的 baselineskip?,我几乎成功创建了前后间距正确的两列环境。但是,我想避免使用下面代码中的最后一个“\par”。但运气不佳 - 如果我删除“\par”,我会收到错误“您不能在水平模式下使用‘\prevdepth’。”。
理想情况下,我正在寻找一些代码,它可以在最后一个“\end{minipage}”之后进行垂直调整,并且无论我在“\end{minipage}”之后开始新行还是新段落都可以工作。
\documentclass[12pt]{article}
\newsavebox{\mpbox}
\newlength\mplen
\begin{document}
\par\noindent
HHH HHH HHH HHH HHH HHH HHH HHH HHH HHH HHH HHH \hfill HHH
\newline
\begin{minipage}[t]{\linewidth}
\xdef\tpda{0pt}
\xdef\tmpa{0pt}
\savebox{\mpbox}{\begin{minipage}[t]{0.4\linewidth}
HHH HHH HHH HHH HHH HHH HHH HHH HHH HHH
\rule[-8pt]{2pt}{12pt}
\par\xdef\tpdb{\the\prevdepth}
\end{minipage}}
\settodepth{\mplen}{\usebox\mpbox}\xdef\tmpb{\the\mplen}%
\ifdim\tmpb>\tmpa\xdef\tpda{\tpdb}\xdef\tmpa{\tmpb}\fi%
\usebox{\mpbox}
\hfill
\savebox{\mpbox}{\begin{minipage}[t]{0.4\linewidth}
HHH HHH HHH HHH HHH HHH HHH HHH HHH HHH HHH HHH HHH HHH HHH HHH ggg \par\xdef\tpdb{\the\prevdepth}
\end{minipage}}
\settodepth{\mplen}{\usebox\mpbox}\xdef\tmpb{\the\mplen}%
\ifdim\tmpb>\tmpa\xdef\tpda{\tpdb}\xdef\tmpa{\tmpb}\fi%
\usebox{\mpbox}
\end{minipage}
\par\prevdepth\tpda
HHH HHH HHH HHH HHH HHH HHH HHH HHH HHH HHH \hfill HHH
\end{document}