首先,您应该避免将自己的新字符分配给保留的 Unicode 插槽。与其使用 U+05C9,不如将其分配给 Private Use 范围 U+E000 到 U+F8FF 中的插槽。这可能不是 Word 无法正确显示它的原因,但它可能会导致问题,尤其是当 Unicode 在那里编码其他内容时,为了将来的兼容性!
根据我的调查,Word 2010+ 似乎确实支持标记定位和标记对标记定位。我已经看到了这种工作方式,包括我自己构建的字体。
您的标记字形需要设置正确的 OT 字形类:“标记”(在“字形信息”对话框中)。标记的前进宽度应为零。您需要创建适当类的标记锚点,并适当定位。您应该能够通过Element > Font Info > Lookups > GPOS > [your mark table] > [your mark subtable] > Edit Data > [your mark class] > Anchor Control查看和调整标记相对于基本字形的位置. 这应该会打开一个对话框,您可以在其中微调标记锚的位置,如果您走到这一步,这是一个有希望的迹象。
请记住将您的字体生成为 OpenType!Windows 中存在一个复杂的问题,我还没有弄清楚如何解决,即 Windows 有时会在某处缓存旧版本的字体并且默默地无法更新它,即使你从字体中明确删除了以前的版本先文件夹。这可能会使您的修复似乎无法更改任何内容。
即使您可以让它在 Word 中工作,最佳做法仍然是在不处理 OpenType 标记定位的软件中定位标记以使其看起来尽可能好。将 meyim 或类似的东西复制到背景层上,并相对于它定位您的 dageshhazaq:与直觉相反,它将位于字形原点的右侧,即使我们正在处理 RTL 脚本。是的,这是一个 hack,是的,它在某些情况下会产生糟糕的结果,但至少它是一个后备。