Theppitak's blog

My personal blog.

28 เมษายน 2547

Pango ห่าฝน กระสุนปืน

เมื่อคืนตกใจตื่นขึ้นมากลางดึกกับฝนฟ้าคะนอง แสงฟ้าแลบลอดผ่านหน้าต่างเข้ามาไม่ขาดสาย ฝนเทกระหน่ำแรงมาก ตื่นเช้าขึ้นมา ไฟตก ก็เลยต้องนั่งทำงานมืดๆ ด้วยแบตเตอรีโน้ตบุ๊ก จนสายหน่อยไฟค่อยมาเป็นปกติ ลงมาดูข่าวทีวี ไอ๊หยา ภาคใต้ยิงต่อสู้ผู้ก่อการร้ายตายไป 70 ศพ วันนี้ช่างเริ่มต้นได้ยุ่งเหยิงดีแท้

งานวันนี้ยังคงเป็นเรื่อง OpenType โดยเริ่มทำ pango เป็นเรื่องเป็นราวมากขึ้น

  • แกะ pango arab เพื่อดู opentype support เปรียบเทียบกับ indic อืมม์.. คราวนี้ดูรู้เรื่องขึ้น
  • หลังจากนั่งคิดอยู่หลายตลบ ว่าจะเพิ่ม opentype ใน thai module ยังไงดี ให้สนับสนุน legacy font ด้วย ก็มีประเด็นดังนี้:
    • clustering: ควรคงการจัดเซลล์ตามแบบ วทท ไว้ เพื่อจะได้จัดการลำดับอักขระที่ผิดได้ (เช่น ท + อี + อ่ ต้องแสดงผลต่างจาก ท + อ่ + อี) เมื่อพิจารณา วทท อีกครั้ง พบว่าเพียงพอต่อภาษาบาลีอยู่แล้ว แต่สำหรับภาษากุยนั้น ต้องเพิ่มให้ยอมรับลำดับพิเศษ คือ การประพินทุใต้สระหน้าและสระล่าง
    • alternate glyphs: ถ้าในฟอนต์มีชุด glyph สำหรับสระ/วรรณยุกต์ ที่หลบหาง ป ฝ ฟ (ฬ) ก็ควรใช้ตามเดิม แต่ถ้ามีตาราง GSUB/GPOS ช่วย ก็ใช้ร่วมด้วย
    • สรุป: ใช้ shaping algorithm เดิมก่อน ซึ่งจะแบ่ง cluster ให้ + เลือก alternate glyphs ให้ถ้ามี จากนั้นจึงใช้ GSUB ตามด้วย GPOS
  • ลงมือโค้ด (ยังไม่แตะต้องส่วนของ วทท แค่ให้ใช้ opentype table ได้ก่อน)
  • ปัญหาที่พบ:
    • หาตาราง GPOS สำหรับสคริปต์ "thai" ไม่เจอ เนื่องจาก fontforge ไม่ยอมให้กำหนด script ใน achor --> แก้ pango ให้หาจาก "DFLT" ไปพลางก่อน
    • "ปู่" ยังใช้วรรณยุกต์ตัวสูงอยู่ --> เพิ่ม chain contextual subs rule ในฟอนต์ก็ผ่าน
    • "ป่ำ" ยังไม่วางวรรณยุกต์หลบซ้าย --> ปัญหาใน mkmk table?
    • "ฎุ" ยังวางสระล่างทับหาง ฎ และ "มิ + อํ" จะวางนิคหิตไว้ใต้สระอิ รวมทั้งไม้ไต่คู้ทับสระบนก็วางผิด --> ยังหาสาเหตุไม่พบ

pango thai + OTF screenshot

0 ความเห็น:

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

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

hacker emblem