28 December 2012

หัวข้ออักษรไทยใน LaTeX

ปกติผมมักจะใช้ LaTeX กับภาษาอังกฤษเป็นหลัก ด้วยหน้าที่การทำงานจะใช้ภาษาอังกฤษเป็นหลัก แต่สัปดาห์ก่อน มีความจำเป็นจะต้องเตรียมเอกสารที่เป็นภาษาไทย และจำเป็นจะต้องใช้ enumerate ที่เป็นลำดับ ก ข ค ง

หลังจากลองดูวิธีนิยาม \alph ก็เลยเลียนแบบตามข้างล่างนี้

\documentclass{article}

\usepackage{xltxtra}
\XeTeXlinebreaklocale "th"
\XeTeXlinebreakskip = 0pt plus 1pt
\setmainfont[Scale=MatchLowercase]{TH Sarabun New}

\makeatletter 
\def\thalph#1{\expandafter\@thalph\csname c@#1\endcsname} 
\def\@thalph#1{\ifcase#1\or ก\or ข\or ค\or ง\or จ\or ฉ\else\@ctrerr\fi} 
\makeatother 

\renewcommand{\theenumi}{\thalph{enumi}}

\begin{document}
 \begin{enumerate}
 \item หัวข้อแรก
 \item หัวข้อที่สอง
 \end{enumerate}
\end{document}

เมื่อคอมไพล์เอกสารนี้ด้วย XeLaTeX จะได้


แต่ตอนหลังเพิ่งมาพบว่า จริงๆ แล้ว Thai LaTeX มีคำสั่ง \thaialph กับ \thaiAlph อยู่แล้ว เพียงใช้ \usepackage[thai]{babel}

ที่มา: เรื่องวุ่น ๆ เกี่ยวกับสารบัญ