จากตอนที่แล้ว ยังมีสิ่งที่อยากแก้ 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 ครับ ยอมให้เบลอๆ หน่อย แต่อ่านได้ดีกว่า



