我有兩個小頁面,一個在另一個之上,[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
打字時間更短。