平衡 multicols 與 minipage 內部的問題

平衡 multicols 與 minipage 內部的問題

我有兩個小頁面,一個在另一個之上,[b]並且[t]選項設置為具有正確的基線跳過。第二個 minipage/varwidth 位於 multicols 環境中,如果它有多於兩行,它就會超出 textheight。怎麼辦?

\documentclass{article}

\usepackage[paperwidth=10cm,paperheight=5cm,showframe]{geometry}

\usepackage{varwidth}

\usepackage{multicol}

\premulticols0pt
\postmulticols0pt
\columnsep0pt
\setlength{\multicolsep}{0pt}

\begin{document}

\noindent LABORE ET DOLORE

\vfill

\noindent\begin{minipage}[b]{\linewidth}
\raggedleft
LOREM IPSUM

LOREM IPSUM
\end{minipage}

\begin{multicols}{2}

\null
\vfill

\noindent DOLOR SIT

\columnbreak

\noindent\hfill\begin{varwidth}[t]{.5\textwidth}
\raggedleft
MAGNA ALIQUA

MAGNA ALIQUA

MAGNA ALIQUA

MAGNA ALIQUA
\end{varwidth}
\end{multicols}
\end{document}

其中一個多列超出了文字高度

更新

我稍微更改了 @alephzero 程式碼,以便將表格文字的基線刷新到底部(下降部分超出文字高度)。我知道這不是一個很好的解決方案。但它有效。

\documentclass{article}

\renewcommand{\arraystretch}{0}

\usepackage[paperwidth=10cm,paperheight=5cm,showframe]{geometry}

\newlength{\myheight}

\begin{document}

\setlength{\myheight}{\fontchardp\font`p}

\noindent LABORE ET DOLORE

\vfill

\noindent\begin{minipage}[b]{\linewidth}
\raggedleft
LOREM IPSUM

LOREM IPSUM
\end{minipage}\strut

\noindent\begin{tabular}{@{}l@{}l@{}}
\parbox[t]{0.5\linewidth}
{DOLOR SIT}
&
\parbox[b]{0.5\linewidth}
{\raggedleft
MAGNA ALIQUA

MAGNA ALIQUA

MAGNA ALIQUA

MAGNA ALIQUA\vphantom{p}}
\end{tabular}

\enlargethispage{\myheight}

\end{document}

佈局方案

答案1

這似乎可以做你想做的事,沒有\multicol\varwidth

\documentclass{article}

\usepackage[paperwidth=10cm,paperheight=5cm,showframe]{geometry}

\begin{document}

\noindent LABORE ET DOLORE

\vfill

\noindent\begin{minipage}[b]{\linewidth}
\raggedleft
LOREM IPSUM

LOREM IPSUM
\end{minipage}\strut

\noindent\begin{tabular}{@{}l@{}l@{}}
\parbox[t]{0.5\linewidth}
{DOLOR SIT}
&
\parbox[b]{0.5\linewidth}
{\raggedleft
MAGNA ALIQUA

MAGNA ALIQUA

MAGNA ALIQUA

MAGNA ALIQUA}
\end{tabular}

\end{document}

小頁面後面的內容\strut是在 LOREM IPSUM 和 MAGNA ALIQUA 之間提供正確的基線跳躍,但在您的範例連結中,那裡似乎有更大的垂直空間。

您可以使用小型頁面代替 parboxes,但parbox打字時間更短。

相關內容