我正在使用Javascript中的TrueType字体解析/渲染引擎。可以找到来源here。
我的问题是space
字形几乎总是在loca
表中被索引为零宽度,这意味着当我查找loca
偏移中的字形时,我获取exclam
字形的偏移量。 spec for the loca table说:
如果字体不包含缺失字符的轮廓,则第一个和第二个偏移应具有相同的值。这也适用于没有轮廓的任何其他角色,例如空格字符。如果字形没有轮廓,则其长度应为零。
所以,看起来空格字符没有轮廓,但我不想绘制.notdef
字形。如果没有设置字形轮廓,我该如何决定绘制(或至少水平偏移)?
答案 0 :(得分:1)
字符的宽度在hmtx
表中设置,并且必须以该宽度呈现字形,无论是否为其定义了轮廓。
答案 1 :(得分:1)
字形不是零宽度 - 它由零字节定义。你没有为它画任何东西。提前宽度在其他表中定义,通常为hmtx。与其他字形一样,高级排版控件可以修改此前进宽度。