Thai Font Metrics

ปัญหาหนึ่งที่ผู้ใช้ฟอนต์ไทยมักประสบอยู่เนืองๆ คือ ขนาดฟอนต์ไม่เข้ากันกับฟอนต์ตะวันตก ทำให้อักษรไทยและอังกฤษมีขนาดไม่กลมกลืนกัน ปัญหานี้มีที่มาจากการตีความ point size ของฟอนต์ไทยในสมัยก่อน ภายใต้ข้อจำกัดของการรองรับใน text layout engine ต่างๆ ในสมัยนั้น ที่ยังไม่รองรับภาษาต่างๆ ของโลกนอกเหนือจากภาษาที่ใช้อักษรละติน ทำให้ฟอนต์ไทยต้องย่อขนาดลงเพื่อให้มีพื้นที่แนวตั้งสำหรับซ้อนสระและวรรณยุกต์ แต่เมื่อเข้าสู่ยุคของ Unicode ที่แอปพลิเคชันต่างๆ ได้รองรับ multilingual text กันโดยทั่วไป ข้อจำกัดเหล่านั้นก็ได้รับการแก้ไขมาโดยลำดับ จนถึงจุดที่ฟอนต์ของอักษรซับซ้อน (Complex Text Layout หรือ CTL) ไม่จำเป็นต้องย่อขนาดอีกต่อไป แต่ฟอนต์ไทยก็ยังย่อขนาดอยู่เช่นเดิม

บทความนี้จะสำรวจความเป็นมา และปัญหาต่างๆ ที่เกิดจากการที่ฟอนต์ไทยยังคงย่อขนาดอยู่ในยุคนี้ พร้อมกับแสดงให้เห็นว่าทำไมเราจึงควรย้ายไปใช้ฟอนต์ขนาดปกติแบบสากลได้แล้ว

ลักษณะของปัญหา

เป็นที่ทราบกันดีว่าขนาดปกติของฟอนต์ไทยที่กำหนดให้ใช้ในเอกสารจะใหญ่กว่าของฟอนต์ตะวันตกอยู่ราว 1 ใน 3 เช่น เอกสารภาษาอังกฤษมักใช้ฟอนต์ใน body text ขนาด 11 pt ในขณะที่เอกสารภาษาไทยใช้ 14 pt ความต่างนี้ไม่เป็นปัญหาในสภาวะที่สามารถใช้เฉพาะฟอนต์ไทยเพียงอย่างเดียวได้ ซึ่งฟอนต์ไทยส่วนใหญ่ก็จะมี glyph อักษรละตินมาให้ด้วย แต่เมื่อต้องการใช้ฟอนต์ผสมกับฟอนต์ตะวันตก ถ้าใช้ฟอนต์ขนาดเดียวกันก็จะเกิดความไม่สม่ำเสมอของขนาดตัวอักษร โดยอักษรไทยจะมีขนาดเล็ก อักษรละตินจะมีขนาดใหญ่

multilingual font sample

การผสมฟอนต์จึงต้องใช้ฟอนต์ไทยที่มีขนาดประมาณ 4/3 เท่าของฟอนต์ตะวันตกจึงจะได้อักษรขนาดเสมอกัน ไม่ใช่ใช้ขนาดเดียวกัน ซึ่งก็ได้เกิดวิธีจัดการหลายแบบในแอปพลิเคชันต่างๆ เช่น

วิธีต่างๆ ดังกล่าวมีผลข้างเคียงและข้อจำกัด เช่น

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

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

บทความนี้จะแสดงให้เห็นว่าการย้ายไปใช้ขนาดฟอนต์แบบสากลไม่เพียงเป็นไปได้ในทางเทคนิค แต่ยังสมเหตุสมผลอีกด้วย

นิยามของ Point Size

เริ่มจากนิยามของ point size ของฟอนต์ เพื่อทำความเข้าใจการย่อขนาดของฟอนต์ไทยในอดีต และอาจจะรวมถึงฟอนต์ภาษาซับซ้อนอื่นๆ ที่มีเงื่อนไขการซ้อนอักขระเหมือนอักษรไทยอีกด้วย

เทคโนโลยีฟอนต์เป็นการเปลี่ยนตัวพิมพ์ตะกั่วของการพิมพ์แบบเก่าให้เป็นดิจิทัล ข้อกำหนดต่างๆ จึงถอดแบบมาจากตัวพิมพ์ตะกั่ว

ตัวพิมพ์ตะกั่ว ส่วนประกอบของตัวพิมพ์ตะกั่ว

Main parts and size

  1. face
  2. body or shank
  3. point size (one em)

Details

  1. shoulder
  2. nick
  3. groove
  4. feet

ที่มา: Wikipedia

จากภาพจะเห็นว่า point size คือระยะ c หรือความสูงของตัวพิมพ์ มีหน่วยเป็น point ซึ่งถึงแม้จะมี หลายมาตรฐาน แต่บน desktop publishing ปัจจุบันกำหนดว่า 1 point เท่ากับ 1/72 นิ้ว ซึ่งความสูงของตัวพิมพ์นี้จะเป็นความสูงของบรรทัดไปในตัว ยกเว้นมีการแทรกแถบตะกั่วเพื่อเพิ่มระยะระหว่างบรรทัด (เรียกว่า leading คือการเติมตะกั่ว) point size จึงไม่ได้กำหนดความสูงของตัวอักษรโดยตรง ขึ้นอยู่กับตัวพิมพ์แต่ละแบบว่าจะใช้เนื้อที่บนตัวพิมพ์อย่างไร สิ่งที่ point size กำหนดคือความสูงของบรรทัด

จากความสูงของตัวพิมพ์นี้เอง จึงกำหนดเป็นกรอบสำหรับวาง glyph ในฟอนต์ที่เรียกว่า em square โดยมีความสูงที่สมมุติว่าเท่ากับความสูงของตัวพิมพ์ และกว้างเท่าความสูงโดยให้บรรจุตัว M ได้พอดี แล้ววาง glyph ลงในกล่องนี้ ซึ่งโดยปกติสำหรับตัวพิมพ์ตะกั่วจะไม่วาง glyph เลยกรอบนี้ แต่ก็ไม่ได้มีข้อจำกัดนี้สำหรับฟอนต์ดิจิทัล เช่น ในกรณีที่ glyph มีการเล่นหาง

em square
ที่มา: Microsoft

เนื่องจากฟอนต์แบบเวกเตอร์สามารถย่อ-ขยายได้ em square นี้จึงไม่ได้มีหน่วยความยาว แต่เป็นเหมือนแผ่นสเกลที่วางทาบไปกับความสูงของ point size ที่กำหนด แล้ววาด glyph ลงตามสัดส่วนของพิกัด ความสูงของ em square ในแผ่นสเกลดังกล่าวจะเรียกว่าเป็น 1 em ซึ่งระยะ 1 em ในแผ่นสเกลก็จะกลายเป็นขนาดจริงบนกระดาษเท่ากับ point size ของฟอนต์นั่นเอง

ความสูง 1 em ของ em square นี้ จะแบ่งสเกลเพื่อใช้ระบุพิกัดของจุดต่างๆ โดยฟอนต์ Postscript จะแบ่งเป็น 1000 ช่อง ส่วนฟอนต์ TrueType จะแบ่งช่องเป็นกำลังของ 2 เช่น 2048 ช่อง และพิกัดแนวนอนก็ใช้สเกลเท่ากับแนวตั้ง กลายเป็นพิกัดสองมิติที่มีจุดกำเนิดที่ตำแหน่งซ้ายสุดบน base line ใน em square

Point Size กับฟอนต์ไทย

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

Thai em square compared to Latin

วิธีแก้ปัญหาก็คือ เพิ่ม glyph ละตินที่มีขนาดเข้ากันได้กับอักษรไทยลงในฟอนต์ ซึ่งจะมีขนาดเล็กกว่า glyph ละตินในฟอนต์ปกติ

Thai traditional font metrics

และจึงกลายเป็นที่มาของขนาดฟอนต์แบบไทยๆ ที่จะมีขนาดเล็กกว่าฟอนต์ตะวันตกถ้าใช้ point size เท่ากัน

ปัญหาของการอยู่ใน Em Square

ด้วยเหตุที่ point size กำหนดความสูงของบรรทัด การวาง glyph ให้อยู่ภายใน em square จึงดูปลอดภัย และทำให้ text layout engine ต่างๆ สามารถจัดบรรทัดเอกสารไทยได้โดยตัวหนังสือไม่ตีกันระหว่างบรรทัด และก็ไม่ได้ผิดนิยามทางเทคนิคด้วย เพราะข้อกำหนดให้อิสระแก่ฟอนต์ในการกำหนดสัดส่วนความสูงของตัวอักษรภายใน em square ได้

แล้วฟอนต์ไทยก็ใช้หลักการนี้มาโดยตลอด และดูเหมือนว่าประเทศเพื่อนบ้านอย่างลาวและกัมพูชาก็เคยใช้หลักการนี้ในฟอนต์ด้วยเช่นกัน ทุกอย่างดูจะทำงานได้ดีภายใต้บริบทที่เอกสารต่างๆ ใช้อักษรไม่เกินสองภาษา คือภาษาของตนกับภาษาอังกฤษ โดยเฉพาะในยุค ASCII ที่อักษรอื่นเป็นเพียง code page ที่ต่อขยายจากอักษรละติน ภาษาถูกจัดการทีละคู่ ไม่ได้มีปฏิสังสรรค์กันอย่างอิสระอย่างในยุค Unicode

คำถามคือ ในยุค Unicode ที่ text layout engine ต้องรองรับทุกภาษาใน Unicode พร้อมกัน จะยังสามารถใช้การตีความ point size ตามแบบที่ฟอนต์ไทยใช้ได้หรือไม่? ถ้าใช้จะเกิดอะไรขึ้น? มาลองดูกัน

ดังนั้น ทางออกในยุค Unicode จึงไม่ใช่การตีกรอบให้อักษรต้องอยู่ใน em square และ point size ก็ไม่ต้องแยกตีความตามภาษาเขียนอีกด้วย ทุกภาษาควรอ้าง point size เดียวกันแล้วได้ขนาดตัวอักษรที่กลมกลืนกันทันที

สำรวจตัวพิมพ์ไทยยุคตัวพิมพ์ตะกั่ว (Letterpress)

ตัวพิมพ์ตะกั่วไทย

ก่อนที่จะกล่าวถึงวิธีการสำหรับฟอนต์ขนาดสากล ขอย้อนกลับมาดูตัวพิมพ์ไทยยุคตัวพิมพ์ตะกั่ว (letterpress) ว่าในยุคนั้นเรามีวิธีปรับใช้เทคโนโลยีอย่างไร

ตัวพิมพ์ตะกั่วของไทยจัดการการซ้อนสระและวรรณยุกต์ด้วยการแยกฐานของตัวพิมพ์เป็นสองส่วนประกบกัน โดยหล่อตัวพิมพ์ของพยัญชนะเป็นสองแบบ คือแบบธรรมดาเรียกว่า ตัวเต็ม และแบบผ่าฐานตัวพิมพ์สำหรับประกบสระและวรรณยุกต์ เรียกว่า ตัวซีก และหล่อตัวพิมพ์ของสระบนล่างและวรรณยุกต์บนฐานแคบที่ประกบตัวซีกได้พอดี เรียกว่า ตัวเสือก ทั้งตัวซีกและตัวเสือกต้องหล่อหน้าอักษรล้นฐาน เพื่อให้ประกบแล้วอักษรเกยกันได้ (เพิ่มเติม: แกะรอยตัวพิมพ์ไทย)

สังเกตว่าหน้าอักษรของไม้โทในภาพไม่เพียงแต่ล้นฐานในแนวนอนเพื่อไปเกยฐานของสระอาเท่านั้น แต่ยังล้นฐานขึ้นไปในแนวตั้งอีกด้วย

หมายความว่าตัวพิมพ์ตะกั่วของไทยไม่ได้พยายามจำกัดให้อักษรอยู่ภายในฐานตัวพิมพ์เลย ถ้าเทียบกับฟอนต์ก็คือ ไม่ได้พยายามให้ glyph อยู่ภายใน em square แต่ให้ล้นขึ้นไปได้เลย วิธีนี้ทำให้สามารถใช้ตัวพิมพ์ตามขนาดของตัวพิมพ์ภาษาอังกฤษได้ทันที

สำหรับการป้องกันไม่ให้อักษรตีกันข้ามบรรทัด ก็เพียงแต่แทรกแถบตะกั่วเพื่อกั้นบรรทัดเท่านั้นเอง

แม่พิมพ์ไทย
ที่มาภาพ: มูลนิธิเล็ก-ประไพ วิริยะพันธุ์

กล่าวคือ ฟอนต์ไทยไม่ได้ถอดแบบการพิมพ์ดั้งเดิมให้เป็นดิจิทัลโดยตรงทั้งหมด แต่มีการปรับนิยามของ point size จากการตีความข้อกำหนดทางเทคนิคด้วย อาจจะด้วยข้อจำกัดของ text layout engine ในยุคนั้น อย่างไรก็ดี text layout engine ยุค Unicode ในปัจจุบันก็พร้อมสำหรับรองรับการพิมพ์แบบดั้งเดิมแล้ว ดังจะกล่าวต่อไป

OS/2 Metrics

เทคโนโลยีฟอนต์แบบ TrueType ซึ่งพัฒนาโดย Apple ร่วมกับ Microsoft นั้น มีตารางข้อมูลส่วนหนึ่งที่ใช้สำหรับ Microsoft Windows โดยเฉพาะ เรียกว่า OS/2 ซึ่งด้วย สาเหตุตามนัยประวัติ ที่มันถูกพัฒนาโดย Microsoft ในช่วงที่ยังร่วมพัฒนา OS/2 กับ IBM อยู่ก่อนที่จะแยกทางกัน ทำให้มันได้ชื่อเช่นนั้น โดยที่ไม่ได้มีการเปลี่ยนชื่อตารางเป็นอย่างอื่นอีก (IBM ตัดสินใจใช้ฟอนต์ Postscript ของ Adobe ใน OS/2 ไม่ใช่ TrueType ดังนั้น ตาราง OS/2 นี้จึงถูกใช้จริงเฉพาะบน Windows เท่านั้น) และตารางนี้ก็ได้ตกทอดมาถึงฟอนต์ OpenType ด้วย

เนื้อหาในตาราง OS/2 ก็มีรายละเอียดเรื่องน้ำหนักตัวอักษร ขนาดและตำแหน่งของตัวยกตัวห้อยและเส้นขีดฆ่า ฯลฯ และมีส่วนที่เกี่ยวข้องกับความสูงของบรรทัด คือ

ทั้งสามค่านี้จะใช้ประกอบกันในการกำหนดระยะระหว่าง base line ของบรรทัดที่ติดกัน โดยมีค่าเท่ากับ (sTypoAscender - sTypoDescender + sTypoLineGap) ซึ่งจะมีผลเมื่อแฟล็ก USE_TYPO_METRICS (บิต 7) ของ fsSelection เปิดอยู่

ความจริงแล้ว ในข้อกำหนดของฟอนต์ TrueType ตาราง hhea ก็จะมีค่าทั้งสามนี้ชุดหนึ่งอยู่แล้ว คือ ascender, descender และ lineGap แต่เป็นการใช้งานในแบบดั้งเดิมของอักษรละติน ดังนั้น เพื่อการรองรับอักษรที่ต้องการพื้นที่แนวตั้งมากกว่าอักษรละติน Microsoft จึงได้เพิ่มค่าทั้งสามนี้อีกชุดหนึ่งในตาราง OS/2 ดังกล่าวข้างต้น โดยผ่อนคลายข้อกำหนดว่า ค่าของ (sTypoAscender - sTypoDescender) อาจมากกว่า 1 em ก็ได้ พูดอีกอย่างก็คือทั้งสองค่าสามารถเลยขอบเขตของ em square ออกไปได้ ทำให้สามารถเพิ่มความสูงของบรรทัดเพื่อเพิ่มพื้นที่สำหรับซ้อนอักขระในแนวตั้งได้

นี่จึงเป็นวิธีที่ทำให้ฟอนต์ไทยสามารถซ้อนสระและวรรณยุกต์ได้โดยไม่ต้องย่อขนาด

การใช้ OS/2 metrics กับฟอนต์ไทย

จากภาพ เส้น Ascent และ Descent คือขอบเขตของ em square แทนที่เราจะสร้าง glyph ไทยให้อยู่ในกรอบของ em square นี้ เราก็สามารถซ้อน glyph ไปตามปกติ ซึ่งจะเลยกรอบ em square ออกไป (เหมือนกับที่ตัวพิมพ์ตะกั่วล้นฐานออกไป) แล้วกำหนด TypoAscender และ TypoDescender ให้คลุม glyph ที่ล้นกรอบนั้น (เหมือนกับการแทรกแถบตะกั่วในการเรียงพิมพ์เพื่อถ่างบรรทัด) ก็จะทำให้ได้อักษรไทยที่ใช้ขนาดของอักษรละตินปกติเป็นตัวตั้ง

อนึ่ง มีอีกสองค่าที่เกี่ยวข้อง คือ

สองค่านี้จะกำหนดขอบเขตการวาด glyph และจะขริบส่วนที่ล้นขอบนี้ทิ้ง ดังนั้น เมื่อเรากำหนดความสูงของบรรทัดที่เลย em square ออกไปแล้ว ก็ต้องขยายขอบเขตการวาดตามด้วย เพื่อไม่ให้อักขระแหว่งวิ่น ซึ่งโดยปกติก็ควรจะใช้ค่าเดียวกับ sTypoAscender และ sTypoDescender นั่นเอง เพียงแต่ usWinDescent จะเป็นค่าบวกเสมอ

ข้อกำหนดเหล่านี้มีมาตั้งแต่ TrueType 1.0 revision 1.5 ซึ่งออกมาในปี 1994 และเมื่อมาพัฒนาร่วมกับ Adobe เป็น OpenType ก็ได้สืบทอดข้อกำหนดต่อมาใน OpenType ด้วย

และข้อกำหนดเหล่านี้ก็มีจุดมุ่งหมายเพื่อรองรับอักษรที่ต้องซ้อนอักขระหลายชั้นโดยเฉพาะ ดังข้อความตอนหนึ่งใน Recommendations for OpenType Fonts ของ Microsoft:

It is often appropriate to set the sTypoAscender and sTypoDescender values such that the distance (sTypoAscender - sTypoDescender) is equal to one em. This is not a requirement, however, and may not be suitable in some situations. For example, if a font is designed for a script that (in horizontal layout) requires greater vertical extent relative to Latin script but also needs to support Latin script, and needs to have the visual size of Latin glyphs be similar to other fonts when set at the same text size, then the (sTypoAscender - sTypoDescender) distance for that font would likely need to be greater than one em.

ซึ่งพอจะถอดความเป็นภาษาไทยได้ว่า:

บ่อยครั้งที่ค่าที่เหมาะสมสำหรับ sTypoAscender และ sTypoDescender จะเป็นค่าที่ทำให้ระยะ (sTypoAscender - sTypoDescender) เท่ากับ 1 em แต่ก็ไม่จำเป็นเสมอไป และอาจไม่เหมาะสมในบางกรณี ตัวอย่างเช่น ถ้าฟอนต์ออกแบบมาสำหรับอักษรที่เขียนในแนวนอนและต้องการเนื้อที่แนวตั้งมากกว่าอักษรละติน แต่ยังคงต้องการรองรับอักษรละตินด้วย และต้องการให้ขนาดของอักษรละตินใกล้เคียงกับฟอนต์อื่นๆ เมื่อกำหนดขนาดเท่ากัน ในกรณีเช่นนั้น ระยะ (sTypoAscender - sTypoDescender) สำหรับฟอนต์ดังกล่าวก็จำเป็นต้องมากกว่า 1 em

ฟอนต์ไทยยุคใหม่

นับตั้งแต่เข้าสู่ยุค Unicode ระบบต่างๆ ก็พัฒนาการรองรับข้อความหลากภาษา (multilingual text) ภายใน engine เดียวมากขึ้นเรื่อยๆ และมีการจัดระเบียบเพื่อให้ภาษาต่างๆ จัดเรียงร่วมกันได้ และข้อกำหนดใน OS/2 metrics ก็จัดการได้เป็นอย่างดี จึงเริ่มเกิดฟอนต์ที่ใช้ metrics แบบใหม่นี้กับอักษรต่างๆ เช่น

นอกจากนี้ก็เริ่มมีฟอนต์ไทยที่ใช้ metrics แบบใหม่เกิดขึ้น เช่น

ก้าวต่อไป

ไม่ว่าจะด้วยสาเหตุใดที่ทำให้ฟอนต์ไทยส่วนใหญ่ยังย่อขนาดอยู่ในปัจจุบัน ทั้งๆ ที่ภาษาซับซ้อนอื่นๆ ก็ได้ใช้ metrics แบบใหม่กันหมดแล้ว ขณะนี้ทุกอย่างทางเทคนิคพร้อมเสียยิ่งกว่าพร้อมที่ฟอนต์ไทยจะขยับไปใช้ metrics แบบใหม่ ปัญหาอยู่ที่ว่า เราจะย้ายไปอย่างไร เป็นสิ่งที่อยู่นอกเหนือเรื่องทางเทคนิค สังคมผู้ใช้และผู้พัฒนาฟอนต์ต้องตระหนักและหาวิธีขับเคลื่อนไปด้วยกัน

จากที่ได้หารือกับกลุ่มผู้ใช้และนักพัฒนา พอจะสรุปแนวทางได้ดังนี้:

  1. ภาครัฐ ควรพิจารณาเปลี่ยนการใช้ฟอนต์ในเอกสารราชการตามมติ ครม. จาก TH Sarabun PSK เป็น Sarabun จากคัดสรร ดีมาก ซึ่งปรับปรุงโดยคุณศุภกิจ เฉลิมลาภ ผู้พัฒนา TH Sarabun PSK และ TH Sarabun New เอง
  2. Microsoft และ Apple ในฐานะผู้ผลิตแพลตฟอร์มหลัก ควรพิจารณาปรับฟอนต์ที่มากับผลิตภัณฑ์ของตนมาใช้ metrics แบบใหม่ เพื่อเป็นบรรทัดฐานสำหรับผู้สร้างฟอนต์ไทยโดยทั่วไป
  3. ผู้พัฒนาฟอนต์ไทย ควรพิจารณาปรับฟอนต์ของตนมาใช้ metrics แบบใหม่ ซึ่งปัจจุบันก็เริ่มมีฟอนต์แบบใหม่ออกสู่ตลาดบ้างแล้ว
  4. ผู้ใช้ทั่วไป ควรพิจารณาทดลองใช้ฟอนต์ไทยแบบใหม่ที่มี (ถ้าไม่ติดข้อบังคับ) ไม่ว่าจะบนเว็บหรือในโปรแกรมสร้างเอกสาร

สรุปฟอนต์ที่อาจใช้แทนฟอนต์เดิมได้:

ฟอนต์เดิม ฟอนต์ใหม่ ผู้พัฒนา หมายเหตุ
TH Sarabun PSK,
TH Sarabun New
Sarabun ศุภกิจ เฉลิมลาภ, Cadson Demak รูปร่างเหมือน
Laksaman ศุภกิจ เฉลิมลาภ, TLWG รูปร่างเหมือน, รองรับการเขียนภาษาชาติพันธุ์, pdfLaTeX
AngsanaUPC,
Angsana New
Kinnari เดียร์บุ๊ก, TLWG ฟอนต์แห่งชาติ (ฟช๑), รูปร่างคล้าย, แยก italic/oblique
BrowalliaUPC,
Browallia New
Garuda Unity Progress, TLWG ฟอนต์แห่งชาติ (ฟช๒), รูปร่างเหมือน
CordiaUPC,
Cordia New
Umpush วิทยา ไตรสารวัฒนะ, TLWG รูปร่างคล้าย, มีแบบ Lite
TH Charmonman Charmonman เอกลักษณ์ เพียรพนาเวช, Cadson Demak รูปร่างเหมือน
TH Krub Krub เอกลักษณ์ เพียรพนาเวช, Cadson Demak รูปร่างเหมือน
TH Srisakdi Srisakdi ทีมอักษราเมธี (ไพโรจน์ เปี่ยมประจักพงษ์, บวร จรดล), Cadson Demak รูปร่างเหมือน
TH Niramit AS Niramit ทีมอักษราเมธี (ไพโรจน์ เปี่ยมประจักพงษ์, บวร จรดล), Cadson Demak รูปร่างเหมือน
TH Charm of AU Charm กัลยาณมิตร นรรัตน์พุทธิ, Cadson Demak รูปร่างเหมือน
TH Kodchasan Kodchasan กัลย์สุดา เปี่ยมประจักพงษ์, Cadson Demak รูปร่างเหมือน
TH K2D July8 K2D กานต์ รอดสวัสดิ์, Cadson Demak รูปร่างเหมือน
TH Mali Grade 6 Mali สุดารัตน์ เลิศสีทอง, Cadson Demak รูปร่างเหมือน
TH Chakra Petch Chakra-Petch ธีรวัฒน์ พจน์วิบูลศิริ, Cadson Demak รูปร่างเหมือน
TH Bai Jamjuree CP Bai-Jamjuree ทีม PITA (รพี สุวีรานนท์, วิโรจน์ จิรพัฒนกุล), Cadson Demak รูปร่างเหมือน
TH KoHo Koho กลุ่ม ก-ฮ (ขาม จาตุรงคกุล, กนกวรรณ แพนไธสง, ขนิษฐา สิทธิแย้ม), Cadson Demak รูปร่างเหมือน
TH Fah Kwang Fah-Kwang ทีมสิบเอ็ด (กิตติ ศิริรัตนบุญชัย, นิวัฒน์ ภัทโรวาสน์), Cadson Demak รูปร่างเหมือน

นอกจากนี้ยังมีฟอนต์ที่ออกแบบขึ้นใหม่โดยใช้ metrics แบบใหม่อีกจำนวนหนึ่ง โดยผู้พัฒนาฟอนต์ที่ได้กล่าวไปแล้วข้างต้น


free html hit counter