我正在使用\leaders
来制定灵活的宽度规则,使用语句\leaders 0pt plus 1fil\hrule
,但我还想将文本放在此线上方。\rlap{text}\leaders
工作正常,只是文本非常靠近线条(这不太美观)。我喜欢 的外观\underbar{text}
,但我需要线条进一步延伸,因此我尝试使用更通用\leaders
来实现这一点。据我所知,这无法使用 来完成\vbox
,因为一旦进入不是我要格式化的框,粘合就不会像我希望的那样扩展。所以,我尝试使用\lower 2pt\leaders
。这会失败,因为\lower
需要一个框作为参数。我曾想过可以通过使用框来改进这一点,但是仍然必须有一个领导者语句才能使框达到全尺寸,并且我找不到方法来设置,例如,将此尺寸设置为\box0
这个尺寸(这似乎是不可能的,因为如果框已经构造好,它就是不灵活的)。我尝试过\lastbox
直接使用和设置框,但都不起作用,因为框已经构造好。
我想象的最终产品看起来会像这个最小的非工作示例(或者可能会使用具有深度的盒子或其他技巧):
\line{\hfil\leaders\hbox{\lower2pt\hrule}\hfil}
在我看来,这显然没有违反 TeX 盒子和胶水模型的任何部分,所以我认为这是可能的。我该如何构造它?
答案1
类似构造的问题\leaders\vtop{\vskip2in\hrule width 1pt}
在于,如果将引线与框一起使用而不是与规则一起使用,其行为会有所不同:引线不会始终填满整个宽度,而是只会获得框的完整副本。因此,最好使用简单的规则。
您无法轻松地绘制\lower
规则,但您可以从一开始就将其绘制得更低。\hrule
默认情况下,A 的高度为 0.4pt,深度为 0pt,因此要使规则低 2pt,您可以使用
abc
\rlap{text}\leaders\hrule height -1.6pt depth 2pt\hfil
\penalty-10000 % Make sure that we actually have some space to fill
some more text
\bye