gpt4 book ai didi

opentype - 使用 DirectWrite 选择部分连字

转载 作者:行者123 更新时间:2023-12-03 14:57:32 24 4
gpt4 key购买 nike

使用 HitTestTextPosition样式 API 来自 IDWriteTextLayout我没有设法正确处理“ti”、“ffi”或其他带有 Calibri 等字体的连字中的文本位置。它总是在连字之后或之前返回位置,而不是像 t|i 或 f|f|i 那样在里面。

使用 DirectWrite API 在连字内进行插入符号移动的推荐方法是什么?

最佳答案

如果您打开了 GSUB 替换,则没有“内部”位置?

Opentype GSUB 连字是代码点序列、映射的单字形替换,而不是“几个字形,混在一起”。它们实际上是不同的,单个字形,具有单个边界框,以及用于光标放置/对齐的单个左侧和右侧轴承。如果您有文字 A + E并且字体有一个连字替换,将其变成 Ӕ那么在启用连字的情况下,该代码序列中实际上只有两个光标位置:Ӕ| .你不能把光标放在“中间”,因为没有“中间”;它是一个单一的、原子的、不可分割的字形。
f. 也是如此连字像 , , , , , 或 :这些是曾经在 GSUB 打开的情况下成形的单个字形。这实际上是应该发生的事情,打开 GUBS 替换意味着您明确希望文本被呈现 - 出于所有意图和目的 - 作为多对一替换的原子字形,例如将完整的短语“صلى الله عليه وعلى آله وسلم ”,以及它的变体,进入单个字形ﷺ。

如果你想使用基本代码点序列,那么如果你有一个带有 f + f + i 的文本它不会变成 ,您需要加载带有 liga 的字体已禁用 OpenType 功能。

关于opentype - 使用 DirectWrite 选择部分连字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48462119/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com