TeX 何时选择拉伸胶水?

TeX 何时选择拉伸胶水?

假设我输入

\hbox to \hsize{abc}

\hbox{abc}

\bye

现在,由于第一个\hbox设置为\hsize,我期望 abc 以最大拉伸粘合。在第二个中\hbox,我期望 abc 以正常粘合宽度粘合,不会进行任何拉伸和收缩。但是,当我在 TeX 中比较结果时,似乎两者都产生了相同的结果,为什么?

答案1

关于这条线

\hbox to \hsize{abc}

你的说法确实正确

我希望用最大拉伸胶水将 abc 粘住

不幸的是,你看不到粘连,因为粘连是应用在单词之间,而不是单词字母之间。字母之间的间距由字体设置决定,即字距调整,不允许收缩或拉伸。

您只需使用两个词就可以轻松地使插入的胶水可见,其中第二个词被推到最右边(由于胶水的可拉伸性)。

\hbox to \hsize{abc def}
\bye

在此处输入图片描述

答案2

“胶水”这个词可能会引起误解。它不是用来把字母粘在一起的东西,这是没有必要的,而是用来空格彼此之间的事物。

胶水可以死板的或者灵活的;灵活性可以是允许拉伸或收缩的量(当然也可以是两者兼而有之)。当命令 TeX 用文本填充一定量的水平空间时,它会占用所有可用的灵活的考虑胶水。在拉伸或收缩之前,它会计算自然宽度的材料,以确定它是比要填充的尺寸更宽还是更窄;然后它会查看柔性胶,并根据柔性量来划分拉伸或收缩。

以下是相关主题的列表:

请注意,收缩永远不会超过可用量,而 TeX 可以拉伸超过所谓的“最佳”量(以牺牲坏性为代价)。无限拉伸或收缩优先,并且永远不会产生坏框(当然,从算法的角度来看,这对 TeX 来说是坏的;尽管如此,结果对人类读者来说可能看起来很糟糕)。

输入中的空格是指示 TeX 插入粘连(可收缩和可拉伸)。因此

\hbox to \hsize{abc def}

会拉伸空格处的内容(并显示“未满\hbox”消息)。如果要拉伸字母之间的空间,则必须手动插入粘连:

\hbox to\hsize{a\hfil b\hfil c}

将把三个字母隔开(没有信息,因为我们使用了无限胶水)。

相关内容