如何制作具有橡胶宽度的 parbox(例如 \hfill)

如何制作具有橡胶宽度的 parbox(例如 \hfill)

我有两个彼此相邻的 parbox:

\parbox[t]{2cm}{Foo!}
\hspace{3em}
\parbox[t]{12cm}{Lorem ipsum dolor sit amet, consectetuer 
adipiscing elit. Ut purus elit, vestibulum ut, placerat ac, 
adipiscing,felis. Curabitur dictum gravida mauris.}

这很好用,但我希望第二个 \parbox 具有弹性宽度,以便它始终延伸到右边距。就像我使用 \hrulefill 所做的一样:

\parbox[t]{2cm}{Foo!}
\hspace{3em}
\hrulefill

正如预期的那样,规则延伸至右边距。

因此我尝试使用 \fill 作为 \parbox 的宽度参数,但结果却是每个单词都占一行,并且会出现大量溢出的水平盒子消息 —— 我推测宽度实际上设置为 0pt。

当然,我可以尝试一下并想出一个很好的宽度值,但一旦我改变纸张格式或需要更大的 \hspace 或...,它就会中断。

我还尝试了固定宽度的 \parbox 和 \hfill 来代替 \hspace,但当纸张格式变化太大时,这种方法也会失效/看起来很丑陋。

我将非常感激任何关于如何优雅地解决这个问题的提示和指示。

答案1

按照我原始评论的建议......

\documentclass{article}
\usepackage{lipsum}
\newcommand\boxAwd{2cm}
\newcommand\midgap{3em}
\newcommand\boxBwd{\dimexpr\linewidth-\boxAwd-\midgap\relax}
\newcommand\boxAB[2]{\noindent\parbox[t]{\boxAwd}{#1\strut}%
  \hspace{\midgap}%
  \parbox[t]{\boxBwd}{#2\strut}}
\begin{document}
\lipsum[1]

\boxAB{Foo!}{\lipsum[2]}

\renewcommand\midgap{4em}
\boxAB{I pity the Foo!}{\lipsum[2]}
\end{document}

在此处输入图片描述

相关内容