การติดตั้งฟอนต์เพิ่มเติมสำหรับลาเทกซ์ในเดเบียน

ต่อจากคำถามก่อนหน้านะครับ ผมติดตั้งฟอนต์ ttf ลงในระบบได้เรียบร้อย ทดลองโดยใช้ Open Office ก็สามารถเรียกใช้อักษร angsima ได้

ขั้นตอนต่อไปก็คือการติดตั้งฟอนต์ ttf เหล่านี้ลงในระบบของ LaTeX ซึ่งมีคำแนะนำอยู่ที่ http://groups.yahoo.com/group/tlwg/message/37370

ผมทดลองทำตามดู พบปัญหานิดหน่อย และได้ลองแก้ไขไปตามความรู้ที่มีดังต่อไปนี้ครับ

1. ในแฟ้ม makefonts.sh ผมแก้ไขบรรทัดแรกให้เป็น
#!/bin/bash

2. ในแฟ้ม makefonts.sh ผมแก้ไขบรรทัดที่ 61 จาก
- cat thai.map >> /usr/share/texmf/dvips/config/thai.map เป็น
- cat thai.map >> /usr/share/texmf/fonts/map/dvips/thai/thai.map
โดยดูจาก synaptic ว่า thailatex ติดตั้งแฟ้ม thai.map ไว้ที่ใด

3. ขอเสียมารยาม แก้ชื่อแฟ้มของอังสิมาเป็น angsa.ttf angsai.ttf angsab.ttf และ angsaz.ttf เพื่อการทดลองก่อน ถ้าทำได้และถ้าเข้าใจสคริปต์ทั้งหมดดีพอแล้ว จะเปลี่ยนชื่อคืนเป็น angsima.ttf ครับ

การรันสคริปต์ไม่มีปัญหาใด ๆ แม้แต่การคอมไพล์เอกสารก็ดูเหมือนจะไม่มีปัญหาเช่นกัน ข้างล่างนี้เป็น output เฉพาะส่วนที่เกี่ยวกับฟอนต์จากการสั่ง latex testangsana.tex ครับ

Loading the definitions for the Thai font encoding
(/usr/share/texmf/tex/generic/babel/lthenc.def))) (./testangsana.aux
(./lthangsa.fd)

LaTeX Font Warning: Font shape `LTH/angsa/m/n' will be
(Font) scaled to size 15.0pt on input line 2.

) (/usr/share/texmf/tex/generic/babel/lthnorasi.fd) [1] (./testangsana.aux

LaTeX Font Warning: Font shape `OT1/angsa/m/n' undefined
(Font) using `OT1/cmr/m/n' instead on input line 2.

)

ปัญหาเกิดตอนจะแสดงผลครับ ไม่ว่าจะเป็น xdvi dvips หรือ dvipdf จะไม่สามารถแสดงผลได้ และจะแจ้งเตือนให้ทราบว่า ไม่พบไฟล์ zangsa ดังนี้ครับ

# dvipdf testangsana.dvi testangsana.pdf
dvips: Font zangsa not found, using cmr10 instead.
dvips: Checksum mismatch in font zangsa
dvips: ! invalid char 192 from font zangsa

ผมตรวจสอบจากสคริปต์ พบว่าชื่อแฟ้ม zangsa นี้จะเป็นแฟ้มประเภท tfm คือ zangsa.tfm และพวกเท่านั้น ส่วนแฟ้มนามสกุลอื่นเช่น vf หรือ afm จะไม่มีตัว z นำหน้าเลย

เปิดดูแฟ้ม font.map ที่สคริปต์สร้างขึ้นพบข้อความ

zangsab Angsima-Bold " LTHEncoding ReEncodeFont " <lthuni.enc
zangsai Angsima-Oblique " LTHEncoding ReEncodeFont " <lthuni.enc
zangsa Angsima " LTHEncoding ReEncodeFont " <lthuni.enc
zangsaz Angsima-BoldOblique " LTHEncoding ReEncodeFont " <lthuni.enc

นี่คือข้อมูลทั้งหมดที่พยายามทำความเข้าใจและสืบค้นออกมาได้ครับ

คำถามโดยสรุปก็คือ ผมควรทำอย่างไรต่อไปจึงจะใช้ฟอนต์ ttf ใหม่ใน LaTeX ได้ครับ

ได้สั่ง update-updmap (โดยสิทธิ์ root) แล้วหรือยังครับ?

ตอนแรกไม่ได้ลองครับ คำสั่งสุดท้ายในสคริปต์คือ /usr/bin/updmap
ผมเพิ่งลองสั่ง update-updmap ด้วยสิทธิ์ root เมื่อสักครู่ ยังมีปัญหาเหมือนเดิม

มีอีกอย่างหนึ่งที่ผมลองแก้ดู คือ ในแฟ้ม thai.map จะมีบรรทัดอย่างนี้อยู่คือ

rwaree_o Waree-Oblique " LTHEncoding ReEncodeFont " <lthuni.enc <waree_o.pfb
zangsab Angsima-Bold " LTHEncoding ReEncodeFont " <lthuni.enc <<angsab.pfb

ผมสังเกตว่าเครื่องหมาย < ในบรรทัดที่เป็น zangsa มีมากกว่าบรรทัดของ rwaree ผมเลยถือวิสาสะลบออก แล้วก็รัน updmap ใหม่ แต่ลองแล้วผลลัพธ์ก็ไม่เปลี่ยนแปลงครับ

วิธีที่ผมลองอาจไม่เป็นระบบเท่าไรนะครับ

หลังจากลอง update-updmap แล้ว ผมอ่าน manpage เห็นว่ามี update-language และ update-fmtutil ด้วย เลยลองสั่งทั้งหมดเลย

ปรากฏว่าตอนนี้ใช้ได้แล้วครับ ถึงจะไม่รู้ว่าทำไมใช้ได้แล้วก็ตาม

ขอบคุณมากสำหรับคำชี้แนะ

จากนี้ผมตั้งใจว่าจะลองทำใหม่ตั้งแต่ต้นเลย จะได้รู้ว่าอะไรทำให้มันใช้ได้กันแน่
แต่ก่อนจะลอง ขอคำแนะนำอีกนิดนึงครับ ว่าในรายการที่ผมเปลี่ยนแปลงข้างต้น 3 รายการคือ
1. บรรทัดแรกของสคริปต์
2. ตำแหน่งของแฟ้ม thai.map และ
3. การลบเครื่องหมาย < ที่ดูเหมือนจะเกินมาในแฟ้ม thai.map
มีรายการไหนที่ไม่ควรเปลี่ยนแปลงบ้างครับ

Creative Commons License ลิขสิทธิ์ของบทความเป็นของเจ้าของบทความแต่ละชิ้น
ผลงานนี้ ใช้สัญญาอนุญาตของครีเอทีฟคอมมอนส์แบบ แสดงที่มา-อนุญาตแบบเดียวกัน 3.0 ที่ยังไม่ได้ปรับแก้