ขอเสริมเกี่ยวกับเรื่องการจัด Font ให้โอเคนะครับ
ต้องอธิบายก่อนว่า ฟอนต์แต่ละตัวจะมีการเขียนโปรแกรมไว้ภายในฟอนต์ (ในสมัยนี้นะครับ) เพื่อทำการ เปลี่ยนตัวอักษรหนึ่ง เป็นอีกอักษรหนึ่งเมื่อตรงตามเงื่อนไขที่ตั้งไว้ อย่างเช่นของต่างประเทศก็จะมีตัว fi fl ffi ffl ของเขาหรืออื่นๆ ครับ เรียกว่า Ligature
ที่ต้องทำแบบนี้เพื่อความอ่านง่ายและดูถูกต้องตามหลักภาษาครับ ส่วนภาษาไทยก็จะมีใช้ในส่วนของสระด้านบนและด้านล่างครับ
จากประโยค "พี่ฎูนู๋เป่าปี่" นะครับ ด้านซ้ายคือปิด Ligature ด้านขวาคือเปิด จะพบลักษณะการขยับอยู่ดังนี้
คำว่า "พี่" ต้องขยับไม่เอกขึ้นทางด้านบน
คำว่า "ฎู" ต้องขยับสระอูลงอีกเพื่อไม่ให้ซ้อนไปกับตัว ฎ
คำว่า "นู๋" เป็นการจัดแบบปกติ
คำว่า "เป่า" ต้องขยับไม้เอกหลบซ้ายมา
คำว่า "ปี่" ก็ขยับมาทั้งสระอีและไม้เอกครับ
ทีนี้ การขยับของแต่ละฟอนต์มันก็ไม่เท่ากันหรือไม่เหมือนกัน แต่ถ้าจะให้ไปลงลึกถึงรหัสของแต่ละฟอนต์ก็คงเป็นไปไม่ได้เพราะแต่ละฟอนต์ไม่ได้ใช้มาตรฐานในการกำหนดรหัสอักขระเดียวกัน และนี่คือทางแก้เบื้อต้นที่พอจะทำในทางโปรแกรมมิ่งได้ครับ
1. การขยับวรรณยุกต์ขึ้น คำนวณจากความสูงของสระอิอีอึอื แล้วบวกให้เลื่อนขึ้นไปด้านบน
2. การขยับสระต่ำลง คำนวณจาก ความสูงปกติของตัวอักษรอื่น เทียบกับความสูงของ ฎ ฏ และบวกให้เลื่อนลงด้านล่าง
3. การขยับไปด้านซ้าย อันนี้ต้องขึ้นอยู่กับดวง คือโดยปกติแล้วขนาดของ ง ป ญ ทั้งสามตัวนี้จะมีขนาดไม่เท่ากัน ให้เทียบขนาดจาก ง ให้วางสระเสมือนวางอยู่บนตัว ง แล้วมันจะขยับซ้ายมาเอง (แต่ก็ขึ้นอยู่กับดวง เพราะบางฟอนต์เขากันหน้า กันหลังตัวอักษรไม่เท่ากัน)
4. ในกรณี ญ ฐ ตามหลักต้องตัดเชิง(ขีดข้างใต้)ออก แต่ในกรณีนี้ไม่สามารถทำได้ อนุโลมให้ขยับลงแบบ ฎ ฏ ได้
5. แนะนำให้เขียนดักฟอนต์แบบเก่า และแบบใหม่ไว้นะครับ เพราะฟอนต์แบบเก่าเขาจะเรียงสระมาลอย ส่วนสระแบบใหม่เขาจะวางไว้เสมอกันครับ (เลยมีทั้งสระลอย และ สระจมนั่นเอง)
แต่ในตอนนี้เองเจ้าไมโครซอฟก็ออกฝีเจอร์ในการทำของพวกนี้มามากมายซึ่งจะได้รับพัฒนาในอนาคตแน่นอน ซึ่งก็ไม่แน่นอนว่า RM รุ่นต่อๆ ไปจะรองรับฟีเจอร์ Ligature อยู่ไหม แต่อย่างไรก็อยากให้พัฒนาไว้กันเผื่อภาษาไทยไว้ฮะ
ถ้ามีโอกาสทำลองเอาตัวอย่างผมและวิธีแก้ที่ผมยกมาให้ดูนี่พัฒนาต่อนะครับ