什么定义了网络字体中的字符宽度?

What defines character width in a web font?

字体大小似乎适用于字体 'box' 的高度,据我所知,它是在字体文件本身中定义的。因此,对于相同的字体大小,任何字符,无论其视觉高度如何,都应该位于一个等高的框内。

那么,一个字符的宽度在哪里定义的?

字符宽度也需要与字体大小相关,但每个字符似乎都有不同的宽度(通过this test, or this test)。它不规则,因为它似乎是高度的情况。所以定义每个字符宽度的不是字体中定义的框的宽度。

那么,where/how定义好了吗?

据我了解,宽高比或多或少是一个标准。它通常不会改变。字体大小 属性 是一种缩放 both 的方法。对于给定的字体,比例保持不变。这是一个 link 提供有关比率图表的更多详细信息:

https://www.lifewire.com/aspect-ratio-table-common-fonts-3467385

因此,如果以像素为单位的字体大小定义高度,则宽度由字体系列的宽高比定义,您可以通过以下方式更改:style.fontSizeAdjust 根据文章。

字体中每个字形(字符)的定义都有一个与字体大小成比例的宽度值。因此,通常对于 True Type 字体,字体大小被分解为 2048 个单位。然后每个字形的宽度定义为相同单位的数量。

因此,例如,使用 Arial 字体,字符 i 的宽度为 180 个单位(AW - (LSB + RSB) = 455 - (136 + 139))

w 的宽度为 1457 个单位 (AW - (LSB + RSB) = 1479 - (6 + 16))

(从 TypeLight 3.2 捕获的图像)