编辑
我需要水平宽度
垂直很容易——只是 xi8
背景
我试图理解 TeX 如何计算 { top \over b } 中分数线的宽度
我到目前为止已经尝试过
我查看了附录 G 说明https://www.tug.org/TUGboat/tb27-1/tb86jackowski.pdf
我还查看了 TeX 书第 444/445 页上的规则 15-15e:http://www.ctex.org/documents/shredder/src/texbook.pdf
我遇到的问题
规则基本内容如下:
以正确的尺寸渲染顶部 以正确的尺寸渲染底部
创建高度为 theta 的线(但不指定宽度)
留出一些空间以避免碰撞
但是,我找不到的是:给定字体大小以及顶部/底部框的边界框,如何计算分数线的宽度?
谢谢!
答案1
宽度只是分子和分母的最大宽度:
$$
\vrule height 7pt
\mkern 6mu
\vrule height 7pt
\over
\vrule height 7pt
\mkern 12mu
\vrule height 7pt
$$
\bye
我曾经使用过\vrule
,所以没有侧边距。
不深入细节,分数的宽度比分数线的宽度略大。这保证了在以下结构中
{a\over b}\over{a\over b}
主分馏线的宽度大于次分馏线的宽度。
\def\testnum{
\vrule height 7pt
\mkern 6mu
\vrule height 7pt
}
\def\testden{
\vrule height 7pt
\mkern 12mu
\vrule height 7pt
}
\setbox0=\hbox{$\displaystyle{\testnum\over\testden}$}
\showthe\wd0
\setbox0=\hbox{$\textstyle\testden$}
\showthe\wd0
\bye
由此可见
> 9.86649pt.
l.14 \showthe\wd0
?
> 7.46649pt.
l.18 \showthe\wd0
?
答案2
TeXbook 附录 B,规则 15d:...最后构建一个 vbox...由盒子 x、紧邻的 kern、高度为 theta 的 hrule 和盒子 z 组成。
因为 hrule in vbox 获取的是其中所有框的最大宽度,所以最终的宽度为框 x 和 z 的宽度之和。而且,此时框 x 和 z 的宽度相同,等于分子和分母的宽度之和,参见规则 15a。