inputunicodems-wordasianfontscombining-marks

How to compose syllable blocks with Hangul Jamo


I'm working on a project that would require the input of old Hangul syllable blocks (i.e. Hangul syllable blocks that would utilize obsolete characters such as ㆅ and ㅿ, located in the Hangul Compatibility Jamo unicode block), but I've been having quite a difficult time displaying the blocks as whole blocks (like 룰) instead of a string of separated glyphs (like ᅘᆇᇈ). Apparently, the strings ㄱㅏㅁ, 가ㅁ, and 감 are equivalent to each other, but the "GSUB features" of Hangul fonts ties them together to varying extents. From what I've gathered, a similar process is applied to Hangul Jamo, in which it's guessed how the block is to be shaped by which vowel follows is (like the difference between the ㄱ in 구 and 기) and whether not it has a final consonant (like the difference between the ㄱ in 가 and 갈).

I imagine that this is similar to how a combining diacritic would work, in which it would guess the height difference of a capital Á and minuscule á. There are many Latin fonts that don't support combining characters, and considering that although ㄱㅏㅁ, 가ㅁ, and 감 are equal, in the end 감 is a precomposed character, and the whole purpose of the Hangul Jamo unicode block is (according to the Wikipedia article on it) to "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." This makes me wonder if the Hangul Jamo behave more like space modifying characters that would need { EQ \o(X1,X2) } to be combined with their respective character.

Most of what I've read speak about font design and command lines which makes it seem that the writer is doing a bit more than just inputting obsolete characters on a word processor, and yet behold: https://github.com/adobe-fonts/source-han-sans/issues/34 . The poster and commentators are trying to figure out Hangul Jamo composition in verticle form, yet they have already composed syllable blocks horizontally in a word processor, but how is nowhere to be seen.


Solution

  • Although Unicode contains code points for obsolete or archaic jamo (like and ), there are no precomposed forms with these characters, and they are excluded from the Unicode normalisation algorithm that composes/decomposes jamo into syllable blocks (although they do have compatibility decompositions into the regular Hangul jamo block, e.g. U+317E to U+1136).

    That is, as far as Unicode is concerned these archaic jamo do not form Hangul syllable blocks at all.

    However, fonts may implement their own precomposed forms through the ccmp, ljmo, vjmo, and tjmo OpenType features for Hangul layout. Support for syllable composition using these features is up to the font designer and may go beyond what Unicode supports. Therefore, if you need support for syllable blocks that contain these jamo, you will need to find a font with such support.