Проблема с балансировкой многоколоночных элементов с мини-страницей внутри

Проблема с балансировкой многоколоночных элементов с мини-страницей внутри

У меня есть две министраницы, одна над другой, с параметрами [b]и [t]правым baselineskip. Вторая министраница/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, чтобы сместить базовую линию табличного текста вниз (с выносными элементами за пределы textheight). Я знаю, что это не очень красивое решение. Но оно работает.

\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, но в вашем примере ссылки, похоже, есть больший вертикальный пробел.

Вместо парбоксов можно использовать мини-страницы, но parboxэто короче для ввода.

Связанный контент