About Me

I am a physicist by training, financial risk management consultant by day, father by night, and a geek of several kinds.

Search

Looking for something ?

การใช้ภาษาไทยกับ LaTeX

[textile]

p=. กระโดดไป download

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

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

น่าเสียดายที่ตอนนี้ option ภาษาไทย ยังไม่ได้เป็นส่วนนึงของ babel อย่างเป็นทางการ แต่เท่าที่พัฒนาขึ้นมาโดย nectec นี่ก็ทำงานได้ดีมากแล้ว

"ftp://ftp.nectec.or.th/pub/ThaiLinux/software/All/Thai-LaTeX/":ftp://ftp.nectec.or.th/pub/ThaiLinux/software/All/Thai-LaTeX/

ติดอยู่ตรงที่ โปรแกรมที่พัฒนาขึ้นมาเนี่ย ตั้งเป้าเอาไว้ใช้กับ Linux สำหรับคนที่ใช้ win32 ก็เลยเอามาใช้ทันทีไม่ได้ จริงๆ แล้วไฟล์ที่ LaTeX เอาไปใช้งานเนี่ย ใช้ได้บนคอมพิวเตอร์ทุก platform แต่ขั้นตอนการ install บน Linux กับ windows ต่างกันมากเลย

คนใช้ win32 อย่างผมก็เลยต้องรอให้มีคนใจดี (และทำเป็น) ดึงเอาไฟล์ต่างๆ ออกมาจาก thailatex ของ nectec แล้วก็เอามาจัดการให้ใช้กับ MikTeX ได้

อันแรกที่ผมไปเจอมาก็คือ "site ของคุณขอม":http://khombkk.tripod.com/ ซึ่งเอาไฟล์มาจาก thailatex-0.25 ซึ่งผมก็ใช้อยู่นานเป็นปีเหมือนกัน จนกระทั่ง MikTeX ขึ้น version 2.2 แล้วมีการเปลี่ยนแปลงเรื่องการจัดการ font ทำให้ไฟล์เดิมที่มีอยู่ใช้งานได้บ้างไม่ได้บ้าง

และแล้วก็มีคนใจดีอีกคน คือคุณ Warat Yingsaeree ริเริ่มทำ "MikTeX Thai Extension":http://miktexthai.sourceforge.net/ (MTE) ขึ้นมา ซึ่งก็ใช้ thailatex ของ nectec เป็นหลักอีกเหมือนกัน แต่อันนี้จะใหม่กว่าของคุณขอม แล้วก็ update ตาม version ของ thailatex ค่อนข้างใกล้ ตอนที่เขียนอยู่นี่ใช้ MTE 0.14 ซึ่งใช้ไฟล์จาก thailatex-0.2.99 (ล่าสุดคือ 0.3.0)


"download MikTeX Thai Extension":http://miktexthai.sourceforge.net/

สรุปคือตอนนี้เราสามารถใช้ภาษาไทยกับ LaTeX ได้แล้ว มี font ให้ใช้อยู่ 3 ตัวคือ

* Norasi เป็น font แบบ serif
* Garuda เป็น font แบบ sans-serif
* dbtt เป็น font แบบ fixed width

สำหรับตัวอย่างว่า font หน้าตาเป็นยังไงเนี่ย ถ้าลง MTE สำเร็จแล้วลอง compile "ไฟล์ตัวอย่าง":# อันนี้ดูนะครับ (ขโมยมาจาก thailatex-0.3.0)

ในการใช้ภาษาไทย ตัวอย่างที่เล็กที่สุดก็คงเป็น

\documentclass{article}
\usepackage[english,thai]{babel}
\title{ทดสอบภาษาไทย}
\author{นาย Dubber}
\begin{document}
\maketitle
\section{สวัสดีชาวโลก}
อืม ใช้ได้ ไม่มีปัญหา
\end{document}

ถ้าอยากใ้ห้อะไรต่างๆ อย่างเช่น วันที่ เป็นภาษาอังกฤษ แต่อยากจะใช้ภาษาไทยในเอกสารเป็นบางจุดเท่านั้น ก็ให้ใช้

\usepackage[thai,english]{babel}

แทน

option ตัวหลังสุดเวลาเรียกใช้ babel จะเป็นตัวกำหนดว่าเอกสารนั้นใช้ภาษาไหนเป็นภาษาหลัก

ถ้าทำแบบนี้แล้ว ตรงไหนที่ต้องการจะใช้ภาษาไทย ก็พิมพ์ด้วย

\textthai{ภาษาไทย}

h2. การตัดคำ

ภาษาไทยไม่เว้นช่องว่างระหว่างคำ LaTeX ก็เลยหมดปัญญาจะตัดคำให้เป็นบรรทัด เป็นย่อหน้า เราต้องใช้โปรแกรมอื่นช่วย โปรแกรมที่มากับ MTE ที่ใช้สำหรับทำหน้าที่นี้คือ swath (จริงๆ ก็ของ nectec) อีกนั่นล่ะ เวลาใช้ก็พิมพ์คำสั่งแบบนี้

C:> swath -f latex < file1.tex > file2.tex

ตัวอย่างเช่น จากประโยค

ภาษาไทยวันละคำ (ในไฟล์ file1.tex)

ก็จะกลายเป็น

ภาษาไทย\wbr วัน\wbr ละ\wbr คำ\wbr

ในไฟล์ใหม่ (file2.tex)

แล้วเราก็รัน latex บนไฟล์ใหม่นี่ซะ ก็จะได้ผลลัพธ์ที่ออกมาสวยงาม ตัดคำเรียบร้อย

คำสั่ง \wbr เนี่ยก็เป็นที่ที่ LaTeX สามารถจะตัดคำได้ ถ้าเราต้องมานั่งพิมพ์ใส่เองล่ะก็แย่แน่ คำสั่ง \wbr นี่ถูกนิยามเอาไว้ให้เป็นช่องว่างที่มีขนาดเป็นศูนย์ ก็คือเป็นช่องว่างที่มองไม่เห็น ดูเหมือนกับว่าคำอยู่ติดกัน แต่ LaTeX รู้ว่าตรงนั้นเป็นช่องว่าง ซึ่งมันสามารถตัดคำได้

นิยามจริงๆ คือ \def\wbr{\hskip0pt plus0.6pt\relax

h2. ใช้ Font Angsana ใน LaTeX

เป็นอย่างนึงที่มีคน request กันมาก หลักๆ แล้วก็เพราะมหาวิทยาลัยหรือหน่วยงาน บังคัีบว่าเอกสารต้องใช้ Angsana เท่านั้น น่าเสียดายที่ยังมีหน่วยงานไม่กี่แห่ง หันมาใช้ font ที่ nectec พัฒนาขึ้นมาเพื่อให้เป็นมาตรฐานประเทศ ดันไปรับเอา font ของ Microsoft มาเป็นมาตรฐาน ซึ่งจริงๆ แล้วตามหลักการมันมีข้อจำกัดในการเอาไปใช้

เท่าที่ลองหาดู มี "website ของคุณพูลลาภ":http://linux.thai.net/plone/Members/poonlap/latex/angsana.html ที่แจกแจงวิธีการ ขั้นตอนการเตรียม file ต่างๆ เพื่อให้ใช้ font Angsana ในเอกสารที่เตรียมจาก LaTeX ได้ แต่ขั้นตอนที่ว่าใช้โปรแกรมและ shell script หลายตัว ซึ่งทำงานเฉพาะบน Linux ก็เลยยังไม่ได้ลองว่าเราจะทำให้ใช้งานบน win32 ได้หรือเปล่า จะลองอีเมล์ไปขอไฟล์จากคุณพูลลาภมาลองใช้ดู แล้วจะรายงานอีกครั้งนึง

by chris