harfbuzz - 为什么在我的 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 意识到我想与 C 结合的变音字形用于小“c”,因此它为“uni0306.case”提供了匹配的字形 ID。对于这个字形,偏移量是正确的。
推荐阅读
- spring - Spring Cloud 版本 2020.0.0 的云启动器引导依赖项
- c++ - 获取向量中唯一元素的索引
- stored-procedures - 试图从雪花中的过程返回变量值。它正在出错
- http - 我如何在 Parasoft SOATest 的响应对象中引用从邮递员发送的请求标头/正文元数据?
- elasticsearch - 使用 Heartbeat 的弹性正常运行时间监视器——kibana 中缺少几个监视器
- javascript - 根据分配给先前对象的先前值,为对象中的键分配值
- android - 为什么应用程序没有安装
- c# - 为什么在从 C# 创建的进程中运行 bash 命令时我的 $PATH 不同?
- php - Docker,将服务名称从 PHP 更改为不同的返回 503 Service Unavailable
- ios - Xcode 12:无法在 iOS 设备上启动远程服务“com.apple.debugserver”