Publishing pre-1933 orthography Korean text on the web
(with an example taken from HunMinJeongEum EonHae)
What follows is HunMinJeongEum EonHae, a vernacular
translation of HunMinJeongEum (The Correct Sound for
the Instrcution of the People). It began with the
announcement that a new
script had been invented by King Sejong to help his people express
their thoughts, which had been difficult or impossible
because Chinese characters
used until then were not suitable for Korean. After this
brief introduction, it explaines the sounds
of 17 consonants and 11 vowels with examples.
This page was put up to test U+1100 Hangul Jamo
support by web browsers, which is essential for pre-1933
orthography Korean text.
All Hangul syllables, modern(post-1933 orthography) or pre-1933,
are represented using
Hangul
Conjoinging Jamos at U+1100. I edited this file
with Vim 6.1 with a very simple patch
under Xterm
166. Xterm-166 and Vim 6.1 can stack up up to two combining
characters over a base character. In this scheme, Hangul
leading consonants are base characters while medial vowels and
trailing consonants are combining characters. This is very similar
to the way Thai script is supported by Xterm and Vim.
Both programs make use of Markus Kuhn's implementation of
wcwidth.
Because there was no Korean XIM server that supports
input of U+1100 Jamos, yet, I had to make a keymap file
for Vim to enter Jamos. The keymap file used is available
here.
Xterm was launched with PARK
Won Kyu's Korean iso10646-1 font. This font has glyphs for
U+1100 Hangul Jamos. In the font, glyphs for Hangul Jamos
are arranged in such a way that they form a syllable when
stacked over each other. The screenshot
of my editing session is here.
Recently, a new input method for Gtk2
based programs, imhangul has been developed. This is a great news for
Linux and other Unix-like OS that uses Gtk. For details on
imhangul, refer here.
You can find a PDF version
here
typeset by Karnes Kim with LaTeX. I made
another PDF version using Lambda and
OGulim.ttf (available as a part of Middle Korean support tool for MS Word 2000)
The following combinations of browser and font
can render this page as intended:
- Mozilla for Unix/Linux with PARK Won Kyu's zero-width iso10646-1 font.
Please, note that this font(uhdalsam) is different from the font mentioned
above (xuhdalsam) In this font, glyphs for leading Jamos are spacing/advancing
while glyphs for medial and trailing vowels are non-spacing/combining
(zero-width). This change is necessary because Mozilla doesn't do
any sophisticated rendering of U+1100 Hangul Jamos as is done
by Xterm-16x. (You can refer to the section 'Thai rendering concerns'
in
an excellent summary of Thai support by GNU/Linux/X
for the difference between two fonts.) Here's a screenshot of of Mozilla rendering the page.
Please, make sure that you remove Hanterm
Johab fonts from your font path because one of them will
take a precedence over PARK Won Kyu's font if they're present.
Hanterm Johab fonts have limited coverage of Middle Korean
Jamos leading to an only partially correct rendering of the page.
- Mozilla for Unix/Linux
with James Kass' newest version
of CODE2000
font(my great thanks goes to James for making this possible).
You have to turn on the direct truetype font access in Mozilla
by following the instruction by Brian Stell. The screenshot is
available here.
- Mozilla for Unix/Linux
with Xft patch
with the aforementioned CODE2000 font.
RedHat Linux (7.3? or later) is shipped with a version
of Mozilla patched by Chris Blizzard to make use of Xft
and fontconfig by Keith Packard. It has a problem
with U+115F(Hangul Choseong Filler) and U+1160(Hangul
Jungseong Filler), both of which have to be rendered
as blank, the former being spacing and the latter being
non-spacing. Mozilla with Xft patch renders them both
with a spacing hollow box. The screenshot taken by
CHA Young-Ho is available here.
A work-around is add U+115F and U+1160 to
the list of blank glyphs in fonts.config file
of fcpackage.
- Mozilla for
MS Windows 9x/ME/NT4/2k/XP with CODE2000 font. I haven't tested it under
Windows 9x/ME, but it should work. The screenshot
of Mozilla rendering the page under Windows 2000
is here. You have
to note that there's a little problem with Hangul
Jungseong Filler(U+1160). It's rendered as a question
mark instead of being rendered as a non-spacing blank
glyph. I filed a bug for this issue at bugzilla
and came up with a patch. See bugzilla
bug id 167136. With this patch, Mozilla under
MS Windows has no problem rendering the page.
- MS IE 6 under MS Windows 2k/XP with CODE2000
font. MS IE 5.x may also
work, but I haven't checked it out. The screenshot
is here.
- Opera under MS Windows 9x/ME/2k/XP with CODE2000 font. James Kass
confirmed that Opera is able to render the page
correctly under MS Windows 98 and I believe that it should
also work under Windows 2k/XP.
- MS IE 5.x/6.x under MS-Windows with fonts for pre-1933 orthography
Korean (with necessary OT tables) should have no problem rendering
pre-1933 orthography Korean syllables, but reportedly it wouldn't render
modern(post-1933) Korean (I'm well aware that W3C standard specifies that
html documents be in NFC, but I think that requirement imposes an undue
burden on the authors of html documents. I believe the normalization
should be done by web browsers, instead.) Unfortunately, I don't have
any opentype font with necessary opentype tables to confirm this. It'd
be nice if anyone with such fonts (Korean version of MS Office XP comes
with a couple of them) could test the page with MS IE 6 and send me
a screenshot.
- When my patch for Mozilla is checked in, Mozilla for Unix/Linux/X11
and Mozilla for MS Windows can render pre-1933 Korean text with
very high quality fonts developed by Hanyang system in Korea. There are three bugs filed at Mozilla's bug site. They're
176315,
177877, and
176290.
Here are a few screenshots taken with my patched version of Mozilla.
훈민저ᇰ음 언해
世셰ᇰ宗조ᇰ御어ᇰ製졔ᇰ 訓훈民민正져ᇰ音ᅙᅳᆷ
나랏말ᆺᄊᆞ미 中듀ᇰ國귁에 달ᅡ아 文문字ᄍᆞᆼ와로 서르 ᄉᆞᄆᆞᆺ디 아니ᄒᆞᆯᄊᆞᅵ 이런 젼ᄎᆞ로 어린
百ᄇᆞᅵᆨ姓셔ᇰ이 니르고져 호ᇙ배 이셔도 ᄆᆞᄎᆞᆷ내 제 ᄠᅳ들 시러펴디 몯ᄒᆞᇙ노미하니라
내이ᄅᆞᆯ 爲윙ᄒᆞ야 어엿비 너겨 새로 스믈 여듧字ᄍᆞᆼᄅᆞᆯ ᄆᆡᇰᄀᆞ노니 사ᄅᆞᆷ마다 ᄒᆞᅵᅇᅧ
수ᄫᅵ 니겨 날로 ᄡᅮ메 便뼌安ᅙᅡᆫ킈 ᄒᆞ고져 ᄒᆞᇙ ᄯᆞᄅᆞ미니라.
Consonants
-
ᄀᅠᄂᆞᆫ 엄쏘리니 君군字ᄍᆞᆼ처ᅀᅥᆷ 펴아나ᄂᆞᆫ 소리 ᄀᆞᄐᆞ니
ᄀᆞᆯᄫᅡ쓰면 虯뀨ᇢ字ᄍᆞᆼ처ᅀᅥᆷ 펴아나ᄂᆞᆫ 소리 ᄀᆞᄐᆞ니라.
ᄏᅠᄂᆞᆫ 엄쏘리니 快쾌ᇰ字ᄍᆞᆼ처ᅀᅥᆷ 펴아나ᄂᆞᆫ 소리 ᄀᆞᄐᆞ니라.
ᅌᅠᄂᆞᆫ 엄쏘리니 業ᅌᅥᆸ字ᄍᆞᆼ처ᅀᅥᆷ 펴아나ᄂᆞᆫ 소리 ᄀᆞᄐᆞ니라.
-
ᄃᅠᄂᆞᆫ 혀쏘리니 斗두ᇢᄫ字ᄍᆞᆼ처ᅀᅥᆷ 펴아나ᄂᆞᆫ 소리 ᄀᆞᄐᆞ니
ᄀᆞᆯᄫᅡ쓰면 覃땀ᄇ字ᄍᆞᆼ처ᅀᅥᆷ 펴ᄋᆞ나ᄂᆞᆫ 소리 ᄀᆞᄐᆞ니라.
ᄐᅠᄂᆞᆫ 혀쏘리니 呑ᄐᆞᆫᄃ字ᄍᆞᆼ처ᅀᅥᆷ 펴아나ᄂᆞᆫ 소리 ᄀᆞᄐᆞ니라.
ᄂᅠᄂᆞᆫ 혀쏘리니 那낭ᅙ字ᄍᆞᆼ처ᅀᅥᆷ 펴아나ᄂᆞᆫ 소리 ᄀᆞᄐᆞ니라.
-
ᄇᅠᄂᆞᆫ 입시울쏘리니 彆벼ᇙ字ᄍᆞᆼ처ᅀᅥᆷ 펴아나ᄂᆞᆫ 소리 ᄀᆞᄐᆞ니
ᄀᆞᆯᄫᅡ쓰면 步뽀ᇰᅙ字ᄍᆞᆼ처ᅀᅥᆷ 펴아나ᄂᆞᆫ 소리 ᄀᆞᄐᆞ니라.
ᄑᅠᄂᆞᆫ 입시울쏘리니 漂표ᇢᄫ字ᄍᆞᆼ처ᅀᅥᆷ 펴아나ᄂᆞᆫ 소리 ᄀᆞᄐᆞ니라.
ᄆᅠᄂᆞᆫ 입시울쏘리니 彌밍ᅙ字ᄍᆞᆼ처ᅀᅥᆷ 펴아나ᄂᆞᆫ 소리 ᄀᆞᄐᆞ니라.
-
ᄌᅠᄂᆞᆫ 니쏘리니 卽즉字ᄍᆞᆼ처ᅀᅥᆷ 펴아나ᄂᆞᆫ 소리 ᄀᆞᄐᆞ니
ᄀᆞᆯᄫᅡ쓰면 慈ᄍᆞᆼᅙ字ᄍᆞᆼ처ᅀᅥᆷ 펴아나ᄂᆞᆫ 소리 ᄀᆞᄐᆞ니라.
ᄎᅠᄂᆞᆫ 니쏘리니 侵침字ᄍᆞᆼ처ᅀᅥᆷ 펴아나ᄂᆞᆫ 소리 ᄀᆞᄐᆞ니
ᄉᅠᄂᆞᆫ 니쏘리니 戌슈ᇙ字ᄍᆞᆼ처ᅀᅥᆷ 펴아나ᄂᆞᆫ 소리 ᄀᆞᄐᆞ니라.
ᄀᆞᆯᄫᅡ쓰면 邪썅字ᄍᆞᆼ처ᅀᅥᆷ 펴아나ᄂᆞᆫ 소리 ᄀᆞᄐᆞ니라.
-
ᅙᅠᄂᆞᆫ목소리니 挹ᅙᅳᆸ字ᄍᆞᆼ처ᅀᅥᆷ 펴아나ᄂᆞᆫ 소리 ᄀᆞᄐᆞ니라.
ᄒᅠᄂᆞᆫ목소리니 虛헝ᅙ字ᄍᆞᆼ처ᅀᅥᆷ 펴아나ᄂᆞᆫ 소리 ᄀᆞᄐᆞ니라.
ᄀᆞᆯᄫᅡ쓰면 洪ᅘᅩᇰᄀᅠ字ᄍᆞᆼ처ᅀᅥᆷ 펴아나ᄂᆞᆫ 소리 ᄀᆞᄐᆞ니라.
ᄋᅠᄂᆞᆫ 목소리니 欲욕字ᄍᆞᆼ처ᅀᅥᆷ 펴아나ᄂᆞᆫ 소리 ᄀᆞᄐᆞ니라.
-
ᄅᅠᄂᆞᆫ 반혀쏘리니 閭령ᅙ字ᄍᆞᆼ처ᅀᅥᆷ 펴아나ᄂᆞᆫ 소리 ᄀᆞᄐᆞ니라.
ᅀᅠᄂᆞᆫ 반니쏘리니 穰ᅀᅣᇰ字ᄍᆞᆼ처ᅀᅥᆷ 펴아나ᄂᆞᆫ 소리 ᄀᆞᄐᆞ니라.
Vowels
- ᅟᆞᄂᆞᆫ 呑ᄐᆞᆫᄃ字ᄍᆞᆼ 가온ᄃᆡᆺ소리 ᄀᆞᄐᆞ니라.
- ᅟᅳᄂᆞᆫ 卽즉字ᄍᆞᆼ 가온ᄃᆡᆺ소리 ᄀᆞᄐᆞ니라.
- ᅟᅵᄂᆞᆫ 侵침ᄇ字ᄍᆞᆼ 가온ᄃᆡᆺ소리 ᄀᆞᄐᆞ니라.
- ᅟᅩᄂᆞᆫ 洪ᅘᅩᇰᄀᅠ字ᄍᆞᆼ 가온ᄃᆡᆺ소리 ᄀᆞᄐᆞ니라.
- ᅟᅡᄂᆞᆫ 覃땀ᄇ字ᄍᆞᆼ 가온ᄃᆡᆺ소리 ᄀᆞᄐᆞ니라.
- ᅟᅮᄂᆞᆫ 君군ᄃ字ᄍᆞᆼ 가온ᄃᆡᆺ소리 ᄀᆞᄐᆞ니라.
- ᅟᅥᄂᆞᆫ 業ᅌᅥᆸ字ᄍᆞᆼ 가온ᄃᆡᆺ소리 ᄀᆞᄐᆞ니라.
- ᅟᅭᄂᆞᆫ 欲욕字ᄍᆞᆼ 가온ᄃᆡᆺ소리 ᄀᆞᄐᆞ니라.
- ᅟᅣᄂᆞᆫ 穰ᅀᅣᇰᄀ字ᄍᆞᆼ 가온ᄃᆡᆺ소리 ᄀᆞᄐᆞ니라.
- ᅟᅲᄂᆞᆫ 戌슈ᇙ字ᄍᆞᆼ 가온ᄃᆡᆺ소리 ᄀᆞᄐᆞ니라.
- ᅟᅧᄂᆞᆫ 彆벼ᇙ字ᄍᆞᆼ 가온ᄃᆡᆺ소리 ᄀᆞᄐᆞ니라.
Final consonants, clusters, geminates and tone marks
- 乃내ᇰ終쥬ᇰᄀᅠ 소리ᄂᆞᆫ 다시 첫소리ᄅᆞᆯ ᄡᅳᄂᆞ니라.
- ᄋᅠᄅᆞᆯ 입시울쏘리 아래니ᅀᅥ쓰면 입시울가ᄇᆞᅵ야ᄫᆞᆫ소리 ᄃᆞ외ᄂᆞ니라.
- 첫소리ᄅᆞᆯ 어울워 ᄡᅮᇙ디면 ᄀᆞᆯᄫᅡ쓰라.
- 乃내ᇰ終쥬ᇰᄀᅠ 소리도 ᄒᆞᆫ가지라.
- ᅟᆞ와 ᅟᅩ와 ᅟᅮ와 ᅟᅭ와 ᅟᅲ와란 첫소리 아래 브텨 쓰고
ᅟᅵ와 ᅟᅡ와 ᅟᅥ와 ᅟᅣ와 ᅟᅧ와란 올ᄒᆞᆫ녀그ᅵ 부텨 쓰라.
- 믈읫字ᄍᆞᆼᅟᅵ 모로매어우러ᅀᅡ 소리이ᄂᆞ니 왼녀긔 ᄒᆞᆫ 點뎜을 더으면
ᄆᆞᆺ높ᆞᆫ 소리오 點뎜이 둘히면 上쌰ᇰ聲셔ᇰ이오 點뎜이 업스면 平펴ᇰ聲셔ᇰ이오
ᅩ入입聲셔ᇰ은 點뎜더우믄 ᄒᆞᆫ가지로ᄃᆡ ᄲᆞᄅᆞ니라
Consonants for Chinese phonemes
中듀ᇰ國귁소리 옛니쏘리ᄂᆞᆫ 齒칭頭뚜ᇢ와 正져ᇰ齒칭 왜ᄀᆞᆯᄒᆡ 요ᄆᆡ 잇ᄂᆞ니
ᅎᅠᅔᅠᅏᅠᄽᅠᄼᅠ字ᄍᆞᆼᄂᆞᆫ 齒칭頭뚜ᇢ ᄉᅠ소리예ᄡᅳ고
ᅐᅠᅑᅠᄾᅠᄿᅠ字ᄍᆞᆼᄂᆞᆫ 正져ᇰ齒치ᇰ 예ᄡᅳᄂᆞ니 엄과 혀와 이ᄡᅵ 울와
목소리 옛字ᄍᆞᆼᄂᆞᆫ 中듀ᇰ國귁소리예 通토ᇰ히 ᄡᅳᄂᆞ니라.