盒子的参考点

盒子的参考点

以下通用框的插图出现在 TeXbook 第 63 页:

普通盒子

下列病理情况下盒子的参考点是什么?

  1. 该盒子要么 (a) 没有宽度,要么 (b) 没有高度也没有深度,要么 (c) 同时有 a 和 b?

  2. 该框具有正宽度和正高度或正深度(或两者),这些值不是明确分配的而是自动计算的,并且以下情况之一成立。

    1. 该盒子不包含子盒子(但可能包含其他元素,例如胶水)?
    2. 该框至少包含一个子框,但其中一些子框(可能是全部子框!)向左或向右移动,或者升高或降低?

答案1

每个盒子都有高度、宽度和深度(其中任何一个都可以是零或负数),参考点根据定义就是测量这些长度的点。盒子是否包含其他盒子对此没有影响。

注意高度、深度和宽度可分配属性并且需要与盒子内容无关。

如果\box0包含一些内容那么

\ht0=5pt
\dp0=6pt
\wd0=7pt

框 0 的高度、深度和宽度将分别为 5pt、6pt 和 7pt。在水平模式下,框的定位方式是,其参考点位于当前位置,当前位置将向右移动 7pt(无论框内容如何)。同样,在垂直模式下,框将放置在与上一个框的基线、跳过、粘连之间,该基线、跳过、粘连是根据上一个框的深度和标称 5pt 高度计算得出的。


如果您没有指定箱子尺寸,那么它们将根据箱子内容进行设置。

如果使用框的参考点设置\vbox在左边缘,则位于其内容中最后一个框的垂直位置(如果最后一项不是框或深度过大,则需要填写一些详细信息)

如果使用 vtop 设置,则如果它是一个框,则参考点位于内容第一个项目的参考点高度的左边缘,否则位于外部框的顶部。

对于 \vcenter,它位于框的左边缘,这样将参考点放置在基线上会使框位于数学轴的中心。

答案2

在 TeX 中创建框的方法只有几种,每种方法都有一个明确定义的概念,即参考点的结束位置。请参阅第 222 页TeXbook(部分第 21 章:制作盒子):

现在让我们总结一下所有向 TeX 明确指定框的方法。(1)在水平模式下,一个字符本身会形成一个字符框;这个字符取自当前字体。(2)命令\hrule\vrule制作规则框,如刚才所述。(3)否则,您可以制作水平框和垂直框,它们属于通用术语 ⟨box⟩。⟨box⟩ 具有以下七种形式之一:

\hbox⟨盒子规格⟩ {⟨水平材料⟩ }(见第 12 章)
\vbox⟨盒子规格⟩ {⟨垂直材料⟩ (见第}12 章) ⟨盒子规格⟩ ⟨垂直材料⟩ (见第 12 章) ⟨寄存器编号⟩ (见第 15 章)⟨寄存器编号⟩ (见第 15 章)⟨寄存器编号⟩ ⟨尺寸⟩ (见第 15 章)(见第 21 章)
\vtop{}
\box
\copy
\vsplitto
\lastbox

[…]

在数学模式中,有一种额外类型的盒子可用:\vcenter⟨boxspecification⟩{⟨verticalmaterial⟩}(参见第 17 章)。

对于每一种,都有一个明确定义的程序来确定参考点的位置,该程序基于其组成部分的参考点。字体中的字符已经有一个参考点。对于其他的,最好在图片中看到这一点(取自TeX 初学者指南第 8 章:盒子,我建议你阅读一下):

水平盒

vbox 等

在创建框时,您可以指定宽度为正数、零或负数(而不是让 TeX 根据您放入其中的内容计算它们)。您可以升高或降低框。您可以明确指定框的宽度、高度或深度来更改它们。但在所有情况下,行为都是可预测且定义明确的,因此答案就是:参考点就是您要求 TeX 放置它的任何位置。:-) 如果您知道如何制作框,您也会知道它的参考点在哪里。

相关内容