ต่อจาก LibThai 0.1.19 ก็มาเป็น ThaiLaTeX 0.5.1 ที่ออกตามมา โดยมีการ sync ข้อมูลพจนานุกรมจาก LibThai มาเพื่อสร้าง hyphenation pattern ใหม่ พร้อมกับปรับกฎการแทรกยัติภังค์ให้เป็นไปตามที่กำหนดในพจนานุกรมทุกคำ
อีกรายการหนึ่ง เป็นเรื่องของความพยายามแก้ปัญหาขอบขวาหยักในการจัดหน้าเอกสาร ซึ่งผมเคยเจอเองบ้าง ได้ฟังผู้ใช้ถามวิธีแก้เข้ามาหลายครั้งหลายหน
ปัญหาขอบขวาไม่เรียบนี้ เป็นผลมาจากอัลกอริทึมการจัดบรรทัดของ TeX ที่พยายามไม่ให้มีช่องว่างในบรรทัดมากเกินไปจนบางตาเป็นจุด ๆ หรืออ่านแล้วสายตาต้องกระโดดข้ามช่องว่างไกลเกินไป ดังนั้น การยืดช่องว่างระหว่างคำของ TeX จึงทำอย่างจำกัด
เรื่องนี้อาจจะดีสำหรับข้อความภาษาอังกฤษ เพราะมีช่องว่างให้ยืดหลายจุด ยืดจุดละนิดละหน่อยก็ได้ความกว้างเพิ่มมาพอแล้ว แต่พอมาจัดบรรทัดภาษาไทยจะเจอปัญหาขาดแคลนช่องว่าง เพราะภาษาไทยไม่มีช่องว่างระหว่างคำ ผลคือ เมื่อยืดช่องว่างเท่าที่ยอมยืดแล้ว บรรทัดก็ยังกว้างไม่ถึงขอบขวา ดังนั้น TeX จึงเลือกที่จะดึงคำของบรรทัดถัดไปมาเติมช่องว่างแทน ซึ่งแน่นอนว่าทำให้บรรทัดกว้างเกินขอบขวา เกิด overfull line ถึงแม้จะไม่สวย แต่มันก็เป็นทางเลือกที่ดีที่สุดเท่าที่มีตามข้อกำหนดของ TeX อาการนี้อาจเป็นข้อยกเว้นที่แทบไม่เจอเลยในภาษาอังกฤษ แต่กลับเป็นกรณีที่พบบ่อยมากสำหรับภาษาไทย
วิธีแก้ปัญหานี้เป็นไปได้หลายแบบ เช่น
- ใช้ letter spacing เป็นวิธีที่นิยมมากในงานพิมพ์ของไทย แม้ของฝรั่งเองก็เคยเห็นบ้าง แต่โดยหลักการแล้วถือว่าเป็นสไตล์ที่ไม่ดี (Frederick Goudy เคย กล่าว ไว้ว่า “Men who would letterspace lower case would shag sheep.”) โดยเฉพาะกับตัวพิมพ์เล็ก และ TeX ก็ไม่ทำ เพราะมันจะทำให้ข้อความอ่านยาก และจะใช้ ligature ไม่ได้ ดังนั้น หากจะทำ letter spacing กับภาษาไทยใน TeX คงไม่ใช่ความคิดที่ดีนัก
- แทรกช่องว่างระหว่างคำ เป็นวิธีที่ ThaiLaTeX เคยใช้ในระหว่างรุ่น 0.2.5 ถึง 0.4.7 โดยดัดแปลงคำสั่ง
\wbr
ให้สามารถยืดความกว้างได้ แต่ปัญหาคือ ทำให้คำแยกออกจากกันเป็นคำ ๆ ดูไม่สวยงาม ในที่สุดก็เลิกใช้ไป
- ยอมให้ยืดช่องว่าง เป็นวิธีที่ TeX เปิดให้จูนได้ โดยกำหนดค่า
\pretolerance
, \tolerance
หรือ \emergencystretch
ซึ่งการกำหนดค่า tolerance สูง ๆ อาจทำให้คุณภาพโดยรวมของการจัดบรรทัดตกได้ ผมจึงทดลองใช้ \emergencystretch
กับเอกสารของตัวเองอยู่พักหนึ่ง จนได้ค่าที่เหมาะสมคือ 0.6em
จนเมื่อ อ.กิตติพงษ์ มาถามผมในการประชุม “โสเหล่” ของ Khon Kaen Linux User Group (KKLUG) ครั้งหนึ่ง เป็นสัญญาณให้ผมตัดสินใจว่ามันเป็นสิ่งที่จำเป็นสำหรับการใช้ภาษาไทยใน LaTeX แล้ว ไม่ใช่สิ่งที่จะเก็บไว้เป็น solution ส่วนตัวอีกต่อไป จึงได้ commit เข้าใน SVN ของ ThaiLaTeX เสีย
ก็อยากให้ทดลองใช้กันดูนะครับ อาจมีวิธีที่ดีกว่านี้ หรือได้ค่า stretch ที่เหมาะกว่านี้ ก็เสนอเข้ามาได้ครับ
รุ่นนี้เป็นรุ่นแรกของ ThaiLaTeX ที่เปลี่ยนมาใช้ tarball แบบ XZ ตามประกาศ LTN ซึ่งปรากฏว่าขนาด tarball ลดลงถึง 26%
-rw-r--r-- 1 thep thep 260914 ก.พ. 8 12:02 thailatex-0.5.1.tar.gz
-rw-r--r-- 1 thep thep 191580 ก.พ. 8 11:35 thailatex-0.5.1.tar.xz
พร้อมกันนี้ ก็ได้อัปโหลดเข้า CTAN ไปแล้ว (รอ moderator รีวิวให้ถึงจะได้เข้า) รวมทั้งอัปโหลดเข้าที่ Debian experimental ไปรอ Jessie ไว้ด้วย
ป้ายกำกับ: latex