ปรับแต่งฟอนต์ไทยบน Ubuntu Part II
Public, ลินุกซ์ November 8th, 2006
จากตอนที่แล้ว ยังมีสิ่งที่อยากแก้ 2 อย่าง ได้แก่
- ไม่ควรเอาคอนฟิกที่สร้างเอง ไปใส่ใน /etc/fonts/conf.d/ น่าจะคอนฟิกให้กับ user ก่อน เพื่อที่จะได้แก้ไขปรับแต่งได้ง่ายๆ
- การแสดงภาษาไทยยังไม่สวยงาม เพราะฟอนต์ไทยชุดนี้ไม่มี hinting
ในภาค 2 นี้ก็จะแก้ไขที่ทำไปแล้วจากภาคแรกบ้าง แต่ส่วนใหญ่จะเป็นการทำเพิ่มเติม ดังนี้
-
reconfig fontconfig-config ใหม่ โดย
$ sudo dpkg-reconfigure fontconfig-config Password:_
หน้าจอแรก กำหนดว่าจะใช้ font hinting หรือไม่ เนื่องจากผมต้องการใช้ Dejavu เป็นหลัก ซึ่งมี hint ที่ดีอยู่แล้ว จึงใช้ native hint

ต่อมาก็กำหนดว่า จะเรนเดอร์ฟอนต์ด้วย sub-pixel หรือไม่ sub-pixel มีบนจอ LCD ครับ ทำให้ฟอนต์ดูเนียนขึ้นอีกเล็กน้อย ปกติจะใช้ Automatic คือจะใช้ sub-pixel ถ้าใช้จอ LCD ถ้าไม่ใช่ ก็ไม่ใช้ ขั้นตอนนี้จะเลือก Automatic ก็ได้ครับ แต่ผมเลือก Never เพราะต้องการ capture หน้าจอไม่ให้ติด sub-pixel มาด้วย

ต่อมาก็กำหนดว่า จะเปิดใช้ bitmaped fonts หรือไม่ ผมเลือก <ใช่> เพราะต้องการใช้ฟอนต์ MiscFixed ใน gnome-terminal แนะนำให้เลือกตามนี้ครับ

-
ถ้าทำตามตอนที่แล้ว จะมีไฟล์ /etc/fonts/conf.d/66-thai-ttf.conf ให้ลบทิ้งก่อน ถ้าไม่มีก็ข้ามไป
$ sudo rm /etc/fonts/conf.d/66-thai-ttf.conf Password:_
- สร้างไฟล์ชื่อ ~/.fonts.conf ให้มีเนื้อหาดังนี้
< ?xml version="1.0"?>
< !DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<alias>
<family>Loma</family>
<family>Garuda</family>
<family>Kinari</family>
<family>Purisa</family>
<default><family>sans-serif</family></default>
</alias>
<alias>
<family>Norasi</family>
<default><family>serif</family></default>
</alias>
<alias>
<family>TlwgMono</family>
<family>TlwgTypewriter</family>
<default><family>monospace</family></default>
</alias>
<alias>
<family>sans-serif</family>
<prefer>
<family>Loma</family>
</prefer>
</alias>
<alias>
<family>serif</family>
<prefer>
<family>Loma</family>
</prefer>
</alias>
<alias>
<family>monospace</family>
<prefer>
<family>TlwgTypewriter</family>
</prefer>
</alias>
<match target="font">
<test name="family">
<string>Loma</string>
<string>Garuda</string>
<string>Norasi</string>
<string>Kinari</string>
<string>Purisa</string>
<string>TlwgMono</string>
<string>TlwgTypewriter</string>
<string>Angsana New</string>
<string>Browalia New</string>
<string>Cordia New</string>
</test>
<edit name="autohint" mode="assign"><bool>true</bool></edit>
<edit name="hinting" mode="assign"><bool>true</bool></edit>
<edit name="embeddedbitmap" mode="assign"><bool>false</bool></edit>
<edit mode="assign" name="hintstyle"><const>hintslight</const></edit>
</match>
</fontconfig>
แล้วสั่ง
$ fc-cache
ในไฟล์นี้ จะมีที่แตกต่างจากคอนฟิกของตอนที่แล้วคือ ฟอนต์ไทยเหล่านี้ จะใส่ AutoHint ให้มันด้วย ซึ่งผมทดสอบแล้ว ค่อนข้างน่าพอใจทีเดียว
-
จากการทดสอบ ที่ขนาดฟอนต์ 10 point เป็นขนาดที่ดูเพี้ยนๆ ชอบกล คือความสูงของตัวอักษรจะไม่เท่ากัน แต่พอลองเปลี่ยนเป็นขนาดอื่นๆ เช่น 8, 9, 11 กลับดูดีขึ้น ความเบลอลดลงอย่างเห็นได้ชัด ดังนั้นขั้นตอนนี้คือเปลี่ยนขนาดฟอนต์ครับ ใช้เมนู “ระบบ” –> “ปรับแต่งพื้นโต๊ะ” –> “แบบอักษร”

ส่วนบนไฟร์ฟ็อกซ์เท่าที่ลองดูไม่จำเป็นต้องเปลี่ยนขนาดใหม่ก็ได้
เสร็จแล้วถ้าเปิดไฟร์ฟ็อกซ์อยู่ก็ลองปิดแล้วเปิดใหม่ ภาพนี้คือตัวอย่างผลลัพธ์ที่ได้ ดูดีขึ้นไหมครับ

-
ถ้าต้องการลองเปลี่ยนไปใช้ฟอนต์อื่น ก็สามารถทำได้ เช่นจะเปลี่ยนไปใช้ฟอนต์ Garuda แทน Loma ก็แก้ไฟล์ ~/.fonts.conf จาก
<alias>
<family>sans-serif</family>
<prefer>
<family>Loma</family>
</prefer>
</alias>
<alias>
<family>serif</family>
<prefer>
<family>Loma</family>
</prefer>
</alias>
เป็น
<alias>
<family>sans-serif</family>
<prefer>
<family>Garuda</family>
</prefer>
</alias>
<alias>
<family>serif</family>
<prefer>
<family>Garuda</family>
</prefer>
</alias>
จบภาคสองครับ หวังว่าจะมีประโยชน์ต่อผู้อ่านทุกท่านครับ
อัพเดท: การใช้ AutoHint ใช้ได้ผลดีกับ Ubuntu 6.10 (Edgy) และ Fedora Core 6 นะครับ เพราะสองตัวนี้ใช้ FreeType 2.2.1 ซึ่งมีระบบ AutoHint ที่ดีกว่ารุ่นก่อนๆ ดังนั้นหากใช้ Ubuntu เก่ากว่านี้ หรือดิสโตรอื่น ก็ไม่ต้องเปิด AutoHint ครับ ยอมให้เบลอๆ หน่อย แต่อ่านได้ดีกว่า



ขอโทษครับ ช่วยส่งไหล์ fonts.conf ให้ผมหน่อยได้หรือเปล่าครับ คือผมสร้างไฟลืแล้วมีปัญหาน่ะครับ ตอนนี้พอผมลบไฟลื fonts.conf ไปแล้วก็สามารถบูทเข้า ๏ ubuntu ได้ไม่มีปัญหาครับ คงจะไปติดตรงที่สร้างไฟล์ fonts.conf ครับ
ลองดาวน์โหลดไฟล์นี้ไปครับ เป็นคอนฟิกที่ผมใช้อยู่ .fonts.conf.gz
ขอบคุณมากครับ อันนี้เป็นไฟล์ที่ผมไปดาวโหลดมาจาก original ubuntu น่ะครับ แล้วก็มาเพิ่มไฟล์ชองพี่ไปน่ะครับ
/usr/share/fonts /usr/share/X11/fonts /usr/local/share/fonts ~/.fonts mono monospace sans serif sans-serif sans sans-serif DejaVu Serif Bitstream Vera Serif Times New Roman Thorndale AMT Times Nimbus Roman No9 L Luxi Serif Kochi Mincho AR PL SungtiL GB AR PL Mingti2L Big5 MS 明朝 Baekmuk Batang FreeSerif MgOpen Canonica serif DejaVu Sans Bitstream Vera Sans Helvetica Arial Verdana Albany AMT Nimbus Sans L Luxi Sans Kochi Gothic AR PL KaitiM GB AR PL KaitiM Big5 MS ゴシック Baekmuk Dotum SimSun FreeSans MgOpen Moderna sans-serif DejaVu Sans Mono Bitstream Vera Sans Mono Courier Courier New Andale Mono Luxi Mono Cumberland AMT Nimbus Mono L NSimSun FreeMono monospace sans-serif serif monospace sans-serif Symbol Standard Symbols L Times Nimbus Roman No9 L Helvetica Nimbus Sans L Courier Nimbus Mono L --> Times New Roman Thorndale AMT Arial Albany AMT Courier New Cumberland AMT ZapfDingbats Dingbats Symbol Open Symbols L Times true Nimbus Roman No9 L Helvetica true Nimbus Sans L Courier true Nimbus Mono L Times New Roman Thorndale AMT Thorndale true Times New Roman Nimbus Roman No9 L Arial Albany AMT Albany Verdana true Arial Nimbus Sans L Courier New Cumberland AMT Cumberland true Courier New Nimbus Mono L GulimChe false DotumChe false BatangChe false GungsuhChe false Bitstream Vera Sans 7.5 false Bitstream Vera Serif 7.5 false Bitstream Vera Sans Mono 7.5 false ~/.fonts.conf conf.d local.conf language-selector.conf serif DejaVu Serif Bitstream Vera Serif Times New Roman Thorndale AMT Luxi Serif Nimbus Roman No9 L Times Frank Ruehl FreeSerif MgOpen Canonica Kochi Mincho AR PL SungtiL GB AR PL Mingti2L Big5 MS 明朝 Baekmuk Batang sans-serif DejaVu Sans Bitstream Vera Sans Verdana Arial Albany AMT Luxi Sans Nimbus Sans L Helvetica Nachlieli FreeSans MgOpen Moderna Kochi Gothic AR PL KaitiM GB AR PL KaitiM Big5 MS ゴシック Baekmuk Dotum SimSun monospace DejaVu Sans Mono Bitstream Vera Sans Mono Andale Mono Courier New Cumberland AMT Luxi Mono Nimbus Mono L Courier Miriam Mono FreeMono Kochi Gothic AR PL KaitiM GB Baekmuk Dotum roman roman matrix 10.2 01 oblique 100 200 true 0x0020 0x00A0 0x00AD 0x034F 0x0600 0x0601 0x0602 0x0603 0x06DD 0x070F 0x115F 0x1160 0x1680 0x17B4 0x17B5 0x180E 0x2000 0x2001 0x2002 0x2003 0x2004 0x2005 0x2006 0x2007 0x2008 0x2009 0x200A 0x200B 0x200C 0x200D 0x200E 0x200F 0x2028 0x2029 0x202A 0x202B 0x202C 0x202D 0x202E 0x202F 0x205F 0x2060 0x2061 0x2062 0x2063 0x206A 0x206B 0x206C 0x206D 0x206E 0x206F 0x3000 0x3164 0xFEFF 0xFFA0 0xFFF9 0xFFFA 0xFFFB Loma Garuda Kinari Purisa san-serif Norasi serif TlwgMono TlwgTypewriter monospace sans-serif Loma serif Loma monospace TlwgTypewriter Loma true true false Garuda true true false Norasi true true false Kinari true true false Purisa true true false TlwgMono true true false TlwgTypewriter true true false 30แล้วก็เพิ่มส่วนของพี่ไปตอนท้ายน่ะครับ ผมคิดว่าผมคงเซ็ตไม่เหมือนพี่นะครับ เพราะลองเอาของพี่ไป replace แล้วก้เหมือนเดิมครับต้อง remove ออก
ขอบคุณครับพี่กำธร มีปัญหานี้ขึ้นมาทำให้ผมได้ความรู้เพิ่มมาอีกหนึ่งอย่างครับ
ผมลองทำตามแล้วครับ เยี่ยมมากเลย
ผมอยากถามอ่ะครับ คือ ใน gnome-terminal
แสดงผล ภาษาไทยไม่สวยเลย พิมพ์ภาษาไทยก็ไม่สวย ครับ
ผมใช้ Fixed ใน gnome-terminal อ่ะครับ
ใจจริงอยากให้ภาษาไทยสวย ๆ เหมือนอยากใน xterm ครับ
พอมีทางมั๊ยครับ
[...] ระบบปฏิบัติการ: Ubuntu Edgy (6.10) ธีม: default ฟอนต์: Dejavu + Loma (ซึ่งปรับแต่งด้วยวิธีการใน การปรับแต่งฟอนต์ไทยบน Ubuntu และ ปรับแต่งฟอนต์ไทยบน Ubuntu Part II [...]
ได้ความรู้ดีครับ
แต่รูปไม่ขึ้นครับ ทั้งสอง Part เลย
คือผมได้ทำตามแบบของพี่แล้วน่ะครับแต่
ตัวหนังสือไทยมันจะทะลุหน้าจอไปน่ะครับ
มันไม่ยอมตัดให้พอดีน่ะครับ ควรจะทำยังไงต่อครับ