ThaiLaTeX and Fonts Work Plan
มีรายการใน TODO list อย่างหนึ่งที่พยายามจะเคลียร์ แต่ก็ดองเอาไว้เพราะขาดสมาธิทำงาน จนกระทั่งได้โอกาสปลีกวิเวกเข้ากรุงแบบไร้เน็ต จึงมีเวลาใช้ความคิดบ้าง ปรากฏว่าได้กระตุ้นให้เกิดความคิดอย่างอื่นตามมาเป็นพรวน
รายการนั้นคือ การเปลี่ยนชื่อแพกเกจฟอนต์ใน Debian ตาม naming convention ใหม่ (ซึ่ง เอาเข้าจริงใช้แค่บางส่วน) ตามข้อกำหนดใหม่ (ที่ใช้จริงแค่บางส่วน) นี้ ชื่อแพกเกจจะไม่ใช่ ttf-*
หรือ t1-*
หรือ otf-*
อีกต่อไป แต่จะชื่อ fonts-*
อย่างเดียวโดยไม่แยกชนิด ซึ่งหมายความว่า แพกเกจ thaifonts-scalable ที่เคยแยก binary เป็น ttf-thai-tlwg
, otf-thai-tlwg
และ t1-thai-tlwg
จะต้องยุบรวมเป็น fonts-tlwg
หรืออาจจะแตกเป็นแพกเกจย่อย ๆ รายฟอนต์ เป็น fonts-kinnari
, fonts-garuda
ฯลฯ ก็ได้ แต่สุดท้ายคือมีฟอนต์แค่แบบเดียวเท่านั้น ซึ่งถ้าต้องเลือกก็คงเป็น TTF ถึงแม้ Christian จะแนะว่ายังสามารถทำแพกเกจฟอนต์หลายชนิดโดยตั้งชื่อแยกชนิดกันได้อยู่ แต่เมื่อพิจารณา สถิติ popcon แล้ว ผมคิดว่าอีกสองแบบที่เหลือคงไม่มีความต้องการใช้สักเท่าไร
อีกเรื่องหนึ่งที่เกี่ยวข้องกัน คือ lintian report ที่มีมานานแล้วในแพกเกจ thailatex คือ duplicate-font-file และ font-in-non-font-package โดยรายการแรกเป็นเพราะตัวแพกเกจมีฟอนต์ชุดที่ซ้ำกับในแพกเกจ t1-thai-tlwg
ซึ่งถ้าตัด t1-thai-tlwg
ออกก็คงหาย แต่รายการหลังนี่แหละที่น่าคิด เพราะแพกเกจ thailatex ไม่ใช่แพกเกจสำหรับฟอนต์ แต่กลับมีฟอนต์รวมมาด้วย เพื่อใช้กับ LaTeX ซึ่งมีระบบฟอนต์แยกต่างหากจากของเดสก์ท็อป
ซึ่งปัญหาการรวมฟอนต์มาใน thailatex นี้ ถ้าเราจะละเลย lintian report นี้ไปเสียก็ไม่มีปัญหา แต่ความจริงแล้ว มันก็มีปัญหาในทางปฏิบัติบ้างในช่วงที่ผ่านมา กล่าวคือ:
- ทุกครั้งที่ออกฟอนต์ thaifonts-scalable รุ่นใหม่ ก็จะต้อง generate ฟอนต์ Type 1 แล้วนำมาอัปเดตใน thailatex เพื่อออก thailatex รุ่นใหม่ตามมาเสมอ ซึ่งจะมีหลายรุ่นที่เป็นแค่การอัปเดตฟอนต์เท่านั้น ถ้าย้ายฟอนต์ LaTeX ไปรวมใน thaifonts-scalable เสีย การอัปเดตฟอนต์ก็จะเป็นไปอย่างอัตโนมัติ แล้ว thailatex ก็จะออกรุ่นใหม่เฉพาะเมื่อมีการเปลี่ยนแปลงในส่วน LaTeX class จริง ๆ เท่านั้น
- การเพิ่มฟอนต์ใน thailatex ด้วยวิธีปัจจุบัน จะต้องนำมาเพิ่มในแพกเกจ thailatex โดยตรง ยังมีแพกเกจฟอนต์อื่น ๆ ที่อาจนำมาเพิ่มได้ เช่น thaifonts-arundina หรือแม้กระทั่ง ฟอนต์ชุดสารบรรณ ที่กำลังจะผลักดันกันต่อไป ซึ่งการใช้วิธีเดิมจะไม่สะดวกอีกต่อไปแล้ว สมควรที่จะแยกส่วนของฟอนต์ออกมาจาก thailatex จริง ๆ เสียที
ด้วยเหตุนี้ การเปลี่ยนแปลงครั้งนี้จึงควรรวมการย้ายฟอนต์ออกจาก thailatex เสียด้วย
แต่การย้ายฟอนต์ออกจาก thailatex ไม่ใช่แค่ย้ายตัวฟอนต์ออกมา แต่ยังมีกรรมวิธีการ build TFM และ virtual font ที่ใช้ LIGKERN ในการจัดเรียงสระและวรรณยุกต์อีกด้วย จึงต้องแยกกระบวนการเหล่านี้ออกมา ทำให้อยู่ในรูปทั่วไปเพื่อใช้กับฟอนต์ทั่วไป (ที่มีลักษณะตามข้อกำหนดบางอย่าง เช่น ใช้ glyph naming convention แบบ uniXXXX
) แล้วก็ต้องวางแผน transition สำหรับ Debian และการจัดการแพกเกจใน CTAN ควบคู่กันไปด้วย
หลังจากคิดออกมาหลาย ๆ แบบแล้ว ก็เลือกเอาแบบที่คิดว่าง่ายที่สุด ดังนี้:
- thaifonts-scalable:
- เพิ่ม configure option
--enable-texfonts
- คัดลอกกฎต่าง ๆ จาก thailatex มาใช้ชั่วคราวเพื่อ build ฟอนต์
- New upstream release (0.4.16)
- สร้าง deb โดยเปลี่ยนชื่อฟอนต์ตามข้อกำหนดใหม่
- เพิ่มแพกเกจ
fonts-latex-*
โดย Conflicts/Breaks thailatex (<< 0.4.5-3)
- เพิ่ม configure option
- thailatex:
- แยกเอาส่วนกระบวนการ build ฟอนต์ออกมา คือ:
- make rule สำหรับ build และติดตั้งฟอนต์ ซึ่งทางที่สะดวกที่สุดคือทำเป็น snippet สำหรับ include ใน Makefile.am แล้วก็เขียนแมโคร m4 เพื่อใช้กำหนดตัวแปรต่าง ๆ ให้กับกฎ แล้วให้แพกเกจฟอนต์นำไปใช้ใน configure.ac
- กฎ LIGKERN โดยติดตั้งลงในระบบเพื่อให้ make rule ดึงไปใช้
-
lthuni.enc
อาจติดตั้งรวมกับ make rule หรือกฎ LIGKERN หรือจะใช้จากในไดเรกทอรี TEXMF เลยก็ได้
- ตัดฟอนต์ออก
- New upstream release (0.4.6)
- สร้าง deb โดย Depends
fonts-latex-*
- แยกเอาส่วนกระบวนการ build ฟอนต์ออกมา คือ:
- thaifonts-scalable:
- เปลี่ยนกฎการ build ให้ไปใช้รูปทั่วไปที่ thailatex ติดตั้งไว้
- New upstream release (0.4.17)
- สร้าง deb โดย Build-Depends
thailatex (>= 0.4.6)
- CTAN upload: thailatex + thaifonts-scalable
- แพกเกจฟอนต์อื่น:
- เพิ่ม configure option
--enable-tex-fonts
เหมือน thaifonts-scalable - New upstream release
- สร้าง deb โดย Build-Depends
thailatex (>= 0.4.6)
- CTAN upload
- เพิ่ม configure option
บันทึกแผนงานไว้ก่อนครับ เดี๋ยวทยอยทำ
ป้ายกำกับ: debian, latex, thaifonts-scalable
1 ความเห็น:
ณ 3 พฤศจิกายน 2554 เวลา 23:40 , Kobkrit แถลง…
สู้ๆครับ
แสดงความเห็น (มีการกลั่นกรองสำหรับ blog ที่เก่ากว่า 14 วัน)
<< กลับหน้าแรก