此篇基本上是译文,原文是 Victor Eijkhout 所著的《TeX by Topic》的第五章。译文项目参见:CTeX-org/tex-by-topic-cn。
转载请保留本段文字,尊重原作者和译者版权。
由于原著使用 GFDL,故而本文也被传染地同样使用 GFDL 许可,而不是本站默认的 BY-NC-SA 4.0 许可。
TeX 中的水平与竖直盒子分别是水平与竖直列表内容的容器。盒子可保存在盒子寄存器当中。本章讨论盒子寄存器,以及关于盒子尺寸、盒子内容相互位置的问题。
所涉命令编目:
\hbox
: 构造一个水平盒子。\vbox
: 构造一个竖直盒子,其参考点(reference point)是最后一个元素。\vtop
: 构造一个竖直盒子,其参考点是第一个元素。\vcenter
: 构造一个在竖直方向于数学轴(math axis)居中的竖直盒子;该命令仅在数学模式下使用。\vsplit
: 将竖直盒子顶部部分分离。\box
: 使用盒子寄存器,而后清空它。\setbox
: 将盒子赋值给一个盒子寄存器。\copy
: 使用盒子寄存器,但保留其中内容而不清空。\ifhbox
\ifvbox
: 判断盒子寄存器中保存的是水平盒子还是竖直盒子。\ifvoid
: 判断盒子寄存器是否为空。\newbox
: 分配新的盒子寄存器。\unhbox
\unvbox
: 将保存有水平盒子或竖直盒子的寄存器解包,并将其中内容追加到当前的水平列表或竖直列表中,而后清空寄存器。\unhcopy
\unvcopy
: 与\unhbox
、\unvbox
的行为相同,但不清空寄存器。\ht
\dp
\wd
: 返回及设置盒子寄存器中盒子的高度、深度、宽度。\boxmaxdepth
: 该命令表示 TeX 所允许的盒子的最大深度。在 plain TeX 中,它的默认值是\maxdimen
。\splitmaxdepth
: 该命令表示 TeX 所允许的由\vsplit
生成盒子的最大深度。\badness
: 刚刚构造的盒子的劣度。\hfuzz
\vfuzz
: 该命令表示水平或竖直盒子的尺寸超出指定尺寸的阈值;当超过该阈值时,TeX 会考虑将其认定为溢出的(overfull)盒子。\hbadness
\vbadness
: 该命令表示一个阈值;当盒子的劣度超过该阈值时,TeX 会将相应盒子认定为欠满的(underfull)或者溢出的。\overfullrule
: 当水平盒子溢出时,TeX 会打印一条标尺,以表明有溢出的水平盒子;该命令表示上述标尺的宽度。\hsize
: 该命令表示在水平盒子内文本排版可用的行宽。\vsize
: 该命令表示页盒子(page box)的高度。\lastbox
: 若最后追加进当前列表的内容是一个盒子,则该寄存器会保存上述盒子。\raise
\lower
: 这两个命令用于在水平模式中调整盒子的垂直位置。\moveleft
\moveright
: 这两个命令用于在竖直模式中调整盒子的水平位置。\everyhbox
\everyvbox
: 这两个命令分别用于在每个水平盒子或竖直盒子开头处插入的记号列表。