The Linux Thai-HOWTO

พัฒน์นนท์ ดวงดารา

เทพพิทักษ์ การุญบุญญานันท์

พูลลาภ วีระธนาบุตร

บันทึกรุ่น
รุ่นที่ 0.4 1998-08-04 poon-v
ZzzThai [en]
รุ่นที่ 1.0 1998-08-04 poon-v
ZzzThai [th]
รุ่นที่ 2.0-pre8b 2002-01-16 sf_alpha
TLWG [th] Pre-Release 8a (Draft)

Abstract

This document describes how to use Thai language. This will cover about setting Thai in many applications, for both console and X window. This document also provides some information about Thai implementation for developers. (Thai Language)

บทคัดย่อ

เอกสารฉบับนี้จะแนะนำเกี่ยวกับการใช้ภาษาไทยบน Linux เนื้อหาของเอกสารฉบับนี้จะประกอบด้วยวิธีการ กำหนดค่าภาษาไทยในโปรแกรมต่าง ๆ บน Linux ทั้งใน Console และ X window และเอกสารฉบับนี้ยัง มีข้อมูลเกี่ยวกับ ระบบและการใช้งานภาษาไทย สำหรับนักพัฒนาและผู้ที้สนใจด้วย.


สารบัญ

1. บทนำ
1.1. Copyrights Information
1.2. Disclaimer
1.3. ประวัติความเป็นมา
1.4. ผู้ที่เกี่ยวข้อง
1.5. การตอบรับ
1.6. สิ่งที่คาดว่าจะมีในรุ่นต่อไป
2. ข้อมูลเกี่ยวกับภาษาไทยบนคอมพิวเตอร์
2.1. มาตรฐานของรหัสตัวอักษรภาษาไทย
2.1.1. TIS-620
2.1.2. ISO8859-11
2.1.3. ISO-10646-1
2.2. แป้นพิมพ์ภาษาไทย
2.2.1. TIS-820
2.3. ภาษาไทยสำหรับเครื่องพิมพ์
2.4. การใช้งานและจัดการข้อความภาษาไทย (วทท 2.0)
2.5. รูปแบบข้อมูลสำหรับภาษาไทย (Thai Locale)
2.5.1. ความเป็นสากล (Internationalization/i18n)
2.5.2. การปรับตัวให้เข้ากับท้องถิ่น (Localization/l10n)
2.5.3. รูปแบบข้อมูลท้องถิ่น (Locale)
2.5.4. รูปแบบข้อมูลท้องถิ่นภาษาไทย (Thai Locale)
2.6. ข้อมูลอื่น ๆ
3. ภาษาไทยบน Linux Distributions ต่าง ๆ
3.1. Linux Distribution ที่สนับสนุนภาษาไทย
3.1.1. Linux-TLE
3.1.2. Ziif Desktop Linux
3.1.3. Kaiwal Linux
3.1.4. Burapha Linux
3.1.5. Mandrake Linux 8.1
3.1.6. Linux-SIS
3.2. Thai Extension สำหรับ Linux Distribution หลัก ๆ
3.3. ภาษาไืทยบน Linux Distributions อื่น ๆ
4. การใช้งานภาษาไทยบน Linux Console
4.1. Linux Console Tools
4.2. การแสดงผลและแบบตัวอักษร
4.2.1. แบบตัวอักษร (Font) และ ACM
4.2.2. การใช้งานแบบตัวอักษร และ ACM
4.2.3. การแสดงผลในรูปแบบข้อมูลสำหรับภาษาไทย
4.3. การรับข้อมูล (แป้นพิมพ์)
4.3.1. Keymaps
4.3.2. การติดตั้งและใช้งาน Keymaps
4.4. การพิมพ์ออกทางเครื่องพิมพ์์
4.5. การใช้งาน Unicode
4.6. โปรแกรมบน Console
4.6.1. VIm (Vi IMproved)
4.6.2. Emacs
4.6.3. PINE
4.7. คำแนะนำเพิ่มเติม
4.7.1. การแก้ไข ไฟล์สคริิปต์สำรับกำหนดค่าบน Linux Console สำหรับบาง distribution
5. การใช้งานภาษาไทยบน X-Windows
5.1. การแสดงผลและแบบตัวอักษร
5.1.1. การเตรียมและติดตั้ง แบบตัวอักษร (Font) ชนิด ต่าง ๆ
5.1.2. การกำหนดค่าแบบตัวอักษร (Font) สำหรับระบบที้ใช้ X Font Server (XFS)
5.1.3. การกำหนดค่าแบบตัวอักษร (Font) สำหรับระบบที่ ไม่ใ้ด้ใช้ X Font Server (XFS)
5.1.4. การกำหนดค่าแบบตัวอักษรให้กับ FreeType Module
5.1.5. การแสดงผลในรูปแบบข้อมูลสำหรับภาษาไทย
5.2. การรับข้อมูล (แป้นพิมพ์)
5.2.1. XKB (X Keyboard Map)
5.2.2. XIM (X Input Method)
5.3. โปรแกรมบน X Windows
5.3.1. xiterm+thai (X-International-Terminal)
5.3.2. โปรแกรม Netscape และ Mozilla
5.3.3. Lyx (LaTeX Editor)
5.4. K-Desktop Environment (KDE) และโปรแกรมสำหรับ KDE
5.4.1. ทั่วไป (KDE Control Center)
5.4.2. โปรแกรม Konqueror
5.4.3. โปรแกรมอื่น ๆ สำหรับ KDE
5.5. Window Manager ต่าง ๆ
5.5.1. Sawfish window manager
5.5.2. WindowMaker
5.6. GNome และโปรแกรมสำหรับ Gnome
5.6.1. ทั่วไป (GNome Control Center)
5.6.2. Abiword
5.7. คำแนะนำเพิ่มเติม
5.7.1. การเปลี่ยนรหัสตัวอักษรเมื่ออ่านข้อความไม่ออก สำหรับ Browser และ Mail & News Client
6. การพัฒนาโปรแกรมบน Linux ที่สนับสนุนภาษาไทย
6.1. มาตรฐานต่าง ๆ และการใช้งานภาษาไทย
6.2. Thai Locale บน GNU C Library
6.3. LibThai
7. ข้อมูลอื่น ๆ
7.1. การใช้งานภาษาไทยสำหรับ LaTeX
7.1.1. การใช้ภาษาไทยในเอกสาร LaTeX
7.1.2. การตัดคำภาษาไทย ก่อนนำเอกสาร LaTex ไปใช้งาน
7.1.3. การนำเอกสาร Latex ไปใช้งาน (Compile เอกสารสำหรับรูปแบบต่าง ๆ)
7.2. Thai Linux Working Group
7.3. ลิงค์เกี่ยวกับ Linux ของไทย
7.4. ลิงค์อื่น ๆ ที่เกี่ยวข้อง
8. ถาม-ตอบ (FAQ)
บรรณานุกรม

เนื่องจาก Thai-HOWTO ไม่ได้ปรับปรุงมาหลายปีแล้ว (ราว ๆ 3 ปีกว่าขณะเขียนอยู่นี้) และการพัฒนาเกี่ยวกับภาษาไทย บน Linux ได้ก้่าวหน้าไปมากแล้ว แต่ยังแทบไม่มี เอกสาร คำแนะนำหรือคู่มือ ออกมาเลย ผมจึงได้เอา Thai - HOWTO มาปัดฝุ่นซะใหม่

สำหรับรุ่นของ Linux Thai-HOWTO ฉบับนี้ จะเป็น ฉบับร่าง Linux Thai-HOWTO รุ่นต่อ ๆ ไปก็สามารถติดตามได้ที่ ftp://ftp.nectec.or.th/pub/ThaiLinux/cvs/doc/thai-howto สำหรับ Draft และรุ่นก่อนหน้า สามารถหาได้จาก Anonymous CVS ของ linux.thai.net ใน /docs/thai-howto ครับ

เดิม Linux Thai-HOWTO นั้น ดูแลและเีขียนโดย พูลลาภ วีระธนาบุตร <poon-v@fedu.uec.ac.jp> ซึ่งแผยแพร่ ทาง Zzzthai (“สื่อไืืืทย”) แต่เนื่องจากไม่มีการ ปรับปรุงมานานมากแล้ว ผมจึง เอา Thai-HOWTO มาปัดฝุ่นใหม่ เพื่อให้เข้ากับพัฒนาการของภาษาไทย บน Linux ซึ่งได้ก้่าวหน้าไปมากแล้

การรัปปรุงครั้งนี้แทบจะเป็นการเขียนใหม่ เพราะมีข้อมูลใหม่เพิ่มเข้ามาไม่ต่ำกว่า 200% และยังได้เปลี่ยนจาก ระบบ Linuxdoc (SGML) เดิม มาเป็น DocBook (XML) ซึ่งทันสมัยและดีกว่า (แต่ก็ซับซ้อนกว่ามาก) และต้องขออภัย ถ้ามีข้อผิดพลาดบนเอกสารนี้

จริง ๆ แล้วมี Thai HOWTO อีกฉบับ ของคุณ เทพพิทักษ์ การุญบุญญานันท์ <thep@links.nectec.or.th> ซึ่งทำขึ้นมาระหว่างพัฒนา TE และ Linux TLE ซึ่งเป็น HOWTO ฉบับจิ๋วซึ่งบอกเกี่ยวกับการกำหนดค่า ภาษาไทย สำหรับ Linux คร่าว ๆ ซึ่งก็เป็นส่วนหนึ่งของ HOWTO ฉบับนี้ ในภายหลัง

Linux Thai-HOWTO ฉบับนี้ี่ เขียนโดย พัฒน์นนท์ ดวงดารา<sf_alpha@yahoo.com> ซึ่งผมไม่ได้เขียนคนเดียว ผมก็คงต้องยกให้ คุณ เทพพิทักษ์ การุญบุญญานันท์ <thep@links.nectec.or.th> เป็นคนเขียนด้วยอีกคน เพราะใช้ข้อมูลของเขา ใน Thai-HOWTO ฉบับจิ๋ว เดิม และเป็นคนที่ช่วยตรวจสอบ ด้วยซึ่ง Thai HOWTO ฉบับนี้จะได้รับการเผยแพร่บน Thai Linux Working Group : Documentation ครับ ...

สุดท้ายต้องขอบคุณ Portuguese HOWTO ถึงแม้จะอ่านไม่ออกแต่มันก็เป็น แนวทางในการลำดับ หัวข้อ และ ตอน ต่าง ๆ ของ HOWTO ฉบับนี้ครับ

$Id: Thai-HOWTO.html,v 1.5 2002-03-05 17:12:47 sf_alpha Exp $

ส่วนนี้จะพูดถึง มาตรฐานเกี่ยวกับ ภาษาไทยบนคอมพิวเตอร์ รวมทั้งการใช้งานข้อมูลภาษาไทย และ การแสดงข้อมูลให้เหมาะสมกับท้องถิ่น (Localization) สำหรับภาษาไทยด้วย

TIS-620 หรือ มอก. 620 หรือที่เรียก กันทั่วไปว่า รหัส สมอ. เป็นมาตรฐานของรหัสตัวอักษร (Charset Code) ที่ใช้บนคอมพิวเตอร์ ซึ่งกำหนดโดยสำนักงานมาตรฐานอุตสาหกรรม หรือ สมอ. (Thai Indrustial Standards Institute [TISI]). TIS-620 เป็นรหัสตัวอักษรที่ต่อเพิ่มจากรหัสตัวอักษรของ ISO-646 ซึ่งเป็น รหัสตัวอักษรแบบ 7 bit คล้าย ๆ ASCII

มาตรฐาน TIS-620 ตัวแรกคือ TIS-620 2529 (1986) ซึ่งได้มีการแก้ไขเพิ่มเติมอีก ในปี 2533 เป็น TIS-620 2533 (1990) เพื่อเพิ่มเนื้อหาบางส่วนให้สอดคล้องกับ ISO/IEC 2022 แต่ตารางรหัสตัวอักษรทั้งหมดยังคงเหมือนเดิม

ปัจจุบัน GNU C library (GLIBC) ได้สนับสนุนมาตรฐาน TIS-620 ในการใช้งาน สำหรับกับท้องถิ่นประเทศไทยและภาษาไทย ภายใต้ชื่อ th_TH (th_TH.TIS-620)

โปรแกรมในปัจจุบันได้เริ่มออกแบบให้สามารถใช้ได้หลายภาษา (multilingual) โดยใช้ มาตรฐานของตัวอักษร ของ ISO/IEC 10646 (Universal Multi-octet Coded Character Set - UCS) ซึ่งเป็นระบบสำหรับเก็บข้อมูลตัวอักษรสากลในระบบ 8bit (หรือ byte) ซึ่งอาจอยู่ในรูป 8 bit หลาย ๆ ตัวต่อกัน และรู้จักกันดีในชื่อ Unicode UCS หรือ UTF-8

Unicode Consortium ได้รับการก่อตั้งขึ้นมา ก่อนที่ ISO/IEC จะกำหนดมาตรฐาน ISO/IEC 10646 นี้ขึ้นสำหรับเป็นมาตรฐานสากล ในปัจจุบัน Unicode Consortium เป็นคณะกรรมการ และเป็นผู้ลงคะแนนร่วมกับผู้แทนจากหลาย ๆ ประเทศสมาชิก ในการร่างและกำหนดมาตรฐาน เกี่ยวกับ Unicode ด้วย

สำหรับข้อมูลอื่น ๆ ที่เกียวกับ Unicode หรือ UCS บนลินุกซ์ สามารถอ่านได้จาก UTF-8 and Unicode FAQ for Unix/Linux ครับ

สำหรับรหัสตัวอักษรต่าง ๆ ของภาษาไทยบน Unicode และ ISO/IEC 10646-1 นั้น ได้ถูกจัดให้ อยู่ในลำดับที่ 0x0E00-0x0E7F ซึ่งมีการเรียงลำดับตัวอักษรเหมือนกับในมาตรฐาน TIS-620 ในลำดับ 0xA0-0xFF ครับ

สำหรับข้อมูลและรายละเอียดอื่น ๆ เกี่ยบกับรหัสตัวอักษรภาษาไืทย และมาตรฐานของชุดตัว อักษรไทยอื่น ๆ สามารถอ่านได้จาก An annotated reference to the Thai implementations ของ ตฤณ ตัณฑเศรษฐี ครับ และยังมีข้อมูลอื่น ๆ เพิ่มเติ่มอีกในหัวข้อ ข้อมูลอื่น ๆ ด้านล่างครับ

TIS-820 หรือ มอก. 820 เป็นมาตรฐานของแป้นพิมพ์ภาษาไทย ซึ่งกำหนดโดย สำนักงานมาตรฐานอุตสาหกรรม (สมอ.) สำหรับมาตรฐานในปัจจุบับคือ TIS-820 2538 (1995)

มาตรฐาน TIS-820 ตัวแรกคือ is TIS-820 2531 (1988) รูปแบบของแป้นพิมพ์ ใน TIS-820 2531 จะเหมือนกับแป้นพิมพ์แบบเกษมณี ที่ใช้กันบนพิมพ์ดีดภาษาไทย ต่อมา มีการกำหนดมาตรฐาน การใช้งานและรับข้อมูลภาษาไทย ซึ่งกำหนดโดย Thai API Consortium (TAPIC) ซึ่งมีชื่อว่า WTT หรือ วทท. (ย่อมาจาก วิ่งทุกที่) ซึ่งได้มีการกำหนดส่วนเพิ่มเติมให้กับ TIS-820 2531เพื่อให้ปุ่มกดบางปุ่ม ใช้งานร่วมกับภาษาละติดได้ หลังจากมีการประกาศมาตรฐาน WTT 2.0 แป้นพิมพ์ ของ TIS-820 2531 ที่มีการ เพิ่มเติมตาม วทท 2.0 ก็ได้รับการกำหนดเป็นมาตรฐานใน TIS-820 2536 (1993)

ในปี 2538 มีการปรับปรุง TIS-820 ใหม่ เป็น TIS-820 2538 ซึ่งเพิ่มเติมให้สามารถพิมพ์ตัวอักษรพิเศษบางตัวได้ และได้ย้ายัวอักษรบางตัวด้วย แต่ อย่างไรก็ตาม แป้นพิมพ์ตามาตรฐาน TIS-820 2538 ยังคงเหมือนของเดิมเกือบทั้งหมด และมีการกำหนดมาตรฐานบางอย่างให้รองรับ วทท 2.0 โดย ตัวบอก ตัวอักษรละติด กับ ไทย ต้องอยู่บนปุ่มกดและใช้สีต่างกัน

แป้นพิมพ์ของ TIS-820 นั้นยังคงใช้รูปแบบการวางปุ่มกดแบบ แป้นพิมพ์แบบเกษมณี เพียงแต่มีการแก้ไขเล็กน้อยเท่านั้น แป้นพิมพ์ของคอมพิวเตอร์ที่เป็น TIS-820 ในปัจจุบัน จึงยังคงเรียกว่า แป้นพิมพ์แบบเกษมณี ส่วนอีกแบบคือปัตตะโชตินั้นไม่ได้รับความนิยม และแทบจะไม่มีใช้ในปัจจุบัน ทั้งที่ริล้วแบบปัตตะโตินั้นพิมพ์ได้ง่ายกว่า และสิ้นเปลืองแรงน้อยกว่าเพราะสร้างขึ้นจากการวิจัยการใช้งานของนิ้วบนแป้นพิมพ์

สำหรับข้อมูลอื่น ๆ เพิ่มเติม รวมทั้งรูปแบบแป้นพิมพ์อื่น ๆ สามารถอ่านได้จาก http://www.nectec.or.th/it-standards/keyboard_layout/thai-key.htm ครับ

Locale (อ่านว่า "โลแคล") หรือ รูปแบบข้อมูลท้องถิ่น เป็นส่วนหนึ่งของระบบ Internationalization (i18n) และ Localization (l10n) เพื่อให้โปรแกรมต่าง ๆ สามารถที่จะแสดง และจัดการข้อมูลในแต่ละภาษาและท้องถิ่น ได้อย่างถูกต้องเหมาะสม Locale ต่าง ๆ ของแต่ละภาษาและท้องถิ่นจะมีลักษณะเป็น ส่วน ๆ ซึ่งสามารถเพิ่มเข้าไปในระบบ Localization ต่าง ๆ ได้ และแต่ละ Locale จะเป็น อิสระจากกัน รูปแบบข้อมูลท้องถิ่นอาจจะรวมไปถึงข้อมูลสำหรับจัดการข้อความที่ซับซ้อน เช่นการจัดเรียง การตัดคำ และอื่น ๆ

ระบบ Localization ใน Linux ส่วนใหญ่จะอาศัยระบบหลัก ๆ คือ POSIX Locale ซึ่งอยู่ใน C Library เช่น GLIBC ซึ่งใน POSIX Locale การทำงานจะใช้ค่าตัวแปรระบบ (LC_...) ซึ่ง จะประกอบด้วยส่วนต่าง ๆ ดังนี้

  • LANG ใช้สำหรับกำหนด Locale ทั้งหมด (มีผลให้มีการเปลี่ยน Locale เฉพาะทั้งหมด) ซึ่งจะมีการกำหนดไว้ล่วงหน้า
  • LC_ALL ใช้สำหรับกำหนด Locale ที่จะใช้งาน ในกรณีที่ Locale เฉพาะไม่มีการกำหนด
  • LC_COLLATE คือ Locale ที่จะใช้สำหรับจัดการเทียบตัวอักษร
  • LC_CTYPE คือ Locale ที่จะใช้สำหรับจำแนกตัวอักษร
  • LC_MONETARY คือ Locale ที่จะใช้สำหรับข้อมูลเกี่ยวกับเงินตรา
  • LC_NUMBERIC คือ Locale ที่จะใช้สำหรับแก้ไขตัวเลข
  • LC_TIME คือ Locale ที่จะใช้สำหรับข้อมูลวันที่และเวลา
  • LC_MESSAGE คือ Locale ที่จะใช้สำหรับข้อความต่าง ๆ
และยังมีส่วนของข้อมูล Locale อีกคือ
  • Charmap คือตารางข้อมูลของรหัสอักษร คือ TIS-620 2533
  • Repertoiremap คือตารางข้อมูลของรหัสอักษรภาษาไทย บนรหัส Unicode

อีกระบบที่นิยมใช้คือ ISO/IEC 14652 ซึ่งเป็นส่วนต่อขยายจาก POSIX LOCALE ซึ่งประกอบด้วย

  • LC_PAPER Locale ที่จะใช้สำหรับขนาดกระดาษ
  • LC_NAME คือ Locale ที่จะใช้สำหรับรูปแบบชื่อสกุล
  • LC_ADDRESS คือ Locale ที่จะใช้สำหรับที่อยู่
  • LC_TELEPHONE คือ Locale ที่จะใช้สำหรับโทรศัพท์
  • LC_MESUREMENT คือ Locale ที่จะใช้สำหรับการวัด
  • LC_VERSIONS คือ Locale ที่จะใช้สำหรับบอกรุ่นที่ของ Locale

สำหรับข้อมูลเกี่ยวกับ Thai Locale เพิ่มเติมสามารถดูได้ที่ http://www.links.nectec.or.th/~thep/th-locale/ โดยคุณ เทพพิทักษ์ การุณบุญญานันท์ (ซึ่งปัจจุบันเป็นผู้ ดูแล Thai Locale ทั้งใน POSIX และ ISO Locale ของ GLIBC ด้วย)

$Id: Thai-HOWTO.html,v 1.5 2002-03-05 17:12:47 sf_alpha Exp $

Linux Distribution ที่ออกแบบมาสำหรับภาษาไทย หรือออกแบบมาให้ใช้งานกับภาษาไทยได้ สำหรับการกำหนดค่าภาษาไทยและการใช้แบบตัวอักษรภาษาไทยใน Distribution ต่าง ๆ สามารถ ดูได้ในหัวข้อต่อ ๆ ไปของเอกสารนี้ และสำหรับ X-Windows สามารถดูข้อมูลเพิ่มเติมได้จาก เวบไซต์ http://www.linuxeasy.f2s.com ซึ่งจะมีคำอธิบายและรูปภาพประกอบสำหรับแต่ละ Distribution หลัก ๆ ด้วย

Linux-TLE (“ลินุกซ์ทะเล”) ชื่อเต็ม ๆ ของ Linux-TLE คือ Linux Thai Language Extensions Linux-TLE เดิมนั้นจะเป็น Linux Distribution ซึ่งได้รวม TE (Thai Extension) ไว้แล้ว เพื่อให้สามารถสนับ สนุนภาษาไทยได้ แต่ในรุ่นหลัง ๆ Linux-TLE จะถูกออกแบบมาเฉพาะสำหรับภาษาไทย ที่ออกแบบมาสำหรับ เดรื่องคอมพิวเตอร์ตั้งโต๊ะ (Desktop) เพื่อคนไทยโดยเฉพาะ ( ซึ่งก็คือ Linux-TLE 4.0 รุ่นล่าสุด ขณะเขียน HOWTO ฉบับนี้) Linux-TLE จะประกอบด้วยโปรแกรมมากมาย ที่สนับสนุนภาษาไทย และสามารถงานกับภาษาไทย ได้เกือบจะสมบูรณ์อีกด้วย

Linux-TLE ได้รับการพัฒนาโดยทีม Thai Linux Working Group โดยการสนับสนุนของ ศูนย์เทคโนโลยีอิเล็กทรอนิกส์และคอมพิวเตอร์แห่งชาติ หรือ เนคเทค (NECTEC - National Electronics and Computer Technology Center)

Linux-TLE สามารภ ดาวโหลดได้ที่ ftp://ftp.nectec.or.th/pub/thailinux/iso/ สำหรับข้อมูลอื่น ๆ และ รายละเอียดของ Linux-TLE รวมทั้งข้อมูลการ Update สามารถติดตามได้ที่ Thai Linux Working Group : Linux-TLE

ZiiF Desktop Linux เป็น Distribution อีกตัวหนึ่งที่ออกแบบสำหรับคนไทย และใช้ภาษาไทยได้เช่นกัน ซึ่งพัฒนาโดย บริษัท Zion Interface จำกัด รุ่นล่าสุด (ขณะเขียน Howto ฉบับนี้) คือ ZiiF Desktop 7.0

รายละเอียดเพิ่มเติมดูที่ http://www.ziif.com/ ครับ

ZiiF Desktop 7.0 เป็นระบบปฏิบัติการ Linux สำหรับ Desktop เพื่อคนไทยเวอร์ชั่นใหม่ที่ยังคงเน้น การใช้งานภาษาไทยกับเอกสาร งานพิมพ์ งานกราฟิค Internet Application, Multimedia และเกมส์ โดยมีวัตถุประสงค์ที่จะเผยแพร่การใช้งาน Linux และ Open Source Software และเพื่อให้ Linux เป็นทางเลือกสำหรับนักเรียน นักศึกษา และผู้สนใจ หาความรู้ทางด้าน Software อย่างถูกต้องในราคาที่ยอมรับได้

ที่มา : http://www.ziif.com/product/ziif7/

เดิม Thai Extension เป็นส่วนหนึ่งของโครงการ "สื่อไทย" (ZzzThai) เริ่มต้นโดยกลุ่มนักศึกษาไทยที่ University of Electro-communications (UEC) ประเทศญี่ปุ่น ซึ่งมีความพยายามที่จะใช้ภาษาไทยในหลาย ๆ computer platform โดยการพัฒนาโปรแกรม ส่วนขยายต่าง ๆ รวมถึงจัดทำเอกสารแนะแนวทาง และฟอนต์ให้แก่บุคคลทั่วไป โดยบุคคลเหล่านั้นยังสามารถแจกจ่ายโปรแกรม ฟอนต์ หรือส่วนประกอบใด ๆ ที่เกี่ยวข้องต่อไปได้ ซึ่งถือเป็นประโยชน์อย่างยิ่ง

Thai Extensions (TE เป็นส่วนเพิ่มเติมของ Linux เพื่อเพิ่มการสนับสนุนภาษาไทย ในส่วน console และ X Window ซึ่ง TE ตัวดั้งเดิม (TE-Jan22) นั้นถูกพัฒนาโดยคุณ พูลลาภ วีระธนาบุตร และ คุณ ไพศาล เตชะจารุวงศ์

ต่อมา Thai Linux Working Group จึงขอนำแนวทางของ Thai Extension มาใช้ โดยใช้ผลพลอยได้ จากการพัฒนา Linux-TLE ซึ่งได้รวบรวมโปรแกรม และ กำหนดค่าบางอย่าง แล้วทำเป็น แพคเกจ (package) และ รวบรวมไว้ สำหรับ Linux Distribution หลัก ๆ ที่ใช้กันกว้างขวาง ซึ่งยังไม่สามารถใช้ ภาษาไทยได้อย่างสมบูรณ์ เช่น RedHat Linux 7.x Mandrake 8.0 Debian และอื่น ๆ ซึ่ง TE เหล่านี้สามารถติดตั้งและใช้งานได้ัทันที แต่อาจจะมีรายละเอียดบางอย่าง ซึ่งต้องอาศัยการกำหนดค่า และแก้ไขเองอยู่บ้าง

สำหรับ Thai Extension สามารถ ดาวโหลดได้จาก ftp://ftp.nectec.or.th/pub/thailinux/software/TE ข้อมูลอื่น ๆ และ รายละเอียดของ TE รวมทั้งข้อมูลการ Update ติดตามได้ที่ Thai Linux Working Group : Thai Extensions

สำหรับการติดตั้ง ควรอ่าน ไฟล์ README หรือ INSTALL ก่อนลงมือติดตั้ง เพราะไฟล์ดังกล่าวจะบอกถึงวิธีการติดตั้งและการกำหนดค่าบางอย่างเอง ด้วย ซึ่งรายละเอียดเพิ่มเติมเช่นการกำหนดค่าของ Linux และ โปรแกรมต่าง ๆ สามารภดูได้จาก HOWTO ฉบับนี้ ซึ่งจะกล่าวต่อไป

TE นั้นไม่สามารถทำขึ้นสำหรับ Distribution ทุกตัวแน่นอน ถ้า Linux Distrubiton ที่เราใช้อยู่ ไม่มี TE ที่จัดทำขึ้นมาเฉพาะให้ เราอาจจะ ดาวโหลด โปรแกรมบางส่วน หรือ Source Code ของโปรแกรม และ ข้อมูล ไฟล์ต่าง ๆ จาก Thai Linux Working Group หรือเอามาจาก แพคเกจของ Distribution ที่ไกล้เคียง มาใช้ได้ แต่อาจต้องมีการแก้ไข (Hack) ตัวโปรแกรมบางส่วนเพื่อให้สามารถใช้งาน กับระบบของเราได้ และทำงาน Build ใหม่ ซึ่งก็ต้องอาศัยความรู้ความสามารถพอสมควร

อย่างไรก็ตามคุณก็สามารถถามผู้เชี่ยวชาญเกี่ยวกับ Linux และ TE ได้จาก Forum ของ Thai Linux Working Group และ Forum ของ ThailinuxCafe มีผู้เจน Linux หลายคนพร้อมจะให้ คำตอบเกี่ยวกับปัญหาของคุณนะครับ หรือมีข้อเสนอแนะอะไรก็ยินดีครับ ยิ่งถ้าคุณปรับ TE และทำเป็น แพคเกจมา และให้เราเผยแพร่ได้ยิ่งดี คนไทยอีกหลายล้านคนรอคุณอยู่ ตอนนี้คนทำมีแค่หยิบมืิอเดียวครับ

สำหรับ Thai Extension, Software ภาษาไทย ต่าง ๆ และ Source Code สามารถ ดาวโหลดได้จาก ftp://ftp.nectec.or.th/pub/thailinux/software สำหรับข้อมูลอื่น ๆ และ รายละเอียดของ TE รวมทั้งข้อมูลการ Update ติดตามได้ที่ Thai Linux Working Group : Thai Extensions

$Id: Thai-HOWTO.html,v 1.5 2002-03-05 17:12:47 sf_alpha Exp $

ส่วนนี้จะพูดถึงการกำหนดค่าเกี่ยวกับ Linux Console เช่น การตั้งแบบตัวอักษร (FONT), ACM, SFM, แป้นพิมพ์ และอื่น ๆ รวมถึงการกำหนดค่าให้ใช้งานภาษาไทยบน โปรแกรมบางตัวที่ทำงานบน Console ด้วย

Linux Console Tools เป็น แพคเกจซึ่งประกอบด้วยโปรแกรมสำหรับ จัดการและกำหนดค่าเกี่ยวกับ Linux Console ทั้ง จอภาพ และ แป้นพิมพ์ ซึ่งการกำหนดค่าต่าง ๆ ต้องผ่าน โปรแกรมของ Linux Console Tools

สิ่งที่จำเป้นต้องรู้จักอักตัวคือ Linux Console Data ซึ่งเป็นส่วนหนึ่งของ Linux Console Tools ซึ่งจะเป็นไฟล์ข้อมูลต่าง ๆ สำหรับใช้งานกับ Linux Console Tools ซึ่งไฟล์เหล่านี้จะอยู่ใน ห้อง Linux Console Tools Data Root ซึ่งจะแทนด้วย $LCTROOT ในหัวข้อต่อ ๆ ไปของ เอกสารนี้ ซึ่งจะแตกต่างกันไปตามแต่ละ distribution เช่น

  • RedHat : /lib/kbd/
  • Mandrake : /usr/lib/kbd/
  • Slackware : /usr/share/
  • Debian : /usr/share/
  • อื่น ๆ : ต้องลองค้นหา ซึ่งอาจจะเหมือนกับ distribution ตัวใดตัวหนึ่งข้างบน ปกติแล้วควรจะมี ห้อง consolefonts consoletrans และ keymaps อยู่ภายใน

Thai Linux Console Data ซึ่งเป็นแพคเกจ ที่มีไฟล์ต่าง ที่จำเป็นสำหรับใช้งานภาษาไทย อยู่แล้วสามารถ ดาวโหลดได้จาก Thai Support fot Linux Console การใช้งาน Thai Linux Console Data โดยทั่วไป ให้ ดาวโหลด แำพคเก console-data-thai (console-data-thai--xxxxx.tar.gz และ แตกลงในห้อง $LCTROOT (โดยใช้คำสั่ง tar -xzvf console-data-xxxxx.tar.gz $LCTROOT ) และยังมี package ของ Linux Console Tools ซึ่งได้รับการแพตซ์ให้ใช้งาน keysyms ในรหัสอักษร TIS-620 ได้ ซึ่งรายละเอียดเพิ่มเติม สามารถดูได้ที่ เวบไซต์ด้านบนครับ

ถ้าไม่มี แพคเกจของ Console Data สำหรับ Linux Distribution ที้ใช้อยู่ ก็สามารถเลือก ดาวโหลดไฟล์ต่าง ๆ ที่จำเป็นมาใช้ได้เช่นกัน ซึ่งรายละเอียด จะกล่าวต่อไป

สำหรับผู้ที่ใช้ Linux Distribution ที้ใช้ RPM (RedHat Package Manager) เช่น RedHat, Mandrake คุณสามารถดาวโหลด แพคเกจ RPM ของ Console Tools สำหรับ distribution นั้น ๆ (ถ้ามี) และติดตั้งแบบ upgrade โดย rpm -U console-tools-xxxxx.i386.rpm ได้จากเวบไซต์ ด้านบน ซึ่งแพคเกจนี้จะมาพร้อมกับ Linux Console Tools ที่แพทซ์ Thai keysym แล้ว รวมทั้ง Thai Console Data ด้วย

คำแนะนำ

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

สำหรับ Linux Console บนจอภาำพ (Screen Console หรือ Virtual Console) สามารถที่เปลี่ยน แบบตัวอักษรบนหน้าจอได้ สำหรับ VGA Text หรือ SVGA/VGA Framebuffer Console แต่อย่างไรก็ตามการแสดงผลยังไม่สมบูรณ์ เนื่องจาก Linux Kernel นั้นไม่สนุบสนุนระบบเขียนข้อความที่ซับซ้อนแต่ย่างใด (ซึ่งภาษา ไทยก็เป็นภาษาที่มีความซับซ้อนในการเขียน) การแสดงผลตัวอักษร จึงจะเขียนในบรรทัดเีดียวกัน ไม่ว่าจะเป็น พยันชนะ วรรณยุกต์ สระ เช่น วิ่งทุกที่ จะเขียนเป็น ว ิ ่ งท ุกท ี ่ ครับ

สำหรับ แพคเกจ Thai Linux Console Data จะมี แบบตัวอักษรที่เขียนขึ้นเฉพาะ สำหรับใช้งานภาษาไทย และรองรับ TIS-620 ทั้งหมด รหัสตัวอักษรของ แบบตัวอักษรนี้ว่า TIS-620-X ซึ่งมีการ เพิ่มตัวอักษรสำหรับวาดกรอบลงไปด้วย และได้ทำการใส่ตารางสำหรับเทียบ กับ Unicode หรือเรียกว่า Screen Font Map (SFM) ไว้แล้ว

เพื่อให้การแสดงผลในระบบ 8bit หรือ ASCII ถูกต้องด้วย ต้องมีการใช้ ตารางเทียบ อักษรสำหรับแอพพลิเคชั่น หรือเรียกว่า Application Charset Map (ACM) เพื่อใช้ใน การแปลงอักษรแบบ 8bit เป็น Unicode และแสดงผลกับ แบบตัวอักษรที่ใช้ตาราง Unicode ได้ถูกต้องด้วย ซึ่ง แบบตัวอักษรและไฟล์ ACM จะมาพร้อมกับ แพคเกจ Thai Linux console data แล้วเช่นกัน

ถ้าไม่ได้ติดตั้ง แพคเกจ Thai Console Data ก็สามารถดาวโหลดไฟล์ได้จากเวบไซต์ ที่กล่าวมาแล้ว สำหรับไฟล์แบบตัวอักษรให้นำไปไว้ใน ไดเรกทอรี่ $LCTROOT/consolechars และนำไฟล์ ACM ไปไว้ใน ไดเรกทอรี่ $LCTROOT/consoletrans

ในการใช้รูปแบบข้อมูลสำหรับภาษาไทย (Thai Locale) ในการแสดงผล ต้องทำการประกาศตัวแปรระบบ LANG เป็น "th_TH" โดยใช้คำสั่ง export LANG="th_TH" เพื่อกำหนดให้ใช้ภาษาไทย

โปรแกรมต่าง ๆ ที่ โปรแกรมที่เป็นสากล (Internationalization, i18n) และ สามารถใช้รูปแบบข้อมูลที่เหมาะสมกับท้องถิ่น (Localization,l10n) จะแสดงผลเป็นภาษาไทย และใช้รูปแบบข้อมูลที่ควรจะเป็นในภาษาไทย ตามที่กำหนดไว้ (รวมทั้งโปรแกรมบน X-Windows) ซึ่งในที่นี้ ต้องใช้แบบตัวอักษรภาษาไทย รวมทั้ง ACM ด้วย ใน Console เพื่อให้แสดงผลได้ถูกต้อง (หลังจากกำหนดแล้วสามารถทดลองได้ โดยใช้คำสั่ง date เพื่อดูวันที่แล้วเวลา) การกำหนด นี้ อาจใช้ในการ บอกโปรแกรมต่าง ๆ ให้ใช้รูปแบบ แป้นพิมพ์เป็นภาษาไทย สำหรับบางโปรแกรมด้วย

[sf_alpha@benja /]# date
อา. 27 พ.ย. 2544
[sf_alpha@benja /]#
     

keymaps จะมีอยู่ หลายแบบ ปกติแล้ว Linux ทั้ว ๆ ไปจะใช้ได้เฉพาะ keymaps ที่ใช้ keysyms ของรหัสอักษร ISO-8859-1 สำหรับ keysyms ของรหัสอักษรแบบ TIS-620 จะใช้ได้กับ Linux ที่ติดตั้ง Linux Console Tools ที่ได้รับการ แพตซ์ ให้ใช้งาน keysyms สำหรับ TIS-620 ได้แล้วเท่านั้น ซึ่งสามารถ ดาวโหลดได้จากเวบไซต์ด้านบนเช่นกัน แต่อย่างไรก็ตาม keymaps นี้ยังไม่สามารถใช้งาน ในโหมด Unicode ได้ keymaps เหล่านี้จะใช้ปุ่ม AltGr หรือ Right-Alt ในการเปลี่ยนภาษา และอาจเป็นปุ่มอื่น ขึ้นอยู่กับรายละเอียดของแต่ละ ไฟล์ keymaps ด้วย

ถ้าได้ติดตั้ง Thai Linux Console Data Package ที่กล่าวมาในหัวข้อก่อนหน้านนี้แล้ว ก็จะมีไฟล์ keymaps สำหรับ แป้นพิมพ์ ตามมาตรฐาน TIS-820 2538 (มอก. 820 2538) อยู่แล้ว คือ tis820-38.kmap.gz (ซึ่งใช้ รหัสอักษร ISO-8859-1) ซึ่งถ้าไม่ได้ติดตั้งก็ ดาวโหลด มาได้เช่นกัน แล้วนำไปไว้ในห้อง $LCTROOT/keymaps/i386/qwerty เราสามารถเรียนใช้‰งาน keymaps โดยใช้คำสั่ง loadkeys <Keymapfile> เช่นถ้าต้องการเรียกใช้ keymaps จากไฟล์ tis820-38.kmap.gz ให้ใช้คำสั่ง loadkeys tis820-38

คำ³สั¹ˆงนี้จะเรียกใช้งาน keymaps จากไฟล์ tis-iso.kmap.gz ซึ่งไฟล์ keymaps จะอยู่ในห้อง $LCTROOT/keymaps/i386/qwerty/ ซึ่งเป็นห้องที่โปรแกรม กำหนดไว้ (ซึ่งขึ้นอยู่กับแต่ละ distribution ดังที่กล่าวมาแล้ว)

ข้อสังเกตุ :

ในการเรียกใช้งานคำสั่งของ Linux Console Tools จะพบว่า

  • เราไม่ต้องใส่ พาธสำหรับห้องถ้าอยู่ในห้องที่กำหนดไว้โดยโปรแกรม
  • เราไม่ต้องใส่ .gz และ นามสกุลปกติของไฟล์ (เช่น .psf .acm .kmap)

สำหรับ บาง distribution ที้ใช SysVinit อาจจะมี สคริปต์สำหรับจัดการเรื่องภาษา ซึ่งจะมี และมีไฟล์ /etc/sysconfig/i18n (เช่น RedHat, Mandrake) ซึ่งสามารถแก้ไขไฟล์ /etc/sysconfig/i18n และเปลี่ยนค่า ต่าง ๆ เพื่อให้ระบบแสดงผลเป็นภาษาไทย และเรียกใช้งานแบบอักษรภาษาไทยด้วย ดังตัวอย่าง

LANG="th_TH"                # Thai Locale
SYSFONTACM="tis620"         # System ACM
SYSFONT="tis-phaisarn.f16"  # System Font (Console)
...
...
     

และสามารถแก้ไขไฟล์ /etc/sysconfig/keyboard เพื่อกำหนด keymaps ของแป้นพิมพ์ที่จะใช้ได้เช่นกัน ดังตัวอย่าง

KEYTABLE="th-tis-38win.latin1"  # Thai TIS-820 2538
                                # (Latin1 Keysyms) Windows Keyboard
     
ถ้าใช้ console-tools ที่แพตช์ Thai keysyms แล้ว อาจจะใช้ th-tis-38win.tis620 ก็ได้ และในบาง distribution สามารถใช้คำสั่ง kbdconfig กำำหนดไดเช่นกัน

หลังจากแก้ไขแล้ว เมื่อ เริ่มระบบใหม่ (Boot) ก็จะมีการเรียกใช้งาน แบตัอักษร และ ACM สำหรับแสดงผล และตั้งให้แสดงผมข้อมูลเป็นภาษาไทย และ เรียก keymaps มาใช้งาน แต่อย่างไรก็ตาม ACM จะไม่ทำงานในโหมด multiuser (หลังจาก getty แล้ว ACM จะไม่ทำาน แต่อาจจเพิ่ม คำสั่งในการ เรียกใช้ ACM หรือ แบบตัวอักษร ในไฟล์ script ขณะ login เช่น .bash_profile สำหรับ บาง distribution สามารถใช้คำสั่ง setsysfont ในการ เรียกใช้ แบบตัวอักษรและ ACM ที่ตั้งไว้ได้)

$Id: Thai-HOWTO.html,v 1.5 2002-03-05 17:12:47 sf_alpha Exp $

สำหรับหัวข้อนี้จะอธิบายการกำหนดค่าภาษาไทยสำหรับ X-Windows รวมทั้งโปรแกรมบน Windows และ Desktop หรือ Windows Manager ต่าง ๆ และการติดตั้ง แบบตัวอักษร สำหรับ กำหนดค่าภาษาไทยและการใช้แบบตัวอักษรภาษาไทยใน Distribution หลัก ๆ สามารถดูข้อมูลเพิ่มเติมได้จาก เวบไซต์ http://www.linuxeasy.f2s.com ซึ่งจะมีคำอธิบายและรูปภาพประกอบสำหรับแต่ละ Distribution ด้วย

X Windows สนับสนุนการใช้้ แบบตัวอักษรหลายชนิด โดนเฉพาะรุ่นใหม่ ๆ นั้นสามารถใช้งาน แบบตัวอักษรที่เป็น True Type ไ้ด้ด้วย (ฟอนต์ที่ใช้บน Microsoft Windows) แต่อย่างไรก็ตามการใช้ภาษาไทยก็ยังทำได้ไม่ดีนัก เนื่องจากโปรแกรมต่าง ๆ บน X-Windows ยังใช้งานรหัสตัวอักษรภาษาไทย เช่น TIS-620 ไม่ได้

สำหรับ แบบตัวอักษรภาษาไทยสำหรับ ลีนุกซ์ สามารถ ดาวโหลดได้จาก http://ftp.nectec.or.th/pub/Thailinux/software/thaifonts และยังมี แบบตัวอักษรที่ทำเป็นแพคเกจแล้ว ซึ่งอยู่ใน TE (Thai Extenstion) สำหรับบาง distribution ด้วย ซึ่งเมื่อติดตั้งแล้ว อาจสามารถข้ามขั้นตอนการติดตั้ง และกำหนดค่าที่เหลือได้ (ดูข้อมูลใน Thai Extension)

สำหรับในขั้นแรก ต้องมีไฟล์รหัสอักษรของ tis-620-0 ก่อน โดย ไฟล์ดังกล่าว จะใช้ชื่อ iso-8859-11.enc แทน ซึ่งปกติจะอยู่ใน ไดเรกทอรี่ /usr/X11R6/lib/X11/fonts/encodings ถ้าไม่มีสามารถ ดาวโหลดได้จาก http://linux.thai.net/sf_alpha/thai-xfonts/ สำหรับ XFree86 ต่ำว่า 4.2.0 ต้องทำการ download ไฟล์ดังกล่าวไปแทนที่ไฟล์เดิม ด้วย เพราะจะมีปัญหาในสร้างรายการตัวอักษร ในภาษาไทย

เมื่อมีการติดตั้ง encoding เ้ข้าไปใหม่ ควรจะมีการ update ไฟล์ encoding.dir ส่วนกลาง ด้วย โดยเข้าไปในไดเรกทอรี่ /usr/X11R6/lib/X11/fonts/encodings แล้วใช้คำสั่ง mkfontdir -e /usr/X11R6/lib/X11/fonts/encodings เมื่อเรียบร้อยแล้วไฟล์ encodings.dir จะถูกสร้างใหม่ เพื่อใช้ในกรณีที่ไดเรกทอรี่ของ แบบตัวอักษร ไม่ได้กำหนด file encodings.dir ไว้ด้วย

[sf_alpha@benja /]# cp /mnt/floppy/*.enc /usr/X11R6/lib/X11/fonts/encodings
[sf_alpha@benja /]# cd /usr/X11R6/lib/X11/fonts/encodings
[sf_alpha@benja encodings]# mkfontdir -e /usr/X11R6/lib/X11/fonts/encodings
      

สำหรับ รหัสตัวอักษรสำหรับแบบตัวอักษรบน X-Windows จะมี 3 ตัวคือ tis-620-0, tis-620-1 และ tis-620-2 ซึ่ง tis-620-0 เป็น แบบตัวอักษร ตามมาตรฐาน TIS-620 ปกติ สำหรับ tis-620-1 เป็นฟอนต์ที่ใช้กับเครื่อง macintosh และ tis-620-2 ใช้สำหรับ Microsoft Windows เพื่อช่วยให้ Windows บางรุ่นซึ่งไม่ได้ออกแบบมา สำหรับภาษาไทยสามารถแสดง ภาษาไทยได้ (สวยงาม) สำหรับ ไฟล์รหัสตัวอักษรสำหรับฟอนต์ที้ใช้ tis-620-1 และ tis-620-2 สามารถดาวโหลดได้จาก เวบไซต์ด้านบนเช่นกัน

สำหรับแบบตัวอักษรชนิดต่าง ๆ มีวิธีการติดตั้งดังนี้

  • แบบตัวอักษรชนิด Bitmapped (pcf,bdf,...).  ให้เข้าไปในห้องที่เก็บ font แล้วใช้คำสั่ง mkfontdir <fontencodingir> เพื่อสร้างไฟล์ fonts.dir แล encodings.dir เช่น

    [sf_alpha@benja /]# cd /usr/share/X11/fonts/th/thai
    [sf_alpha@benja thai]# mkfontdir -e /usr/X11R6/lib/X11/fonts/encodings
            
  • แบบตัวอักษรชนิด Postscript Type 1.  ให้เข้าไปในห้องที่เก็บ font แล้วใช้คำส่ง type1inst ก่อ แล้วจึง mkfontdir <fontencodingir> เพื่อสร้างไฟล์ fonts.dir และ encodings.dir เช่น

    [sf_alpha@benja /]# cd /usr/share/X11/fonts/th/type1
    [sf_alpha@benja type1]# type1inst
    [sf_alpha@benja type1]# mkfontdir -e /usr/X11R6/lib/X11/fonts/encodings
           
  • แบบตัวอักษรชนิด True Type (TTF).  ถ้าต้องการใช้แบบตัวอักษร TrueType จำเป็นต้อง ให้เข้าไปในห้องที่เก็บ font แล้วใช้คำสั่ง เพื่อสร้าง encodings.dir สำหรับ ttmkfdir ก่อน แล้วตามด้วยคำสั่ง ttmkfdir -e /usr/X11R6/lib/X11/fonts/encodings/encodings.dir -o fonts.scale เพื่อสร้างรายการชื่อและขนาดของรูปแบบตัวอักษร TrueType แล้วจึงใช้คำสั่ง mkfontdir -e /usr/X11R6/lib/X11/fonts/encodings เพื่อสร้างไฟล์ fonts.dir เช่น

    [sf_alpha@benja /]# cd /usr/share/X11/fonts/th/TrueType
    [sf_alpha@benja TrueType]# ttmkfdir -e /usr/X11R6/lib/X11/fonts/encodings/encodings.dir \
                                        -o fonts.scale
    [sf_alpha@benja TrueType]# mkfontdir -e /usr/X11R6/lib/X11/fonts/encodings
           

    สำหรับ ttmkfdir ต้องเป็น Version 2 ขึ้นไป (ตรวจสอบได้โดยใช้คำสั่ง ttmkfdir --versions ) ซึ่งหาได้จาก package freetype ในรุ่นใหม่ ๆ สำหรับบาง Distribution ที่ใช้ ttmkfdir 1 จะไม่สามารถใช้ option -e ได้

    ถ้าลองใช้คำสั่ง ttmkfdir แล้ว ในไฟล์ fonts.scale ไม่มีรหัส TIS-620 อาจจะเกิดจากไฟล์ รหัสตัวอักษร (.enc) ที่ มีอยู่นั้นเป็นไฟล์ที่ไม่สมบูรณ์ (ใน XFree86 < 4.2.0) ให้ ดาวโหลดไฟล์ .enc มาใหม่จากเวบไซต์ด้านบน แล้วนำไปไว้แทนไฟล์เดิม ก่อน แล้วทำตาม ขั้นตอนการติดตั้ง แบบตัวอักษร TrueType ใหม่อีกครั้ง

สำหรับระบบที่ใช้ X Font Server ในไฟล์ /etc/X11/XF86Config-4 สำหรับ XFree86 4.x.x หรือ /etc/X11/XF86Config สำหรับ XFree86 3.x.x จะพบบรรทัด FontPath "UNIX:/7000" (ถ้าไม่มีให้ดู การกำหนดค่่าแบบตัวอักษร (Font) สำหรับระบบที่ ไม่ใ้ด้ใช้ X Font Server (XFS)) ถ้ามีให้แก้ไขไฟล์ /etc/X11/fs/config แล้วเพิ่ม ไดเรกทอรี่ของ แบบตัวอักษรที่เราใส่ไว้ เพิ่มเข้าไปหลังบรรทัด catalogue= (ขั้นด้วย ,) เช่น (ถ้ามี font แบบ unscale ต้องใส่ directory ที่มี :unscaled ต่อท้าย เพื่มไปด้วย)

catalogue=/usr/share/X11/fonts/default/misc,
          ...,
          ...,
          /usr/share/X11/fonts/th/misc:unscaled,
          /usr/share/X11/fonts/th/misc,
          /usr/share/X11/fonts/th/TrueType,
          /usr/share/X11/fonts/th/type1
    

ถ้าเป็น RedHat หรือ Mandrake (และอื่น ๆ ที่มี chkfontpath) อาจจะใช้ chkfontpath --add <FontDir> ในการเพิ่ม แบบตัวอักษร chkfontpath --remove <FontDir> ในการยกเลิกการใช้ แบบตัวอักษร ก็ได้

จากนั้น ให้ restart X Font Server ใหม่ สำหรับระบบที้ใช้ SysV ก็ใช้คำสั่ง /etc/rc.d/init.d/xfs restart (ในบาง distribution สามารถใช้ service xfs restart ได้)

ถ้ามีการใช้ FreeType ต้องทำการกำหนดค่า แบบตัวอักษร สำหรับ FreeType ด้วย ซึ่งจะกล่าวต่อไป

สำหรับระบบที่ไม่ใ้ด้ใช้ X Font Server (XFS) หลังจากเตรียม รูปแบบตัวอักษร เรียบร้อยแล้วเราสามารถทดลองใช้ Font ได้ทันทีถ้าอยู่บน X-Windows โดยการใช้คำสั่ง xset fp+ <FontDir> และ xset fp rehash โดย FontDir คือไดเรกทอรี่ที่เราใส่แบบตัวอักษร ในตอนแรก (หรืออาจจะใช้ `pwd` ถ้าอยู่ใน ไดเรกทอรี่ที่มี แบบตัวอักษรนั้้น ) เช่น

[sf_alpha@benja X11]# cd /usr/share/X11/fonts/th/TrueType
[sf_alpha@benja thaittf]# xset fp+ `pwd`
[sf_alpha@benja thaittf]# xset fp rehash
       

ในการกำหนดให้ X สามารถเรียกใช้งาน แบบตัวอักษรที่เพิ่มเข้าไป เมื่อเริ่มการทำงาน ให้เพิ่มบรรทัด FontPath "<FontDir>" ในไฟล์ /etc/X11/XF86Config-4 สำหรับ XFree86 4.x.x หรือ /etc/X11/XF86Config สำหรับ XFree86 3.x.x ใน Section "Files" เช่นดังตัวอย่าง

Section "Files"
...
FontPath  "..."
FontPath  "/usr/share/X11/fonts/th/TrueType"
FontPath  "/usr/share/X11/fonts/th/type1"
...
EndSection
    

ถ้ามีการใช้ FreeType ต้องทำการกำหนดค่า แบบตัวอักษร สำหรับ FreeType ด้วย ซึ่งจะกล่าวต่อไป

xkbmap ทำงานคล้ายกับ Keymaps ที่กล่าวมาแล้ว แต่มีความสามารถ กว่า Keymaps บน Console เพราะมีการแยกระหว่าง map ของภาษาต่าง ๆ และสามารถเปลี่ยนไปมาได้ xkbmap ของภาษาไทย ใน X11R6 เดิม มีเฉพาะที่ใช้ keysym ของ English และ Latin 1 ซึ่งก็ทำงานได้บน X

หลังจากนั้น Pablo Saratxaga <pablo@mandrakesoft.com> ได้สร้าง keysyms สำหรับภาษาไทยขึ้นสำหรับ XFree 4.0.1d แต่ก็ทำให้บางโปรแกรม ไม่สามารถพิมพ์ภาษาไทยได้ ตอนหลังจึงมีการใช้ keysym สำหรับ xkbmap ถึง 3 ตัว คือ TIS-620 และ อีก 2 ตัวข้างต้น และหลังจาก XFree 4.0.2 ก็มีการใช้ XIM ร่วมด้วย ทำให้สามารถตรวจสอบการพิมพ์ได้

ในการใช้งาน แป้นพิมพ์บน X-Windows เพื่อให้พิมพ์ภาษาไทยได้ใช้คำสั่ง setxkbmap th เพื่อเรียน ไฟล์ X-Keyboard Map ของภาษาไทย มาใช้งาน สำหรับปุ่มที่ใช้ใน การเปลี่ยนภาษาคือ

  • Alt-Left Shift สำหรับภาษาอังกฤษ
  • Alt-Right Shift สำหรับภาษาไทย

หมายเหตุ

สำหรับ Desktop Application บางตัวจะมีระบบจัดการ แป้นพิมพ์ของตัวเอง เช่น KDE ซึ่งให้ดูรายละเอียดของแต่ละ Desktop Application ด้านล่าง ครับ

ถ้าต้องการให้สามารถพิมพ์ภาษาไทยได้ทุกครั้งที่ใช้ X-Windows ให้แก้ไขบรรทัด Option "xkblayout" ... เป็น Option "xkblayout" "th" ในไฟล์ /etc/X11/XF86Config-4 สำหรับ XFree86 4.x.x หรือ /etc/X11/XF86Config สำหรับ XFree86 3.x.x ใน Section "InputDevice" เช่นดังตัวอย่าง

Section "InputDevice"
 ...
Option "XkbLayout" "th"
...
EndSection
     

ในบาง Desktop Environment เช่น KDE อาจจะมีระบบจัดการเกี่ยวกับ keyboard ของตัวเอง รายละเีอียดให้ดูในการกำหนดค่าของ Desktop Environment นั้น ๆ ด้วย (KDE ดูใน การกำหนดค่าภาษาไทยใน KDE)

อย่างไรก็ตามการตรวจสอบโดย XIM ทำได้บางโปรแกรมเท่านัน และยังไม่สมบูรณ์นัก ข้อมูลเพิ่มเติมเกี่ยวกับ Input Method ของ X-Windows อ่านได้ที่ XFree86 Thai Supports : Input http://www.links.nectec.or.th/~thep/th-xwindow/index.htm#Input

ในการใช้โปรแกรม เทอร์มินัล (terminal) xiterm+thai หรือ txiterm สามารถเรียกใช้ได้จากคำสั่ง xiterm หรือ txiterm ในการเปลี่ยนภาษานั้นเหมือนที่กล่าวไว้ใน XKB แต่สามารถใช้ Ctrl-Space ในการเปลี่ยนภาษาได้ (แต่ XIM จะไม่ทำงาน)

พารามิเตอร์ต่าง ๆ และการเรียกใช้โปรแกรม txiterm จากบรรทัดคำสั่ง (Command Line)

xiterm [-tspace <n> ] [-tkb <kbmode> ] [-tim <immode> ]

Option ต่าง ๆ สำหรับ txiterm

  • -tspace <n> : จำนวน space สำหรับการชดเชยสระ ; <n> = จำนวน space
  • -tkb <kbmode> : รูปแบบแป้นพิมพ์ (Keyboard Layout) <kbmode> = tis|ked
    • tis - แบบ TIS-820 2538
    • ked - แบบเกษมณี (TIS-820 2536)
  • -tim <immode> : ระดับการตรวจสอบการพิมพ์ ; <immode> = PassThrough|BasicCheck|Strict
    • PassThrough - ไม่มีการตรวจสอบ
    • BasicCheck - ตรวจสอบเบื้องต้น
    • Strict - เข้มงวด

การกำหนดค่าของ X Resources ของ xiterm

แก้ไขไฟล์ ~/.Xresources หรือ ~/.Xdefaults แ้ล้วเพิ่มหรือแก้ไขบรรทัดต่อไปนี้

thai_space: 
<n>

thai_keyboard: 
<kbmode>

thai_im: 
<immode>

cursorColor: 
<color>

cursorColorThai: 
<color>

สำหรับ <cursorColor> คือ สีของ Cursor เมื่อใช้ภาษาอังกฤษ และ <cursorColorThai> คือ สีของ Cursor เมื่อใช้ภาษาไทย thai_space thai_keyboard และ thai_im ให้ดูที่ Option ของ txiterm ใน -tspace -tkb และ -tim ตามลำดับ (ด้านบน)

สำหรับ ข้อมูลเพิ่มเติม ดูใน xiterm man pages ...

สำหรับ Netscape และ Mozilla ควรใช้ Netscape 6.1 หรือ Mozilla 0.9.2 ขึ้นไป เพื่อสำหรับการใช้งานภาษาไทย ในการกำหนดค่าภาษาไทยที่จำเป็นสำหรับ Netscape และ Mozilla ให้เข้าไปที่ เมนู Edit->Preferences จากนั้นกำหนดค่าในส่วนต่าง ๆ ในแถบรูปแบบต้นไม้ด้านซ้าย ดังนี้ (หรือตามต้องการ)

  • Appearances

    • Fonts

      ในปุ่มเลือก Fonts For เลือก Thai จากนั้นเลือกฟอนต์ต่าง ๆ ตาม ที่ต้องการ ในช่อง serif, sans-serif, cursive, fantasy, monospace ซึ่งเป็นรูปแบบตัวอักษรมาตรฐาน

      สำหรับ Proportional Font (อาจไม่มีใน บาง version) ใช้ในการกำหนด รูปแบบตัวอักษรมาตรฐานที่จะใช้ในเอกสารที่ไม่กำหนดแบบตัวอักษร มาตรฐานที่จะใช้าให้ ส่วนรายละเอียดอื่น ๆ นั้นดูที่ Help ครับ

  • Navigator

    • Languages

      ในปุ่มเลือก Default Character coding ให้ ในช่อง Character coding เลือก TIS-620 เพื่อให้ Navigator แสดงเอกสารโดยใช้รูปแบบตัวอักษร สำหรับ TIS-620 และรหัสตัวอักษร TIS-620 เป็นค่าปริยาย ถ้าเอกสารนั้น ไม่ระบบรหัสตัวอักษรที่ใช้

  • Mail & Newsgroups

    • Message Display

      ในปุ่มเลือก Character coding ให้ ในช่อง Language เลือก TIS-620 เพื่อให้ Mails & Newsgroups Reader แสดง จดหมาย โดยใช้รูปแบบตัวอักษรสำหรับ TIS-620 และใช้ รหัสตัวอักษร TIS-620 เป็นค่าปริยาย หากจดหมายนั้น ไม่ระบุรหัสตัวอักษรที่ใช้

    • Message Composition

      ในปุ่มเลือก Character coding ให้ ในช่อง Compose Messages เลือก TIS-620 เพื่อให้ Mails & Newsgroups Reader ส่ง จดหมาย โดยใช้รหัสตัวอักษร TIS-620

การเปลี่ยนรหัสตัวอักษรขณะอ่าน เวบไซต์ ข่าว หรือ จดหมาย สามารถเปลี่ยนได้จาก ให้ไปที่เมนู View -> Character coding และเลือกรหัสตัวอักษรที่ต้องการ สำหรับคำแนะนำเมื่ออ่านเอกสารหรือจดหมายไดไม่ออก ดูได้ที่ การเปลี่ยนรหัสตัวอักษรเมื่ออ่านข้อความไม่ออก สำหรับ Browser และ Mail & News Client ในการเขียนจดหมายหรือส่งข่าวบนกระดานข่าว สามารถเปลี่ยนรหัสตัวอักษรได้จากเมนู เดียวกันนี้เช่นกัน ส่วน รายละเอียดอื่น ๆ โปรดดูใน Help ของโปรแกรมครับ

คุณจะต้องตั้ง LYX ให้ใช้อักษรไทยก่อน สำหรับ ตั้งแต่ LYX 1.1.6 คุณสามารถทำได้โดยเข้าไปที่ Edit - > Preferences - > Look & Feel tab - > Screen Fonts tab และเลือก แบบตัวอักษรไทย สำหรับ Roman Sans Serif และ Typewriter และใช้แบบตัวอักษรที้มีรหัสตัวอักษร (Encoding) เป็น TIS-620

สำหรับการกำหนดค่าของ Lyx ในการใช้แป้นพิมพ์ ให้ไปที่ Edit - > Preferences - > Look & Feel tab - > Screen Fonts tab และเลือก Keyboard Map และกำหนด keymap สำหรับ 1st keymap ให้เป็น null และ 2nd keymap ให้เป็น thai-kedmanee จากนั้นให้แก้ไฟล์ ~/.lyx/preference แล้วเพิ่ม \bind "C-backslash" "keymap-toggle" เข้าไปเพื่อกำหนดให้ใช้ Ctrl-\ในการเปลี่ยภาษา

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการใช้ภาษาไืทนบน LyX ดูได้จาก LyX-Thai-MicroHOWTO (Thai) โดยคุณ ชนพ ศิลปอนันต์ <chanop@debian.org> และ LyX รุ่นใหม่ ๆ ที่ http://dynax.anu.edu.au/

การกำหนดค่าภาษาไทยสำหรับ KDE โดยทั้วไป ซึ่งต้องทำเป็นอักดับแรก มีขั้นตอนดังนี้

สำหรับ Gnome นั้น ระบบการรับข้อมูลจากแป้นพิมพ์ กำหนดได้จาก Xkbmap ปกติ (ด้านบน) ส่วนการแสดงผลอื่น ๆ ต้องกำหนดจาก Control Center

Abiword เป็น Word Processor สำหรับ Gnome ซึ่ง Abiword มีความสามารถสูง และยัง สามารถเปิดไฟล์ในรูปแบบต่าง ๆ ได้ รวมทั้ง Microsoft Word 7.0 ซึ่งใช้กันทั้วไปบน Microsoft Office สำหรับ Abiword ยังมีระบบจัดการแบบตัวอักษรของตัวเอง ซึ่งทำให้ ไม่จำเป็นต้องอาศัยการกำหนดภาษาไทยบน Gnome (ซึ่งยังไม่สนับสนุนระบบ i18n เ่ท่าไหร่) และ Abiword ในรุ่นใหม่ ๆ สามารถใช้ X Font Server ได้เช่นกัน สำหระบ Abiword ใช้ภาษาไทยได้ใน version 0.9.4 ขึ้นไปครับ

การติดตั้ง แบบตัวอักษรบน Abiword ทำได้ดังนี้ (ถ้าใช้ X-Font Server และกำหนดค่า FreeType (/etc/X11/Xftconfig) แล้วไม่จำเป็นต้องติดตั้งเพิ่ม)

  • หาไดเรกทอรี่ของ Abisuite ($ABISUITE_HOME) โดยใช้คำสั่ง grep "ABUSUITE_HOME" `which abiword`
  • ลิงค์ห้อง $ABISUITE_HOME/fonts/TIS620 กับห้องทีก็บ แบบตัวอักษร TrueType ของ X-Windows
  • ใช้คำสั่ง $ABISUIT_HOME/bin/ttfadmin.sh `pwd` TIS-620
เมื่อเตรียมแบบตัวอักษรแล้วให้ map workaround ใหม่ โดยเข้าไปที่ Tools > Preferences แล้วคล๊ก OK

จากนั้นต้องทำการแก้ไฟล์ ~/.AbiSuite/AbiWord.Profile แล้วเพิ่ม attribute RemapGlyphsMasterSwitch="0" ใน custom scheme เพื่อแก้ปัญหาการ map สำหรับ ตัวที่อยู่ ในระดับบนและล่าง

ถ้าเปิดเอกสาร หรือ จดหมาย ใดแล้วอ่านไม่ออก ให้ทำเปลี่ยนรหัสตัวอักษร โดยที่

  • ถ้าเป็นอักษรละติด ให้ลองหาเมนูสำหรับกำหนด Coding ถ้าเป็น Mozilla จะอยู่ใน View -> Character Coding ส่วน Konqueror อยู่ใน View -> Charset Encoding และเลือกเป็น Thai (TIS-620) เพื่อเปลี่ยนใช้ รหัส඀•ัวอักษรภาษาไทย เพราะบางเอกสาร อาจจะใช้รหัสเป็น Latin-1 (ISO-8859-1)
  • ถ้าเปิดแล้วเป็นอักษรภาษาไทย และมีลักษณะเต็มไปด้วย สระ เ (เอ) ทั่วเอกสาร ให้เปลี่ยน Character coding เป็น Unicode (UTF-8)

โปรแกรม Mozilla ในบางรุ่นจะมี เมนู View -> Character coding -> Customize ... สำหรับ นำรหัสตัวอักษรที่ใช้บ่อย ๆ มาไว้ใน View -> Character coding ได้ ก็ควรจะ เพิ่ม รหัสอักษร Thai (TIS-620) และ Unicode (UTF-8) ไว้เพื่อความสะดวกในการสลับรหัสตัวอักษรด้วย

$Id: Thai-HOWTO.html,v 1.5 2002-03-05 17:12:47 sf_alpha Exp $

$Id: Thai-HOWTO.html,v 1.5 2002-03-05 17:12:47 sf_alpha Exp $

การใช้ LaTeX สำหรับภาษาไทย มีขั้นตอนต่าง ๆ โดยสังเขปดังนี้

$Id: Thai-HOWTO.html,v 1.5 2002-03-05 17:12:47 sf_alpha Exp $

อยู่ในระหว่างจัดทำครับ

$Id: Thai-HOWTO.html,v 1.5 2002-03-05 17:12:47 sf_alpha Exp $

อยู่ในระหว่างจัดทำครับ

$Id: Thai-HOWTO.html,v 1.5 2002-03-05 17:12:47 sf_alpha Exp $

$Id: Thai-HOWTO.html,v 1.5 2002-03-05 17:12:47 sf_alpha Exp $