Hangul and the Square

Latin type design never has to resolve eleven thousand composed blocks. What that does to spacing, hinting, file size and variable fonts, and why Hunminjeongeum named no letters.

Date

/

Category

Graphic Design

Graphic Design

/

Writer

Keon Hwui Kim

Keon Hwui Kim

The manuscript that explains how Hangul was designed spent roughly four hundred years missing. The Hunminjeongeum Haerye, the commentary written by King Sejong and eight scholars of the Hall of Worthies and published in the ninth lunar month of 1446, was lost by the early sixteenth century and did not resurface until 1940. It is now in the Kansong Art Museum in Seoul, and UNESCO added it to the Memory of the World register in 1997. Everything confident that anyone says about why the letters look the way they do rests on a document that was, for most of the script's life, unavailable.

I mention this because Korean type design is full of numbers that sound authoritative, and the most quoted of them is one a designer meets before they have thought about what it means: 11,172.

Where 11,172 comes from

Hangul does not set as a string of letters. It sets as a string of syllabic blocks, and each block packs two or three letters into one square-ish cell. Unicode encodes every modern block as a single precomposed character. The count follows directly from the inventory of pieces.

Modern jamo used by the Unicode composition algorithm

  L  initial consonants (choseong)  19  U+1100.U+1112
  V  medial vowels (jungseong)      21  U+1161.U+1175
  T  final consonants (jongseong)   27  U+11A8.U+11C2

A block is either L+V or L+V+T.

  LV blocks    19 x 21       = 399
  LVT blocks   19 x 21 x 27  = 10,773
  total        19 x 21 x 28  = 11,172

  Hangul Syllables block       U+AC00.U+D7AF (allocated)
  Assigned syllables           U+AC00.U+D7A3
  Hangul Jamo                  U+1100.U+11FF
  Hangul Compatibility Jamo    U+3130.U+318F
  Hangul Jamo Extended-A       U+A960.U+A97F
  Hangul Jamo Extended-B       U+D7B0.U+D7FF
Modern jamo used by the Unicode composition algorithm

  L  initial consonants (choseong)  19  U+1100.U+1112
  V  medial vowels (jungseong)      21  U+1161.U+1175
  T  final consonants (jongseong)   27  U+11A8.U+11C2

A block is either L+V or L+V+T.

  LV blocks    19 x 21       = 399
  LVT blocks   19 x 21 x 27  = 10,773
  total        19 x 21 x 28  = 11,172

  Hangul Syllables block       U+AC00.U+D7AF (allocated)
  Assigned syllables           U+AC00.U+D7A3
  Hangul Jamo                  U+1100.U+11FF
  Hangul Compatibility Jamo    U+3130.U+318F
  Hangul Jamo Extended-A       U+A960.U+A97F
  Hangul Jamo Extended-B       U+D7B0.U+D7FF
Modern jamo used by the Unicode composition algorithm

  L  initial consonants (choseong)  19  U+1100.U+1112
  V  medial vowels (jungseong)      21  U+1161.U+1175
  T  final consonants (jongseong)   27  U+11A8.U+11C2

A block is either L+V or L+V+T.

  LV blocks    19 x 21       = 399
  LVT blocks   19 x 21 x 27  = 10,773
  total        19 x 21 x 28  = 11,172

  Hangul Syllables block       U+AC00.U+D7AF (allocated)
  Assigned syllables           U+AC00.U+D7A3
  Hangul Jamo                  U+1100.U+11FF
  Hangul Compatibility Jamo    U+3130.U+318F
  Hangul Jamo Extended-A       U+A960.U+A97F
  Hangul Jamo Extended-B       U+D7B0.U+D7FF

The 28 in the last line is 27 finals plus the case of no final at all. That is the whole derivation. The Unicode Consortium's Korean FAQ states the modern subset precisely: "19 L (1100.1112), 21 V (1161.1175), and 27 T (11A8.11C2)", producing the 11,172 syllables "directly encoded as a compact representation of certain sequences of Jamo".

Two qualifications get dropped in the retelling. Those are the modern jamo: the full conjoining inventory, which exists so pre-1933 orthography and dialect transcription can be represented, runs to 125 initial, 95 medial and 137 final forms, well past two million theoretical blocks, which is why old Hangul is not precomposed and cannot be. And only a fraction of the 11,172 ever appears. The usual figure is around two thousand blocks in actual use, repeated widely without a frequency study attached to it, so treat it as an order of magnitude rather than a measurement.

A page from the Hunminjeongeum Haerye

The Hunminjeongeum Haerye, 1446, which explains the letters and their composition into blocks but gives them no names. Public domain, via Wikimedia Commons.

What Sejong specified, and what he did not

The Hunminjeongeum was introduced at court between December 1443 and January 1444 and published in 1446. It presents 28 letters: 17 consonants and 11 vowels. Of those, 24 survive in modern use, 14 consonants and 10 vowels, which expand to 51 jamo once the compound consonants and compound vowels are counted.

The design logic in the Haerye is articulatory for the consonants: the five basic consonant shapes are described as pictures of the speech organs, with ㄱ showing the tongue blocking the palate, ㄴ the tongue touching the palate, ㅁ the mouth, ㅅ the incisors and ㅇ the throat. The remaining consonants are derived by adding strokes. The vowels are built from three elements that the text glosses cosmologically. I have deliberately not given the heaven, earth and human assignments here, because the two English-language summaries I checked in preparing this disagreed with each other about which element maps to which vowel, and I did not have the Haerye text itself to settle it.

Here is the correction that matters for anyone who has ever written a specimen sheet. The Hunminjeongeum does not name the letters. No names were recorded for any of them in 1446. The familiar names, giyeok, nieun, digeut and the rest, are first attested in Choe Sejin's Hunmong Jahoe of 1527, eighty-one years later, and Choe says elsewhere in that work that his intent was to document the practice of his own time rather than to invent it. So the names are a sixteenth-century record of usage, not a fifteenth-century decree. The pattern itself is elegant and worth knowing: the first syllable shows the consonant in initial position with ㅣ, the second shows it in final position, so the name demonstrates the letter's two jobs.

The other thing Sejong did specify is the block. An initial consonant must be paired with at least a vowel to form a syllable. The letters are alphabetic; the unit of setting is not. That single rule is the origin of every production problem below.

Two ways to draw a Korean typeface

A Latin text face is a few hundred glyphs. A Korean face is decided by which of two philosophies you adopt, and the two have Korean names that predate the software.

완성형: draw the finished blocks

The precomposed approach draws each syllable as a complete, individually resolved image. The advantage is total control: every block can be optically corrected for its own combination of pieces. The cost is obvious.

Industry practice has settled on two coverage targets. The Korean national standard KS X 1001, whose modern double-byte Wansung form was standardised in the third edition of KS C 5601 in 1986, encodes 2,350 precomposed syllables, selected by frequency of use. Glyphs, the type design application, offers a "Basic Syllables" set of 2,780 based on KS X 1001 together with the Adobe-KR standard, and a full "All Syllables" set of 11,172 "for anything that could possibly ever occur". The competing encoding, Johab, assigned codes to all 11,172 using modern jamo and fell out of use after Unicode.

조합형: draw the pieces and compose

The composition approach draws positional variants of each jamo and lets the layout engine assemble them. OpenType supports this directly through three required GSUB features that must run in this order: ljmo for the leading consonant, vjmo for the vowel, tjmo for the trailing consonant, optionally preceded by ccmp. Each substitutes a contextually correct form: a leading consonant takes one shape when followed by a vowel alone and another when followed by a vowel plus a final, a vowel takes a narrower form in some contexts, a trailing consonant takes a reduced form because it sits below.

There is a trap here that catches people who read the OpenType documentation and assume it applies to their work. Microsoft's shaping documentation is explicit that if a jamo sequence can form a modern Hangul syllable, the jamo features are not applied. Modern Korean text uses the precomposed characters. The ljmo, vjmo and tjmo machinery exists for old Hangul, for combinations outside the 11,172. So a designer who builds a composition font and expects the engine to assemble modern text at run time has misread the pipeline. What composition buys you in modern practice is a way of generating the precomposed glyphs, not of avoiding them.

The Glyphs tutorial gives the structural taxonomy that makes composition tractable: six block structures, defined by whether the vowel is horizontal, vertical or mixed, and by whether a final consonant is present. Every one of the 11,172 falls into one of the six. That is the good news. The bad news is in the tutorial's own warning about positional variants: "suddenly you might find yourself with 5, 10, even 20 versions of each Jamo!"

The real number in Korean type design is not 11,172. It is the number of variants per jamo that a given design demands, multiplied through six structures, and that number is a consequence of how the design was drawn rather than of the script.

MoMA's 2015 piece on Hangul typeface design puts the two coverage figures side by side, 2,350 block syllables under the Korean standard or 11,172 under Unicode, and its author's summary of the craft is the one I would keep: "The pleasure of designing Hangul typefaces lies in the constant redefining of the dynamics" between the letter and the syllable.

네모틀 and 탈네모틀

Because the block is the unit, a Korean typeface has to decide whether the block is a fixed square. The traditional answer, 네모틀, is a rectangular frame of fixed size inherited from calligraphy and from the convenience of typesetting. The alternative, 탈네모틀, lets the block take the height its contents need, so a syllable with no final consonant sits shorter than one with a final.

The Korean typography dictionary records that the term itself is recent: earlier writers used 비네모틀 or 탈사각틀, and 탈네모틀 became standard from the 1990s. The designs are older. Ahn Sang-soo's 안상수체 dates to 1985, and Noh Minji's paper in LetterSeed 15 for the Korean Society of Typography, published 30 June 2017, dates its first appearance to a December 1985 exhibition poster. The paper describes it as "a concise, geometric de-squared typeface designed on the basis of the creation principles of the Hunminjeongeum", and notes that it produces the full 11,172 by combining the 19 initials, 21 medials and 27 finals rather than by drawing each block individually. 공한체, by Gong Byeong-u (1906 to 1995) with Han Jae-jun, followed in 1989 with letters of differing heights.

The dictionary also makes the production point plainly: de-squared typefaces show much less variation in letter form and need fewer character variants. This is the trade a Latin designer never has to make. Fixing the frame costs you glyph count. Releasing the frame costs you the even grey of the page.

What follows for spacing

The W3C's Requirements for Hangul Text Layout and Typography, edited by Richard Ishida, describes two modes a font can offer. In proportional mode, Hangul glyphs use a "character frame width proportional to each letter face width". In fixed mode, they use fixed values. Korean is unusual among CJK scripts in that both are genuinely in play, whereas Chinese setting is far more committed to the full-width grid.

Three consequences, all in the same document or in Peter Biľak's May 2025 Typotheque survey of CJK typesetting:

  • Default letter spacing between Hangul characters is zero. There is no inherited sidebearing convention doing quiet work the way there is in Latin.

  • Modern Korean puts spaces between words, and line breaks may fall at any character or at word boundaries depending on the document, but hyphens are never used for word breaking. A Korean paragraph therefore has justification options a Latin paragraph does not, and lacks the one a Latin paragraph relies on.

  • Contemporary Korean fonts tend to have narrower bounding boxes than Chinese or Japanese ones, because Korean setting is now almost exclusively horizontal. Korean punctuation is predominantly proportional, closer to Latin practice than to the full-width CJK grid.

And then the line in the W3C note that tells you exactly how different the economics are: "Group kerning can be applied for efficient adjustment of kerning for the 11,172 Hangul syllables." Kerning in Latin is a table of exceptions. Kerning in Korean has to be an operation on classes of eleven thousand things, because nobody is going to enumerate the pairs.

Hinting and variable fonts

On hinting I have to be honest: I could not find a primary source documenting how Korean fonts are hinted in practice or what it costs. That the workload scales with glyph count is repeated everywhere, but I will not assert numbers I have not seen.

What is documented is the file-size story, and it is dramatic. Source Han Sans, released on 16 July 2014, carries 65,535 glyphs in its full Pan-CJK form, which is the ceiling for a CID-keyed font. Adobe's own post of 8 April 2021 announcing the variable version gives the numbers: the full Pan-CJK static set went from 593.7 MB to 32.9 MB as a variable OTC file. A single region's seven weights went from 118 MB to 31 MB. The Japanese subset went from 32.1 MB static to 8.1 MB as a variable OTF and 4.1 MB as WOFF2. Seven discrete weights became one continuous axis.

Adobe's Korean subset is a useful specimen of what "complete" means for this script. Source Han Serif Korean Subset covers "all contemporary (11,172) and 500 high-frequency archaic hangul syllables", conjoining jamo with full archaic support, and "all KS X 1001 and KS X 1002 hanja (7,476), 466 additional hanja". Note the shape of that: the modern syllable set is the small part.

Set

Count

What it is

KS X 1001 Wansung syllables

2,350

National standard, chosen by frequency, third edition of KS C 5601, 1986

Glyphs "Basic Syllables"

2,780

KS X 1001 plus Adobe-KR, the usual production target

Modern precomposed syllables

11,172

19 x 21 x 28, Unicode U+AC00 to U+D7A3

Archaic syllables in Adobe's Korean subset

500

High-frequency archaic blocks added on top of the modern set

Hanja in Adobe's Korean subset

7,476

All KS X 1001 and KS X 1002 hanja, plus 466 more

Source Han Sans full Pan-CJK

65,535

The CID-keyed format ceiling, covering five regional variant sets

The variable-font implication that follows from all this is structural rather than aesthetic. Interpolation requires point-compatible outlines across masters, for every glyph. In a Latin family that is a few hundred compatibility checks. In a Korean family drawn as finished blocks, it is thousands, and a single incompatible block in a single weight breaks the axis for that glyph. The composition approach is the obvious hedge, since compatibility only has to hold for the jamo, but composition constrains what the design can do to individual blocks. This is the same trade as 네모틀 against 탈네모틀, arriving again in a different technical dress.

What I would tell a Latin-trained designer

Do not think of 11,172 as a glyph count. Think of it as a resolution target. The question a Korean typeface answers is not "have you drawn all of them" but "at what level of the hierarchy did you make your decisions, and how far down does your judgement reach". A composition font makes its decisions at the jamo and pushes them down mechanically. A drawn font makes them at the block. Every real typeface sits somewhere between, and the position it takes is the design.

The square, meanwhile, is not in the Hunminjeongeum. Sejong specified that letters combine into syllables. The fixed square frame is a convention that came from brush practice and from the mechanics of metal and photo type, and Korean designers have been arguing about whether to keep it since at least 1985. That argument is not a technical one. It is the same question Latin typography settled, differently, when it gave up on uniform letter widths.

Sources

Related reading

More from the Moc Mallen Studio journal