Theppitak's blog

My personal blog.

21 พฤษภาคม 2551

TlwgTypo Font

แนวคิดหนึ่งที่เกิดขึ้นระหว่างร่วมทำสุริยัน คือการปรับฟอนต์ monospace ของไทย จากที่เคยแยกเป็น monospace แท้ (เช่น TlwgMono) ที่ทุก glyph กว้างเท่ากันหมด ไม่เว้นแม้แต่สระบน-ล่าง กับ monospace เทียม (เช่น TlwgTypewriter และ TlwgTypist) ที่ให้ glyph ของสระบน-ล่างกว้างเท่ากับศูนย์ นอกนั้นกว้างเท่ากันหมด มาเป็นฟอนต์ monospace ชุดเดียว ที่วาดได้ทั้งสองแบบ

แนวคิด ได้มาจาก DejaVu ที่เขาทำ glyph เป็น monospace แท้ แต่ใช้ OpenType feature ในการปรับแก้ความกว้างของ combining mark ให้เป็นศูนย์ ซึ่งจะทำให้ฟอนต์มีคุณสมบัติเป็น monospace ในขณะที่ยังวาดเครื่องหมายบน-ล่างได้อย่างถูกต้อง

เพื่อเป็นการทดลองแนวคิด ผมได้สร้างฟอนต์ใหม่ต่างหาก ตั้งชื่อเล่น ๆ ก่อน ว่า TlwgTypo โดยดัดแปลงจาก TlwgTypist โดยทำใน TLWG CVS แล้วใช้ในโครงการสุริยัน ผลคือ โปรแกรมเทอร์มินัลอย่าง konsole ที่มีการแพตช์ให้วาดภาษาไทยจัดระดับ สามารถวาดได้โดยไม่ต้องมีกรณีพิเศษ และความแตกต่างอีกอย่างคือ สำหรับเทอร์มินัลที่ยังไม่รองรับภาษาไทยแบบจัดระดับ เช่น gnome-terminal ก็วาดภาษาไทยแบบ monospace จริง ๆ

gnome-terminal ที่ใช้ TlwgTypist จะจัดระดับแค่บางส่วน แล้วมีช่องว่างคั่น เพราะเครื่องหมายบน-ล่างถูกเลื่อนไปที่เซลล์ก่อน:

gnome-terminal using TlwgTypist

แต่ถ้าใช้ TlwgTypo จะเป็น monospace ล้วน ในลักษณะเดียวกับฟอนต์ monospace แท้อย่าง TlwgMono:

gnome-terminal using TlwgTypo

จะให้ดี ก็ควรแก้ gnome-terminal (โดยทำที่ vte widget) เพื่อให้แสดงภาษาไทยแบบจัดระดับ แต่ในระหว่างที่ยังไม่แก้ ก็เป็นตัวอย่างให้เห็นได้ ว่าฟอนต์ monospace แท้กับเทียม ทำงานต่างกัน

ทีนี้ มาถึงประเด็นสำคัญ ว่ามันยังวาดภาษาไทยแบบจัดระดับเหมือน TlwgTypist ในโปรแกรมทั่วไปได้หรือเปล่า ต่อไปนี้คือภาพหน้าจอของ TlwgTypo เมื่อใช้ leafpad (GtkTextView) และ epiphany (Gecko):

GtkTextView using TlwgTypo

Gecko using TlwgTypo

ใน CVS snapshot ปัจจุบัน TlwgTypo ยังเป็นฟอนต์แยกต่างหากจาก TlwgTypist อยู่ เพื่อประโยชน์ในการทดลอง แต่เพื่อไม่ให้มีฟอนต์ซ้ำซ้อนกันมากเกินไป ผมกำลังคิดว่าจะแทนที่เนื้อหาของ TlwgTypist ด้วย TlwgTypo เสีย ให้เหลือแต่ TlwgTypist ที่ใช้เทคนิคใหม่อย่างเดียว รวมทั้งอาจจะทำอย่างเดียวกันกับ TlwgMono/TlwgTypewriter ด้วย แต่คงต้องทดสอบให้แน่ใจอีกนิด

บางที thaifonts-scalable รุ่นหน้า อาจ merge แค่ TlwgTypist ก่อน แล้วทิ้ง TlwgMono + TlwgTypewriter ไว้เป็นตัวเลือกสำรองสำหรับผู้ใช้ ในกรณีที่มีปัญหากับซอฟต์แวร์ตัวไหน

Update: พบโปรแกรมที่มีปัญหาแล้วครับ OO.o เจ้าเก่า ดูเหมือนจะมีปัญหากับฟอนต์พื้น ๆ อย่าง TlwgMono ด้วย T_T

OO.o and monospace fonts

ส่วนชุด GNOME Office ไม่มีปัญหา ทั้ง AbiWord (2.6) และ Gnumeric

AbiWord and monospace fonts

ป้ายกำกับ: ,

0 ความเห็น:

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

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

hacker emblem