【问题标题】:How do I know the actual letter size of a TrueType font?我如何知道 TrueType 字体的实际字母大小?
【发布时间】:2021-02-13 09:58:37
【问题描述】:

哪个 TrueType 字体表存储有关实际字符布局的信息。即符号在监视器上显示的像素或点的大小。

供参考:我正在使用 fontTools 库处理字体表。

【问题讨论】:

    标签: fonts height font-size truetype


    【解决方案1】:

    在任何地方都没有指定字形的高度(至少,对于水平布局没有)。可能,您正在寻找的是来自“OS/2”表的sxHeight(基线与非升序小写字母的近似高度之间的距离)。还有sxCapHeight 字段(用于大写字母)。不过,这些字段是在 OS/2 表的第二个版本中定义的。

    要找出字形的高度,您可以简单地从最高点减去其最低点(即字形高度 = yMax - yMin)。 yMax 和 yMin 存储在 'glyf' 表中的 Glyph Header 中(用于 TrueType 轮廓)。

    如果您需要字形的宽度,“hmtx”表包含字体中每个字形的提前宽度,以及左侧和右侧轴承。 'hhea' 表包含一个最大前进宽度值 (advanceWidthMax)。

    【讨论】:

    • 非常感谢。您能否告诉我们 ssheight 使用 OS/2 表中的哪些测量单位,以及 glyf 表中的 yMax 和 yMin
    • 还有一个问题。我需要将任何字体中的字符中的单词放入给定大小的字符串中,您个人会如何做到这一点?
    • @Paitor Units 是字体单位(em 方格中最小的单位,即unitsPerEm)。我不太明白你的第二个问题,对不起。
    • 谢谢。 Units 和 Funits 之间有什么区别(我在 docs.microsoft.com/en-us/typography/opentype/spec/ttch01 阅读了有关此单元的信息)。我不知道您是否可以帮助我解决我的问题,但我会尝试改写它。这里给你一个字符串,比如说 100 px,给你一个需要以某种字体打印的文本,以便这个文本适合字符串(例如,你需要在 Calibri 中写“hello world”字体)。您将如何做到这一点,您将使用哪些数据?
    • @Paitor Size 不仅仅以“单位”衡量,您不能只使用某种抽象单位,而是有一个具体的单位,称为“字体单位”(或 FUnit),即用于测量 OpenType 字体。
    猜你喜欢
    • 2021-03-07
    • 1970-01-01
    • 1970-01-01
    • 2017-01-08
    • 2014-10-20
    • 2015-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多