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 range U+1100..U+11FF, assigned code points in the Extended-A range of U+A960..U+A97C, and assigned code points in the Extended-B range of U+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.
  • -c code_point β€” Starting code point in hexadecimal for output file. ⭐
  • -j1 start-end β€” Choseong (jamo 1) start-end range in hexadecimal. 🌈
  • -j2 start-end β€” Jungseong (jamo 2) start-end range in hexadecimal. 🌈
  • -j3 start-end β€” Jongseong (jamo 3) start-end range in hexadecimal. 🌈
  • -i input_file β€” Unifont hangul-base.hex formatted input file. πŸ“
  • -o output_file β€” Unifont .hex format 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+1160 in 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 location 0x2000. 🌸
  • The third command generates all modern Hangul syllables containing jongseong Rieul (U+11AF), starting at Unifont hexadecimal glyph location 0x3000. 🌸
  • The fourth command generates all modern Hangul syllables containing choseong (initial consonant) Rieul (U+1105), starting at Unifont hexadecimal glyph location 0x4000. 🌸

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