\hrule\hskip 可拉伸性

\hrule\hskip 可拉伸性

\documentclass[12pt]{report}
\def\usrf{\leavevmode\leaders\hrule\hskip 0pt plus 1em minus 0pt\kern 0sp}
\begin{document}
\noindent A\usrf{}B C\linebreak DEFGH
\end{document}

结果是 编译结果

其中 A 和 B 之间的“下划线”比 长得多1em。我如何限制 的最大长度\hrule,以及为什么它不能与给定的粘合“可拉伸性”一起工作?

答案1

您正在告诉 TeX 将线拉伸至线宽,因此它会遵守您的命令。

让我们看一个更简单的例子(纯 TeX):

\hbox to\hsize{A\leaders\hrule\hskip 0pt plus 1em minus 0pt B C}

\noindent\the\badness

\bye

你得到

在此处输入图片描述

打印的值\the\badness是最后一个排版框的坏度。事实上,终端还会显示

Underfull \hbox (badness 10000) detected at line 1
\tenrm A B C

一旦胶水具有非零的可拉伸性,它就会按需要拉伸,但代价是坏处。就像 B 和 C 之间的胶水一样。

如果你将第一行改为

\setbox0=\hbox to\hsize{A\leaders\hrule\hskip 0pt plus 1em minus 0pt B C}
\showbox0

你会在日志文件中找到

\hbox(6.83331+0.0)x469.75499, glue set 38.11542
.\tenrm A
.\leaders 0.0 plus 10.00002
..\rule(0.4+0.0)x*
.\tenrm B
.\glue 3.33333 plus 1.66498 minus 1.11221
.\tenrm C

因此胶水拉伸比为 38.11542;这意味着第一团胶水(来自\leaders)将变成

38.11542 * 10.00002 = 381.15496

点宽,第二个球将变成

38.11542 * 1.66498 = 63.46141

點寬闊。

我可以说“最多拉伸 X”吗?不能,因为有上述规则。通过一些计算,这当然是可能的。

相关内容