Pdf 单个CID引用到多个unicode编码

Pdf 单个CID引用到多个unicode编码,pdf,unicode,encoding,fonts,Pdf,Unicode,Encoding,Fonts,在解析pdf文件时,我遇到了一个预定义的CMap(UniCNS-UTF16-H,您可以在这里找到)。当我研究它时,我发现单个CID可以被引用到多个Unicode中 我的问题是,这样做的目的是什么?如何知道应将字符映射到哪个unicode cid2code.txt文件的标题表示“可能存在单个CID在单个CMap文件的多个编码点中被引用的情况。这些情况在同一列中以逗号分隔。”但没有说明原因 我看了一下技术说明#5080“用于CID键控字体的Adobe-CNS1-6字符集”,但没有找到答案。因此,如果

在解析pdf文件时,我遇到了一个预定义的CMap(UniCNS-UTF16-H,您可以在这里找到)。当我研究它时,我发现单个CID可以被引用到多个Unicode中

我的问题是,这样做的目的是什么?如何知道应将字符映射到哪个unicode

cid2code.txt文件的标题表示“可能存在单个CID在单个CMap文件的多个编码点中被引用的情况。这些情况在同一列中以逗号分隔。”但没有说明原因

我看了一下技术说明#5080“用于CID键控字体的Adobe-CNS1-6字符集”,但没有找到答案。因此,如果有人能给我指出这段文字的解释和处理方法,我将不胜感激。

Unicode本身就有。这些副本显然应该映射到同一个glyph

编辑:您似乎还具有垂直/水平等效的v后缀代码点,例如:(垂直两点)和(两点引线)

编辑2:引自

香港政府还确定了香港GCC中存在的84对重复文字。方法是 选择“统一”每对的一个实例(通常是第二个或多个实例) (后来的出现)与先前存在的角色。这个 以前被“统一”所占据的代码点 出于向后兼容的原因,保留字符。 同样,CID用于表示“统一”对的两个字符 由于以下原因,请保留在字符集合Adobe-CNS1中: 向后兼容性
我不确定是否有详细的文章明确说明了为什么CID规范允许映射多个CMap代码,但确实如此。也许了解更多关于CID字体的设计和使用的知识可以帮助您理解这种做法的潜在用处。我建议大家通读一遍

基本上,CID被设计成一个字形形状的集合,具有CMap机制,可以任意将一个或多个代码与这些形状中的任何一个相关联。它们CID本身只是字形,而不是Unicode。CMAP特意设计为与CID字体数据断开连接,以便在不更改字形数据的情况下轻松更新和添加映射。因此,例如,具有Japan1-6排序的CID字体可以有许多形状集合的映射(CMAP),并且有许多可供选择(特别是对于日语!)。如果你想的话,你甚至可以发明你自己的映射……你只需要分发CMap部件,并确保它符合所讨论的顺序

在任何情况下:为什么这是可能的并不重要:它是可能的,就是这样。因此,如果您正在开发处理CID和/或CMAP的产品,您应该准备好处理该案例。它可以而且确实发生了,如果你不准备处理它,你的代码最终会崩溃

顺便说一下:CID格式在这方面不是唯一的。在OpenType(TrueType)中,做同样的事情是常见的做法,在其他字体格式中也可能如此