ubuntu : แก้ปัญหาฟอนต์กระโดด
ฟอนต์กระโดดในอูบุนตู เดาเอาว่าเป็นปัญหาข้อผิดพลาดแพคเกจ defoma ของอูบุนตูเอง (ยังไม่รู้จริงครับ)
คือระบบจะไม่รู้ว่าฟอนต์ Norasi, และฟอนต์อื่น ๆ เป็นฟอนต์สกุลไหน
เขาจะดึงมาจากตัวที่น่าจะใกล้เคียงที่สุด
ซึ่งพบว่าในหน้าเว็บที่ถูกเข้ารหัสแบบ utf-8 ถ้าหน้าเว็บไม่ระบุสกุลฟอนต์ หรือระบุเป็นสกุล Sans-Serif
ระบบจะดึงเอาฟอนต์ TlwgMono เข้ามาใช้ก่อน ซึ่งจริง ๆ แล้วฟอนต์ TlwgMono เป็นฟอนต์แบบความกว้างคงที่
เลยทำให้เกิดปัญหาฟอนต์กระโดด
การแก้ไขคือ เราต้องสร้างคอนฟิกไฟล์ให้ระบบรู้ว่าเราต้องการฟอนต์แบบไหน
ไฟล์คอนฟิกที่ว่านี้คือ
1.กรณีที่ต้องการให้มีผลแค่เราคนเดียว ใช้ไฟล์ ~/.fonts.conf
2.กรณีที่ต้องการให้มีผลทั้งระบบ ให้ใช้ไฟล์ /etc/fonts/local.conf
*** ไม่ควรแก้ไฟล์ /etc/fonts/fonts.conf โดยตรง เนื่องจากเวลาอัพเกรดระบบ
จะทำให้ไฟล์นี้ถูกลบ หรือไม่ถูกปรับปรุงตามแพคเกจไปด้วย
$ vi ~/.fonts.conf
<?xml version="1.0"?> <!DOCTYPE fontconfig SYSTEM "fonts.dtd"> <!-- /etc/fonts/fonts.conf file to configure system font access --> <fontconfig> <alias> <family>serif</family> <prefer> <family>Bitstream Vera Serif</family> <family>DejaVu Serif</family> <family>FreeSerif</family> <family>Norasi</family> </prefer> </alias> <alias> <family>sans-serif</family> <prefer> <family>Bitstream Vera Sans</family> <family>DejaVu Sans</family> <family>FreeSans</family> <family>Loma</family> <family>Garuda</family> </prefer> </alias> <alias> <family>monospace</family> <prefer> <family>Bitstream Vera Sans Mono</family> <family>FreeMono</family> <family>TlwgTypewriter</family> <family>TlwgMono</family> </prefer> </alias> </fontconfig>
เวลาระบบเลือกใช้ เขาจะดึงจากตัวแรกก่อน ถ้าภาษาตรง ระบบจะเลือกใช้ฟอนต์อันแรก
แต่ถ้าภาษาไม่ตรง จะเลือกฟอนต์อันดับถัดมา
ที่ต้องเอา Bitstream Vera ขึ้นต้น เพราะว่าเป็นฟอนต์ของระบบในเดเบียน
ในอนาคต คงมีภาษาไทยฝังอยู่ในนี้เลย
(หมายเหตุ ในการแสดงหน้าเว็บ พบว่าถ้าหน้าเว็บมีการระบุสกุลฟอนต์ซ้ำ ๆ เช่น sans-serif
ระบบจะพยายามดึงฟอนต์ในอันดับถัดมาใช้ด้วย ฉะนั้นการที่มีหลายตัวเลือก จะทำให้การแสดงผลในหน้าเว็บมีความหลากหลายกว่า)
หลังจากแก้ไขเสร็จเรียบร้อยแล้ว ให้ล๊อกเอาต์และล๊อกอินใหม่ ก็จะสามารถใช้งานได้
เพิ่มเติม
ใช้วิธีของคุณเทพ debianclub แก้ปัญหาตรงจุดกว่าครับ
$ sudo vi /etc/fonts/conf.avail/65-thaifont.conf
<?xml version="1.0"?> <!DOCTYPE fontconfig SYSTEM "fonts.dtd"> <fontconfig> <alias> <family>serif</family> <accept> <family>Norasi</family> </accept> </alias> <alias> <family>sans-serif</family> <accept> <family>Loma</family> <family>Garuda</family> </accept> </alias> <alias> <family>monospace</family> <accept> <family>TlwgTypewriter</family> <family>TlwgTypist</family> <family>TlwgMono</family> </accept> </alias> </fontconfig>
สร้างลิงก์ไปยัง /etc/fonts/conf.d
$ sudo ln -sf /etc/fonts/conf.avail/65-thaifont.conf /etc/fonts/conf.d
ล๊อกเอาต์แล้วล๊อกอินใหม่ ก็ใช้ได้ อย่าลืมลบไฟล์เก่า ~/.fonts.conf หรือ /etc/fonts/local.conf ด้วย
เพิ่มเติม ๒
อูบุนตูของผมไม่มีไดเรกทอรี่ conf.avail ก็ใช้วิธีสร้างไฟล์ตรง ๆ คือ sudo vi /etc/fonts/conf.d/65-thaifont.conf
ได้เลย
หมายเหตุ - อูบุนตู Feisty เดินตามรอยเดเบียนแล้ว ใช้ตามข้างบนได้เลย
เพิ่มเติม ๓ - ๕๐ พ.ค. ๔
เพิ่มความคมให้ฟอนต์ด้วย xml ท่อนนี้ครับ
... <match target="font"> <test name="family"><string>Loma</string></test> <edit name="autohint" mode="assign"><bool>true</bool></edit> <edit name="hinting" mode="assign"><bool>true</bool></edit> </match> ...
Recent comments