1

我正在使用 FontForge 修改 Unicode 希伯来语字体。我在希伯来语 PUA 范围内的 U+05C9 处添加了一个字形,并将其命名为“dageshhazaq”。我将 U+5BC “dagesh”(包括所有锚点)的字形复制到该字形,然后将“dageshhazaq”添加到所有包含“dagesh”的查找表中。在 Metrics 窗口中,“dageshhazaq”标记正确显示在基本字形中。但是,在生成字体并转到 Word 后,我可以插入“dageshhazaq”,但没有正确放置。

  1. 我是否正确认为问题不在于字体,而在于 Word?
  2. 我该如何解决?

谢谢!

4

1 回答 1

1

首先,您应该避免将自己的新字符分配给保留的 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,是的,它在某些情况下会产生糟糕的结果,但至少它是一个后备。

于 2020-01-29T04:52:50.753 回答