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

อัดรูปดิจิตอล ทำสมุดภาพของคุณเอง
รอรับได้. ท่องเที่ยว แต่งงาน ฯลฯ

www.tanabutr.co.th/photobook


ว่าด้วยเรื่องติดตั้งฟอนต์ภาษาไทยใน 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 ครับ. ใช้ได้เลยระดับหนึ่ง.

Comments: blogger