Word 和 InDesign 中相同字形的不同字形索引

Different glyph index for same glyph in Word and InDesign

从 Wingdings 字体中选择一个字符插入文档时,MS Word 2015 和 InDesign CS 5.5 至少对某些字符显示不同的字形索引。

根据 Word,我要查找的字符 Unicode 25A0(黑色方块)的十进制 Wingdings gid 为 110。 我找到的两个在线资源 http://www.alanwood.net/demos/wingdings.html and http://www.csn.ul.ie/~caolan/wingdings/proposal/ 证实了这个数字。 不过,InDesign 显示的 gid 为 132。

为什么 InDesign 对相同字体的相同字形显示不同的 gid?

您混淆了指定的 Unicode 代码点或字符集编码与 字形索引

此字体使用自定义字符集,实际显示正方形的是字符 n (U+006E) -- 不是 Unicode 字符 U+25A0。如果您在文本中插入 Arial Unicode MS 黑色方块,然后将字体更改为 Wingdings,您将看到该字符消失。

InDesign 报告的 字形索引 与字符集、Unicode 和其他任何内容都无关。该索引只是字体中每个单独的 字形 的递增数字——其中可能很少、相当多或很多。字形索引总是从 0 开始,这表示 'missing character' 字符(因此没有用),并且枚举下一个字形。此 enumeration 通过字体编码转换为 Unicode 或其他字符 mapping。枚举本身没有任何意义:字体可能包含 'A'、'B'、'C' 作为其前 3 个字形,或者它可能包含 '#'、'☺'、'ó'、或其他。

这个字形顺序与字体本身的工作完全无关,对于所有实际的最终用户操作,您最好忘记有这样的东西。 (如果您尝试更改某个 字形 的字体,那就另当别论了——您可能会看到另一个字符,因为绝对不需要两种字体在完全相同的位置。)

您在 InDesign 中看错了地方:字形面板显示所有字形并始终显示它们的 字形索引 (因为所有字符都有一个,根据 [=52 的定义=]),但只有它们的 Unicode 代码点(如果已分配)。

InDesign 在处理 dingbat/symbol 字体方面比 Word 更聪明:它不是撒谎说 'this "is" the letter n',而是分配一个私有的 Unicode 代码点;在这种情况下,U+F06E。这样你就不会不小心分配另一种字体并得到字母 n.