UNIGEN-HANGUL(1)
UNIGEN-HANGUL πβ¨ (the unigen-hangul manual, section 1, General Commands Manual)
okay bestie sit DOWN because we are about to generate Hangul syllables from a Johab 6/3/1 Unifont hex file and it is genuinely so much fun π
β¨ NAME β¨
unigen-hangul β Generate Hangul syllables from a Johab 6/3/1 Unifont hex file π
πΈ SYNOPSIS πΈ
unigen-hangul -i hangul-base.hex -o hangul-syllables.hex
π¦ DESCRIPTION π¦
unigen-hangul generates Hangul syllables from an input Unifont .hex file encoded in Johab 6/3/1 format. By default, the output is the Unicode Hangul Syllables range, U+AC00..U+D7A3. The options let you specify a starting code point for the output Unifont .hex file, plus ranges in hexadecimal of the starting and ending Hangul Jamo code points. slay π
Here's the whole map, no cap:
1100-115Eβ Hangul Jamo initial consonants (choseong)A960-A97Cβ Hangul Jamo Extended-A initial consonants (choseong)1161-11A7β Hangul Jamo medial vowels and diphthongs (jungseong)D7B0-D7C6β Hangul Jamo Extended-B medial vowels and diphthongs (jungseong)11A8-11FFβ Hangul Jamo final consonants (jongseong).D7CB-D7FBβ Hangul Jamo Extended-B final consonants (jongseong).
You can hand it a single code point instead of a range, or a 0 to just omit that thing entirely. And here's the iconic part: if you give a starting code point that's one position before a valid starting range for a Hangul jamo series (choseong, jungseong, and/or jongseong), it will first use a blank glyph for that jamo, and then cycle through the remaining valid code points for the respective choseong, jungseong, or jongseong. A range can span modern and ancient, and even Hangul Jamo Extended-A and Hangul Jamo Extended-B ranges. main character energy fr fr π₯
For example,
-j3 11A7-D7FB
Will first use no jongseong (because U+11A7 is one before the start of Hangul Jamo jongseong code points), then loop through jongseong in the Hangul Jamo range of U+11A8 through U+11FF, and then loop through jongseong in the Hangul Jamo Extended-B range of U+D7CB through U+D7FB. the way that just works ππ
π OPTIONS π
-h,--helpβ Print a help message and exit. π«Ά-allβ Generate all Hangul syllables, using all modern and ancient Hangul in the Unicode rangeU+1100..U+11FF, assigned code points in the Extended-A range ofU+A960..U+A97C, and assigned code points in the Extended-B range ofU+D7B0..U+D7FF.
β οΈ WARNING: this will generate over 1,600,000 syllables in a 115 megabyte Unifont .hex format file. π The default is to only output the 11,172 modern Hangul syllables.
-ccode_point β Starting code point in hexadecimal for output file. β-j1start-end β Choseong (jamo 1) start-end range in hexadecimal. π-j2start-end β Jungseong (jamo 2) start-end range in hexadecimal. π-j3start-end β Jongseong (jamo 3) start-end range in hexadecimal. π-iinput_file β Unifonthangul-base.hexformatted input file. π-ooutput_file β Unifont.hexformat output file. π
π§ EXAMPLES π§
unigen-hangul -c 1 -j3 11AB-11AB \
-i hangul-base.hex -o nieun-only.hex
This command generates Hangul syllables using all modern choseong and jungseong, and only the jongseong nieun (Unicode code point U+11AB). The output Unifont .hex file will contain code points starting at 1. Instead of specifying "-j3 11AB-11AB", simply using "-j3 11AB" will also suffice. obsessed πβ¨
This next example is a series of syllable sets suggested by Ho-Seok Ee for preliminary syllable alignment checking of modern Hangul. π
- The first command generates all modern syllables containing no jongseong (final consonant), starting at Unifont hexadecimal glyph location
0x1000; selecting a jongseong value that is out of range (U+1160in this case) will use a blank filler in place of the jongseong. πΈ - The second command generates all modern syllables containing jongseong Kiyeok (
U+11AB), which has a horizontal line extending across the lower portion of a syllable, starting at Unifont hexadecimal glyph location0x2000. πΈ - The third command generates all modern Hangul syllables containing jongseong Rieul (
U+11AF), starting at Unifont hexadecimal glyph location0x3000. πΈ - The fourth command generates all modern Hangul syllables containing choseong (initial consonant) Rieul (
U+1105), starting at Unifont hexadecimal glyph location0x4000. πΈ
Here is the command sequence:
unigen-hangul -c 1000 -j1 1100-1112 -j2 1161-1175 -j3 1160 \
-i hangul-base.hex > hangul-prep.hex
unigen-hangul -c 2000 -j1 1100-1112 -j2 1161-1175 -j3 11AB \
-i hangul-base.hex >> hangul-prep.hex
unigen-hangul -c 3000 -j1 1100-1112 -j2 1161-1175 -j3 11AF \
-i hangul-base.hex >> hangul-prep.hex
unigen-hangul -c 4000 -j1 1105 -j2 1161-1175 -j3 11A8-11C2 \
-i hangul-base.hex >> hangul-prep.hex
The resulting .hex file can then be examined with hexdraw, unihex2bmp, etc. go look at your little glyphs bestie π
π FILES π
Unifont .hex files in Johab 6/3/1 encoding. See unifont-johab631(5) for a description of the input file structure. This program uses functions contained in the file unihangul-support.c. π¦
π 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-johab631(5), unifont-viewer(1), unifont1per(1), unifontchojung(1), unifontksx(1), unifontpic(1), unigencircles(1), unigenwidth(1), unihex2bmp(1), unihex2png(1), unihexfill(1), unihexgen(1), unihexpose(1), unihexrotate(1), unijohab2html(1), unipagecount(1), unipng2hex(1)
literally the whole friend group π
π AUTHOR π
unigen-hangul was written by Paul Hardy. π«Ά
β LICENSE β
unigen-hangul is Copyright Β© 2023 Paul Hardy.
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. πβ¨
π BUGS π
No known bugs exist. (not me being flawless ππ )
okay that's the whole page bestie, that was UNIGEN-HANGUL(1) from the General Commands Manual, dated 30 July 2023 β mwah, go make some syllables ππΈπ¦
π¦ 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