ในตอนแรกนี้จะปรับแต่งฟอนต์เพียงเล็กน้อย โดยยังคงใช้ Waree เหมือนเดิม ก่อนอื่นมาดูก่อนว่าปัญหาที่เราจะพบคืออะไร
ดูกันใกล้ ๆ
นี่คือปัญหาที่เราจะพบเมื่อติดตั้ง Hardy สังเกตว่าตัวอักษรขนาดเล็ก หัวจะหายบ้าง รูตรงหัวตันบ้าง รูปทรงผิดเพี้ยนค่อนข้างมาก ส่วนตัวอักษรที่ใหญ่ขึ้นกลับมีปัญหาที่แปลกไปอีกแบบคือเส้นที่บาง ๆ จะหายไป สังเกตตรงประโยคตัวอย่าง
ปัญหานี้เกิดจาก โดยปกติแล้ว Hardy จะกำหนดให้ใช้ font hinting แบบ native คือเป็น hint ที่ฝังมากับฟอนต์เลย เช่นฟอนต์ Bitstream Vera ซึ่งจะแสดงได้สวยงาม คมชัดไม่เบลอในทุกขนาดตัวอักษร ส่วนฟอนต์ที่ไม่มี hint จะยังคงแสดงเบลอ ๆ เหมือนเดิม แต่ฟอนต์ Waree นั้นมี hint อยู่ด้วย แต่อย่างที่ทราบการดีว่าการทำ hint ให้สมบูรณ์นั้นยากมาก ฟอนต์ Waree จึงแสดงออกมาดีที่สุดได้แบบที่เห็น
ทางแก้แบบง่ายคือ ลดระดับของ hint ลงเหลือแค่ระดับ slight หรือ "นิดหน่อย" โดยเลือกเมนู "ระบบ" --> "ปรับแต่งพื้นโต๊ะ" --> "รูปโฉม" แล้วเลือกแท็บ "แบบอักษร" แล้วคลิกปุ่ม "รายละเอียด..." จากนั้นตั้งค่า Hinting เป็น "นิดหน่อย" ตามภาพ
ผลคือ
การตั้งระดับ Hint เป็น slight จะทำให้การเรนเดอร์ฟอนต์เน้นที่รูปทรงของฟอนต์มากกว่าความคมชัด ทำให้เห็นได้อย่างชัดเจนว่ารูปทรงของฟอนต์ถูกต้องสวยงาม แต่ก็มีความเบลอมากเช่นกัน และยังทำให้ฟอนต์ภาษาอังกฤษเบลอไปด้วย
สำหรับท่านที่พอใจกับการตั้งฟอนต์แบบนี้ก็หยุดได้เลยครับ แต่สำหรับผมแล้ว ผมต้องการมากกว่านั้น ผมอยากให้ตัวอักษรภาษาอังกฤษชัดเท่าที่มันจะชัดได้ ในขณะที่ภาษาไทยก็ไม่เพี้ยนถึงขั้นเส้นหาย หัวหาย
ทางออกคือ libfreetype ในปัจจุบันมี autohint ซึ่งเป็นวิธีการเรนเดอร์ฟอนต์โดยไม่ต้องพึ่ง hint ที่มาในตัวฟอนต์เอง แต่จะสร้าง hint อัตโนมัติ ซึ่งตัวหลัง ๆ นี่มันทำได้ดีมาก ๆ แต่เราจะใช้ autohint เฉพาะกับฟอนต์ที่เราต้องการ ในที่นี้คือฟอนต์ภาษาไทยเท่านั้น ฟอนต์ที่มี native hint ดี ๆ อย่าง Bitstream Vera เราจะไม่แตะ จะใช้ native hint เหมือนเดิม
ขั้นแรก สร้างแฟ้ม .fonts.conf ไว้ที่ home ของท่านเองโดยให้มีเนื้อหาดังนี้
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<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>Waree</string>
<string>Umpush</string>
<string>Sawasdee</string>
</test>
<edit name="autohint" mode="assign"><bool>true</bool></edit>
</match>
</fontconfig>
จากนั้นให้ล็อกเอาท์ออกจากระบบ แล้วล็อกอินเข้ามาใหม่ แล้วตั้งค่าฟอนต์ให้เป็นตามภาพนี้
ผลลัพธ์สุดท้าย
จะเห็นว่าตัวอักษรภาษาอังกฤษมีความคมชัดเป็นปกติ ส่วนตัวไทยนั้นมีหัวหาง เส้นต่าง ๆ ครบถ้วน อ่านได้ชัดเจนดี มีเพี้ยนบ้างแต่น้อยมาก ๆ
เป็นอย่างไรครับ เห็นความงามของฟอนต์ Waree หรือยัง
สวัสดีครับพี่ต้น
ตอบลบผมใช้วิธี # dpkg-reconfigure fontconfig-config เลือก auto-hint มันจะไปสร้าง sym link ใน /etc/fonts/conf.d/10-autohint.conf เหมือนกับวิธีของพี่เลยครับ
จากนั้นในหน้า font appearance เลือก none hinting จะได้การเรนเดอฟอนต์คล้ายๆ กับ Mac เลยครับ : )
ปล. ลิงก์บล็อก iam.dhammajati.net ผมเลิกใช้แล้วนะครับ ตอนนี้ผมเร่ร่อน ไม่มีบล็อกเป็นหลักแหล่ง
ปล2. เมื่อคืนท่านออกญาโชคพาไปเลี้ยงหมี่ไก่หาดใหญ่ด้วยล่ะครับ : )
ถ้าวิธีนั้นมันจะทำ autohint ให้กับทุกฟอนต์น่ะครับ รวมถึงฟอนต์ที่มี native hint สวย ๆ อยู่แล้วอย่าง Bitstream Vera ผมเลยต้องเลี่ยง โดยกำหนด native hint แล้วตั้งให้ autohint เฉพาะบาง font เอา
ตอบลบจริง ๆ ตอนนี้ตั้งให้เป็น hintslight ก็สวยกำลังดีละ
แต่ถ้าตั้ง none hinting ก็น่าจะไม่ใช้ hint ใด ๆ เลยนี่นา เดี๋ยวขอไปลองก่อน
ผมมีปัญหาการแสดงผมดังรูปข้างล่างครับ วิธีแก้ตอนนี้คือ ปรับ Appearance --> Fonts --> Application font ไปเป็น Waree book แทน sans ไปพลางๆ ก่อน
ตอบลบมีวิธีปรับตรงไหนอีกหรือเปล่าครับ (ผม dist-upgrade มาจาก gusty อีกที)
ลืมใส่รูป
ตอบลบhttp://farm3.static.flickr.com/2190/2511850380_d0...
รับเป็นโจทย์ไว้ก่อนครับ ลอง ๆ ดูบ้างแล้ว เกี่ยวกับ firefox มีโจทย์ใหม่ ๆ อีกหลายอย่าง เดี๋ยวจะมานำเสนอใหม่ครับ
ตอบลบ