在 \parbox 中使用可选参数 stretch

在 \parbox 中使用可选参数 stretch

我对如何使用 \parbox 的“stretch”可选参数有些困惑。它是否应该在确定大小的框内均匀分布文本行?

如果我像这样编码:

\documentclass{article}
\begin{document}
  Text
  \fbox{\parbox[c][15cm][s]{5cm}{I want to stretch this text inside this box}}
\end{document}

这是我得到的结果: 示例1

我还尝试了 \parbox,并得到了一些意想不到的结果。在下面的代码中,我只是从上一个测试中删除了对齐可选参数(默认为中心):

\documentclass{article}
\begin{document}
Text
\fbox{\parbox[15cm][s]{5cm}{I want to stretch this text inside this box}}
\end{document}

结果出来了: 示例2

这让我很困惑,因为我认为删除第一个可选参数只会将其置于默认状态。我也不明白为什么强制参数中的文本被字母“s”取代,这是第三个可选参数中“stretch”的快捷方式。

另一项测试:

\documentclass{article}
\begin{document}
Text
\fbox{\parbox[15cm]{5cm}{I want to stretch this text inside this box}}
\end{document}

这让我想到: 例3

在最后一个中,我删除了拉伸可选参数,但没有绘制框的高度。

为什么我会得到这些结果?我对 TeX 还只是个初学者,所以我可能忽略了可选参数使用的明显要点。

答案1

\parbox[c][3cm][s]{5cm}{I want to stretch this text inside this box}

盒子里没有弹性胶水,你确实收到了警告

Underfull \vbox (badness 10000) detected

如果您希望第一行位于顶部,第二行位于底部,则需要使行间粘连可拉伸:

\documentclass{article}

\begin{document}
\fbox{\parbox[c][3cm][s]{5cm}{
  \setlength{\baselineskip}{1\baselineskip plus 1fil}
  I want to stretch this text inside this box
}}
\end{document}

在此处输入图片描述

为了指定第二个(和第三个)可选参数,您必须指定第一个。因此

\parbox[3cm]{5cm}{...}

给出的结果与 相同\parbox{5cm}{...};不幸的是,LaTeX 不会检查第一个可选参数的内容,该参数应该只是c(默认)tb。如果它与其中任何一个不同,则会被默默忽略。

如果不指定第三个可选参数,则默认与第一个相同。

答案2

那里有很多问题;-)

是否应该在确定大小的框内均匀分布文本行?

不,它本身不添加任何胶水,因此它依靠内容物中的任何弹性胶水来填充所需的空间,

这让我很困惑,因为我认为删除第一个可选参数

您没有删除第一个可选参数,而是将其值从 更改c15cm

相关内容