UNIFONT-JOHAB631(5)
UNIFONT-JOHAB631(5) β Unifont Johab 6/3/1 file format π
okay bestie, sit DOWN, because we're about to learn the unifont-johab631 file format and it is genuinely so satisfying once it clicks. this page lives in the File Formats Manual section of the manual, and it's all about the Johab 6/3/1 vibe. let's get into it π
β¨ SYNOPSIS β¨
hangul-base.hex
π DESCRIPTION π
so this whole document is describing the structure of the Unifont Johab 6/3/1 file format, and its job is being the input to Hangul syllable generation programs. right now, three programs in the Unifont package use files in this format: unigen-hangul(1), johab2html(1), and johab2syllabes(1).
ngl the easiest way to actually see the two-dimensional organization of all these Hangul letter variations is to look at the HTML output of johab2html(1) in a web browser. like, that's the vibe check. π
the hangul-base.hex file that ships with Unifont starts at hexadecimal code point 0xE000, which is the start of the Uniocde Plane 0 Private Use Area (PUA).
the Johab 6/3/1 file format is divided into these ranges, in hexadecimal:
E000β Blank (filler) glyph. π«§E001-E2FAβ Initial consonants (choseong), 6 variations each for the Unicode Hangul Jamo choseong range ofU+1100..U+115Eand then the Unicode Jamo Extended-A choseong range ofU+A960..U+A97C.E2FB-E420β Vowels and diphthongs (jungseong), 3 variations each for the Unicode Hangul Jamo jungseong range ofU+1161..U+11A7and then the Unicode Jamo Extended-B jungseong range ofU+D7B0..U+D7C6.E421-E479β Final consonants (jongseong), 1 variation each for the Unicode Hangul Jamo jongseong range ofU+11A8..U+11FFand then the Unicode Jamo Extended-B jongseong range ofU+D7CB..U+D7FB.E500-E5FFβ Individual Hangul Jamo letters, 1 variation each for the Unicode Hangul Jamo range ofU+1100..U+11FF.E600-E61Fβ Individual Hangul Jamo Extended-A letters, 1 variation each for the Unicode Hangul Jamo Extended-A range ofU+A960..U+A97F.E620-E66Fβ Individual Hangul Jamo Extended-B letters, 1 variation each for the Unicode Hangul Jamo Extended-B range ofU+D7B0..D7FF.
and honestly? this johab scheme is much easier to use than the original Unifont 10/3 or 4/4 johab encoding. that original format was adopted from Hanterm. we love an upgrade. π
π«§ FILLER GLYPH π«§
the first glyph in the file is a filler, with hexadecimal values of 64 zeroes. it's used as a filler for Hangul syllable combinations that don't contain one or two of the three parts of a Hangul syllable. it's basically the understudy of glyphs. no cap. π
π§ CHOSEONG π§
these are the initial consonants in a syllable. every choseong has six variations:
- Combination with a vertical vowel
- Combination with a horizontal vowel
- Combination with a vertical plus horizontal diphthong
- Combination with a vertical vowel and final consonant
- Combination with a horizontal vowel and final consonant
- Combination with a vertical plus horizontal diphthong, and a final consonant.
all six variations get created in order for the first consonant (U+1100, HANGUL CHOSEONG KIYEOK) in the file entries E001-E006, then all six for the second consonant (U+1101, HANGUL CHOSEONG SSANGKIYEOK) in the file entries E007-E00C, etc. it's giving assembly line but make it β¨aestheticβ¨.
πΈ JUNGSEONG πΈ
these are the medial vowels and diphthongs in a syllable. every jungseong has three variations:
- With initial consonant but no final consonant
- With initial consonant and final consonant, except final consonant neiun
- With intial consonant, and with final consonant nieun.
same deal as with choseong: all three variations get created in order for the first vowel (U+1161, HANGUL JUNGSEONG A) in the file entries E2FB-E2FD, then all three for the second vowel (U+1162, HANGUL JUNGSEONG AE), etc. π¦
π₯ JONGSEONG π₯
these are the final consonants. each one has only one variation. but here's the tea: the program unigen-hangul(1) additionally shifts these final consonants one column to the right when the vowel in the syllable has two long vertical strokes along the right edge, as in U+1162 (HANGUL JUNGSEONG AE).
the other two programs in the Unifont package that form syllables, johab2syllables(1) and unijohab2html(1), overlay all jongseong exactly as they are encoded, with no shifting or extending. so if you were expecting consistency, bestie... that's not the vibe here. π
π HANGUL JAMO π
the entire Unicode Hangul Jamo range, U+1100..U+11FF, appears in entries E500-E5FF. the whole thing. periodt. π
β HANGUL EXTENDED-A JAMO β
the Hangul Jamo Extended-A range, U+A960..U+A97F in E600-E61F.
π HANGUL EXTENDED-B JAMO π
the Hangul Jamo Extended-B range, U+D7B0..U+D7FF in E620-E66F.
π FILES π
Unifont .hex files in Johab 6/3/1 encoding. programs wishing to interact with this johab encoding can use functions contained in the file unihangul-support.c.
the programs johab2syllables(1), unigen-hangul(1), and unijohab2html(1) all use various functions in unihangul-support.c to generate their output. shared code, shared slay. π«Ά
π SEE ALSO π
bdfimplode(1), hex2bdf(1), hex2otf(1), hex2sfd(1), hexbraille(1), hexdraw(1), hexkinya(1), hexmerge(1), johab2syllables(1), johab2ucs2(1), unibdf2hex(1), unibmp2hex(1), unibmpbump(1), unicoverage(1), unidup(1), unifont(5), unifont-viewer(1), unifont1per(1), unifontchojung(1), unifontksx(1), unifontpic(1), unigen-hangul(1), unigencircles(1), unigenwidth(1), unihex2bmp(1), unihex2png(1), unihexfill(1), unihexgen(1), unihexpose(1), unihexrotate(1), unijohab2html(1), unipagecount(1), unipng2hex(1)
like... that's a whole friend group. go say hi. π
π AUTHOR π
- Ho-Seok Ee created the original Johab 6/2/1 format and drew the modern Hangul letters. iconic behavior.
- Paul Hardy drew the ancient vowels and suggested adding a third vowel variation, for combining with final consonant (jongseong)
niuen, resulting in a Johab 6/3/1 encoding. - Ho-Seok Ee suggested shifting final consonants one position to the right for combination with vowels having two long vertical strokes on the right edge of a syllable.
- Minseo Lee provided feedback on letter design details.
collab of the century, fr fr. π
π LICENSE π
the hangul-base.hex johab glyphs are Copyright Β© 2023 Ho-Seok Ee and Paul Hardy. some Hangul Jamo ancient glyphs are Copyright Β© 2023 Minseo Lee.
this program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
heads up bestie: that's the whole license text as it appears here β read it properly before you go redistributing anything. π
π BUGS π
No known bugs exist.
(not a single one. we are FLAWLESS. πβ¨)
and that's the whole page, bestie!! this one came from the File Formats Manual, dated 30 July 2023, and the source line at the bottom reads UNIFONT-JOHAB631(5) β so if you ever need to cite it, that's the one. now go draw some Hangul, you absolute main character. π«Άπβ¨
π¦ where this page comes from
- alpine 3.22: unifont-doc 16.0.03-r0 Β· GFDL-1.3-or-later GPL-2.0-or-later WITH Font-exception-2.0
- alpine 3.23: unifont-doc 17.0.03-r0 Β· GFDL-1.3-or-later GPL-2.0-or-later WITH Font-exception-2.0
- alpine 3.24: unifont-doc 17.0.04-r0 Β· GFDL-1.3-or-later GPL-2.0-or-later WITH Font-exception-2.0
- fedora 43: unifont 16.0.01-6.fc43 Β· GPL-2.0-or-later AND OFL-1.1 AND GFDL-1.3-or-later
- fedora 44: unifont 16.0.01-7.fc44 Β· GPL-2.0-or-later AND OFL-1.1 AND GFDL-1.3-or-later
- nixpkgs unstable: unifont 18.0.01
- ubuntu questing: unifont-bin 1:16.0.04-1
- ubuntu resolute: unifont-bin 1:16.0.04-1build1 Β· GPL-2.0-or-later
- ubuntu stonking: unifont-bin 1:16.0.04-1build1 Β· GPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms