拉伸盒子内的空间

拉伸盒子内的空间

例子:

\noindent
abcd abcd abcd abcd abcd abcd abcd aaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
abcd abcd abcd abcd abcd abcd abcd aaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
abcd abcd abcd abcd abcd \hbox{abcd abcd aaaaaaaaaaaaaaaaaaa}
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
abcd abcd abcd abcd abcd abcd abcd aaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
\end

在此处输入图片描述

如您所见,带有 的行\hbox具有不同的间距。我的问题是,如果我们必须有这个\hbox,是否可以让 TeX 看穿这个框并以相同的方式拉伸内部和外部的空间?

编辑。此示例显示第二行和第三行之间存在差异,这是由\hbox(为了解决这个问题,您可以忽略第一行和最后一行)造成的。我需要这样做\hbox来防止潜在的换行,但仍然希望其内部空间以与外部空间相同的方式拉伸。可能还有其他方法可以防止换行,但我真的很喜欢\hbox它的简单性,如果有办法解决拉伸问题,我愿意坚持使用它。

答案1

改变框内的间距会改变框的宽度,因此可能会改变段落其余部分的换行和间距。

根据更高级别的用例,让框参与两端对齐段落的空白计算的最自然的方法是将其取消装箱,如下面的第二段所示。

在此处输入图片描述

\newbox\mybox
\setbox\mybox\hbox{abcd abcd aaaaaaaaaaaaaaaaaaa}


\noindent
abcd abcd abcd abcd abcd abcd abcd aaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
abcd abcd abcd abcd abcd abcd abcd aaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
abcd abcd abcd abcd abcd \box\mybox\
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
abcd abcd abcd abcd abcd abcd abcd aaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

\bigskip

\setbox\mybox\hbox{abcd abcd aaaaaaaaaaaaaaaaaaa}


\noindent
abcd abcd abcd abcd abcd abcd abcd aaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
abcd abcd abcd abcd abcd abcd abcd aaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
abcd abcd abcd abcd abcd \unhbox\mybox\
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
abcd abcd abcd abcd abcd abcd abcd aaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
\end

答案2

由于您希望将内容放在一起合理的段落,确定包含要保留的内容的整行,然后将其放在里面,\makebox[\linewidth][s]这样它就会拉伸字母之间的空间。

在此处输入图片描述

\documentclass{article}

\usepackage[textwidth=6.5in]{geometry}
\setlength{\parindent}{0pt}% Just for this example

\begin{document}

abcd abcd abcd abcd abcd abcd abcd aaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
abcd abcd abcd abcd abcd abcd abcd aaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
abcd abcd abcd abcd abcd \hbox{abcd abcd aaaaaaaaaaaaaaaaaaa}
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
abcd abcd abcd abcd abcd abcd abcd aaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

\bigskip

abcd abcd abcd abcd abcd abcd abcd aaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
abcd abcd abcd abcd abcd abcd abcd aaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
\makebox[\linewidth][s]{abcd abcd abcd abcd abcd abcd abcd aaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa}
abcd abcd abcd abcd abcd abcd abcd aaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

\end{document}

相关内容