希伯来语字体 PUA 标记在 Word 中放置不正确

问题描述 投票:0回答:2

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

  1. 问题不在于字体,而在于 Word,我这样说对吗?
  2. 我该如何解决这个问题?

谢谢!

fonts ms-word typography fontforge
2个回答
1
投票

首先,您应该避免将自己的新字符分配给保留的 Unicode 插槽。您不应使用 U+05C9,而应将其分配给专用范围 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 查看和调整标记相对于基本字形的位置控制。这应该会打开一个对话框,您可以在其中微调标记锚点的位置,如果您走到这一步,这是一个有希望的迹象。

记住将字体生成为 OpenType! Windows 中存在一个复杂的问题,我还没有弄清楚如何解决,即 Windows 有时会在某处缓存旧版本的字体,并且默默地无法更新它,即使您从字体中明确删除了先前的版本首先文件夹。这可能会使您的修复看起来未能改变任何内容。

即使您可以在 Word 中使用它,最佳实践仍然是在不处理 OpenType 标记定位的软件中尽可能美观地定位标记。将 meyim 或类似内容复制到背景图层上,并将 dageshhazaq 相对于此放置:与直觉相反,即使我们正在处理 RTL 脚本,它也会位于字形原点的右侧。是的,这是一种黑客攻击,是的,在某些情况下它会产生糟糕的结果,但至少这是一个后备。


0
投票

我也有同样的问题。即使我直接从正常运行的 Unicode dagesh 复制并粘贴自定义字形,它们的位置也不正确。我在自定义 sheva 字形时也遇到了同样的问题。 FontForge 中的指标窗口显示了“应该”的样子: Metrics Window 但是我的文字处理程序(LibreOffice)放错了自定义字符:

我已经确保问题不是由增加的笔划粗细引起的,并且所有四个字形都分配给字形信息中的“Mark”类。将未分配的字符跨 Unicode 块移动(从“希伯来语”到“字母表示形式”或“私人使用区域”)也没有帮助。LibreOffice 编辑:将这些字形分配给 Unicode 定义的位置作为希伯来语标记可以解决这个问题。但将其放在“组合变音符号”中则不然。似乎所有代码点(除了少数例外)都被硬编码为在 LibreOffice 中被视为字母,而不是标记。知道它是如何工作的以及如何覆盖它(因为我不想为我的自定义字形使用“不正确的”Unicode 字符)?

© www.soinside.com 2019 - 2024. All rights reserved.