可以显示我当前所在的所有箱子吗?

可以显示我当前所在的所有箱子吗?

我目前正在阅读 Knuth 的 TeXbook。作为教育参考,有没有办法显示我当前“所处”的所有框的层次结构列表(换句话说,我正在以交互方式键入文档,并且在某个时候,我希望看到 TeX 当前正在创建的框),并且理想情况下,还能够显示它们的内容?

Knuth 提到了原语\showbox,但(对我而言)似乎它需要首先运行\setbox,而且,它似乎没有告诉我到目前为止我输入的内容。

答案1

\tracingonline1

aa

\vbox{

bb  \hbox{ccc  \showlists

}}\bye

产生终端输出

This is pdfTeX, Version 3.14159265-2.6-1.40.19 (TeX Live 2018) (preloaded format=pdftex)
 restricted \write18 enabled.
entering extended mode
(./aa910.tex

### restricted horizontal mode entered at line 7
\tenrm c
\tenrm c
\tenrm c
\glue 3.33333 plus 1.66666 minus 1.11111
spacefactor 1000
### horizontal mode entered at line 7
\hbox(0.0+0.0)x20.0
\tenrm b
\tenrm b
\glue 3.33333 plus 1.66666 minus 1.11111
spacefactor 1000
### internal vertical mode entered at line 5
prevdepth ignored
### vertical mode entered at line 0
### current page:
\glue(\topskip) 5.69446
\hbox(4.30554+0.0)x469.75499, glue set 439.75496fil
.\hbox(0.0+0.0)x20.0
.\tenrm a
.\tenrm a
.\penalty 10000
.\glue(\parfillskip) 0.0 plus 1.0fil
.etc.
total height 10.0
 goal height 643.20255
prevdepth 0.0, prevgraf 1 line

! OK.
l.7 bb  \hbox{ccc  \showlists

? 

所以当它停止的时候

你会看到你处于受限的 hlist (=hbox) 中

### restricted horizontal mode entered at line 7
\tenrm c
\tenrm c
\tenrm c
\glue 3.33333 plus 1.66666 minus 1.11111
spacefactor 1000

那是在一个不受限制的 hlist (=段落它被分成几行

### horizontal mode entered at line 7
\hbox(0.0+0.0)x20.0
\tenrm b
\tenrm b
\glue 3.33333 plus 1.66666 minus 1.11111
spacefactor 1000

并且该段落位于页面顶部的垂直列表中,并且该行已经有了水平盒子aa

### vertical mode entered at line 0
### current page:
\glue(\topskip) 5.69446
\hbox(4.30554+0.0)x469.75499, glue set 439.75496fil
.\hbox(0.0+0.0)x20.0
.\tenrm a
.\tenrm a
.\penalty 10000
.\glue(\parfillskip) 0.0 plus 1.0fil
.etc.

如果你想要看到更长的列表而不被截断,请etc.添加

\showboxbreadth=1000

在顶部

\showboxdepth=1000

但在这种情况下没有什么区别,因为这个例子没有深层嵌套。

相关内容