如何用 Hangul Jamo 组成音节块

How to compose syllable blocks with Hangul Jamo

我正在做一个项目,需要输入旧的韩文音节块(即使用 ㆅ 和 ㅿ 等过时字符的韩文音节块,位于 Hangul Compatibility Jamo unicode 块中),但我一直很难将块显示为整个块(如 룰),而不是一串分隔的字形(如 ᅘᆇᇈ)。显然,字符串 ㄱㅏㅁ、가ㅁ 和 감 是等价的,但是 Hangul 字体的 "GSUB features" 在不同程度上将它们联系在一起。从我收集到的信息来看,一个类似的过程被应用到 Hangul Jamo,它猜测块是如何由后面的元音塑造的(就像 구 和 기 中 ㄱ 之间的区别)以及它是否有一个末尾辅音(比如가和갈中ㄱ的区别)。

我想这类似于组合变音符号的工作方式,它会猜测大写字母 Á 和小写字母 á 的高度差。有许多不支持组合字符的拉丁字体,考虑到虽然 ㄱㅏㅁ、가ㅁ 和 감 是相等的,但最后 감 是一个预组合字符,Hangul Jamo unicode 块的整个目的是(根据维基百科上的文章)到 "be used to dynamically compose syllables that are not available as precomposed Hangul syllables in Unicode, specifically archaic syllables containing sounds that have since merged phonetically with other sounds in modern pronunciation." 这让我想知道 Hangul Jamo 是否更像 space 修改需要 { EQ \o(X1,X2) } 的字符与其各自的字符相结合.

我读过的大部分内容都是关于字体设计和命令行的,这让作者看起来不仅仅是在文字处理器上输入过时的字符,而是看:https://github.com/adobe-fonts/source-han-sans/issues/34 .发帖人和评论员正在想方设法用竖线形式拼出韩文拼音,但他们已经在文字处理器中水平拼出音节块了,但怎么也看不到。

虽然 Unicode 包含过时或古老的 jamo 的代码点(如 ),但没有包含这些字符的预组合形式,并且它们被排除在 Unicode 规范化算法之外 composes/decomposes jamo 到音节块(尽管它们确实具有兼容性分解为常规 Hangul jamo 块,例如 U+317E 到 U+1136)。

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

但是,字体可以通过 ccmpljmovjmotjmo OpenType features for Hangul layout 实现自己的预组合形式。使用这些功能支持音节组合取决于字体设计者,可能超出 Unicode 支持的范围。因此,如果您需要对包含这些 jamo 的音节块的支持,您将需要找到具有此类支持的字体。

这完全取决于字体。有些字体会自动为您提供连接的表格,大多数不会。到目前为止我发现的唯一有用的是:

Malgun 哥特式(附带 Windows 10)

Hayashi-Serif(可免费下载)

Hangul Compatibility Jamo (U+3130–U+318F) 块没有连接行为。要获得连接行为,请使用来自:

的 Jamo
  • 韩文拼音:U+1100–U+11FF
  • Hangul Jamo Extended-A:U+A960–U+A97F
  • Hangul Jamo Extended-B:U+D7B0–U+D7FF

特别是,问题中的过时字符是:

  • U+3185 ‹ㆅ› \N{HANGUL LETTER SSANGHIEUH},它有一个连接版本:
    • ᅘ U+1158 HANGUL CHOSEONG SSANGHIEUH(首辅音)
  • U+317F ‹ㅿ› \N{HANGUL LETTER PANSIOS},其连接版本位于:
    • ᅀ U+1140 HANGUL CHOSEONG PANSIOS(首辅音)
    • ᇫ U+11EB HANGUL JONGSEONG PANSIOS(尾随辅音)