首页 > 解决方案 > 为什么在我的 harfbuzz 整形示例中 y_offset 为 0?

问题描述

我正在使用 harfbuzz 在我的程序中转换变音字符。我在字体“Bahnschrift.ttf”中有两个字符“C”unicode 0043 和一个变音符号̆ unicode 0306。我尝试获取 X 和 Y 偏移量。X 看起来不错,但 y_offset 没有意义。我将解释原因:两个角色都有的锚点称为“t.uni0308_02”。在“C”处,它的位置为 x:658;是的:1454。在变音符号处是 x:-367;是:1038。这是证明: FontLab 中的两个字符 hb_shape 的结果是: .\hb-shape.exe .\bahnschrift.ttf --output-format=json --unicodes="0043 0306"

[{"g":"C","cl":0,"dx":0,"dy":0,"ax":1267,"ay":0},{"g":"uni0306.case ","cl":0,"dx":-182,"dy":0,"ax":0,"ay":0}]

就像垂直方向没有偏移一样。但是当我用 hb_view 将这个组合绘制成字符时,它看起来是正确的。这里有什么意义?我错过了什么吗?

标签: harfbuzz

解决方案


我找到了解决方案。Harfbuzz 意识到我想与 C 结合的变音字形用于小“c”,因此它为“uni0306.case”提供了匹配的字形 ID。对于这个字形,偏移量是正确的。


推荐阅读