การเรียงพิมพ์ในภาษาไทยด้วย XeLaTeX

สามารถดูบทความนี้ในฉบับที่เรียงพิมพ์ด้วย XeLaTeX ซึ่งมีตัวอย่างฟอนต์ภาษาไทยแบบสมบูรณ์ได้ที่นี่

สรุป: การเรียงพิมพ์เอกสารภาษาไทยสามารถทำได้ด้วยการใช้ XeLaTeX ร่วมกับแพคเกจภาษา polyglossia ด้วยฟอนต์ภาษาไทยจากโครงการ TLWG เพื่อให้ได้เอกสารรูปแบบที่สวยงาม และมีมาตรฐานเช่นเดียวกับเอกสารที่เรียงพิมพ์เป็นภาษาอังกฤษด้วย LaTeX

บทเกริ่นนำ

เป็นที่ทราบกันดีว่าการเรียงพิมพ์ (typeset) ในภาษาไทยด้วย LaTeX ในภาษาไทยเมื่อก่อนนั้นเป็นไปด้วยความยากลำบาก กล่าวคือกระบวนการการตั้งค่าแบบอักษรนั้นไม่ง่าย (เนื่องด้วยระบบการจัดการแบบอักษรของตัว LaTeX เอง) และการตัดคำภาษาไทย (word wrap) นั้นจำเป็นต้องทำด้วยมือ (ผ่าน swath)

อย่างไรก็ตาม การเกิดขึ้นของ TeX distribution ที่นอกเหนือจาก LaTeX เอง ได้สร้างความเปลี่ยนแปลงมหาศาลกับวงการผู้ใช้ไทย ในปัจจุบันมีการแจกจ่าย TeX สองรูปแบบที่ได้รับการพูดถึงว่าจะเป็น “อนาคต” ของ LaTeX ได้แก่ LuaLaTeX และ XeLaTeX

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

  • การรองรับคำสั่งสำหรับการจัดการการตัดคำอัตโนมัติ
  • การรองรับแบบอักษร (font) ในรูปแบบของไฟล์ TrueType Font (ttf)
  • การรองรับแพคเกจ polyglossia สำหรับการจัดองค์ประกอบเป็นภาษาไทย

เอกสารนี้จะพูดถึงการเรียงพิมพ์ด้วย XeLaTeX โดยไม่ได้พิจารณาการตั้งค่า IDE หรือโปรแกรมแก้ไขเอกสาร (text editor) ให้มีความสามารถในการรองรับ XeLaTeX แต่อย่างใด

ติดตั้ง XeLaTeX

วิธีการติดตั้ง XeLaTeX ที่น่าจะง่ายที่สุด คือการติดตั้งผ่าน MiKTeX ผ่านหน้าดาวน์โหลดที่ https://miktex.org/download

เมื่อติดตั้งสำเร็จ ควรจะสามารถสั่ง xelatex เหมือนที่สั่ง pdftex เพื่อสร้างเอกสารออกมาเป็นไฟล์ .pdf ได้

ติดตั้งฟอนต์ภาษาไทย

ฟอนต์ภาษาไทยของโครงการ TLWG (Thai Linux Working Group) เป็นฟอนต์ภาษาไทยที่สามารถใช้แทนฟอนต์ราชการในแทบทุกส่วนได้ โดยมีฟอนต์ดังรายชื่อนี้ที่เทียบเท่าฟอนต์ใน Microsoft Windows

  • Garuda เทียบเท่า Browalia New (ฟอนต์ลักษณะ Humanist)
  • Kinnari เทียบเท่า Angsana New (ฟอนต์ลักษณะ French Influence)
  • Laksaman เทียบเท่า TH Sarabun New (ฟอนต์ลักษณะ Geometric Humanist)
  • Umpush เทียบเท่า Cordia New (ฟอนต์ลักษณะ Geometric)

ฟอนต์ของโครงการ TLWG มีนอกเหนือจากรายการดังแสดงสี่ตัวนี้ ฟอนต์ทั้งหมดสามารถดาวน์โหลดได้จาก GitHub ของ fonts-tlwg ที่ https://github.com/tlwg/fonts-tlwg/releases/

แก้ไขเอกสารให้รองรับ XeLaTeX และภาษาไทย

เพียงเพิ่มบรรทัดดังกล่าวในส่วนหัวของเอกสาร (เปลี่ยนชื่อฟอนต์ Laksaman เป็นตัวอื่นที่คุณต้องการใช้) เพื่อให้ XeLaTeX ทำงานกับภาษาไทย

% ใช้ fontspec เพื่อตั้งค่าฟอนต์
\usepackage{fontspec}
% ใช้ polyglossia เพื่อภาษาไทย
\usepackage{polyglossia}

% ตั้งค่าฟอนต์
\setdefaultlanguage{thai}
% ตั้งค่าฟอนต์หลักของเอกสาร
\setmainfont{Laksaman:script=thai}
\newfontfamily\thaifont{Laksaman:script=thai}
% ตั้งค่าฟอนต์แบบความกว้างคงที่ (monospace) ของเอกสาร
% แนะนำให้ใช้ Tlwg Typist
\newfontfamily\thaifonttt{Tlwg Typist:script=thai}
% ตั้งค่าให้ตัดคำภาษาไทย
\XeTeXlinebreaklocale "th"

เพียงเท่านี้ คุณควรจะสามารถใช้ XeLaTeX ในการเรียงพิมพ์เอกสารภาษาไทยได้โดยไม่มีปัญหาแต่อย่างใด

Comments

One response to “การเรียงพิมพ์ในภาษาไทยด้วย XeLaTeX”

  1. neizod avatar

    ทำแค่นี้จะไม่ได้ตัวหนาตัวเอียงตามมาด้วย แนะนำให้เปลี่ยนเป็น

    \setmainfont[BoldFont={Laksaman-Bold:script=thai},ItalicFont={Laksaman-Italic:script=thai},BoldItalicFont={Laksaman-BoldItalic:script=thai}]{Laksaman:script=thai}

    แล้วไม่ต้องสั่ง \newfontfamily\thaifont ตามอีก

Leave a Reply

Your email address will not be published. Required fields are marked *