Re: Combing jamos rendering (was RE: IDS rendering and IDS analysis (

From: Jungshik Shin (
Date: Wed Apr 12 2000 - 09:00:12 EDT

On Wed, 12 Apr 2000 wrote:

> Jungshik Shin:
> > By the way, even a very primitive X11 rendering engine
> > of bitmap fonts can emulate 'the effect'(generating glyphs on-the-fly)
> > fed by justaposing a set of zero-width/negative-width(non-advancing)
> > glyphs and final advancing glyph.
> > [...]
> > it should be
> > certainly possible for Korean Hangul(as we have done in many
> > occasions).
> Does the X11 rendering engine do this for Hangul? It may be primitive, but
> it sound goods to me; do you have any web references to know more about it?

  In a sense it does by doing NOTHING :-). I'll get back to you with
details tomorrow. I've got too much to do today. If you're curious,
you can examine what I attached to my reply to 'Unicode rendering with
Java under X11'(or sth. like)

> Each syllable may be composed with two jamos (leading consonant + vowel) or
> three (leading consonant + vowel + trailing consonant). A barely-readable
> Hangul jamos rendering would require the following contextual shapes:
> Trailing consonants: 1 shape, non-spacing.
> - T. The glyph occupies the lower part of the character cell, the rest of
> Vowels: 2 contextual shapes, non-spacing.
> - V1 (no trailing consonant). The glyph occupies the right or bottom part of
> - V2 (trailing consonant). The glyph is the same as in V1, but it is
> Leading consonants: 6 contextual shapes, spacing.
> - L1 (no trailing consonant, right vowel). The glyph occupies the left part
> - L2 (no trailing consonant, bottom vowel). The glyph occupies the top part
> - L3 (no trailing consonant, enclosing vowel). The glyph occupies the
> occupies both the bottom and right parts.
> L3 but they are squeezed vertically in order to leave the bottom part of the
> So, the minimal number of glyphs for (barely readable!) combining Hangul
> should be:
> 85 + 67 * 2 + 91 * 6 = 795
> T V L
> However, the possible combinations of Hangul jamos (U+1100..U+11FF) is a
> closed set that can be anticipated. The set is in fact encoded in Unicode as
> pre-composed characters (U+AC00..U+D79F), and there are well defined
> algorithms to map sequences of jamos to/from precomposed syllables.
> So, the best approach for a typographic level rendering is, in this case, to
> draw the composed glyphs in advance and store them in a font.

  As for modern syllables encoded in UAC00, you're probablely right.
However, you're missing the fact that only precomposed Hangul syllables
encoded in UAC00 block are modern *complete* syllables of 11,172 made up
of 19 leading consonants, 21 medial vowels and (27 trailing consonants
+ 1 filler). Hangul Jamo block at U1100 encodes, as you wrote above,
medivieal Hangul Jamos as well. All the possible combinations of them
number half million. We don't need all of them and it's a great waste
to make separate glyphs for all those syllables so I'm suggesting what
I suggested above(either on-the-fly generation of glyph or built-in many
to many(or 1) mapping of char. to glyph). BTW, Korean standard body made
a big mistake(???) of not including precomposed *incomplete* syllables of
1.1k in modern use. Let alone medivial syllables, we need the facility to
render those modern incomplete syllables to be encoded with U1100 jamos.

     Jungshik Shin

This archive was generated by hypermail 2.1.2 : Tue Jul 10 2001 - 17:21:01 EDT