วันพุธที่ 30 มีนาคม พ.ศ. 2548

ติดตั้งฟอนต์ภาษาไทยใน Debian

ต่อจากตอนที่แล้ว
ว่าด้วยเรื่องติดตั้งฟอนต์ภาษาไทยใน Debian. การติดตั้งฟอนต์มีหลายวิธี, เวลาบอกว่าจะติดตั้งฟอนต์ควรจะนึกถึงเสมอว่าเรากำลังจะติดตั้งฟอนต์ด้วยวิธีไหน, ฟอนต์อะไร (บิตแมปหรือทรูไทป์), ใช้วิธีแบบไหน, จะได้ไม่สับสนครับ. วิธีติดตั้งฟอนต์อาจแบ่งได้เป็น
  • เอาฟอนต์มาติดตั้งเอง
  • ติดตั้งจากแพ็กเกจ
  • ติดตั้งในระบบโดยรวม (system-wide)
  • ติดตั้งใช้เฉพาะบุคคล
ในที่นี้จะพูดถึงการติดตั้งในระบบโดยรวมโดยจากแพ็กเกจด้วย apt ครับ.

เกี่ยวกับระบบจัดการแพ็กเกจ

ระบบจัดการแพ็กเกจพื้นฐานใน Debian ได้แก่ dpkg (Debian package) และระบบจัดการแพ็กเกจชั้นสูงได้แก่ apt (Advanced Package Tool). ระบบ apt สามารถดาว์นโหลดและติดตั้งแพ็กเกจโดยอัตโนมัติผ่านทางอินเทอร์เน็ตโดยอาศัยข้อมูลจากไฟล์ /etc/apt/sources.list. ในไฟล์นั้นจะระบุ URL ของไซต์ที่มีแพ็กเกจของ Debian (.deb). เวลาใช้คำสั่ง apt-get ก็จะไปหาแพ็กเกจที่ต้องการ, ดาว์นโหลดแพ็กเกจที่เกี่ยวข้องและจำเป็น (จัดการเรื่อง dependency ของแพ็กเกจ), ติดตั้งให้โดยอัตโนมัติ. อันนี้เป็นเหตุผลหนึ่งในหลายๆอย่างที่ Debian ได้รับความนิยมอย่างสูง.

ในระบบ Debian จะมีแพ็กเกจที่เกี่ยวกับภาษาไทยที่นำเข้าไปใน Debian โดยคุณชนพอยู่แล้ว. เราสามารถสั่งคำสั่ง apt-get install thai-system เพื่อติดตั้งแพ็กเกจที่เกี่ยวกับภาษาไทยทั้งหมดได้เลย. แต่ในที่นี้จะไม่ทำอย่างนี้เพราะแพ็กเกจที่อยู่ในนั้นบางอันเก่าแล้ว. แผนสำหรับการลงแพ็กเกจที่เกี่ยวกับภาษาไทยที่จะทำเป็นแบบนี้ครับ.

  • ใช้ repository จาก LTN
  • ติดตั้งแพ็กเกจเท่าที่จำเป็นไม่ใช้ thai-system. เลือกแพ็กเกจทั้งจาก repository ของ Debian และ LTN.
  • ปรับแต่งแป้นพิมพ์จาก preference ของ GNOME.

ก่อนอื่นมาดูว่ามีแพ็กเกจอะไรบ้างที่เกี่ยวกับภาษาไทย.

# apt-cache search thai
aterm-ml - Afterstep XVT - a VT102 emulator for the X window system
cttex - Thai word separator for Thai TeTeX/LaTeX and HTML
emacs-intl-fonts - Fonts to allow multi-lingual PostScript printing from Emacs
koffice-i18n-th - Thai (th) translations for KOffice
language-env - simple configuration tool for native language environment
libtext-wrapi18n-perl - internationalized substitute of Text::Wrap
libtextwrap-dev - text-wrapping library with i18n - development files
libtextwrap1 - text-wrapping library with i18n - runtime
mlterm - MultiLingual TERMinal
mlterm-tiny - MultiLingual TERMinal, tiny version
nonlock - Thai (and other) Keyboard swithcher using XKB
nxml-mode - Emacs mode for editing XML documents using RELAX NG schemas
openoffice.org-l10n-th - Thai language package for OpenOffice.org
swath - Thai word segmentation program
thai-system - A meta package for Thai environment under X11
thailatex - Thai Latex package
trang - Multi-format XML schema converter based on RELAX NG
xfonts-efont-unicode - /efont/ Unicode fonts for X which cover various scripts
xfonts-efont-unicode-ib - /efont/ Unicode fonts for X (italic and bold)
xfonts-intl-asian - International fonts for X -- Asian
xfonts-thai - A collection of thai fonts for X
xfonts-thai-etl - Thai etl fonts for X
xfonts-thai-manop - Dr.Manop Wongsaisuwan's bitmap fonts for X
xfonts-thai-nectec - Thai fixed fonts for X from Nectec
xfonts-thai-ttf - Thai TrueType fonts from NECTEC
xfonts-thai-vor - Voradesh Yenbut bitmap fonts for X
xiterm+thai - x-terminal program with Thai languague support
จะเห็นว่ามีแพ็กเกจหลายตัวที่เกี่ยวกับภาษาไทยอยู่แล้ว. บางตัวก็เป็นแพ็กเกจที่เราๆท่านๆใน TLWG สร้างไว้. บางแพ็กเกจก็เป็นแพ็กเกจของโปรแกรมที่สนับสนุนภาษานานาชาติอยู่แล้ว. ในที่นี้จะติดตั้งแพ็กเกจ xfonts-thai ก่อน.

ก่อนอื่นดูว่าถ้าติดตั้งแพ็กเกจ xfonts-thai แล้วจะเกิดอะไรขึ้นโดยใช้ตัวเลือก -s (simulate) กับ apt-get.

# apt-get -s install xfonts-thai
หรือใช้คำสั่ง apt-cache ดูรายละเอียดเกี่ยวกับแพ็กเกจนั้น.
# apt-cache showpkg xfonts-thai
Package: xfonts-thai
Versions:
20040417(/var/lib/apt/lists/ftp.jp.debian.org_debian_dists_unstable_main_binary-i386_Packages)(/var/lib/dpkg/status)

Reverse Depends:
  xiterm+thai,xfonts-thai
  xfonts-thai-vor,xfonts-thai 0.2-1
  xfonts-thai-nectec,xfonts-thai 0.2-1
  xfonts-thai-manop,xfonts-thai 0.2-1
  xfonts-thai-etl,xfonts-thai 0.2-1
  thai-system,xfonts-thai
Dependencies:
20040417 - xfonts-thai-nectec (0 (null)) xfonts-thai-etl (0 (null)) xfonts-thai-manop
 (0 (null)) ttf-freefont (0 (null)) xserver (16 (null)) xfs (0 (null)) 
xfonts-intl-asian (0 (null)) xfonts-thai-vor (0 (null))
Provides:
20040417 -
Reverse Provides:
ก็จะทำให้รู้ว่า xfonts-thai จะติดตั้งแพ็กเกจอื่นๆให้ด้วยเช่น xfonts-thai-nectec, ttf-freefont ฯลฯ.

ติดตั้งฟอนต์บิตแมป

แล้วก็ได้เวลาติดตั้งจริงๆ.
# apt-get install xfonts-thai
ระบบฟอนต์บิตแมปที่ผมใช้อยู่ไม่ได้ใช้ผ่าน X ฟอนต์เซิร์ฟเวอร์, ถ้าจะทำให้ X เซิร์ฟเวอร์รู้จักฟอนต์ที่เพิ่งติดตั้งใหม่ก็สั่งคำสั่ง
$ xset fp rehash
แล้วลองดูว่าเห็นฟอนต์ใหม่ที่ติดตั้งไปแล้วหรือไม่ด้วยคำสั่ง xlsfonts ต่อไป.
$ xlsfonts | grep nectec
สำหรับคนที่ใช้ฟอนต์เซิร์ฟเวอร์ (xfs) ก็รีสตาร์ทเซิร์ฟเวอร์ใหม่เช่น
# /etc/init.d/xfs restart
อยากจะดูว่าฟอนต์มีรูปร่างอย่างไรก็ใช้คำสั่ง xfd ครับ.
$ xfd -fn nectec18

ในแพ็กเกจ xfonts-thai จะติดตั้ง ttf-freefont ให้ด้วย. แพ็กเกจนี้มีชื่อเป็นทางการคือ Free UCS Outline Fonts เป็นฟอนต์แบบทรูไทป์ยูนิโค้ดและมีส่วนที่เป็นภาษาไทยด้วย. ส่วนที่เป็นภาษาไทยจริงๆแล้วคือฟอนต์นรสีห์ (ฟอนต์แห่งชาติ) ที่ Yannis HARALAMBOUS เป็นคนสร้างไว้ครับ. แต่อย่างไรก็ตามเราจะติดตั้งฟอนต์นรสีห์ที่ได้รับการปรับปรุ่งแล้วจาก LTN ครับ. ฟอนต์รุ่นใหม่ได้รับการแก้ไขโดยคุณเทพและคุณชนพ. เอาไว้ต่อคราวหน้าครับ.

ตัวอย่างฟอนต์ FreeSerif ที่มากับ ttf-freefont ครับ. ใช้ได้เลยระดับหนึ่ง.

5 ความคิดเห็น:

fat dog father กล่าวว่า...

คนอื่นๆ ไม่ทำอย่าง Poolap บ้างอ่ะ

bact' กล่าวว่า...

แต้งกิ้วครับ สำหรับลิงก์ไปโฮมเพจของคุณ Yannis

ไม่ระบุชื่อ กล่าวว่า...

ขอบคุณ คุณพูลลาภมากเลยค่ะตอนนี้กำลังมีความสงสัยเรื่องนี้พอดี เข้ามาอ่านแล้วช่วยในเรื่องความเข้ามากเลย ทำให้ไม่ต้องจำอย่างเดียว ปลามองว่าเรื่องนี้เป็นเล็กน้อยมากที่คิดว่าไม่น่าสนใจ แต่คุณพูลลาภให้ความสำคัญ ท่านช่างเป็นคนที่มีความรอบคอบ:-)

อันธิฌา

ไม่ระบุชื่อ กล่าวว่า...

หวัดดีครับ ไม่ทราบว่ามีข้อมูลการ set ให้ redhat enterprise as 3 ใช้งานภาษาไทยทั้งการ input และ print ออกมาครับ ต้องการมาก ๆ ครับ ขอบคุณครับ

poonlap กล่าวว่า...

สำหรับ Red Hat AS นี่ผมไม่แน่ใจเพราะไม่ได้ใช้ ถ้าเป็นสภาพแวดล้อมเดสก์ท็อป GNOME ก็ใช้ภาษาไทยได้อยู่แล้วโดยเพิ่มฟอนต์ ปรับแต่แป้นพิมพ์. ลองดูที่ http://linux.thai.net/plone/TLWG/TE หรือ http://www.google.com/search?q=site%3Apoonlap.blogspot.com%20tlug หรือ http://linux.thai.net/~sfalpha/thai-howto/Thai-HOWTO.html ดูนะครับ.