如何用 Hangul Jamo 组成音节块

cra*_*raw 4 unicode ms-word input asianfonts combining-marks

我正在开发一个项目,需要输入旧的韩文音节块(即使用过时字符的韩文音节块,例如 \xe3\x86\x85 和 \xe3\x85\xbf,位于 Hangul Compatibility Jamo 中unicode 块),但我一直很难将这些块显示为整个块(如 \xeb\xa3\xb0),而不是一串分隔的字形(如 \xe1\x85\x98\xe1\x86\ x87\xe1\x87\x88)。显然,字符串 \xe3\x84\xb1\xe3\x85\x8f\xe3\x85\x81、\xea\xb0\x80\xe3\x85\x81 和 \xea\xb0\x90 彼此等效,但是韩文字体的“GSUB 特征”在不同程度上将它们联系在一起。根据我收集的信息,类似的过程也适用于 Hangul Jamo,其中猜测元音后面的块将如何形成(就像 \xe3\x84\xb1 之间的区别) xea\xb5\xac 和 \xea\xb8\xb0) 以及它是否有结尾辅音(如 \xea\xb0\x80 和 \xea\xb0\x88 中的 \xe3\x84\xb1 之间的区别)。

\n\n

我想这类似于组合变音符号的工作方式,其中它会猜测大写 A\xcc\x81 和小写 a\xcc\x81 的高度差。有很多拉丁字体不支持组合字符,考虑到虽然 \xe3\x84\xb1\xe3\x85\x8f\xe3\x85\x81、\xea\xb0\x80\xe3\x85\x81、和 \xea\xb0\x90 是相等的,最后 \xea\xb0\x90 是一个预组合字符,Hangul Jamo unicode 块的整个目的是(根据维基百科上的文章)“动态地用于组成在 Unicode 中无法作为预先组成的韩文音节使用的音节,特别是包含后来在现代发音中与其他声音在语音上合并的声音的古老音节。” 这让我想知道 Hangul Jamo 的行为是否更像空间修改字符,需要 { EQ \\o(X1,X2) } 与各自的字符组合。

\n\n

我读过的大部分内容都是关于字体设计和命令行的,这使得作者所做的不仅仅是在文字处理器上输入过时的字符,但你看: https: //github.com/adobe -fonts/source-han-sans/issues/34。发帖者和评论员正在尝试找出垂直形式的韩文字字组成,但他们已经在文字处理程序中水平组成了音节块,但无处可寻。

\n

一二三*_*一二三 5

尽管 Unicode 包含过时或过时的 jamo 的代码点(如\xe3\x86\x85和\xe3\x85\xbf),但这些字符没有预组合形式,并且它们被排除在将 jamo 组合/分解为音节块的 Unicode 标准化算法之外(尽管它们确实具有兼容性分解为常规 Hangul jamo 块,例如\xe3\x85\xbeU+317E 到\xe1\x84\xb6U+1136)。

\n\n

也就是说,就 Unicode 而言,这些古老的 jamo 根本不形成 Hangul 音节块。

\n\n

但是,字体可以通过Hangul 布局的ccmp、ljmo、vjmo和OpenType 功能实现自己的预组合形式。使用这些功能对音节构成的支持取决于字体设计者,并且可能超出 Unicode 支持的范围。因此,如果您需要支持包含这些 jamo 的音节块,您将需要找到具有此类支持的字体。tjmo

\n