Theppitak's blog

My personal blog.

28 กรกฎาคม 2552

ThaiLaTeX 0.4.3 Released

ThaiLaTeX 0.4.3 ออกแล้ว โดย feature สำคัญในรุ่นนี้คือ การรองรับ UTF-8

การเปลี่ยนแปลงอื่น ๆ ก็เช่น:

  • ปรับฟอนต์ตาม ThaiFonts-Scalable 0.4.13 ซึ่งมีการปรับปรุงมาหลายรุ่น
  • ฟอนต์ ttypist ตัวหนา หนาขึ้น อันเนื่องมาจากการปรับรุ่นฟอนต์
  • ฟอนต์ purisa มีตัวเอียง ตัวหนา และหนาเอียงแล้ว อันเนื่องมาจากการปรับรุ่นฟอนต์เช่นกัน
  • ฟอนต์ monospace ปริยาย เปลี่ยนจาก ttype (TlwgTypewriter) มาเป็น ttypist (TlwgTypist) แล้ว
  • ตัดคำสั่ง '\thai' ออกแล้ว คำสั่งนี้เดิมมีไว้เพื่อ backward compatibility กับ thailatex_component รุ่นโบราณเท่านั้น แต่เมื่อใช้ Babel แล้ว จะใช้ '\thaitext' แทนอยู่แล้ว ตาม convention

ออกแล้วก็ upload เพิ่มอีกสองที่ คือที่ Debian และ CTAN สำหรับ Debian นั้น จะเข้า sid รอบบ่ายสามวันนี้ รอชมได้ที่ mirror ใกล้บ้านท่าน ส่วน CTAN นั้น ต้องรอ admin เขาจัดการให้

คาดว่าคงไม่ทัน Ubuntu Karmic เพราะผ่าน Debian important freeze ไปนานแล้ว และผมยังไม่มีเหตุอันควรที่จะขอให้ sync จาก Debian ในตอนนี้ (มี MOTU คนไทยก็ดีสิ จะได้ช่วยกันได้ในเรื่องนี้)

ป้ายกำกับ:

15 ความเห็น:

  • 28 กรกฎาคม 2552 เวลา 21:28 , Blogger Beamer User แถลง…

    ไม่แน่ใจนักนะครับว่าบางฟอนต์มีปัญหาหรือเปล่า ยังไม่มีเวลาทดสอบมากมายนัก

    ผมใช้ pdflatex มีปัญหากับฟอนต์ kinary, waree, sawadee คือรันไม่ผ่านเลย

     
  • 28 กรกฎาคม 2552 เวลา 21:38 , Blogger Beamer User แถลง…

    ส่วน utf8 บน texmaker แจ้งเตือนว่าไม่รู้จักอักษรภาษาไทยครับ

    ทดสอบบน windows นะครับ

     
  • 28 กรกฎาคม 2552 เวลา 22:49 , Blogger Thep แถลง…

    Makefile มันยังไม่ค่อยเวิร์กนะครับ สำหรับการ install ผมต้องพึ่งพา trigger ของ texlive ใน Debian เป็นหลักเหมือนกัน หลังจาก make install แล้ว อาจต้องทำอะไรเพิ่มเองอีก

     
  • 29 กรกฎาคม 2552 เวลา 01:23 , Blogger zodmaner แถลง…

    ทำการ Build และติดตั้งได้ไม่มีปัญหาบน Arch Linux นะครับ (ติดตั้งใช้งานกับ TeX Live)
    Link: http://aur.archlinux.org/packages.php?ID=25025

    ผมยังไม่ได้ลองใช้ฟอนต์อะไรแปลกๆ มากนะครับ (ใช้แค่ \usefonttheme{serif}) แต่เท่าที่ลองใช้ดูก็สามารถใช้ pdflatex สร้าง pdf ไฟล์ออกมาได้ไม่มีปัญหา (ไม่มีเพี๊ยนหรืออะไร)

    ในส่วนของ preamble ของผมหน้าตาเป็นอย่างงี๊นะครับ:
    \usepackage[thai]{babel}
    \usepackage{thswitch}
    \usepackage[utf8x]{inputenc}

     
  • 29 กรกฎาคม 2552 เวลา 14:02 , Blogger Thep แถลง…

    บอกไว้ก่อนว่า รุ่นนี้ออกมาเพื่อให้ผู้ใช้ใน debian ได้ทดสอบ UTF-8 support ก่อน ผมเลยไม่ได้พยายามแก้ปัญหาของ Makefile ที่พบ ตอนนี้ก็พยายามตามแก้ละครับ

    ล่าสุด commit รายการเปลี่ยนแปลงของ Makefile ไปแล้ว โดยให้เรียก texhash (ความจริงอาจใช้ mktexlsr หรือ texconfig-sys rehash แทนได้เหมือนกัน) ก่อน updmap-sys จากเดิมที่เรียกทีหลัง คิดว่าตอนนี้น่าจะใช้การได้แล้ว

    เดิมก่อนออก 0.4.3 ผมได้แก้ตรงนี้ไปครั้งหนึ่งแล้วเหมือนกัน แต่ไม่ได้ commit เพราะทดสอบแล้วไม่ได้ผล.. แต่รอบนี้ พบว่าสาเหตุที่ครั้งนั้นไม่ได้ผล เป็นเพราะยังมี user config ค้างอยู่ใน ~/.texmf-var พอผมเคลียร์ไดเรกทอรีนั้นทิ้ง ก็ปรากฏว่าผ่านฉลุยทุกประการ

    ใครลง 0.4.3 จาก tarball หลังจาก make install แล้ว ก็ลองสั่ง updmap-sys ซ้ำอีกที ตามด้วยการลบ user config ที่ ~/.texmf-var ดูนะครับ

    zodmaner, ขอบคุณครับที่ช่วย build และแจ้งผล

     
  • 29 กรกฎาคม 2552 เวลา 14:10 , Blogger Thep แถลง…

    zodmaner,

    เห็นทำ .install โดยเขียน script แทน sync-thailatex.. สคริปต์นี้ไม่ได้ maintain นานแล้วครับ สงสัยต้องปัดฝุ่นเสียหน่อย ตอนนี้ผมเอา updmap fallback สำหรับ non-root install ออกแล้วใน SVN แต่ยังแก้ไม่หมด เพราะมันยังตรวจสอบไฟล์ที่ไดเรกทอรีเก่ารุ่นก่อนจะมี TDS อยู่

    กำลังคิดอยู่ว่า สคริปต์และระบบ make ต่าง ๆ มันชักรก เพราะยังคงโค้ดเก่าที่รองรับ tetex ตัวเก่า (ก่อน texlive) เอาไว้อยู่ เดี๋ยวอาจจะตัด tetex support ไปเลยดีกว่า เพื่อไม่ให้โค้ดซับซ้อนเกินเหตุด้วยครับ

     
  • 29 กรกฎาคม 2552 เวลา 15:42 , Blogger Thep แถลง…

    Update: ผมแก้สคริปต์ sync-thailatex ใน SVN เสร็จแล้ว น่าจะใช้การได้แล้วครับ รวมทั้งตัดการรองรับ tetex รุ่นเก่า ๆ ออกไปด้วย

     
  • 29 กรกฎาคม 2552 เวลา 22:27 , Blogger zodmaner แถลง…

    ความคิดเห็นนี้ถูกผู้เขียนลบ

     
  • 29 กรกฎาคม 2552 เวลา 22:34 , Blogger zodmaner แถลง…

    ขอบคุณมากครับคุณ Thep ผมได้ทำการ package Thailatex เวอร์ชั่น SVN และทำการ build และติดตั้งดูแล้ว เท่าที่ลองพบว่า sync-thailatex ตัวใหม่ใช้งานได้ไม่มีปัญหาครับ :)
    Link: http://aur.archlinux.org/packages.php?ID=28852

    อย่างไร ก็ดี ผมมีขอเสนอแนะเกี่ยวกับตัว sync-thailatex นิดหนึ่งครับ คือตอนที่เราทำการ remove Thailatex package ออกจากระบบเนี้ย ผมจะทำการ disable thai.map ทุกครั้ง (ไม่งั้น updmap มันจะขึ้น error ว่าหา thai.map ไม่เจอทุกครั้งที่ run) แต่การ remove thai.map โดยใช้ updmap เนี่ยเวลาเรา run updmap --list | grep thai.map มันจะขึ้นว่า #! Map thai.map (จากเดิม: Map thai.map)

    ซึ่งมันจะเป็นปัญหา เพราะ sync-thailatex เนี่ยทำการเช็คว่า thai.map ถูก enable หรือไม่โดยการใช้ condition:

    if /usr/bin/updmap-sys --quiet --listmaps | grep thai.map >/dev/null;

    ซึ่ง condition นี้จะเป็นจริงถึงแม้ว่า thai.map ถูก disable โดย updmap เพราะว่า grep มัน match ทั้ง Map thai.map และ #! Map thai.map

    ดังนั้นผมจึงขอเสนอให้เราทำการเปลี่ยน if condition เป็นแบบนี้แทนครับ:

    if ! /usr/bin/updmap-sys --quiet --listmaps | grep thai.map | grep '#!' >/dev/null;

    โดย ผมได้ทำการ update .install file สำหรับ package thailatex เวอร์ชั่น 0.4.3 (stable) release 3 ให้ใช้ condition อันใหม่นี้แล้ว เท่าที่ลองดูก็ใช้งานได้ดี โดย condition แบบใหม่ที่ผมเสนอสามารถที่จะ detect ว่า thai.map ถูก disable โดย updmap ได้อย่างถูกต้อง ยังไงก็ลองพิจารณาดูนะครับ:
    Link: http://aur.archlinux.org/packages.php?ID=25025

    ขอบคุณมากนะครับที่สละเวลาให้ แล้วก็ขอบคุณมากนะครับที่พัฒนา ThaiLaTeX :)

    ปล. ลืมบอกไปว่า UTF-8 support ใช้งานได้ดีไม่มีปัญหานะครับ

    ปล2. "บอกไว้ก่อนว่า รุ่นนี้ออกมาเพื่อให้ผู้ใช้ใน debian ได้ทดสอบ UTF-8 support ก่อน"
    อา... งั้นการที่ผมทำการ package Thailatex เวอร์ชั่น 0.4.3 ให้กับ Arch Linux เนี่ยจะเป็นไรไหมครับ? :P

     
  • 29 กรกฎาคม 2552 เวลา 23:41 , Blogger zodmaner แถลง…

    ความคิดเห็นนี้ถูกผู้เขียนลบ

     
  • 29 กรกฎาคม 2552 เวลา 23:43 , Blogger zodmaner แถลง…

    อา ขอโทษทีครับ ผมลอง run if condition ของผมใหม่ดูดีๆ แล้วพบว่ามันมีข้อผิดพลาดอยู่ คือถ้า thai.map ไม่ได้อยู่ใน map list มันจะดันนึกว่า thai.map ถูก enable อยู่แล้วนะครับ

    ผมได้เขียนตัว condition ใหม่ขึ้นมาครับ โดย condition ใหม่นี้น่าจะแก้ไขปัญหาที่ว่าได้แล้ว ยังไงก็รบกวนช่วยดูด้วยนะครับ

    if [[ $(/usr/bin/updmap-sys --quiet --listmaps | grep thai.map >/dev/null) && ! $(/usr/bin/updmap-sys --quiet --listmaps | grep thai.map | grep '#!' >/dev/null) ]];

     
  • 30 กรกฎาคม 2552 เวลา 12:38 , Blogger Thep แถลง…

    จริงด้วยครับ ผมแก้ด้วยวิธีแทรก grep -v '^#' เข้าไปใน pipeline แบบนี้:

    updmap-sys --quiet --listmaps | grep -v '^#' | grep thai.map > /dev/null

    แล้วก็แยกโค้ดออกมาเป็นฟังก์ชันเอกเทศ เพราะมีการใช้ซ้ำหลายที่ ทั้งตอน install ด้วย

    ตอน install นั้น อาจมีกรณีหลุดรอด ไม่ได้ enable map ได้ เพราะสคริปต์จะ grep แล้วเข้าใจว่า map enable อยู่แล้ว แก้ครั้งนี้ก็แก้กรณีนี้ด้วย

    commit เข้า svn แล้วครับ ขอบคุณมากครับสำหรับคำแนะนำ ได้คุณ zodmaner ช่วยนี่ ค่อยรู้สึกมั่นใจในโค้ดมากขึ้นครับ

    เรื่องที่บอกว่าออกมาให้ผู้ใช้ debian ทดสอบก่อน ความจริงตั้งใจตอบคุณ Beamer User น่ะครับ ว่า Makefile ผมข้ามไปก่อน หลังจากที่มันเวิร์กใน debian ก็ออกเลย เพื่อให้ผู้ใช้ได้ทดสอบ UTF-8 support ก่อน (หลังจากที่ผมทดสอบเองมาก่อนแล้ว) ถ้าคุณ Beamer User จะช่วยทดสอบบน Windows อาจต้องขอให้ออกแรงเองก่อนนิดหนึ่ง

    ส่วนที่คุณ zodmaner ทำใน Arch Linux นี่ เป็นสิ่งที่อยากได้มาก ๆ ครับ เรียกว่าเกินกว่าที่คาดหมายว่าจะได้จากผู้ใช้ debian เสียอีก :)

     
  • 30 กรกฎาคม 2552 เวลา 12:52 , Blogger Thep แถลง…

    เพิ่มข้อสังเกตนิดหนึ่งครับ ว่าในไฟล์ .install นั้น มีการเรียก texconfig-sys rehash แล้วตามด้วย sync-thailatex อาจเป็นการเรียก mktexlsr ซ้ำกันสองหนนะครับ เพราะใน sync-thailatex ก็มีเรียก mktexlsr อยู่แล้ว

     
  • 30 กรกฎาคม 2552 เวลา 20:39 , Blogger zodmaner แถลง…

    ขอบคุณมากที่ช่วยเตือนครับคุณ Thep ผมได้เอา texconfig-sys rehash ออกจาก .install file ของ thailatex-svn package แล้ว

    ลองใช้ svn ตัวใหม่แล้วนะครับ ยืนยันว่าตอนนี้ sync-thailatex สามารถตรวจพบว่า thai.map ถูก disable โดย updmap(-sys) ได้อย่างถูกต้องแล้วครับ :-)

    แหม่ แต่ผมชอบ condition ใหม่ที่คุณ Thep ใช้จังเลย สั้น-ง่าย-ได้ใจความ (ดูดีกว่าที่ผมเสนอไปเยอะเลย) ยังไงก็ขอยืมไปใช้ใน .install file ของตัว 0.4.3 (stable) หน่อยนะครับ ;-)

    ถึงแม้ว่าบน Arch Linux จะมีคนใช้ thailatex ไม่เยอะเท่าไหร่ แต่ผมก็จะทำการ maintain package บนนี้ต่อไปให้ดีที่สุดเท่าที่จะทำได้นะครับ :-)

    ปล. เอ ถ้าคราวหน้าผมจะทำการ report bug หรือถามคำถามเกี่ยวกับ thailatex เนี่ย ช่องทางไหนดีที่สุดเหรอครับ?

     
  • 30 กรกฎาคม 2552 เวลา 21:32 , Blogger Thep แถลง…

    ตามสบายเลยครับ โอเพนซอร์สเราหยิบยืมกันอิสระอยู่แล้ว

    สำหรับการรายงานบั๊ก ตอนนี้ ระหว่างที่ยังไม่มีระบบ bug tracking ที่ linux.thai.net ก็คงเป็น mailing list thai-linux-foss-devel นะครับ:

    http://groups.google.com/group/thai-linux-foss-devel

     

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

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

hacker emblem