งานนี้คงต้องใช้ opentype ซะแล้ว
เช่น LOVE ผมเข้าใจว่า ลักษณะมันคือมีตัวนำที่บอกว่าไอ้นี่ตัว Capital เช่น ^L หรือ ^O เป็นต้น
ปัญหาคือ ถ้าเป็นอยู่ข้างหน้าเฉยๆมันไม่เป็นไรใช่มั้ยครับ แต่ปัญหาคือ เวลามันเป็นอักษรใหญ่ติดๆกันจะกลายเป็น ^L^O^V^E ใช่มั้ยครับ แต่อยากให้แสดงเป็น ^LOVE
หลักการมีแบบนี้ครับ
1. สร้าง Glyph อักษร Capital ที่ไม่มี ^ นำหน้าเพิ่มทั้้งหมด (แปลว่าอักษร Capital จะต้องมีด้วยกัน 2 set )
2. สร้าง class ที่บรรจุ Capital ที่มี^ กับ Class ที่บรรจุทั้งหมดก่อน (รวม 2 Class ซึ่งแต่ละ class ตัองมีจำนวน Glyph เท่ากัน)
เขียน Opentype อย่างนี้ครับ
feature liga {
sub [@class2][@class2]' by [@class3] ;
sub [@class3][@class2]' by [@class3] ;
} liga;
ตามรูปด้านล่างลองดูครับ
ลูกศรแดงคือ Class ที่มีแต่ Glyph ใหม่ที่สร้างขึ้น ในที่นี้ผมทำแค่ 3 ตัว ตั้งชื่อเล่นๆคือ Anot Bnot Cnot (คือไม่มี3จุดด้านหน้า)
ปล.ชื่อclass ตั้งอะไรก็ได้นะครับ แต่เลือกชนิดเป็น opentype class เด้อ