Please refer to KoreanSetupHowto to get korean fonts and input setup properly.

This page will describe some personal settings and tips that make Korean fonts look nice. However, please note that I'm primarily an english user and I have my en_UTF-8 as my locale so that my menus are english but it also allows me to read and write in Korean as well.

Display Resolution & Hinting

My ubuntu is installed on a XGA, i.e. 1024x768 display LCD. I recommend using 96dpi as your display resolution . You can designate this in your font preferences. I also set my rendering to "Subpixel Smoothing (LCD)."

Location: Computer->Desktop Preferences->Font->Detailed

  • 96dpi

  • Subpixel Smoothing (LCD)

Additional Fonts

Although Baekmuk font package aren't bad, to be frank, nothing beats Microsoft's gulim.ttc and batang.ttc that are shipped with Windows.

I recommend installing the fonts in your ~/.fonts directory.

Anti-Aliasing and Alias

Once you install the gulim.ttc and batang.ttc fonts, you'll want to turnoff anti-aliasing on them. They look fuzzy and unreadable. You also want to use GulimChe as your default font instead of the Dotum or Batang.

First create a .fonts.conf file in your home directory so that you can localize these font settings to your account.

$touch ~/.fonts.conf

Secondly, Edit the .fonts.conf file and paste the following:

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<!-- ~/.fonts.conf for per-user font configuration -->
<fontconfig>

<match target="font">
  <test qual="any" name="family">
    <string>Gulim</string>
    <string>GulimChe</string>
    <string>Batang</string>
    <string>BatangChe</string>
    <string>Dotum</string>
    <string>DotumChe</string>
    <string>Gungsuh</string>
    <string>GungsuhChe</string>
    <string>Baekmuk Batang</string>
    <string>Baekmuk Dotum</string>
    <string>Baekmuk Gulim</string>
    <string>Baekmuk Headline</string>
  </test>
  <test name="pixelsize" compare="more_eq"><int>8</int></test>
  <test name="pixelsize" compare="less_eq"><int>14</int></test>
  <edit name="antialias" mode="assign"><bool>false</bool></edit>
  <edit name="globaladvance"><bool>false</bool></edit>
  <edit name="spacing"><int>0</int></edit>
</match>

<!--
  Serif faces
 -->
        <alias>
                <family>Bitstream Vera Serif</family>
                <family>Times</family>
                <family>Times New Roman</family>
                <family>Nimbus Roman No9 L</family>
                <family>Luxi Serif</family>
                <family>Kochi Mincho</family>
                <family>AR PL SungtiL GB</family>
                <family>AR PL Mingti2L Big5</family>
                <family>BatangChe</family>
                <family>FreeSerif</family>
                <default><family>serif</family></default>
        </alias>
<!--
  Sans-serif faces
 -->
        <alias>
                <family>Bitstream Vera Sans</family>
                <family>Helvetica</family>
                <family>Arial</family>
                <family>Verdana</family>
                <family>Nimbus Sans L</family>
                <family>Luxi Sans</family>
                <family>Kochi Gothic</family>
                <family>AR PL KaitiM GB</family>
                <family>AR PL KaitiM Big5</family>
                <family>Gulim</family>
                <family>SimSun</family>
                <family>FreeSans</family>
                <default><family>sans-serif</family></default>
        </alias>
<!--
  Provide required aliases for standard names
-->
        <alias>
                <family>serif</family>
                <prefer>
                        <family>Bitstream Vera Serif</family>
                        <family>Times New Roman</family>
                        <family>Nimbus Roman No9 L</family>
                        <family>Luxi Serif</family>
                        <family>Times</family>
                        <family>Frank Ruehl</family>
                        <family>Kochi Mincho</family>
                        <family>AR PL SungtiL GB</family>
                        <family>AR PL Mingti2L Big5</family>
                        <family>BatangChe</family>
                        <family>FreeSerif</family>
                </prefer>
        </alias>
        <alias>
                <family>sans-serif</family>
                <prefer>
                        <family>Bitstream Vera Sans</family>
                        <family>Verdana</family>
                        <family>Nimbus Sans L</family>
                        <family>Luxi Sans</family>
                        <family>Arial</family>
                        <family>Helvetica</family>
                        <family>Nachlieli</family>
                        <family>Kochi Gothic</family>
                        <family>AR PL KaitiM GB</family>
                        <family>AR PL KaitiM Big5</family>
                        <family>Gulim</family>
                        <family>SimSun</family>
                        <family>FreeSans</family>
                </prefer>
        </alias>
        <alias>
                <family>monospace</family>
                <prefer>
                        <family>Bitstream Vera Sans Mono</family>
                        <family>Andale Mono</family>
                        <family>Courier New</family>
                        <family>Luxi Mono</family>
                        <family>Nimbus Mono L</family>
                        <family>Miriam Mono</family>
                        <family>Kochi Gothic</family>
                        <family>AR PL KaitiM GB</family>
                        <family>GulimChe</family>
                        <family>FreeMono</family>
                </prefer>
        </alias>

</fontconfig>

Notice that there are two major sections in text above.

  • The first portion is turning off anti-aliasing for the designated korean fonts that are equal or greater that 8 points and less than or equal to 14 points. At 96dpi, you'll find that 9 points is the smallest you'll want to be because the fonts start to get mangled if you go any smaller.
  • The second portion is a literal copy from /etc/fonts.conf and it replaces "Baekmuk Batang" string to "GulimChe". This makes GulimChe the default font for the family of fonts listed.

If you add any additional korean fonts, you'll want to list them in your .fonts.conf file so that anti-aliasing is not applied.

  • Also, if you've tried this before, you'll know that this doesn't work in firefox if you've followed other examples. Typically, they tell you to use:

<test name="size" compare="more_eq"><int>8</int></test>

However, notice that I replaced "size" with "pixelsize"

<test name="pixelsize" compare="more_eq"><int>8</int></test>

This is because if you use size, it doesn't apply to firefox. It took me a good 6 hours to figure this out. I believe someone names Sangu submitted a bug to RedHat for FC3 and I accidently came across it. Now it applies to firefox too. Yey~ Smile :)

Font Size

Remember that these settings are for 96dpi resolution. Here are the fonts that I use.

  • Application font: Tahoma - 9pt
  • Desktop font: Tahoma - 9pt
  • Window title font: Tahoma - 9pt
  • Terminal font: Monospace - 9pt

I personally prefer 8 points for all of them because I think they look better, but at 8pts, when you switch to Korean and start typing, the Korean fonts look jumbled and a little too small. 9pt seems to be the sweet spot.

Firefox Settings

This applies to your font setting in Firefox. You want to set Firefox with the following dpi and font sizes:

  • Western

    • Proportional - San Serif 16pt
    • Serif - New Times Roman
    • San Serif - Verdana
    • Monospace - Bitstream Vera San Mono 16 pt
    • Resolution - 96dpi
    • Minimum Font Size - 12pt
  • Korean

    • Proportional - San Serif 9pt
    • Serif - BatangChe

    • San Serif - Gulim
    • Monospace - GulimChe 9 pt

    • Resolution - 96dpi
    • Minimum Font Size - None

Gnome-Terminal

You'll notice that even though Firefox and all the other Gnome application display Korean fonts properly, gnome-terminal still doesn't turn off antialiasing. This is because there is a bug in VTE and you need to explicitly tell VTE to not use XFT.

In your .gnomerc add the following line

export VTE_USE_XFT=0

You'll still want to use a font at 9pt to get Korean fonts to display nicely. Which ever font you use, you'll want to add the following to your ~/.fonts.conf file to replace/append the English font to a Korean font.

<!--
한글폰트와 영문폰트 매칭시키기
-->
<match target="pattern">
        <test name="family">
                <string>ProFontWindows</string>
        </test>
        <edit name="family" mode="append" binding="strong">
                <string>Gulim</string>
        </edit>
</match>

Personally, I really like ProFont for my term. More specifically, I use ProFontWindows.ttf which you can download from the link listed in the reference below. If you use another monospace font, just replace ProFontWindows with your font of choice.

Screenshot

Fonts

References

BeautifyKoreanFonts (last edited 2010-10-10 17:47:22 by jimlepp)