Theppitak's blog

My personal blog.

08 มีนาคม 2555

ThaiLaTeX Hyphenation

จากที่ได้ blog ครั้งล่าสุด เกี่ยวกับ ThaiLaTeX ผมก็ได้ออกรุ่นซอฟต์แวร์ทั้งหมดที่เกี่ยวข้องไปแล้วตั้งแต่กลางเดือนกุมภา คือ Fonts-TLWG 0.5.0 และ Fonts-SIPA-Arundina 0.2.0 ซึ่งได้เปลี่ยนชื่อโครงการด้วย แล้วก็ตามด้วย ThaiLaTeX 0.4.7 ในคราวเดียวกัน เผอิญว่าติดธุระส่วนตัวมากจนไม่สามารถหาเวลานั่งเขียน blog ได้

เกี่ยวกับการเปลี่ยนชื่อโครงการฟอนต์ทั้งสองนี้ ก็ด้วยเหตุว่ามีการเปลี่ยนชื่อที่ปลายน้ำหลายจุดไปในทางเดียวกัน ไม่ว่าจะเป็นที่ Debian หรือ CTAN โดยสำหรับ Debian นั้น กลุ่มผู้ดูแลแพกเกจฟอนต์ของ Debian ได้กำหนดวิธีการตั้งชื่อแพกเกจฟอนต์ใหม่ ซึ่งก็ได้รับแรงบันดาลใจมาจาก Fedora อีกต่อหนึ่ง ส่วนที่ CTAN นั้น เขาต้องการชื่อแพกเกจที่สอดคล้องกันกับชื่อ style file ที่ติดตั้ง และไดเรกทอรีที่ติดตั้ง ควรมีเอกภาพเป็นชื่อเดียว ซึ่งก็ได้เลือกชื่อ fonts-tlwg สำหรับโครงการ ThaiFonts-Scalable อีกอย่าง ตอนนี้ linux.thai.net ก็ได้โฮสต์โครงการฟอนต์หลายโครงการ การตั้งชื่อที่กว้างเกินไปอย่าง ThaiFonts-Scalable ย่อมไม่เหมาะสมอีกต่อไป จึงได้เปลี่ยนชื่อเป็น Fonts-TLWG และฟอนต์ชุด Arundina ก็เปลี่ยนเป็น Fonts-SIPA-Arundina ในทำนองเดียวกัน

หลังจากที่เสร็จงานชุดนั้นไป ผมก็ได้นำประเด็นเรื่อง hyphenation ที่ได้ คิดไว้ ขึ้นมาพิจารณา โดยหารือร่วมกับนักพัฒนาในการประชุมระดมสมองโอเพนซอร์สภาษาไทยที่พัทยา เมื่อกลับมาแล้วก็ตกลงใจว่าจะเริ่มเดินหน้าต่อเลย

แนวทางที่คุยกันไว้นั้น เป็นไปได้หลายวิธี:

  • ทำ hyphenation pattern สำหรับ TeX โดยใช้ patgen
  • ปรับ swath ให้แทรก soft hyphen (\- สำหรับ TeX) ด้วย

สำหรับทางเลือกแรกที่ทำ pattern สำหรับ TeX นั้น หากทำสำเร็จจะสามารถใช้กับโครงการอื่น เช่น FOP ของ Apache รวมถึง LibreOffice ด้วย

ผมเริ่มจากทางแรกก่อน โดยอาศัย word list ของ libthai มาแทรกยัติภังค์ที่จุดที่เป็นไปได้ แล้วป้อนเข้า patgen สร้างเป็น hyphenation pattern ออกมา แล้วติดตั้งลงใน TeX ปรากฏว่าผลที่ได้เป็นที่น่าพอใจพอสมควร ดังตัวอย่างเปรียบเทียบการจัดย่อหน้าโดยใช้และไม่ใช้ยัติภังค์:

เปรียบเทียบผลจาก hyphenation

จะเห็นว่าช่องไฟที่โบ๋ ๆ ลดน้อยลง และทำให้ย่อหน้ากระชับเข้ามาอีก เมื่อสังเกตจุดตัดบรรทัดก็จะพบว่า TeX คำนวณจุดแบ่งบรรทัดโดยมองภาพรวมทั้งย่อหน้า ไม่ใช่คำนวณทีละบรรทัด

นี่เป็นผลในขั้นแรก ซึ่งได้ commit เข้าใน trunk ของ SVN ของ thailatex แล้ว โดยที่ผมยืมค่าพารามิเตอร์สำหรับ patgen มาจาก วิทยานิพนธ์ชิ้นหนึ่ง โดยยังไม่ได้ปรับละเอียดเองตามข้อมูลที่มี ซึ่งตรงนี้คงหาเวลาทำในโอกาสต่อไป

ป้ายกำกับ: , ,

7 ความเห็น:

  • 9 มีนาคม 2555 09:26 , Blogger Chalermkiat Kaewsanay แถลง…

    ดูสวยงามขึ้นเยอะครับ แต่กังวลว่าจะปรากฏยัติภังค์ เกลื่อนไปรึเปล่านะ (ในตัวอย่างนี้ถือว่าน้อยครับ)

     
  • 9 มีนาคม 2555 13:11 , Blogger Thep แถลง…

    อัลกอริทึมของ TeX จะคำนวณน้ำหนักของสิ่งต่าง ๆ ในย่อหน้าโดยรวมครับ การใส่ยัติภังค์ถือเป็น penalty ถ้ามันไม่ได้ทำให้ย่อหน้าสวยขึ้นมากพอ TeX ก็จะไม่ใช้ครับ

     
  • 17 เมษายน 2555 22:22 , Blogger MBIG แถลง…

    รบกวนสอบถามครับ
    ผมได้ download font thailatex-0.4.7 และได้ทำการติดตั้งลงบนเครื่อง win7 เพื่อใช้กับ MikTeX2.9 ตามขั้นตอนในเวปนี้ http://thaitug.daytag.org/wordpress/?p=112

    ปรากฏว่ามีข้อความ error แสดงขึ้นในขั้นตอนของการ make install ครับ ตามไฟล์นี้ครับ
    http://www.yousendit.com/download/M3BrZHlwYUlOQnh2Zk1UQw

    ไม่ทราบว่าผมทำผิดพลาดตรงไหนหรือไม่ครับ จึงทำให้ติดตั้งไม่ได้ครับ

     
  • 17 เมษายน 2555 22:26 , Blogger MBIG แถลง…

    เพิ่มเติมอีกนิดครับ
    ผมเข้าใจว่าจาก error ที่เกิดขึ้นในขั้นตอนของ make install ทำให้ผมไม่มีไฟล์ตามที่กล่าวถึงในข้อ 7 ตามขั้นตอนของ http://thaitug.daytag.org/wordpress/?p=112
    ครับ

    ขอบคุณมากครับ

    %==================================

    รบกวนสอบถามครับ
    ผมได้ download font thailatex-0.4.7 และได้ทำการติดตั้งลงบนเครื่อง win7 เพื่อใช้กับ MikTeX2.9 ตามขั้นตอนในเวปนี้ http://thaitug.daytag.org/wordpress/?p=112

    ปรากฏว่ามีข้อความ error แสดงขึ้นในขั้นตอนของการ make install ครับ ตามไฟล์นี้ครับ
    http://www.yousendit.com/download/M3BrZHlwYUlOQnh2Zk1UQw

    ไม่ทราบว่าผมทำผิดพลาดตรงไหนหรือไม่ครับ จึงทำให้ติดตั้งไม่ได้ครับ

     
  • 28 เมษายน 2555 20:11 , Blogger MinG แถลง…

    ผมทำได้แล้วครับ
    ขอบคุณมากครับที่ทำฟอนต์ให้ได้ใช้ภาษาไทยกับ LaTeX ครับ

     
  • 28 เมษายน 2555 22:51 , Blogger Thep แถลง…

    ความจริง thailatex ได้ upload installer ไว้ที่ CTAN ด้วยนะครับ MikTeX น่าจะติดตั้งจากตรงนั้นโดยตรงได้เหมือนกัน

    ขออภัยที่ไม่ได้มาตอบคำถามครับ ช่วงนี้ธุระยุ่ง ๆ ยังไงชอบกล

     
  • 28 เมษายน 2555 23:45 , Blogger MinG แถลง…

    ขอบคุณมากครับ

     

แสดงความเห็น (มีการกลั่นกรองสำหรับ blog ที่เก่ากว่า 14 วัน)

<< กลับหน้าแรก

hacker emblem