ThaiLaTeX tis620 inputenc and Pali-Sanskrit
จากที่ได้ เพิ่มการรองรับภาษาบาลี-สันสกฤตใน ThaiLaTeX ไปเมื่อปีกลาย ปรากฏว่าตอนนั้นได้ทดสอบกับแค่เอกสารที่เป็น UTF-8 เท่านั้น (pali-sample.tex และ PDF ผลลัพธ์) แต่เมื่อได้ทดสอบกับเอกสารที่เป็น TIS-620 ก็ปรากฏว่า กฎการตัดเชิง ญ ฐ ไม่ทำงาน!
สาเหตุก็คือ กฎที่ใช้ตัดเชิง ญ ฐ นั้น ผมใช้การแปลงอักขระโดยอ้างผ่านโทเคน เช่น \thaiYoYing
ไม่ใช่ผ่านอักขระเป็นไบต์ ๆ โดยตรง ซึ่งตรงนี้สำคัญสำหรับการรองรับรหัสอักขระมากกว่าหนึ่งรูปแบบ คือ TIS-620 และ UTF-8 โดยเป็นหน้าที่ของแพกเกจ inputenc
ที่จะแปลงกระแสข้อมูลของเอกสารให้เป็นโทเคนอักขระ แล้วการประมวลผลอักขระต่อจากนั้นจึงอยู่ในรูปโทเคนที่ไม่ขึ้นกับรหัสอักขระอีกที
ปัญหาคือ แต่เดิมในสมัยที่ใช้ TIS-620 กันนั้น เราไม่เคยจำเป็นต้องใช้แพกเกจ inputenc
กันเลย เนื่องจาก LaTeX จะอ่านข้อมูลทีละไบต์เสมือนหนึ่งเป็น ASCII แล้วส่งไบต์เหล่านั้นผ่านระบบฟอนต์ไปวาดจนได้เอกสารออกมา แต่ถ้าเราจะประมวลผลอักขระกลางทางใน LaTeX แบบที่ทำกับภาษาบาลี-สันสกฤตนี้ ก็คงต้องทำในเทอมของโทเคนอักขระ โดยอาศัยแพกเกจ inputenc
ช่วย เหมือนกับภาษาอื่นทั่วไป
ดังนั้น ผมจึงได้สร้างข้อกำหนดสำหรับรหัสอักขระ
เพื่อใช้กับแพกเกจ tis620
inputenc
เพิ่มใน ThaiLaTeX นี้ ทำให้ตอนนี้เกิดความสมดุลระหว่างการใช้รหัส TIS-620 กับ UTF-8 ในเอกสาร LaTeX โดยถ้าใช้ UTF-8 ก็จะประกาศแบบนี้ (ตามที่ได้เคยบอกไว้เมื่อตอนเพิ่มการรองรับ UTF-8 ใน ThaiLaTeX):
\usepackage[utf8x]{inputenc}
ส่วนถ้าจะใช้ TIS-620 ก็ประกาศแบบนี้:
\usepackage[tis620]{inputenc}
มีแฟ้มตัวอย่าง pali-sample-tis.tex และ PDF ผลลัพธ์
สำหรับตอนนี้ การใช้แพกเกจ inputenc
กับเอกสาร TIS-620 จะจำเป็นสำหรับการใช้ภาษาบาลี-สันสกฤตเท่านั้น เอกสารเก่าที่ยังไม่ได้ใช้คำสั่ง \textpali{}
ก็ไม่จำเป็นต้องประกาศ แต่ความจริงแล้ว ถ้าจะทำให้ถูกหลักปกติของ LaTeX ก็ควรประกาศไว้ก่อน ถ้าเกรงว่าจะไปคอมไพล์ใน ThaiLaTeX รุ่นเก่าในระบบอื่นไม่ผ่าน ก็อาจจะชะลอไปก่อน จนกว่าคนอื่น ๆ จะใช้รุ่นใหม่ตาม
ตัวเลือก tis620
ใน inputenc
นี้จะเริ่มมีผลใน ThaiLaTeX รุ่นหน้าที่จะออกในไม่กี่วันนี้ครับ
ป้ายกำกับ: latex, typography
0 ความเห็น:
แสดงความเห็น (มีการกลั่นกรองสำหรับ blog ที่เก่ากว่า 14 วัน)
<< กลับหน้าแรก