Theppitak's blog

My personal blog.

12 ตุลาคม 2547

LibThai Patch for Pali and Kuy

ตาม spec วทท นั้น ได้รองรับวิธีเขียนแบบพิเศษของภาษาบาลีและกุยสองอย่าง ซึ่งเกี่ยวข้องกับนิคหิตและไม้ไต่คู้ กล่าวคือ ในภาษาบาลี สามารถใช้นิคหิต (อัง) เป็นตัวสะกดของสระอิได้ และในภาษากุย จำเป็นต้องเขียนเสียงสระเอีย เอือ เสียงสั้น ให้ต่างจากเสียงยาว โดยใช้ไม้ไต่คู้กำกับ

Pali, Kuy sample text

แต่เนื่องจากในภาษาไทยปกติ จะใช้นิคหิตแสดงสระอำ ซึ่งจะมีวรรณยุกต์กำกับข้างบน จึงมักสร้าง glyph ไว้ให้อยู่ในระดับสระบน จึงไม่สามารถเขียนทับบนสระอิได้ ส่วนไม้ไต่คู้นั้น ใช้กำกับพยัญชนะในระดับเดียวกับสระบนอยู่แล้ว จึงวาดบนสระอี อื ไม่ได้เช่นกัน ความจริงถ้าจะสร้าง PUA glyph ชุดพิเศษของสองตัวนี้ เหมือนกับที่ทำกับวรรณยุกต์ก็ได้ แต่ก็ไม่ได้ทำกัน ถึงจะสร้างฟอนต์มาให้มี แต่ rendering engine ก็อาจไม่รู้จัก หรือถ้า rendering engine จะพยายามรู้จัก ก็ยังไม่มี code point ให้อ้างอิง

อย่างไรก็ดี เมื่อมี OpenType เข้ามา ผู้สร้างฟอนต์มีอิสระเต็มที่ ที่จะกำหนดตำแหน่งการวางเครื่องหมายต่างๆ ทำให้ไม่จำเป็นต้องกำหนด PUA code point อีกต่อไป จึงอาจเป็นครั้งแรก ที่ TrueType-based platform จะสามารถทำกรณีทั้งสองข้างต้นได้ (ผมเคยเห็น Solaris ทำได้มาแล้ว แต่ใช้กับ X terminal โดยใช้ฟอนต์บิตแมป monospace)

ระหว่างทดสอบ pango-libthai ที่ backport OpenType support แบบเต็มสตีมจาก patch ที่ commit เข้า Pango ไป ก็พบว่ามันจัดการกรณีทั้งสองไม่ถูกต้อง (ใน Pango upstream นั้น ถูกต้องแล้ว) แกะไปแกะมา พบว่า libthai เองลืมทำกรณีนี้ไปเสียสนิท! วันนี้เลยแก้ libthai จนได้ screenshot ข้างบนออกมาจาก pango-libthai

commit ไปเรียบร้อย ท่าทางจะได้รีลีส libthai ตัวใหม่พร้อมๆ กับ pango-libthai ตัวหน้าซะละมัง

0 ความเห็น:

แสดงความเห็น (มีการกลั่นกรองสำหรับ blog ที่เก่ากว่า 14 วัน)

<< กลับหน้าแรก

hacker emblem