如何解读对齐中的“未满”警告?

如何解读对齐中的“未满”警告?

我试图弄清楚为什么 AT&T 表格示例中的 125pt 大小会出现警告电子书。当我试图理解这些警告的含义时,我偶然发现了第 302 页电子书, 说的是:

例如,假设您说“ \tabskip=0pt plus10pt \halign to200pt{&#\hfil\cr...\cr}”,并且假设对齐的内容分别形成宽度为 50 pt 和 60 pt 的两列。那么您会收到以下消息:

Underfull \hbox (badness 2698) in alignment at lines 11--18
[] []
\hbox(0.0+0.0)x200.0, glue set 3.0
.\glue(\tabskip) 0.0 plus 10.0
.\unsetbox(0.0+0.0)x50.0
.\glue(\tabskip) 0.0 plus 10.0
.\unsetbox(0.0+0.0)x60.0
.\glue(\tabskip) 0.0 plus 10.0

让我们构建一个完整的示例:

\tabskip=0pt plus10pt \halign to200pt{&#\hfil\cr
  \hbox to50pt{}&\hbox to60pt{}\cr}
\end

此示例中的日志与电子书:最后一行是

.\glue 0.0 plus 10.0

有人可以构造一个日志匹配的例子吗电子书?这将有助于理解如何解释对齐的警告信息。

答案1

我怀疑这是一个错误。

如果我稍微修改一下你的测试

\showboxdepth3
\showboxbreadth100
\tracingoutput1
\tracingonline1

\tabskip=0pt plus10pt \halign to200pt{&#\hfil\cr
  \hbox to50pt{}&\hbox to60pt{}\cr}

\bye

然后,最后的 tabskip 在 underfull 消息中不会被标记为:

Underfull \hbox (badness 2698) in alignment at lines 7--8
 [] [] 

\hbox(0.0+0.0)x200.0, glue set 3.0
.\glue(\tabskip) 0.0 plus 10.0
.\unsetbox(0.0+0.0)x50.0
.\glue(\tabskip) 0.0 plus 10.0
.\unsetbox(0.0+0.0)x60.0
.\glue 0.0 plus 10.0

但在发货页面的最终套装盒中却有这样的标记:

.\vbox(643.20255+0.0)x200.0, glue set 633.20255fill
..\glue(\topskip) 10.0
..\hbox(0.0+0.0)x200.0, glue set 3.0
...\glue(\tabskip) 0.0 plus 10.0
...\hbox(0.0+0.0)x50.0 []
...\glue(\tabskip) 0.0 plus 10.0
...\hbox(0.0+0.0)x60.0 []
...\glue(\tabskip) 0.0 plus 10.0
..\glue 0.0 plus 1.0fill

您可以通过在前言中添加最后一个未使用的列来获取未设置对齐的输出\halign

\showboxdepth3
\showboxbreadth100
\tracingoutput1
\tracingonline1

\tabskip=0pt plus10pt \halign to200pt{&#\hfil&#\cr
  \hbox to50pt{}&\hbox to60pt{}\cr}

\bye

生成记录的未满警告:

Underfull \hbox (badness 2698) in alignment at lines 7--8
 [] [] 

\hbox(0.0+0.0)x200.0, glue set 3.0
.\glue(\tabskip) 0.0 plus 10.0
.\unsetbox(0.0+0.0)x50.0
.\glue(\tabskip) 0.0 plus 10.0
.\unsetbox(0.0+0.0)x60.0
.\glue(\tabskip) 0.0 plus 10.0

相关内容