Next Previous Contents

3. การใช้ภาษาไทยกับโปรแกรมต่างๆ

โปรแกรมส่วนใหญ่บน Linux ที่สนับสนุนรหัสอักษร ISO-8859-1 สามารถใช้ภาษาไทยได้ แต่ไม่ได้หมายความว่าโปรแกรมเหล่านั้นสนับสนุนการใช้ภาษาไทย. การใช้ภาษาไทยกับโปรแกรมที่มีอยู่แล้วไม่ถูกหลักการ และต้องการผู้พัฒนาโปรแกรมปรับปรุงโปรแกรมเหล่านั้นให้เหมาะกับภาษาไทยต่อไป.

เราสามารถใช้โปรแกรม xedit ซึ่งเป็น editor ได้โดยใช้ฟอนต์ภาษาไทยในการแสดงผล และพิมพ์ภาษาไทยจากแป้นพิมพ์ที่เซ็ตไว้ล่วงหน้า. การใช้ option -fn เป็นการบอกให้โปรแกรมที่เขียนด้วย X Toolkit Intrinsics รู้ว่าเราต้องการใช้ฟอนต์ที่ระบุ ตัวอย่างเช่น

% xedit -fn thai8x16
จากตัวอย่างดังกล่าว thai8x16 เป็นชื่อฟอนต์ภาษาไทยอันหนึ่งเท่านั้น, ผู้ใช้เลือกใช้ฟอนต์อื่นๆได้โดยดูชื่อฟอนต์ด้วยคำสั่ง xlsfonts หรือ xfontsel. ถ้าผู้อ่านต้องการให้ใช้ฟอนต์ภาษาไทยที่กำหนดโดยไม่ต้องใส่ option ให้แก้ไฟล์ $HOME/.Xdefaults ตามตัวอย่าง เช่น
Xedit*font:     thai8x16

3.1 ตัวอย่างการใช้ภาษาไทยกับโปรแกรมต่างๆ

txterm

โดยปรกติฟอนต์ที่แสดงใน xterm จะมีขนาดความกว้างเท่ากันหมด เวลาพิมพ์ตัวอักษรทุกครั้ง cursor จะเลื่อนไปทางขวาเรื่อยๆ ซึ่งทำให้การพิมพ์ภาษาไทยใน xterm ไม่ดีเท่าที่ควร. txterm เป็น terminal emulator ภาษาไทยที่ดัดแปลงมาจาก xterm โดยคุณวุฒิชัย อัมพรอร่ามเวทย์, สามารถพิมพ์ภาษาไทยได้และเลื่อน cursor ได้ถูกต้องดูสวยงาม. txterm สามารถพิมพ์ภาษาไทยได้ในตัวโดยไม่ต้องเซ็ตคีย์บอร์ดล่วงหน้า, ให้ใช้คีย์ "F1" เป็นตัวสลับคีย์บอร์ดระหว่างภาษาไทยกับอังกฤษที่ txterm เตรียมไว้. เราสามารถใช้โปรแกรมอื่นๆผ่าน txterm ได้เช่น vi, pine, less เป็นต้น.

ผู้อ่านสามารถ download txterm ได้จาก Thaigate softwares หรือ สื่อไทย ftp.

ปัญหาการใช้ txterm ที่ควรปรับปรุงในอนาคต เช่น cut and paste ยังทำได้ไม่สะดวก, txterm ที่ใช้ขณะนี้ไม่สามารถแสดงสีได้ เป็นต้น.

bash shell :

โดยปรกติแล้ว shell จะรับสามารถรับอักษร 7 บิตเท่านั้น. ในกรณีที่ต้องการพิมพ์ภาษาไทยใน shell prompt ต้องเซ็ตให้ shell ยอมรับอักษรแบบ 8 บิตก่อนจึงจะพิมพ์ภาษาไทยได้. วิธีง่ายที่สุดที่คือการตั้งตัวแปรทั่วไป(environment variable) LC_CTYPE ให้เป็น iso_8859_1.

ผู้เขียนไม่แนะนำให้เซ็ตตัวแปรทั่วไปตัวนี้เนื่องจาก iso_8859_1 ไม่ใช้ค่าที่แสดงถึง locale ภาษาไทย และค่านี้อาจส่งผลกระทบกับโปรแกรมอื่นๆได้ด้วย. ถ้าพิมพ์ภาษาไทยใน shell prompt ได้ก็หมายความว่าเราสามารถตั้งชื่อไฟล์เป็นภาษาไทยได้.

ls :

ถ้าผู้อ่านตั้งชื่อไฟล์เป็นภาษาไทย, เวลาจะลิส(list) ชื่อไฟล์เหล่านั้นต้องใช้คำสั่งตามตัวอย่าง

ls -N 
ถ้าไม่ต้องการพิมพ์ option ตลอดเวลา, สามารถสร้าง alias ไว้ใน .bashrc(สำหรับผู้ใช้ bash shell) ก็ได้. ถ้าใช้ ls โดยไม่มี option -N จะเห็นชื่อไฟล์ภาษาไทยเป็น ?????.

Emacs, Mule

Mule ย่อมาจาก "Multilingual Enhancement to GNU Emacs". Mule พัฒนามาจาก Emacs(Editor Macro) ให้สามารถพิมพ์ภาษาต่างๆที่ไม่ใช่ภาษาอังกฤษเช่น ภาษาญี่ปุ่น, จีน, ไทย, อาหรับ ฯลฯ ได้พร้อมกัน และสามารถทำทุกอย่างที่ emacs ทำได้. ผู้ที่ใช้ emacs หรือ mule ครั้งแรกจะไม่ชอบมันอย่างแน่นอน(ผู้เขียนก็เช่นกัน แต่ตอนนี้ mule เป็น editor ที่ผู้เขียนใช้บ่อยที่สุดและขาดไม่ได้) แต่ mule เป็น editor ที่เขียนด้วยภาษา emacs lisp ส่วนใหญ่ทำให้มันพิเศษกว่า editor อื่นๆ และใช้งานได้ไม่จำกัด. ความเห็นส่วนตัวแล้ว, mule เป็นโปรแกรมที่สนับสนุนภาษาไทยมากที่สุดในขณะนี้ ที่น่าแปลกใจและน่าอายคือผู้ที่ทำให้ mule ใช้ภาษาไทยได้คือคนญี่ปุ่นไม่ใช่คนไทย.

ผู้ใช้ต้องเพิ่มคำสั่ง(emacs lisp)ต่อไปนี้ในไฟล์ $HOME/.emacs ก่อนจะใช้ภาษาไทย

;;
;; Thai system initailization for mule
;;
(set-primary-environment 'thai)
เป็นการสั่งให้ mule สนับสนุนการใช้ภาษาไทย. ผู้ใช้สามารถพิมพ์ภาษาไทยโดยกดคีย์ "Ctrl+]" เพื่อเปลี่ยนเป็นคีย์บอร์ดภาษาไทย. ผู้อ่านต้องการฟอนต์พิเศษที่ใช้กับ mule คือ
-etl-fixed-medium-r-normal--14-140-72-72-m-70-tis620.2529-1
-etl-fixed-medium-r-normal--16-160-72-72-m-80-tis620.2529-1
-etl-fixed-medium-r-normal--24-170-100-100-m-120-tis620.2529-1
ฟอนต์ใดฟอนต์หนึ่งใน 3 ฟอนต์นี้หรือทั้งหมด. สามารถ download ได้จาก สื่อไทย หรือ Etl site. ฟอนต์เหล่านี้เป็นฟอนต์ที่มีขนาดความกว้างเท่ากันทุกตัวอักษร.

ผู้อ่านสามารถ download mule ได้จาก ElectroTechnical Laboratory(ETL), Japan

pine

ในช่วงที่ e-mail ยังไม่แพร่หลายมากนัก, การส่งข้อความทาง e-mail สามารถทำได้เฉพาะอักษรรหัส 7 บิตพวก ASCII เท่านั้น. นับวัน e-mail เป็นที่ใช้กันอย่างแพร่หลายมากขึ้น, การส่งข้อมูลที่เป็น binary หรืออักษรรหัส 8 บิตจึงเป็นความจำเป็นที่หลีกเลี่ยงไม่ได้. Mail Transfer Agent(MTA) รุ่นเก่าไม่สามารถส่งข้อมูลแบบ 8 บิตได้จึงเกิดมาตรฐาน MIME (Multipurpose Internet Mail Extensions) ขึ้น. Mail User Agent(MUA), โปรแกรมรับส่ง e-mail ที่สนับสนุน MIME สามารถส่งข้อความที่ใช้รหัส 8 บิตเช่นภาษาไทยได้ โดยการ encode เป็นรหัส 7 บิตก่อนแล้วจึงส่ง. เมื่อ MUA อีกฝ่ายได้รับ e-mail นั้น, ต้อง decode กลับให้เป็นรหัส 8 บิตเพื่อแสดงผลให้เหมือนเดิม. ปัจจุบัน MTA สามารถส่งข้อความแบบ 8 บิตได้โดยตรงแล้ว แต่การ encode ให้เป็นรหัส 7 บิตยังคงต้องการอยู่เนื่องจาก MTA ทุกที่ไม่ได้สนับสนุนการส่งข้อความแบบ 8 บิตโดยตรง. วิธีการ encode ที่ใช้ส่งข้อความภาษาไทยกันอยู่ขณะนี้คือ "Quoted Printable".

โปรแกรมรับส่ง e-mail ที่สนับสนุน MIME ได้แก่ pine, elm, Netscape mail เป็นต้น. ในที่นี้จะกล่าวถึง pine กับการใช้ภาษาไทยเพราะเป็นโปรแกรมที่ได้รับความนิยมสูงและสะดวกในการใช้.

การใช้ pine ให้ใช้จาก txterm. ให้ใส่บรรทัดต่อไปนี้ลงในไฟล์ ~/.pinerc

character-set=TIS-620
หรือผู้ใช้เซ็ต character-set จากเมนู Setup ทางหน้าจอ pine ก็ได้.

Netscape

ผู้ใช้ netscape สามารถเซ็ตฟอนต์ภาษาไทยผ่านทาง Preference ได้. เนื่องจาก netscape ขณะนี้ยังไม่สนับสนุนภาษาไทยจึงควรที่จะเซ็ตฟอนต์ให้อยู่ในกลุ่มของ User-defined. เมื่อเซ็ตฟอนต์เสร็จแล้ว, ผู้ใช้สามารถอ่าน homepage ภาษาไทยได้, เขียน e-mail ภาษาไทย(MIME) หรือเขียนไฟล์แบบ HTML ด้วย composer ก็ได้. ผู้อ่านสามารถอ่านรายละเอียดเพิ่มเติมได้ที่ ภาษาไทยบนระบบปฏิบัติการ UNIX

การส่ง e-mail

ผู้ใช้ต้องเซ็ต netscape ให้ส่ง e-mail ที่มีอักษรรหัส 8 บิทในรูปของ quoted printable ก่อน โดยเลือกตัวเลือกจาก Preferences | Messages | More Options | Send messages that use 8-bit characters. หลังจากนั้นสามารถเขียน e-mail ได้โดยเลือกฟอนต์ภาษาไทยจาก View | Encoding | User-defined และพิมพ์ภาษาไทยจากคีย์บอร์ดภาษาไทย.

การเขียนไฟล์แบบ HTML ด้วย composer

หลักการเช่นเดียวกับการเขียน e-mail คือเลือกฟอนต์ก่อนแล้วพิมพ์ภาษาไทย. ไฟล์ที่สร้างโดย netscape composer บริเวณ <HEAD> จะมีลักษณะดังนี้คือ

<HEAD>
   <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=x-user-defined">
   <META NAME="GENERATOR" CONTENT="Mozilla/4.06 [en] (X11; I; Linux 2.0.32 i586)
 [Netscape]">
</HEAD>
ผู้ใช้ควรแก้ "charset=x-user-defined" ให้เป็น "charset=tis-620" ตามตัวอย่างต่อไปนี้ เพื่อเป็นการระบุรหัสอักษรที่ใช้ให้ถูกต้องตามมาตรฐานภาษาไทย.
...
   <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=tis-620">
...

Thai Mozilla project

Thai Mozilla project เป็นความพยายามที่จะทำให้ netscape สนับสนุนภาษาไทยอย่างเต็มที่ไม่ว่าจะเป็น การตัดคำระหว่างบรรทัด หรือการใช้รหัสอักษรที่ถูกต้องตามมาตรฐาน. โปรเจคนี้เป็นโปรเจคมาจากการที่ netscape เปิดโอกาสให้ผู้พัฒนามาพัฒนาโปรแกรมแบบ open source ซึ่ง Thai Mozilla project นำโดยคุณสัมพันธ์. ผู้อ่านสามารถติดตามรายละเอียดได้ที่ http://members.xoom.com/inThai/mozthai.html.

cttex

cttex พัฒนาโดยคุณวุฒิชัย อัมพรอร่ามเวทย์ เพื่อใช้ภาษาไทยกับ LaTeX. นอกจากนั้นยังสามารถใช้ในการใส่ <WBR> ในไฟล์แบบ HTML เพื่อให้ netscape ตัดคำให้สวยขึ้น.

Ss, Simple thai word Separator

ss เป็นโปรแกรมตัดคำโดยอาศัยคำในพจนานุกรมเป็นตัวเปรียบเทียบ ซึ่งโปรแกรมนี้ปรับปรุงมาจาก cttex อีกทีหนึ่ง. โปรแกรมนี้สามารถแทรกคำที่ต้องการระหว่างคำได้ สามารถประยุกต์ใช้ได้เช่น การใส่ <WBR> ในไฟล์แบบ HTML เพื่อให้ netscape ตัดคำให้สวยขึ้น. โปรแกรมนี้พัฒนาโดย Mr.Teera Kittichareonpot.

Xzthai, X keyboard configurator + simple editor

Xzthai, เป็นโปรแกรมที่ใช้ Tcl/Tk ในการเขียน, มีจุดประสงค์เพื่อใช้ xmodmap แมปคีย์บอร์ดภาษาไทยได้ง่ายขึ้นบนคอมพิวเตอร์ที่ใช้ X window (ไม่จำเป็นต้องเป็น Linux). นอกจากนี้ยังมี editor ง่ายๆสำหรับเขียนข้อความภาษาไทยหรือส่ง e-mail ด้วย.

3.2 การพิมพ์เอกสารภาษาไทย

Thai2ps เป็นโปรแกรมที่แปลงไฟล์ภาษาไทย (plain text) ให้เป็นไฟล์แบบ Postscript และใช้พิมพ์ออกทางเครื่องพิมพ์ด้วย gs หรือ เครื่องพิมพ์แบบ Postscript. ถ้าต้องการพิมพ์เอกสารที่มีคุณภาพกว่านี้ผู้อ่านควรใช้ LaTeX.

การใช้ภาษาไทยกับ LaTeX

ผู้อ่านสามารถอ่านเอกสารที่เกี่ยวกับภาษาไทยกับ LaTeX โดยละเอียดได้ที่ " การใช้ภาษาไทยกับ LaTeX". ในที่นี้จะกล่าวถึงการติดตั้งอย่างง่ายและวิธีใช้ทั่วๆไปเท่านั้น.

Configuration ของภาษาไทยกับ LaTeX

ก่อนอื่นต้องมีชุดโปรแกรม LaTeX install อยู่ก่อนแล้ว ถ้ายังไม่มีให้ install ให้เรียบร้อย. ขั้นแรกให้ download ไฟล์ต่างที่จำเป็นตามรายการต่อไปนี้จาก สื่อไทย ftp

tfm fonts:
    dbtt.tfm    dbttb.tfm   dbttbi.tfm  dbtti.tfm
postscript fonts:
    dbtt.pfa    dbttb.pfa   dbttbi.pfa  dbtti.pfa
style files:
    thai.sty 
Thai Latex filter:
    cttex
Sample Latex file (optional):
    ttex.ttex test.ttex

จะมีไดเรกทอรี่หลักที่เก็บไฟล์ต่างๆที่ LaTeX ใช้ ชื่อ texmf อยู่ที่ /usr/lib/texmf/texmf/ (RedHat 5.0).

ให้เพิ่มบรรทัดต่อไปนี้ในไฟล์ /usr/lib/texmf/texmf/texmf/dvips/misc/psfonts.map

dbtt  DBThaiText <dbtt.pfa
dbttb DBThaiTextBold <dbttb.pfa
dbttbi DBThaiTextBoldItalic <dbttbi.pfa
dbtti DBThaiTextItalic <dbtti.pfa

สร้างไดเรกทอรี่และก็อปปี้ไฟล์ต่างๆตามตัวอย่าง

% mkdir /usr/lib/texmf/texmf/fonts/tfm/public/thai
% mkdir /usr/lib/texmf/texmf/fonts/type1/public/thai
% mkdir /usr/lib/texmf/texmf/tex/generic/thai
% cp *.tfm /usr/lib/texmf/texmf/fonts/tfm/public/thai
% cp *.pfa /usr/lib/texmf/texmf/fonts/type1/public/thai
% cp *.sty /usr/lib/texmf/texmf/tex/generic/thai

สั่งคำสั่ง texhash หรือ MakeTeXls-R(บางเครื่องอาจไม่มี texthash) เพื่อ update ฐานข้อมูลของ Tex.

%/usr/bin/texhash
texhash: updating /usr/lib/texmf/texmf/ls-R ...
texhash: Done.

การใช้ LaTeX filter

ใช้ cttex ตามตัวอย่าง,

% cttex < ttex.ttex > ttex.tex
C-TTeX $Revivsion: 1.15 $
Usage : cttex [cutcode] < infile > outfile
Usage : cutcode=0 forces operation in HTML mode.
Build-in dictionary size: 9945 words
 343
Done
% latex ttex.tex
...
% xdvi ttex.dvi
ผู้ใช้สามารถแปลงไฟล์แบบ dvi ให้เป็น Postscript ได้ด้วยคำสั่ง dvips
% dvips -o ttex.ps ttex.dvi

จากนั้นผู้ใช้สามารถพิมพ์ออกทางเครื่องพิมพ์ด้วยคำสั่ง lpr ซึ่งในที่นี้จะไม่กล่าวถึงการเซ็ตเครื่องพิมพ์. ผู้อ่านสามารถเซ็ตเครื่องพิมพ์เองได้โดยอ่านเอกสาร HOWTO เกี่ยวกับการพิมพ์ หรือใช้ print-tools (RedHat5.0).

ขั้นตอนและวิธีการเขียนเอกสาร LaTeX โดยละเอียดสามารถอ่านได้จากเอกสาร " การใช้ภาษาไทยกับ LaTeX".

3.3 X Application Resources

เนื่องจากโปรแกรมที่เขียนตาม X Toolkit Intrinsics สามารถ configure รูปแบบได้ด้วย resource file เช่น .Xdefaults. ตัวอย่างต่อไปนี้เป็นการทำให้ xman แสดงตัวอักษร(label) เป็นภาษาไทย.

......

!! Xman section

Xman*Font: thai8x16

Xman*helpButton.Label: ช่วย

Xman*quitButton.Label: ออก

Xman*manpageButton.Label: คู่มือการใช้

......

ให้เขียนคำสั่งเหล่านี้ในไฟล์ .Xdefaults และสั่งคำสั่ง xrdb เพื่อ update ข้อมูลก่อนใช้ xman ดังนี้

% xrdb -merge $HOME/.Xdefaults

ผู้อ่านสามารถใช้หลักการเดียวกันนี้ เปลี่ยนฟอนต์และ label ต่างๆของ window manager ให้เป็นภาษาไทยได้เช่นกัน

3.4 Thai locale(th_TH)

Locale เป็นกลุ่ม environment variable ที่บอกลักษณะภาษาที่ใช้อยู่. ถ้าเซ็ต locale ให้เป็นภาษาญี่ปุ่นเวลาสั่งคำสั่งและเกิด error ก็จะมี error message เป็นภาษาไทยญี่ปุ่น, ถ้าใช้โปรแกรมบน X window เมนูที่แสดงในภาษานั้นๆก็จะแสดงตามภาษาที่ locale ตั้งค่าไว้, เปลี่ยนระบบวันที่ให้อยู่ในรูปแบบไทยเป็นต้น.

เมื่อมี locale definition สำหรับภาษาไทยแล้ว เราสามารถใช้งานกับโปรแกรมที่สนับสนุน locale ได้และใช้งานได้ในสภาพแวดล้อมแบบไทยๆ. เมื่อมี locale หลายภาษาในเครื่องเดียว, หมายถึงเราสามารถแสดงผลเป็นหลายภาษาในหน้าจอเดียว เช่นเราอาจจะใช้โปรแกรม xman สองโปรแกรมโดยที่ man อันหนึ่งมีเมนูเป็นภาษาไทย แต่อีกอันหนึ่งเป็นภาษาไทยฝรั่งเศสเป็นต้น.

ขณะนี้ locale สำหรับภาษาไทยอยู่ระหว่างการพัฒนา ผู้อ่านที่สนใจดูรายละเอียดได้ที่ Thai locale

3.5 Thai Extension for Linux (TE)

TE เป็น installation package ที่รวบรวมโปรแกรมภาษาไทยต่างๆ, ฟอนต์ และ configure ระบบให้โดยอัตโนมัติ. หลังจากที่ install และ reboot เครื่อง, สามารถใช้ภาษาไทยได้ทันที. download TE(preview version) ได้ที่ สื่อไทย ftp


Next Previous Contents