Penguin
Diff: HowToThaiHOWTO
EditPageHistoryDiffInfoLikePages

Differences between current version and revision by previous author of HowToThaiHOWTO.

Other diffs: Previous Major Revision, Previous Revision, or view the Annotated Edit History

Newer page: version 3 Last edited on Thursday, October 21, 2004 2:48:41 pm by JohnMcPherson
Older page: version 2 Last edited on Friday, June 7, 2002 1:07:41 am by perry Revert
@@ -1,1522 +1 @@
-  
-  
-  
-The Linux Thai HOWTO  
-  
-  
-  
-----  
-  
-!!!The Linux Thai HOWTO  
-  
-!!Poonlap Veeratanabutr,  
-poon-v@fedu.uec.ac.jpv0.4, 4 August 1998  
-  
-  
-----  
-''This document describes how to use Thai language with Linux. This will cover  
-setting Thai fonts, Thai keyboard and some Thai applications.''  
-----  
-  
-  
-  
-  
-!!1. Introduction  
-  
-  
-  
-  
-!!2. Thai Input and Output  
-  
-  
-****2.1 Linux console  
-  
-****2.2 X Window system  
-  
-  
-  
-  
-  
-!!3. Applications with Thai language  
-  
-  
-****3.1 Some X applications and Thai language  
-  
-****3.2 Printing Thai document  
-  
-****3.3 X Application Resources  
-  
-****3.4 Thai Extension for Linux (TE)  
-  
-  
-  
-  
-  
-!!4. References and FTP sites  
-  
-  
-****4.1 Other documents of relevance  
-  
-****4.2 Thai related stuffs  
-  
-****4.3 FTP and Web sites  
-  
-  
-  
-  
-  
-!!5. Acknowledgments and Copyright  
-----  
-  
-!!1. Introduction  
-  
-  
-It's about one year that I didn't update this document. There were a lot of  
-movement in Thai computing and using Linux in Thailand. For example, Linux  
-boxes are used as server in many  
-schools in Thailand.  
-  
-  
-The purpose of this document is to show how to set your Linux to use Thai  
-language. I use Linux !RedHat 5.0 as I wrote this document, so directories  
-which I mention in this document may be different from other distribution.  
-  
-  
-  
-  
-  
-First I would like to talk about Thai standard character set. Thai standard  
-character set is TIS-620. There are also other Thai standard  
-character sets such as ISO-IR-166, CP874, etc. Please see  
-http://www.inet.co.th/cyberclub/trin/thairef/ for further information  
-about Thai standard character set.  
-TIS-620 is 8-bit character set. It has the same range as ISO-8859-1,  
-so we can use apllications that support ISO-8859-1 character set  
-also. Although we can use Thai language with apllications that support  
-ISO-8859-1 character set, but it does not mean those applications support Thai language.  
-  
-  
-Thai characters are different from English characters.  
-There is a variation of position,  
-normal position, character can be on other character,  
-character can be under other character. There is no space between words. These  
-are some problems in  
-developing Thai supported application.  
-  
-  
-You can find the lastest version of Thai-HOWTO document from  
-http://www.fedu.uec.ac.jp/!ZzzThai/Linux.  
-Your comment is welcome.  
-  
-  
-  
-  
-  
-  
-----  
-  
-!!2. Thai Input and Output  
-  
-!! 2.1 Linux console  
-  
-  
-  
-Thai characters do not display properly in Linux console. If you mainly use X  
-window, you may pass this section.  
-  
-!Thai fonts  
-  
-  
-You can obtain Linux Thai console fonts which created by Mr.  
-Phaisarn Techajaruwong from  
-!ZzzThai ftp site  
-  
-For example, there is a font name "phaisarn.psf". Put it in  
-/usr/lib/kbd/consolefonts/ directory. Then, you can load the new  
-font from Linux console by command  
-  
-  
-%setfont phaisarn.psf  
-  
-  
-  
-  
-  
-  
-!Keyboard layout  
-  
-  
-You can set keyboard behavior as you like by using loadkeys  
-command. Usually, you use loadkeys to load the file located in  
-/usr/lib/kbd/keytables. You can create a US/Thai keyboard-map file and save it  
-in this directory. Here is a sample.  
-  
-  
-  
-  
-  
-keycode 0 =  
-keycode 1 = Escape Escape  
-alt keycode 1 = Meta_Escape  
-keycode 2 = +one exclam +0x0e5 plus  
-alt keycode 2 = Meta_one  
-alt shift keycode 2 = Meta_exclam  
-keycode 3 = +two at +slash 0x0f1  
-control keycode 3 = nul  
-control shift keycode 3 = nul  
-alt keycode 3 = Meta_two  
-alt shift keycode 3 = Meta_at  
-keycode 4 = +three numbersign +underscore 0x0f2  
-control keycode 4 = Escape  
-alt keycode 4 = Meta_three  
-alt shift keycode 4 = Meta_numbersign  
-keycode 5 = +four dollar +0x0c0 0x0f3  
-control keycode 5 = Control_backslash  
-alt keycode 5 = Meta_four  
-alt shift keycode 5 = Meta_dollar  
-keycode 6 = +five percent +0x0b6 0x0f4  
-control keycode 6 = Control_bracketright  
-alt keycode 6 = Meta_five  
-alt shift keycode 6 = Meta_percent  
-keycode 7 = +six asciicircum +0x0d8 0x0d9  
-control keycode 7 = Control_asciicircum  
-alt keycode 7 = Meta_six  
-alt shift keycode 7 = Meta_asciicircum  
-keycode 8 = +seven ampersand +0x0d6 0x0df  
-control keycode 8 = Control_underscore  
-alt keycode 8 = Meta_seven  
-keycode 9 = +eight asterisk +0x0a4 0x0f5  
-control keycode 9 = Delete  
-alt keycode 9 = Meta_eight  
-keycode 10 = +nine parenleft +0x0b5 0x0d6  
-alt keycode 10 = Meta_nine  
-keycode 11 = +zero parenright +0x0a8 0x0f7  
-alt keycode 11 = Meta_zero  
-keycode 12 = +minus underscore +0x0a2 0x0f8  
-control keycode 12 = Control_underscore  
-control shift keycode 12 = Control_underscore  
-alt keycode 12 = Meta_minus  
-keycode 13 = +equal plus +0x0aa 0x0f9  
-alt keycode 13 = Meta_equal  
-keycode 14 = Delete Delete Delete Delete  
-alt keycode 14 = Meta_Delete  
-keycode 15 = Tab Tab Tab Tab  
-alt keycode 15 = Meta_Tab  
-keycode 16 = +q Q +0x0e6 0x0f0  
-keycode 17 = +w W +0x0e4 quotedbl  
-keycode 18 = +e E +0x0d3 0x0ae  
-keycode 19 = +r R +0x0be 0x0b1  
-keycode 20 = +t T +0x0d0 0x0b8  
-keycode 21 = +y Y +0x0d1 0x0ed  
-keycode 22 = +u U +0x0d5 0x0ea  
-keycode 23 = +i I +0x0c3 0x0b3  
-keycode 24 = +o O +0x0b9 0x0cf  
-keycode 25 = +p P +0x0c2 0x0ad  
-keycode 26 = +bracketleft braceleft +0x0ba 0x0b0  
-control keycode 26 = Escape  
-alt keycode 26 = Meta_bracketleft  
-alt shift keycode 26 = Meta_braceleft  
-keycode 27 = +bracketright braceright +0x0c5 comma  
-control keycode 27 = Control_bracketright  
-alt keycode 27 = Meta_bracketright  
-alt shift keycode 27 = Meta_braceright  
-keycode 28 = Return Return Return Return  
-alt keycode 28 = 0x080d  
-keycode 29 = Control Control Control Control  
-keycode 30 = +a A +0x0bf 0x0c4  
-keycode 31 = +s S +0x0cb 0x0a6  
-keycode 32 = +d D +0x0a1 0x0af  
-keycode 33 = +f F +0x0b4 0x0e2  
-keycode 34 = +g G +0x0e0 0x0ac  
-keycode 35 = +h H +0x0e9 0x0e7  
-keycode 36 = +j J +0x0e8 0x0eb  
-keycode 37 = +k K +0x0d2 0x0c9  
-keycode 38 = +l L +0x0ca 0x0c8  
-keycode 39 = +semicolon colon +0x0c7 0x0ab  
-alt keycode 39 = Meta_semicolon  
-keycode 40 = +apostrophe quotedbl +0x0a7 period  
-control keycode 40 = Control_g  
-alt keycode 40 = Meta_apostrophe  
-keycode 41 = +grave asciitilde +minus percent  
-control keycode 41 = nul  
-alt keycode 41 = Meta_grave  
-keycode 42 = Shift Shift Shift Shift  
-keycode 43 = +backslash bar +0x0a3 0x0a5  
-control keycode 43 = Control_backslash  
-alt keycode 43 = Meta_backslash  
-alt shift keycode 43 = Meta_bar  
-keycode 44 = +z Z +0x0bc parenleft  
-keycode 45 = +x X +0x0bb parenright  
-keycode 46 = +c C +0x0e1 0x0a9  
-keycode 47 = +v V +0x0cd 0x0ce  
-keycode 48 = +b B +0x0d4 0x0da  
-keycode 49 = +n N +0x0d7 0x0ec  
-keycode 50 = +m M +0x0b7 question  
-keycode 51 = +comma less +0x0c1 0x0b2  
-alt keycode 51 = Meta_comma  
-alt shift keycode 51 = Meta_less  
-keycode 52 = +period greater +0x0e3 0x0cc  
-alt keycode 52 = Meta_period  
-alt shift keycode 52 = Meta_greater  
-keycode 53 = +slash question +0x0bd 0x0c6  
-control keycode 53 = Delete  
-alt keycode 53 = Meta_slash  
-keycode 54 = Shift Shift Shift Shift  
-keycode 55 = KP_Multiply  
-keycode 56 = Alt Alt Alt Alt  
-keycode 57 = space space space space  
-control keycode 57 = nul  
-alt keycode 57 = Meta_space  
-keycode 58 = Caps_Lock Caps_Lock Caps_Lock Caps_Lock  
-keycode 59 = F1 F11 Console_13  
-control keycode 59 = F1  
-alt keycode 59 = Console_1  
-control alt keycode 59 = Console_1  
-keycode 60 = F2 F12 Console_14  
-control keycode 60 = F2  
-alt keycode 60 = Console_2  
-control alt keycode 60 = Console_2  
-keycode 61 = F3 F13 Console_15  
-control keycode 61 = F3  
-alt keycode 61 = Console_3  
-control alt keycode 61 = Console_3  
-keycode 62 = F4 F14 Console_16  
-control keycode 62 = F4  
-alt keycode 62 = Console_4  
-control alt keycode 62 = Console_4  
-keycode 63 = F5 F15 Console_17  
-control keycode 63 = F5  
-alt keycode 63 = Console_5  
-control alt keycode 63 = Console_5  
-keycode 64 = F6 F16 Console_18  
-control keycode 64 = F6  
-alt keycode 64 = Console_6  
-control alt keycode 64 = Console_6  
-keycode 65 = F7 F17 Console_19  
-control keycode 65 = F7  
-alt keycode 65 = Console_7  
-control alt keycode 65 = Console_7  
-keycode 66 = F8 F18 Console_20  
-control keycode 66 = F8  
-alt keycode 66 = Console_8  
-control alt keycode 66 = Console_8  
-keycode 67 = F9 F19 Console_21  
-control keycode 67 = F9  
-alt keycode 67 = Console_9  
-control alt keycode 67 = Console_9  
-keycode 68 = F10 F20 Console_22  
-control keycode 68 = F10  
-alt keycode 68 = Console_10  
-control alt keycode 68 = Console_10  
-keycode 69 = Num_Lock  
-keycode 70 = Scroll_Lock Show_Memory Show_Registers  
-control keycode 70 = Show_State  
-alt keycode 70 = Scroll_Lock  
-keycode 71 = KP_7  
-alt keycode 71 = Ascii_7  
-keycode 72 = KP_8  
-alt keycode 72 = Ascii_8  
-keycode 73 = KP_9  
-alt keycode 73 = Ascii_9  
-keycode 74 = KP_Subtract  
-keycode 75 = KP_4  
-alt keycode 75 = Ascii_4  
-keycode 76 = KP_5  
-alt keycode 76 = Ascii_5  
-keycode 77 = KP_6  
-alt keycode 77 = Ascii_6  
-keycode 78 = KP_Add  
-keycode 79 = KP_1  
-alt keycode 79 = Ascii_1  
-keycode 80 = KP_2  
-alt keycode 80 = Ascii_2  
-keycode 81 = KP_3  
-alt keycode 81 = Ascii_3  
-keycode 82 = KP_  
-alt keycode 82 = Ascii_  
-keycode 83 = KP_Period  
-altgr control keycode 83 = Boot  
-control alt keycode 83 = Boot  
-keycode 84 = Last_Console  
-keycode 85 =  
-keycode 86 = less greater bar  
-alt keycode 86 = Meta_less  
-keycode 87 = F11 F11 Console_23  
-control keycode 87 = F11  
-alt keycode 87 = Console_11  
-control alt keycode 87 = Console_11  
-keycode 88 = F12 F12 Console_24  
-control keycode 88 = F12  
-alt keycode 88 = Console_12  
-control alt keycode 88 = Console_12  
-keycode 89 =  
-keycode 90 =  
-keycode 91 =  
-keycode 92 =  
-keycode 93 =  
-keycode 94 =  
-keycode 95 =  
-keycode 96 = KP_Enter  
-keycode 97 = Control  
-keycode 98 = KP_Divide  
-keycode 99 = Control_backslash  
-control keycode 99 = Control_backslash  
-alt keycode 99 = Control_backslash  
-keycode 100 = !AltGr_Lock  
-keycode 101 = Break  
-keycode 102 = Find  
-keycode 103 = Up  
-keycode 104 = Prior  
-shift keycode 104 = Scroll_Backward  
-keycode 105 = Left  
-alt keycode 105 = Decr_Console  
-keycode 106 = Right  
-alt keycode 106 = Incr_Console  
-keycode 107 = Select  
-keycode 108 = Down  
-keycode 109 = Next  
-shift keycode 109 = Scroll_Forward  
-keycode 110 = Insert  
-keycode 111 = Remove  
-altgr control keycode 111 = Boot  
-control alt keycode 111 = Boot  
-keycode 112 =  
-keycode 113 =  
-keycode 114 =  
-keycode 115 =  
-keycode 116 =  
-keycode 117 =  
-keycode 118 =  
-keycode 119 =  
-keycode 120 =  
-keycode 121 =  
-keycode 122 =  
-keycode 123 =  
-keycode 124 =  
-keycode 125 =  
-keycode 126 =  
-keycode 127 =  
-string F1 = "\033[[[[A"  
-string F2 = "\033[[[[B"  
-string F3 = "\033[[[[C"  
-string F4 = "\033[[[[D"  
-string F5 = "\033[[[[E"  
-string F6 = "\033[[17~"  
-string F7 = "\033[[18~"  
-string F8 = "\033[[19~"  
-string F9 = "\033[[20~"  
-string F10 = "\033[[21~"  
-string F11 = "\033[[23~"  
-string F12 = "\033[[24~"  
-string F13 = "\033[[25~"  
-string F14 = "\033[[26~"  
-string F15 = "\033[[28~"  
-string F16 = "\033[[29~"  
-string F17 = "\033[[31~"  
-string F18 = "\033[[32~"  
-string F19 = "\033[[33~"  
-string F20 = "\033[[34~"  
-string Find = "\033[[1~"  
-string Insert = "\033[[2~"  
-string Remove = "\033[[3~"  
-string Select = "\033[[4~"  
-string Prior = "\033[[5~"  
-string Next = "\033[[6~"  
-string F21 = ""  
-string F22 = ""  
-string F23 = ""  
-string F24 = ""  
-string F25 = ""  
-string F26 = ""  
-  
-  
-  
-  
-Suppose you save this file as thai.map. From Linux console, use command  
-loadkeys to load thai.map.  
-  
-  
-%loadkeys thai.map  
-  
-  
-You can switch to Thai keyboard by pressing the right Alt key. If you want to  
-switch the keyboard back, press the right Alt key again.  
-  
-  
-  
-  
-  
-  
-  
-!! 2.2 X Window system  
-  
-  
-! Thai fonts  
-  
-  
-You can obtain Thai fonts in bdf format or  
-pcf format from internet. You can also use scalable fonts such as Type1 or  
-!TrueType fonts. But I will not describe about these.  
-  
-  
-  
-  
-  
-  
-  
-!Installing Thai fonts  
-  
-  
-You must log in as root. Let's put Thai fonts in  
-/usr/X11R6/lib/X11/fonts/misc/, this is a default font path. Change directory to  
-/usr/X11R6/lib/X11/fonts/misc/ and run command  
-  
-  
-%mkfontdir  
-%xset fp rehash  
-  
-  
-If you put Thai fonts in different directory, you must use xset to add  
-the new font path. Please see man-page for further information.  
-You can check the new fonts by running command xlsfonts and see whether  
-there are Thai fonts or not. If you can not see any Thai fonts from this  
-command, you may need to restart X window.  
-  
-  
-  
-  
-  
-  
-  
-!Thai keyboard layoutThere are two ways to map Thai keyboard on X window, using X !KeyboardExtension (XKB) and using xmodmap. Please select how you map Thai keyboard. Irecommend using XKB.  
-  
-  
-  
-  
-!XKB and Thai keyboard layout.  
-  
-  
-Beginning with XFree86 3.1.2D, you can use the new X11R6.1 XKEYBOARD  
-extension to manage the keyboard layout. This is  
-very helpful.  
-  
-  
-During X server configuration with xf86config you will be asked  
-about XKB, if you want to to set Thai keyboard layout for your system,  
-say yes. There are a list of pre-configured keymaps. Choose Standard  
-101-key, Thai encoding.  
-  
-  
-XF86Setup is the graphical X server configuration utility for XFree86 X server.  
-It is easier than traditional xf86config. You can  
-select a keyboard layout easily with this tool.  
-  
-  
-Ther are many choices of keyboard switch key to select. The default is  
-!LeftAlt+!RightShift switch to Thai and !LeftAlt+!LeftShift switch to US. You can  
-type Thai characters in any applications which support ISO-8859-1 character  
-set, but don't forget to use Thai fonts with those applications too.  
-  
-  
-I found that pre-configured keymaps that came with XFree86-3.2  
-is not correct. You may not be able to type  
-THO THUNG which located at " 5 key " . To fix this problem, you should  
-add the line  
-  
-  
-key <AE05> { [ [], [[ paragraph, ocircumflex ] };  
-  
-  
-in the file /usr/X11R6/lib/X11/xkb/symbols/th as the example.  
-  
-  
-.................  
-key <AE03> { [[], [[ minus, ograve ] };  
-key <AE04> { [[], [[ Agrave, oacute ] };  
-key <AE05> { [[], [[ paragraph, ocircumflex ] };  
-key <AE06> { [[], [[ Ooblique, Ugrave ] };  
-key <AE07> { [[], [[ Odiaeresis, ssharp ] };  
-.................  
-  
-  
-You can not type SORUSI also. Please change the line from  
-  
-  
-key <AC08> { [[], [[ Ograve, eacute ] };  
-  
-  
-to  
-  
-  
-key <AC08> { [[], [[ Ograve, Eacute ] };  
-  
-  
-Note that eacute is equal to MAITHO and Eacute is equal to SORUSI.  
-  
-  
-There are also XKB extension utilities such as setxkbmap,  
-xkbcomp, etc. Please see man-page for more information. I recommend to  
-use xkbvled. The leds will be on when you are using Thai keyboard so you  
-can know your keyboard's status.  
-  
-  
-The following is part of XF86Config file  
-about keyboard section. If you want to configure the keyboard by hand, change  
-the content of /usr/X11R6/lib/X11/XF86Config as an example  
-below. This configuration uses the default toggle key.  
-  
-  
-Section "Keyboard"  
-Protocol "Standard"  
-!AutoRepeat 500 5  
-!LeftAlt Meta  
-!RightAlt Meta  
-!ScrollLock Compose  
-!RightCtl Control  
-# !XkbDisable  
-!XkbKeycodes "xfree86"  
-!XkbTypes "default"  
-!XkbCompat "default"  
-!XkbSymbols "us(pc101)"  
-!XkbGeometry "pc"  
-!XkbRules "xfree86"  
-!XkbModel "pc101"  
-!XkbLayout "th"  
-!EndSection  
-  
-  
-  
-  
-If you use XKB extension, Thai keyboard mapping with xmodmap may not work.  
-See XF86Config man-page for mor information.  
-  
-  
-  
-  
-!Thai keyboard layout with xmodmap  
-  
-  
-You can use the utility xmodmap to map Thai keyboard.  
-Normally xmodmap is used to load a keyboard configured file.  
-For most Linux distributions,  
-when you start X window with startx, X server will find .Xmodmap in  
-/usr/X11R6/lib/X11/xinit/ first. If .Xmodmap does not exist, X  
-server will find .Xmodmap in your home directory. Please see the content of  
-/usr/X11R6/lib/X11/xinit/xinitrc.  
-  
-  
-The following is the sample of .Xmodmap for Thai Kedmanee  
-keyboard layout.  
-  
-  
-  
-  
-  
-!  
-! Linux/XFree86 Thai Kedmanee layout (based on US keyboard)  
-! Use !ScrollLock to switch to Thai keyboard.  
-! This file will work with XFree86 only.  
-!  
-keycode 0x09 = Escape  
-keycode 0x43 = F1  
-keycode 0x44 = F2  
-keycode 0x45 = F3  
-keycode 0x46 = F4  
-keycode 0x47 = F5  
-keycode 0x48 = F6  
-keycode 0x49 = F7  
-keycode 0x4A = F8  
-keycode 0x4B = F9  
-keycode 0x4C = F10  
-keycode 0x5F = F11  
-keycode 0x60 = F12  
-keycode 0x6F = Print  
-keycode 0x4E = Mode_switch XF86ModeLock  
-keycode 0x6E = Pause  
-keycode 0x31 = grave asciitilde minus percent  
-keycode 0x0A = 1 exclam 0x0e5 plus  
-keycode 0x0B = 2 at slash 0x0f1  
-keycode 0x0C = 3 numbersign underscore 0x0f2  
-keycode 0x0D = 4 dollar 0x0c0 0x0f3  
-keycode 0x0E = 5 percent 0x0b6 0x0f4  
-keycode 0x0F = 6 asciicircum 0x0d8 0x0d9  
-keycode 0x10 = 7 ampersand 0x0d6 0x0df  
-keycode 0x11 = 8 asterisk 0x0a4 0x0f5  
-keycode 0x12 = 9 parenleft 0x0b5 0x0f6  
-keycode 0x13 = 0 parenright 0x0a8 0x0f7  
-keycode 0x14 = minus underscore 0x0a2 0x0f8  
-keycode 0x15 = equal plus 0x0aa 0x0f9  
-keycode 0x33 = backslash bar 0x0a3 0x0a5  
-keycode 0x16 = !BackSpace  
-keycode 0x6A = Insert  
-keycode 0x61 = Home  
-keycode 0x63 = Prior  
-keycode 0x4D = Num_Lock  
-keycode 0x70 = KP_Divide  
-keycode 0x3F = KP_Multiply  
-keycode 0x52 = KP_Subtract  
-keycode 0x17 = Tab  
-keycode 0x18 = q Q 0x0e6 0x0f0  
-keycode 0x19 = w W 0x0e4 quotedbl  
-keycode 0x1A = e E 0x0d3 0x0ae  
-keycode 0x1B = r R 0x0be 0x0b1  
-keycode 0x1C = t T 0x0d0 0x0b8  
-keycode 0x1D = y Y 0x0d1 0x0ed  
-keycode 0x1E = u U 0x0d5 0x0ea  
-keycode 0x1F = i I 0x0c3 0x0b3  
-keycode 0x20 = o O 0x0b9 0x0cf  
-keycode 0x21 = p P 0x0c2 0x0ad  
-keycode 0x22 = bracketleft braceleft 0x0ba 0x0b0  
-keycode 0x23 = bracketright braceright 0x0c5 comma  
-keycode 0x24 = Return  
-keycode 0x6B = Delete  
-keycode 0x67 = End  
-keycode 0x69 = Next  
-keycode 0x4F = KP_7  
-keycode 0x50 = KP_8  
-keycode 0x51 = KP_9  
-keycode 0x56 = KP_Add  
-keycode 0x42 = Caps_Lock  
-keycode 0x26 = a A 0x0bf 0x0c4  
-keycode 0x27 = s S 0x0cb 0c0a6  
-keycode 0x28 = d D 0x0a1 0x0af  
-keycode 0x29 = f F 0x0b4 0x0e2  
-keycode 0x2A = g G 0x0e0 0x0ac  
-keycode 0x2B = h H 0x0e9 0x0e7  
-keycode 0x2C = j J 0x0e8 0x0eb  
-keycode 0x2D = k K 0x0d2 0x0c9  
-keycode 0x2E = l L 0x0ca 0x0c8  
-keycode 0x2F = semicolon colon 0x0c7 0x0ab  
-keycode 0x30 = apostrophe quotedbl 0x0a7 period  
-keycode 0x53 = KP_4  
-keycode 0x54 = KP_5  
-keycode 0x55 = KP_6  
-keycode 0x32 = Shift_L  
-keycode 0x34 = z Z 0x0bc parenleft  
-keycode 0x35 = x X 0x0bb parenright  
-keycode 0x36 = c C 0x0e1 0x0a9  
-keycode 0x37 = v V 0x0cd 0x0ce  
-keycode 0x38 = b B 0x0d4 0x0da  
-keycode 0x39 = n N 0x0d7 0x0ec  
-keycode 0x3A = m M 0x0b7 question  
-keycode 0x3B = comma less 0x0c1 0x0b2  
-keycode 0x3C = period greater 0x0e3 0x0cc  
-keycode 0x3D = slash question 0x0bd 0x0c6  
-keycode 0x3E = Shift_R  
-keycode 0x62 = Up  
-keycode 0x57 = KP_1  
-keycode 0x58 = KP_2  
-keycode 0x59 = KP_3  
-keycode 0x6C = KP_Enter  
-keycode 0x25 = Control_L  
-keycode 0x40 = Alt_L Meta_L  
-keycode 0x41 = space  
-keycode 0x71 = Alt_R Meta_R  
-keycode 0x6D = Control_R  
-keycode 0x64 = Left  
-keycode 0x68 = Down  
-keycode 0x66 = Right  
-keycode 0x5A = KP_  
-keycode 0x5B = KP_Decimal  
-clear Shift  
-clear Lock  
-clear Control  
-clear Mod1  
-clear Mod2  
-clear Mod3  
-clear Mod4  
-clear Mod5  
-add Shift = Shift_L Shift_R  
-add Lock = Caps_Lock  
-add Control = Control_L Control_R  
-add Mod1 = Alt_L Alt_R  
-add Mod2 = Mode_switch  
-  
-  
-Just put .Xmodmap in your home directory will be OK. When you start X window, X  
-server will load this file.  
-  
-  
-You can also load .Xmodmap from command line.  
-  
-  
-%xmodmap ~/.Xmodmap  
-  
-  
-  
-  
-  
-  
-  
-In above .Xmodmap file, US/Thai switch key is  
-assigned to keycode 0x4E (78), Scroll Lock key, with the statement  
-  
-----  
-  
-keycode 0x4E = Mode_switch XF86ModeLock  
-  
-----  
-  
-XF86ModeLock is the special keysym for XFree86 X server. If you  
-don't add this keysym, you have to hold the scroll lock key while you  
-are typing Thai characters. Note that if you use commercial X server, some  
-keycodes are different. You may have to map keyboard by yourself.  
-See man-pages of X and xev for further information.  
-  
-  
-  
-  
-  
-__Note:__ If you are using XFree86 version 3.1.2D or later, you need to  
-add the line !XkbDisable in keyboard section of  
-XF86Config file. You may config the keyboard section  
-like the following sample.  
-  
-  
-Section "Keyboard"  
-Protocol "Standard"  
-!AutoRepeat 500 5  
-!LeftAlt Meta  
-!RightAlt !ModeShift  
-!ScrollLock !ModeLock  
-!RightCtl Compose  
-!XkbDisable  
-!EndSection  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-----  
-  
-!!3. Applications with Thai language  
-  
-  
-This is the tricky part. Most applications support ISO-8859-1  
-character set. For example, emacs can display  
-ISO-8859-1 character. If we set emacs to display  
-ISO-8859-1 and use  
-Thai font, you can edit Thai document with emacs. But this is not a good  
-policy. You should avoid using this trick as possible. What we need is Thai  
-locale or Thai supported applications to manage these things.  
-  
-  
-  
-  
-  
-To make X window application displays Thai font,  
-you should run the application with -fn option. For example,  
-  
-  
-%xedit -fn thai8x16  
-  
-  
-Note that thai8x16 is just a one of Thai font names. You can see all  
-available fonts by command xlfonts.  
-If you don't want to fill -fn option every time you run  
-application. You should set Thai font in your ~/.Xdefaults or  
-~/.Xresources like this  
-  
-  
-XTerm*font: thai8x16  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-!!3.1 Some X applications and Thai language  
-  
-  
-  
-  
-  
-  
-  
-  
-!txterm  
-  
-  
-txterm is Thai version of xterm. There are several programs running  
-under xterm such as shell, pine, vi, less, etc. We can type Thai  
-characters without any problems with txterm. Txterm also provides  
-its own Thai input method by pressing " F1 " key. Txterm will  
-use fonts thai9x13 as default Thai font. You can change this by add -fn option.  
-  
-  
-You can get txterm from  
-Thaigate or  
-!ZzzThai.  
-  
-  
-  
-  
-  
-  
-  
-; __bash shell :__:  
-  
-Normally, shell accepts only ASCII character set. To type Thai characters in  
-shell command line, you should set environment LC_CTYPE to  
-iso_8859_1.  
-  
-  
-I don't set LC_CTYPE environment variable to  
-iso_8859_1 because this environment variable will effect  
-other applications too. With bash shell, you can specify which  
-environment variable to be passed to the application. For example, I can make  
-a fake Thai X  
-terminal with this syntax.  
-  
-  
-LC_CTYPE=iso_8859_1 xterm -fn thai8x16  
-  
-  
-This xterm display Thai characters well, but not good for typing Thai  
-characters. I strongly recommend you to use txterm.  
-  
-  
-  
-; __ls :__:  
-  
-If you name a filename in Thai. Issue the command as  
-  
-  
-ls -N  
-  
-  
-  
-  
-You may set alias in ~/.bashrc or ~/.cshrc, so  
-you can type ls without option. If you don't use ls with  
--N option, you may see Thai filename as ?????.  
-  
-  
-  
-  
-  
-  
-  
-  
-!Emacs, Mule  
-  
-  
-Mule stands for " Multilingual Enhancement to GNU Emacs " . It has  
-the same functions as emacs and supports many languages. Mule provides  
-its own input method, so you don't need any configuration for typing Thai. You  
-needs only Thai fonts for mule which you can get from,  
-!ZzzThai or  
-Etl site.  
-These Thai fonts are fixed width fonts.  
-  
-  
-You need some configuration for mule. Puts the following lines in  
-your .emacs.  
-  
-  
-;;  
-;; Thai System, add in .emacs  
-;;  
-(set-file-coding-system-for-read '*tis620*)  
-(set-default-file-coding-system '*tis620*)  
-(set-display-coding-system '*tis620*)  
-(set-keyboard-coding-system '*tis620*)  
-(setq-deafault quail-current-package (assoc "thai" quail-package-alist))  
-  
-  
-Add the following lines in .Xdefaults.  
-  
-  
-!  
-! Emacs, Mule - Font menu  
-!  
-Emacs*!FontSetList: thai14, thai16, thai24  
-Emacs*!FontSet-thai14:\  
--etl-fixed-medium-r-normal--14-140-72-72-m-70-tis620.2529-1  
-Emacs*!FontSet-thai16:\  
--etl-fixed-medium-r-normal--16-160-72-72-m-80-tis620.2529-1  
-Emacs*!FontSet-thai24:\  
--etl-fixed-medium-r-normal--24-500-72-72-m-120-tis620.2529-1  
-  
-  
-  
-  
-When you hold shift key and press  
-left mouse's button, you can select Thai fonts to display in mule window.  
-To type Thai characters, press " Ctrl + ] " . To type English, press  
-" Ctrl + ] " again.  
-  
-  
-You can get mule from  
-!ElectroTechnical Laboratory(ETL)  
-  
-  
-  
-!vi  
-  
-  
-Vi should be run on txterm.  
-  
-  
-  
-  
-!pine  
-  
-  
-In the past, we could not send 8-bit characters through E-mail. Now, although  
-mail transfer agent can handle 8-bit characters but some old mail transfer  
-agent can not.  
-We can send Thai e-mail by using e-mail application that supports MIME (Multipurpose Internet Mail Extensions)  
-E-mail applications that support  
-MIME are pine, elm, Netscape mail, etc.  
-  
-  
-Put the following definition in your ~/.pinerc file:  
-  
-  
-character-set=ISO-8859-1  
-  
-  
-This can also be set via the Setup option in pine window. You can find  
-it under Config. You can read Thai news from pine, too.  
-  
-  
-Pine should be run in txterm.  
-  
-  
-  
-  
-!Netscape  
-  
-  
-If you have Thai fonts in your system. Just set Thai font from  
-preference. Thai fonts will appear in User defined area. See  
-http://www.fedu.uec.ac.jp/!ZzzThai/unix for setting Thai  
-language on Netscape.  
-  
-  
-Some movement about Thai Mozilla project at  
-http://members.xoom.com/inThai/mozthai.html.  
-  
-  
-  
-  
-!Ss, Simple thai word Separator  
-  
-  
-ss is a dictionary based Thai word separation program similar to  
-cttex. It can be used to insert a configurable string between  
-Thai words. It can also show words that cannot be found in the  
-dictionary. More words can be added to the dictionary. Developed by Mr.Teera  
-Kittichareonpot.  
-  
-  
-We can use this program to insert < WBR > tag between Thai words in html  
-file. Browser will display Thai homepage better than normal html document.  
-  
-  
-  
-  
-!Xzthai, X keyboard configurator + simple editor  
-  
-  
-Xzthai, this is the Tcl/Tk application for mapping Thai keyboard on any  
-keyboard with graphical user interface. Also provides simple editor and  
-keyboard layout figure. It actually uses  
-xmodmap program in background to map Thai  
-keyboard. This may be useful for commercial X server and X server on UNIX.  
-  
-  
-  
-  
-!!3.2 Printing Thai document  
-  
-  
-  
-Thai2ps is used to convert plain text file to postscript file.You can use  
-ghostscript(gs) to print your Thai document. For better quality document,  
-you have to use (La)TeX.  
-  
-  
-  
-  
-!Latex and Thai language  
-  
-  
-Dr. Manop Wongsaisuwan first tried to use Thai language with latex. He  
-wrote some perl script as filter for latex source code that contains Thai  
-language. Then pass the result to latex. Mr. Vuthichai Ampornaramvech  
-used this concept and wrote a program in C language, cttex, to handle this. It runs  
-faster and makes Thai word segmentation based on dictionary. Cttex also  
-fixes the position of Thai characters in word, so SARA and WANNAYUK will be  
-placed in the beautiful position.  
-  
-  
-You can find Thai latex filter from  
-http://thaigate.nacsis.ac.jp/files/ttex.html.  
-  
-  
-  
-  
-!Latex's configuration for Thai language  
-  
-  
-You must have latex installed in your computer.  
-First, download Thai postscript (Type1) fonts, tfm fonts and Thai style  
-file. These fonts are needed by  
-Latex. This is the list of files you should download.  
-  
-  
-tfm fonts:  
-dbtt.tfm dbttb.tfm dbttbi.tfm dbtti.tfm  
-postscript fonts:  
-dbtt.pfa dbttb.pfa dbttbi.pfa dbtti.pfa  
-style files:  
-thai.sty sakka.sty  
-Thai Latex filter:  
-cttex  
-Sample Latex file:  
-ttex.ttex test.ttex  
-  
-  
-  
-  
-  
-  
-  
-There is latex's directory at  
-/usr/lib/texmf/texmf/ (!RedHat 5.). I will call /usr/lib/texmf/texmf/ as  
-" $texroot " . We will concentrate at $texroot/texmf/ directory.  
-In $texroot/texmf/ directory, there are many files  
-about tex's configuration. You have to edit files in dvips, fonts, tex subdirectories.  
-  
-  
-Add the following lines to $texroot/texmf/dvips/misc/psfonts.map  
-  
-  
-dbtt DBThaiText <dbtt.pfa  
-dbttb DBThaiTextBold <dbttb.pfa  
-dbttbi DBThaiTextBoldItalic <dbttbi.pfa  
-dbtti DBThaiTextItalic <dbtti.pfa  
-  
-  
-  
-  
-  
-  
-  
-Make a new directories and copy files to the appropriate directories.  
-  
-  
-%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  
-  
-  
-  
-  
-  
-  
-  
-Run texhash or !MakeTeXls-R(in some system) to update Tex database.  
-  
-  
-%/usr/bin/texhash  
-texhash: updating /usr/lib/texmf/texmf/ls-R ...  
-texhash: Done.  
-  
-  
-  
-  
-  
-  
-!Use Thai LaTeX filter  
-  
-  
-We can use cttex as filter like this,  
-  
-  
-%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  
-  
-  
-You can convert dvi file to postscript file by,  
-  
-  
-%dvips -o ttex.ps ttex.dvi  
-  
-  
-  
-  
-Finally, you can print ttex.ps by using gs or lpr. You must configure  
-printer before printing. See man-pages of printcap, gs, lpr  
-for more information.  
-  
-  
-  
-  
-!Editing !LaTex source file  
-  
-  
-For new latex user, lyx is helpful. But I recommend to use mule  
-to edit Thai latex source file because mule supports Thai language  
-and it is a powerful editor. You may take a look a  
-Thai Latex tutorial.  
-  
-  
-  
-  
-  
-  
-  
-!!3.3 X Application Resources  
-  
-  
-  
-Because Xt based applications allow user to configure  
-the applications by resources. We can make the menu or label to be  
-Thai language.  
-  
-  
-For example, if you want xman to display Thai labels. You may add  
-these lines in your .Xdefaults  
-  
-  
-......  
-!! Xman section  
-Xman*Font: thai8x16  
-Xman*helpButton.Label: ªegraveCcedilAcirc  
-Xman*quitButton.Label: !IacuteIacute¡  
-Xman*manpageButton.Label: ¤!UgraveegraveAacute×Iacute¡!OgraveAtildeatildeªeacute  
-......  
-  
-  
-  
-  
-You can use the same idea to set window manager to be more Thai environment too.  
-  
-  
-  
-  
-!!3.4 Thai Extension for Linux (TE)  
-  
-  
-  
-Thai Extension for Linux is a installation package comes with applicaions and  
-Thai fonts. You don't have to configure Linux system and applications by yourself.  
-Let TE do configuration task for you. After installation, you can use  
-Thai language suddenly. Get TE from  
-ftp://fedu.uec.ac.jp/pub/thai/UEC/!ZzzThai/Software/Linux/  
-  
-  
-  
-  
-  
-----  
-  
-!!4. References and FTP sites  
-  
-  
-  
-  
-!! 4.1 Other documents of relevance  
-  
-  
-  
-The HOWTOs ought to be available from all mirrors of sunsite.unc.edu.  
-  
-  
-The Linux Danish/International HOWTO by Niels Kristian Bech Jensen  
-  
-  
-The Linux Cyrillic HOWTO by Alexander L. Belikoff  
-  
-  
-The Keystroke mini-HOWTO by Zenon Fortuna.  
-  
-  
-The Locales mini-HOWTO by Peeter Joot. (This one is mainly for developers.)  
-  
-  
-The ISO-8859-1 FAQ and Programming for Internationalization FAQ (plus much  
-more) by Michael Gschwind is available from  
-his homepage.  
-  
-  
-  
-  
-!! 4.2 Thai related stuffs  
-  
-  
-  
-" NACSIS R& D Thai  
-Project Page " ,  
-http://thaigate.nacsis.ac.jp  
-  
-  
-**** Information about Thai computing.  
-****  
-  
-**** Discussion groups in Thai language, such as thai-l (Thai Mailing list),  
-Thai news, etc.  
-****  
-  
-**** Thai references and Thai softwares.  
-****  
-  
-**** Thai Latex filter.  
-****  
-  
-  
-  
-" !ZzzThai Project " ,  
-http://www.fedu.uec.ac.jp  
-  
-  
-**** Most softwares and Thai fonts introduced here can download from !ZzzThai.  
-****  
-  
-**** Describe how to use Thai with 3 main computer platforms, UNIX like, Windows  
-and Mac.  
-****  
-  
-**** Linux information at  
-http://www.fedu.uec.ac.jp/!ZzzThai/Linux, TE, Thai LaTeX tutorial, etc.  
-****  
-  
-**** By The group of students at The University of Electro-Communications, Tokyo.  
-****  
-  
-  
-  
-" Vuthichai's Page " ,  
-http://www.ctrl.titech.ac.jp:80/~vuthi/  
-  
-  
-****Information about Thai computing by Mr. Vuthichai Ampornaramveth.  
-****  
-  
-  
-  
-" An annotated  
-reference to the Thai implementations " ,  
-http://www.inet.co.th/cyberclub/trin/thairef/  
-  
-  
-**** Information about Thai character standard.  
-****  
-  
-**** By Mr.Trin Tantsetthi.  
-****  
-  
-  
-  
-" X window and Thai  
-language " ,  
-http://members.xoom.com.cwg.x11th/  
-  
-  
-**** By Mr.Rawat S.Pirom  
-****  
-  
-  
-  
-" !SchoolNet  
-Internet Sever " ,  
-http://www.school.net.th/linux-sis/  
-  
-  
-**** Using Linux in School, Thailand.  
-****  
-  
-**** By  
-NECTEC (National  
-Electronics and Computer Technology Center).  
-****  
-  
-  
-  
-" Thai Open Source  
-Development " ,  
-http://members.xoom.com/inThai  
-  
-  
-**** Mozilla Thai enabling.  
-****  
-  
-**** Open source Thai softwares and Libraries.  
-****  
-  
-**** By Mr.Samphan Raruenrom  
-****  
-  
-  
-  
-" Linux  
-Thai Project " ,  
-http://www.geocities.com/!SiliconValley/8302  
-  
-  
-**** Information about Linux in Thai language.  
-****  
-  
-**** By Kaiwal Development Team.  
-****  
-  
-  
-  
-" !ThaiLinux unofficial Webboard " ,  
-http://lulu.mptc.eng.cmu.ac.th/!HyperNews/get/!ThaiLinux.html  
-  
-  
-**** Questions and answers about Linux in Thai language.  
-****  
-  
-**** By Mr.Pruet Boonma  
-****  
-  
-  
-  
-" Thai Linux  
-installation project " ,  
-http://www.geocities.com/Tokyo/Bay/4521/  
-  
-  
-**** Installation guide in Thai language  
-****  
-  
-  
-  
-  
-  
-!! 4.3 FTP and Web sites  
-  
-  
-  
-  
-  
-  
-Most softwares and Thai fonts which introdued in this howto.  
-  
-  
-****  
-ftp://ftp.fedu.uec.ac.jp/pub/thai/UEC/!ZzzThai/Software/Linux  
-****  
-  
-****  
-http://thaigate.nacsis.ac.jp/files/index.html  
-****  
-  
-****  
-http://www.nectec.or.th/pub/software/i18n/thai  
-****  
-  
-  
-  
-Mule  
-  
-  
-****  
-ftp://etlport.etl.go.jp/pub/mule  
-****  
-  
-  
-  
-Ss  
-  
-  
-****  
-http://members.xoom.com/theera/ss/  
-****  
-  
-  
-  
-  
-!SunSite and mirrors.  
-doc/howto has the above mentioned HOWTOs. utils/nls and  
-subdirectories contain files related to National Language Support.  
-Developers should take a look at locale-tutorial-.8.txt.gz,  
-locale-pack-.8.tar.gz and cat-pack.tar.gz.  
-  
-  
-  
-The GNU archives has the  
-recode package for character table conversion, the ABOUT-NLS file  
-and the gettext package for locale support of some GNU applications and  
-(of course) the latest versions of GNU emacs.  
-  
-  
-  
-  
-  
-  
-  
-  
-----  
-  
-!!5. Acknowledgments and Copyright  
-  
-  
-Some parts of this HOWTO comes from The Linux Danish/International  
-HOWTO by Thomas Petersen, petersen@post1.tele.dk (the original  
-author) and Niels Kristian Bech Jensen, nkbj@image.dk.  
-  
-  
-Thank you to Phaisarn Techajaruwong for building Thai fonts and  
-valuable discussion.  
-  
-  
-Thank you to Thai students at The University of Electro-Communications and  
-Mr. Vuthichai Ampornaramveth for every help.  
-  
-  
-This HOWTO is copyrighted by Poonlap Veeratanabutr,  
-poon-v@fedu.uec.ac.jp. It is distributed as other Linux HOWTOs  
-under the terms described below.  
-  
-  
-Linux HOWTO documents may be reproduced and distributed in whole or in  
-part, in any medium physical or electronic, as long as this copyright  
-notice is retained on all copies. Commercial redistribution is allowed  
-and encouraged; however, the authors would like to be notified of any  
-such distributions.  
-  
-  
-All translations, derivative works, or aggregate works incorporating any  
-Linux HOWTO documents must be covered under this copyright notice. That  
-is, you may not produce a derivative work from a HOWTO and impose  
-additional restrictions on its distribution. Exceptions to these rules  
-may be granted under certain conditions; please contact the Linux HOWTO  
-coordinator at the address given below.  
-  
-  
-If you have questions, please contact Tim Bynum, the Linux HOWTO  
-coordinator, at  
-linux-howto@sunsite.unc.edu via email .  
-  
-  
-  
-----  
+Describe [HowToThaiHOWTO ] here.