Pango with Thai Dangling Vowels
วันนี้ไม่มีไข้แล้ว แต่มีอาการป่วยซ้ำซ้อนอีก คือท้องเสีย แต่ก็ยังพอทำงานได้ ไม่ถึงกับต้องนอนพักเหมือนตอนเป็นไข้ ติดแต่จะโดนขัดจังหวะบ่อยไปหน่อยเท่านั้น :-P
มีปัญหาหนึ่งใน pango Thai module ที่รู้มานานแล้ว คือตั้งแต่ตอนที่จัดการสระบน-ล่าง ที่ผิดลำดับ วทท โดยเอา dotted circle มาวางเป็นฐานนั้น ได้ทำให้ฟอนต์ถูกบังคับให้ต้องมี dottedcircle glyph (U+25CC) โดยปริยาย มิฉะนั้นจะไม่ shape (นอกจากจะมี OpenType table) ซึ่งตรงนี้ ทำให้คุณภาพการ render กับฟอนต์ของ Windows ตก เพราะฟอนต์ Windows ปกติจะไม่มีทั้ง dottedcircle glyph และ OpenType table สำหรับภาษาไทย เรื่องนี้ ตอนแรกๆ ที่ถูก assign เป็น maintainer ของ Pango Thai module ใหม่ๆ ยังไม่กล้าแก้โค้ดมาก แต่ก็เก็บไว้เป็น wish list ส่วนตัวเรื่อยมา
ช่วงนี้เลยได้โอกาสทำความสะอาดโค้ด โดยเขียนโค้ดส่วนสร้าง base สำหรับสระลอยตัวเหล่านี้ให้ชัดเจน แทนที่จะไปแฝงไว้ใน glyph table เหมือนก่อน (ซึ่งทำให้เกิดผลข้างเคียงที่ไม่ดีดังที่กล่าวไป) คราวนี้ Pango จะพยายามหา dottedcircle ในฟอนต์ก่อน ถ้าหาไม่เจอ ก็จะใช้วิธีขยายความกว้างของสระ ให้เท่ากับ inkrect (คือจากขอบซ้ายสุดถึงขอบขวาสุดของ glyph) ซึ่งจะทำให้สระลอยตัวถูกแยกออกมาจากเซลล์เดิม ผลคือ shaper ไม่จำเป็นต้อง require dottedcircle ในฟอนต์อีก ทำให้สามารถ shape ฟอนต์จาก Windows ได้อีกครั้ง ดังตัวอย่างของฟอนต์ Angsana New:
เทียบกับฟอนต์ Kinnari จาก thaifonts-scalable ซึ่งมี dottedcircle และ OpenType table สำหรับภาษาไทย:
commit เข้า CVS (HEAD) ไปแล้ว ฟีเจอร์ทั้งหมดที่กล่าวมาใน blog รอพบใน GNOME 2.10 ตรุษจีนปีหน้าเด้อ (หรือถ้า distro ไทยไปจิ๊ก patch มาจาก CVS ก็คงได้ใช้ก่อน)
ว่าแต่ว่า เมื่อไรฟอนต์ไทยบน Windows จะมี OpenType table ให้ล่ะเนี่ย? หรือว่าต้องรอ Longhorn?
2 ความเห็น:
ณ 10 ตุลาคม 2547 เวลา 15:37 , Tunyalit Karnjanakul แถลง…
อ่านเรื่อง font ใน blog Thep แล้วผมงงจิงๆเลย ผมทำไม่เป้นอ่ะ อยากทำเป็นจริงๆเลยครับ สิ้นเดือนนี้ผมต้องรีบทำ thai font ให้เสร็จด้วย ยังไม่รู้จะเป็นยังไงเลย ไม่อยากทำใน Fontographer เลยอ่ะ แต่ว่ายังใช้ Fontforge ได้แค่หางอึ่งเองผม
ณ 11 ตุลาคม 2547 เวลา 16:55 , Thep แถลง…
มาคุยกันที่ขอนแก่นไหมล่ะ?
แสดงความเห็น (มีการกลั่นกรองสำหรับ blog ที่เก่ากว่า 14 วัน)
<< กลับหน้าแรก