ThaiLaTeX Now Supports UTF-8
ตามธรรมเนียมปกติ หลังจากออก thaifonts-scalable รุ่นใหม่แล้ว ก็มักจะตามด้วยการ update ฟอนต์มาใช้กับ thailatex ด้วย แต่ปรากฏว่าไม่ได้ทำมาตั้งปีครึ่ง เพราะไม่มีเวลา ตอนนี้ ไหน ๆ ผมก็เริ่มปล่อยมือจากงานแปลแล้ว ทำให้มีเวลากลับมาทำงานพัฒนาอีกครั้ง ก็เลยได้กลับไปปัดฝุ่น thailatex อีก
หลังจาก update ฟอนต์ตามปกติแล้ว ก็มีเรื่องหนึ่งที่คาใจอยู่ คือการใช้ UTF-8 ในเอกสาร LaTeX ซึ่งตามปกติแล้ว thailatex จะรองรับแต่ TIS-620 เท่านั้น เวลาเตรียมเอกสาร จึงยังต้องใช้ xiterm+thai หรือต้องกำหนด editor ให้ใช้ TIS-620 เสียก่อน หรือบางคนก็ใช้วิธีเตรียมเป็น UTF-8 ไปเลย แล้วใช้ iconv แปลงเอา
แต่ตอนนี้ไม่ต้องแล้ว เพราะ LaTeX core นั้น รองรับ UTF-8 เรียบร้อยแล้ว น่าจะนานแล้วแหละ ผ่านแพกเกจ inputenc
โดยคุณต้องเพิ่ม preamble ต่อไปนี้ (หลัง babel
):
\usepackage[utf8x]{inputenc}
ตรง utf8x
นี้ บางระบบอาจใช้ utf8
เฉย ๆ
แต่ปัญหาคือ เท่านี้ยังไม่พอ เพราะตัว thailatex เองนั้น ออกแบบมาใช้กับ TIS-620 โดยเฉพาะ ยังต้องปรับแก้โดยเพิ่มการกำหนด symbol ตามรหัสยูนิโค้ดตามที่ LaTeX ใช้อ้างอักษรไทย แล้วแทนที่คำแปลต่าง ๆ ในข้อกำหนดของ babel
ให้ใช้ symbol เหล่านี้แทนการใช้อักขระ TIS-620 โต้ง ๆ เพื่อให้ใช้ได้กับทั้ง TIS-620 และ UTF-8
commit เข้า SVN ไปแล้วครับ ใครสนใจช่วยทดสอบก็เชิญได้ คงรอทดสอบสักพักค่อยออกเป็นรุ่นใหม่ต่อไป
ถึงตอนนั้น คุณจะสามารถเตรียมเอกสาร LaTeX โดยใช้ editor สมัยใหม่ที่เดี๋ยวนี้ใช้ UTF-8 เป็นหลักกันหมดแล้ว ส่วนในขั้นตอนตัดคำด้วย swath นั้น ก็เพิ่มตัวเลือก -u u,u
เข้าไปด้วย เพื่อให้ swath พยายามอ่าน input และเขียน output แบบ UTF-8 เช่น:
$ swath -f latex -u u,u < mydoc.tex > mydoc.ttex
แถมอีกเรื่อง ว่า LyX ตั้งแต่รุ่น 1.5 เป็นต้นมา รองรับ UTF-8 แล้ว โดยรองรับภาษาไทยด้วย เพียงแต่ขั้นตอน generate จากซอร์สของ LyX เป็น LaTeX นั้น จะแปลงเป็นรหัส TIS-620 ก่อนถ้าเป็นภาษาไทย ทั้งนี้คงเพราะเขาตรวจสอบจาก thailatex ที่เผยแพร่ที่ CTAN นั่นเอง
4 ความเห็น:
ณ 27 กรกฎาคม 2552 เวลา 10:45 , veer แถลง…
มันสำคัญกับผมมากครับ เพราะว่าต้องเขียนหลายภาษา แต่ก็เจอ babel กับ acm template ขัดกันซะ เศร้าไปเลย
ณ 27 กรกฎาคม 2552 เวลา 11:45 , Thep แถลง…
ใช่ครับ คิดถึงกรณีนี้เหมือนกัน เลยอยากมีกรณีทดสอบแบบ multilingual อย่างนี้ด้วย
เดี๋ยวพยายามทดสอบเบื้องต้นแล้วออกรุ่นใหม่มาให้ทดสอบเลยดีกว่า
ณ 27 กรกฎาคม 2552 เวลา 12:54 , Thep แถลง…
บั๊กที่พบ: option "thainumber" จะใช้ไม่ได้กับเอกสารที่ใช้ปนกับภาษายุโรปที่ไม่ใช่อังกฤษ โดยมี error ว่า
LaTeX Error: Command \thaione unavailable in encoding T1.
ในกรณีที่ใช้ \usepackage[T1]{fontenc} ส่วนถ้าใช้ encoding อื่นก็จะฟ้องในชื่อ encoding นั้น ๆ
แต่ถ้าไม่ใช้ option นี้ ก็ไม่มีปัญหาอะไร ทดสอบกับเอกสารที่มีภาษาไทย, กรีก, ฝรั่งเศส, สเปน แล้ว ใช้การได้ครับ
ยังไม่พบวิธีแก้ไข คิดว่าบั๊กนี้ไม่ร้ายแรง อาจจะข้ามไปก่อน หรือถ้าใครมีคำแนะนำเรื่องวิธีแก้ไข ก็จะสามารถแก้ก่อน release ได้ครับ
ณ 27 กรกฎาคม 2552 เวลา 14:29 , Thep แถลง…
Update: บั๊กที่พบ ปรากฏว่าเป็นปัญหาของเอกสารที่ใช้ทดสอบเองครับ คือใช้ \selectlanguage{} โดยไม่ได้ select คืนให้เป็นภาษาปริยาย ถ้าใช้ otherlanguage* environment แทนก็เป็นอันใช้ได้
สรุปว่าไม่ใช่ bug ของ thailatex ครับ
แบบนี้ เดี๋ยวคงออกรุ่นใหม่ได้เร็ว ๆ นี้
แสดงความเห็น (มีการกลั่นกรองสำหรับ blog ที่เก่ากว่า 14 วัน)
<< กลับหน้าแรก