home *** CD-ROM | disk | FTP | other *** search
/ PC World 1999 August / PCWorld_1999-08_cd.bin / doc / HOWTO / Thai-HOWTO < prev    next >
Text File  |  1998-08-18  |  43KB  |  1,321 lines

  1.   The Linux Thai HOWTO
  2.   Poonlap Veeratanabutr, poon-v@fedu.uec.ac.jp
  3.   v0.4, 4 August 1998
  4.  
  5.   This document describes how to use Thai language with Linux. This will
  6.   cover setting Thai fonts, Thai keyboard and some Thai applications.
  7.   ______________________________________________________________________
  8.  
  9.   Table of Contents
  10.  
  11.  
  12.   1. Introduction
  13.  
  14.   2. Thai Input and Output
  15.  
  16.      2.1 Linux console
  17.         2.1.1 Thai fonts
  18.         2.1.2 Keyboard layout
  19.      2.2 X Window system
  20.         2.2.1 Thai fonts
  21.            2.2.1.1 Installing Thai fonts
  22.         2.2.2 Thai keyboard layout There are two ways to map Thai keyboard on X window, using X Keyboard Extension (XKB) and using
  23.            2.2.2.1 XKB and Thai keyboard layout.
  24.            2.2.2.2 Thai keyboard layout with xmodmap
  25.  
  26.   3. Applications with Thai language
  27.  
  28.      3.1 Some X applications and Thai language
  29.         3.1.1 txterm
  30.         3.1.2 Emacs, Mule
  31.         3.1.3 vi
  32.         3.1.4 pine
  33.         3.1.5 Netscape
  34.         3.1.6 Ss, Simple thai word Separator
  35.         3.1.7 Xzthai, X keyboard configurator + simple editor
  36.      3.2 Printing Thai document
  37.         3.2.1 Latex and Thai language
  38.         3.2.2 Latex's configuration for Thai language
  39.         3.2.3 Use Thai
  40.         3.2.4 Editing
  41.      3.3 X Application Resources
  42.      3.4 Thai Extension for Linux (TE)
  43.  
  44.   4. References and FTP sites
  45.  
  46.      4.1 Other documents of relevance
  47.      4.2 Thai related stuffs
  48.      4.3 FTP and Web sites
  49.  
  50.   5. Acknowledgments and Copyright
  51.  
  52.  
  53.  
  54.   ______________________________________________________________________
  55.  
  56.   1.  Introduction
  57.  
  58.   It's about one year that I didn't update this document. There were a
  59.   lot of movement in Thai computing and using Linux in Thailand. For
  60.   example, Linux boxes are used as server in many schools in Thailand
  61.   <http://www.school.net.th>.
  62.  
  63.   The purpose of this document is to show how to set your Linux to use
  64.   Thai language. I use Linux RedHat 5.0 as I wrote this document, so
  65.   directories which I mention in this document may be different from
  66.   other distribution.
  67.   First I would like to talk about Thai standard character set. Thai
  68.   standard character set is TIS-620. There are also other Thai standard
  69.   character sets such as ISO-IR-166, CP874, etc. Please see
  70.   http://www.inet.co.th/cyberclub/trin/thairef/
  71.   <http://www.inet.co.th/cyberclub/trin/thairef/> for further
  72.   information about Thai standard character set.  TIS-620 is 8-bit
  73.   character set. It has the same range as ISO-8859-1, so we can use
  74.   apllications that support ISO-8859-1 character set also. Although we
  75.   can use Thai language with apllications that support ISO-8859-1
  76.   character set, but it does not mean those applications support Thai
  77.   language.
  78.  
  79.   Thai characters are different from English characters.  There is a
  80.   variation of position, normal position, character can be on other
  81.   character, character can be under other character. There is no space
  82.   between words. These are some problems in developing Thai supported
  83.   application.
  84.  
  85.   You can find the lastest version of Thai-HOWTO document from
  86.   http://www.fedu.uec.ac.jp/ZzzThai/Linux
  87.   <http://www.fedu.uec.ac.jp/ZzzThai/Linux>.  Your comment is welcome.
  88.  
  89.  
  90.  
  91.   2.  Thai Input and Output
  92.  
  93.   2.1.  Linux console
  94.  
  95.   Thai characters do not display properly in Linux console. If you
  96.   mainly use X window, you may pass this section.
  97.  
  98.   2.1.1.  Thai fonts
  99.  
  100.   You can obtain Linux Thai console fonts which created by Mr. Phaisarn
  101.   Techajaruwong from ZzzThai ftp site
  102.   <ftp://ftp.fedu.uec.ac.jp/pub/thai/UEC/ZzzThai/Sofware/Linux/fonts/console>
  103.  
  104.   For example, there is a font name "phaisarn.psf". Put it in
  105.   /usr/lib/kbd/consolefonts/ directory. Then, you can load the new font
  106.   from Linux console by command
  107.  
  108.  
  109.        %setfont phaisarn.psf
  110.  
  111.  
  112.  
  113.  
  114.  
  115.   2.1.2.  Keyboard layout
  116.  
  117.   You can set keyboard behavior as you like by using loadkeys command.
  118.   Usually, you use loadkeys to load the file located in
  119.   /usr/lib/kbd/keytables. You can create a US/Thai keyboard-map file and
  120.   save it in this directory. Here is a sample.
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.   keycode   0 =
  134.   keycode   1 = Escape           Escape
  135.           alt     keycode   1 = Meta_Escape
  136.   keycode   2 = +one              exclam          +0x0e5          plus
  137.           alt     keycode   2 = Meta_one
  138.           alt shift keycode 2 = Meta_exclam
  139.   keycode   3 = +two              at              +slash          0x0f1
  140.           control keycode   3 = nul
  141.           control shift keycode 3 = nul
  142.           alt     keycode   3 = Meta_two
  143.           alt shift keycode 3 = Meta_at
  144.   keycode   4 = +three            numbersign      +underscore     0x0f2
  145.           control keycode   4 = Escape
  146.           alt     keycode   4 = Meta_three
  147.           alt shift keycode 4 = Meta_numbersign
  148.   keycode   5 = +four             dollar          +0x0c0          0x0f3
  149.           control keycode   5 = Control_backslash
  150.           alt     keycode   5 = Meta_four
  151.           alt shift keycode 5 = Meta_dollar
  152.   keycode   6 = +five             percent         +0x0b6          0x0f4
  153.           control keycode   6 = Control_bracketright
  154.           alt     keycode   6 = Meta_five
  155.           alt shift keycode 6 = Meta_percent
  156.   keycode   7 = +six              asciicircum     +0x0d8          0x0d9
  157.           control keycode   7 = Control_asciicircum
  158.           alt     keycode   7 = Meta_six
  159.           alt shift keycode 7 = Meta_asciicircum
  160.   keycode   8 = +seven            ampersand       +0x0d6          0x0df
  161.           control keycode   8 = Control_underscore
  162.           alt     keycode   8 = Meta_seven
  163.   keycode   9 = +eight            asterisk        +0x0a4          0x0f5
  164.           control keycode   9 = Delete
  165.           alt     keycode   9 = Meta_eight
  166.   keycode  10 = +nine             parenleft       +0x0b5          0x0d6
  167.           alt     keycode  10 = Meta_nine
  168.   keycode  11 = +zero             parenright      +0x0a8          0x0f7
  169.           alt     keycode  11 = Meta_zero
  170.   keycode  12 = +minus            underscore      +0x0a2          0x0f8
  171.           control keycode  12 = Control_underscore
  172.           control shift keycode 12 = Control_underscore
  173.           alt     keycode  12 = Meta_minus
  174.   keycode  13 = +equal            plus            +0x0aa          0x0f9
  175.           alt     keycode  13 = Meta_equal
  176.   keycode  14 = Delete           Delete           Delete          Delete
  177.           alt     keycode  14 = Meta_Delete
  178.   keycode  15 = Tab              Tab              Tab             Tab
  179.           alt     keycode  15 = Meta_Tab
  180.   keycode  16 = +q        Q       +0x0e6          0x0f0
  181.   keycode  17 = +w        W       +0x0e4          quotedbl
  182.   keycode  18 = +e        E       +0x0d3          0x0ae
  183.   keycode  19 = +r        R       +0x0be          0x0b1
  184.   keycode  20 = +t        T       +0x0d0          0x0b8
  185.   keycode  21 = +y        Y       +0x0d1          0x0ed
  186.   keycode  22 = +u        U       +0x0d5          0x0ea
  187.   keycode  23 = +i        I       +0x0c3          0x0b3
  188.   keycode  24 = +o        O       +0x0b9          0x0cf
  189.   keycode  25 = +p        P       +0x0c2          0x0ad
  190.   keycode  26 = +bracketleft      braceleft       +0x0ba          0x0b0
  191.           control keycode  26 = Escape
  192.           alt     keycode  26 = Meta_bracketleft
  193.           alt shift keycode 26 = Meta_braceleft
  194.   keycode  27 = +bracketright     braceright      +0x0c5          comma
  195.           control keycode  27 = Control_bracketright
  196.           alt     keycode  27 = Meta_bracketright
  197.           alt shift keycode 27 = Meta_braceright
  198.   keycode  28 = Return            Return          Return          Return
  199.           alt     keycode  28 = 0x080d
  200.   keycode  29 = Control           Control         Control         Control
  201.   keycode  30 = +a        A       +0x0bf          0x0c4
  202.   keycode  31 = +s        S       +0x0cb          0x0a6
  203.   keycode  32 = +d        D       +0x0a1          0x0af
  204.   keycode  33 = +f        F       +0x0b4          0x0e2
  205.   keycode  34 = +g        G       +0x0e0          0x0ac
  206.   keycode  35 = +h        H       +0x0e9          0x0e7
  207.   keycode  36 = +j        J       +0x0e8          0x0eb
  208.   keycode  37 = +k        K       +0x0d2          0x0c9
  209.   keycode  38 = +l        L       +0x0ca          0x0c8
  210.   keycode  39 = +semicolon        colon           +0x0c7          0x0ab
  211.           alt     keycode  39 = Meta_semicolon
  212.   keycode  40 = +apostrophe       quotedbl        +0x0a7          period
  213.           control keycode  40 = Control_g
  214.           alt     keycode  40 = Meta_apostrophe
  215.   keycode  41 = +grave            asciitilde      +minus          percent
  216.           control keycode  41 = nul
  217.           alt     keycode  41 = Meta_grave
  218.   keycode  42 = Shift            Shift            Shift           Shift
  219.   keycode  43 = +backslash        bar             +0x0a3          0x0a5
  220.           control keycode  43 = Control_backslash
  221.           alt     keycode  43 = Meta_backslash
  222.           alt shift keycode 43 = Meta_bar
  223.   keycode  44 = +z        Z       +0x0bc          parenleft
  224.   keycode  45 = +x        X       +0x0bb          parenright
  225.   keycode  46 = +c        C       +0x0e1          0x0a9
  226.   keycode  47 = +v        V       +0x0cd          0x0ce
  227.   keycode  48 = +b        B       +0x0d4          0x0da
  228.   keycode  49 = +n        N       +0x0d7          0x0ec
  229.   keycode  50 = +m        M       +0x0b7          question
  230.   keycode  51 = +comma    less    +0x0c1          0x0b2
  231.           alt     keycode  51 = Meta_comma
  232.           alt shift keycode 51 = Meta_less
  233.   keycode  52 = +period           greater         +0x0e3          0x0cc
  234.           alt     keycode  52 = Meta_period
  235.           alt shift keycode 52 = Meta_greater
  236.   keycode  53 = +slash            question        +0x0bd          0x0c6
  237.           control keycode  53 = Delete
  238.           alt     keycode  53 = Meta_slash
  239.   keycode  54 = Shift            Shift            Shift           Shift
  240.   keycode  55 = KP_Multiply
  241.   keycode  56 = Alt              Alt              Alt             Alt
  242.   keycode  57 = space            space            space           space
  243.           control keycode  57 = nul
  244.           alt     keycode  57 = Meta_space
  245.   keycode  58 = Caps_Lock        Caps_Lock        Caps_Lock       Caps_Lock
  246.   keycode  59 = F1               F11              Console_13
  247.           control keycode  59 = F1
  248.           alt     keycode  59 = Console_1
  249.           control alt     keycode  59 = Console_1
  250.   keycode  60 = F2               F12              Console_14
  251.           control keycode  60 = F2
  252.           alt     keycode  60 = Console_2
  253.           control alt     keycode  60 = Console_2
  254.   keycode  61 = F3               F13              Console_15
  255.           control keycode  61 = F3
  256.           alt     keycode  61 = Console_3
  257.           control alt     keycode  61 = Console_3
  258.   keycode  62 = F4               F14              Console_16
  259.           control keycode  62 = F4
  260.           alt     keycode  62 = Console_4
  261.           control alt     keycode  62 = Console_4
  262.   keycode  63 = F5               F15              Console_17
  263.           control keycode  63 = F5
  264.           alt     keycode  63 = Console_5
  265.           control alt     keycode  63 = Console_5
  266.   keycode  64 = F6               F16              Console_18
  267.           control keycode  64 = F6
  268.           alt     keycode  64 = Console_6
  269.           control alt     keycode  64 = Console_6
  270.   keycode  65 = F7               F17              Console_19
  271.           control keycode  65 = F7
  272.           alt     keycode  65 = Console_7
  273.           control alt     keycode  65 = Console_7
  274.   keycode  66 = F8               F18              Console_20
  275.           control keycode  66 = F8
  276.           alt     keycode  66 = Console_8
  277.           control alt     keycode  66 = Console_8
  278.   keycode  67 = F9               F19              Console_21
  279.           control keycode  67 = F9
  280.           alt     keycode  67 = Console_9
  281.           control alt     keycode  67 = Console_9
  282.   keycode  68 = F10              F20              Console_22
  283.           control keycode  68 = F10
  284.           alt     keycode  68 = Console_10
  285.           control alt     keycode  68 = Console_10
  286.   keycode  69 = Num_Lock
  287.   keycode  70 = Scroll_Lock      Show_Memory      Show_Registers
  288.           control keycode  70 = Show_State
  289.           alt     keycode  70 = Scroll_Lock
  290.   keycode  71 = KP_7
  291.           alt     keycode  71 = Ascii_7
  292.   keycode  72 = KP_8
  293.           alt     keycode  72 = Ascii_8
  294.   keycode  73 = KP_9
  295.           alt     keycode  73 = Ascii_9
  296.   keycode  74 = KP_Subtract
  297.   keycode  75 = KP_4
  298.           alt     keycode  75 = Ascii_4
  299.   keycode  76 = KP_5
  300.           alt     keycode  76 = Ascii_5
  301.   keycode  77 = KP_6
  302.           alt     keycode  77 = Ascii_6
  303.   keycode  78 = KP_Add
  304.   keycode  79 = KP_1
  305.           alt     keycode  79 = Ascii_1
  306.   keycode  80 = KP_2
  307.           alt     keycode  80 = Ascii_2
  308.   keycode  81 = KP_3
  309.           alt     keycode  81 = Ascii_3
  310.   keycode  82 = KP_0
  311.           alt     keycode  82 = Ascii_0
  312.   keycode  83 = KP_Period
  313.           altgr   control keycode  83 = Boot
  314.           control alt     keycode  83 = Boot
  315.   keycode  84 = Last_Console
  316.   keycode  85 =
  317.   keycode  86 = less             greater          bar
  318.           alt     keycode  86 = Meta_less
  319.   keycode  87 = F11              F11              Console_23
  320.           control keycode  87 = F11
  321.           alt     keycode  87 = Console_11
  322.           control alt     keycode  87 = Console_11
  323.   keycode  88 = F12              F12              Console_24
  324.           control keycode  88 = F12
  325.           alt     keycode  88 = Console_12
  326.           control alt     keycode  88 = Console_12
  327.   keycode  89 =
  328.   keycode  90 =
  329.   keycode  91 =
  330.   keycode  92 =
  331.   keycode  93 =
  332.   keycode  94 =
  333.   keycode  95 =
  334.   keycode  96 = KP_Enter
  335.   keycode  97 = Control
  336.   keycode  98 = KP_Divide
  337.   keycode  99 = Control_backslash
  338.           control keycode  99 = Control_backslash
  339.           alt     keycode  99 = Control_backslash
  340.   keycode 100 = AltGr_Lock
  341.   keycode 101 = Break
  342.   keycode 102 = Find
  343.   keycode 103 = Up
  344.   keycode 104 = Prior
  345.           shift   keycode 104 = Scroll_Backward
  346.   keycode 105 = Left
  347.           alt     keycode 105 = Decr_Console
  348.   keycode 106 = Right
  349.           alt     keycode 106 = Incr_Console
  350.   keycode 107 = Select
  351.   keycode 108 = Down
  352.   keycode 109 = Next
  353.           shift   keycode 109 = Scroll_Forward
  354.   keycode 110 = Insert
  355.   keycode 111 = Remove
  356.           altgr   control keycode 111 = Boot
  357.           control alt     keycode 111 = Boot
  358.   keycode 112 =
  359.   keycode 113 =
  360.   keycode 114 =
  361.   keycode 115 =
  362.   keycode 116 =
  363.   keycode 117 =
  364.   keycode 118 =
  365.   keycode 119 =
  366.   keycode 120 =
  367.   keycode 121 =
  368.   keycode 122 =
  369.   keycode 123 =
  370.   keycode 124 =
  371.   keycode 125 =
  372.   keycode 126 =
  373.   keycode 127 =
  374.   string F1 = "\033[[A"
  375.   string F2 = "\033[[B"
  376.   string F3 = "\033[[C"
  377.   string F4 = "\033[[D"
  378.   string F5 = "\033[[E"
  379.   string F6 = "\033[17~"
  380.   string F7 = "\033[18~"
  381.   string F8 = "\033[19~"
  382.   string F9 = "\033[20~"
  383.   string F10 = "\033[21~"
  384.   string F11 = "\033[23~"
  385.   string F12 = "\033[24~"
  386.   string F13 = "\033[25~"
  387.   string F14 = "\033[26~"
  388.   string F15 = "\033[28~"
  389.   string F16 = "\033[29~"
  390.   string F17 = "\033[31~"
  391.   string F18 = "\033[32~"
  392.   string F19 = "\033[33~"
  393.   string F20 = "\033[34~"
  394.   string Find = "\033[1~"
  395.   string Insert = "\033[2~"
  396.   string Remove = "\033[3~"
  397.   string Select = "\033[4~"
  398.   string Prior = "\033[5~"
  399.   string Next = "\033[6~"
  400.   string F21 = ""
  401.   string F22 = ""
  402.   string F23 = ""
  403.   string F24 = ""
  404.   string F25 = ""
  405.   string F26 = ""
  406.  
  407.  
  408.  
  409.  
  410.   Suppose you save this file as thai.map. From Linux console, use
  411.   command loadkeys to load thai.map.
  412.  
  413.  
  414.        %loadkeys thai.map
  415.  
  416.  
  417.  
  418.  
  419.   You can switch to Thai keyboard by pressing the right Alt key. If you
  420.   want to switch the keyboard back, press the right Alt key again.
  421.  
  422.  
  423.  
  424.   2.2.  X Window system
  425.  
  426.   2.2.1.  Thai fonts
  427.  
  428.   You can obtain Thai fonts in bdf format or pcf format from internet.
  429.   You can also use scalable fonts such as Type1 or TrueType fonts. But I
  430.   will not describe about these.
  431.  
  432.  
  433.  
  434.   2.2.1.1.  Installing Thai fonts
  435.  
  436.   You must log in as root. Let's put Thai fonts in
  437.   /usr/X11R6/lib/X11/fonts/misc/, this is a default font path. Change
  438.   directory to /usr/X11R6/lib/X11/fonts/misc/ and run command
  439.  
  440.  
  441.        %mkfontdir
  442.        %xset fp rehash
  443.  
  444.  
  445.  
  446.  
  447.   If you put Thai fonts in different directory, you must use xset to add
  448.   the new font path. Please see man-page for further information.  You
  449.   can check the new fonts by running command xlsfonts and see whether
  450.   there are Thai fonts or not. If you can not see any Thai fonts from
  451.   this command, you may need to restart X window.
  452.  
  453.  
  454.  
  455.   2.2.2.  There are two ways to map Thai keyboard on X window, using X
  456.   Keyboard Extension (XKB) and using xmodmap . Please select how you map
  457.   Thai keyboard. I recommend using XKB.  Thai keyboard layout
  458.  
  459.  
  460.  
  461.  
  462.  
  463.   2.2.2.1.  XKB and Thai keyboard layout.
  464.  
  465.   Beginning with XFree86 3.1.2D, you can use the new X11R6.1 XKEYBOARD
  466.   extension to manage the keyboard layout. This is very helpful.
  467.  
  468.   During X server configuration with xf86config you will be asked about
  469.   XKB, if you want to to set Thai keyboard layout for your system, say
  470.   yes. There are a list of pre-configured keymaps. Choose Standard
  471.   101-key, Thai encoding.
  472.  
  473.   XF86Setup is the graphical X server configuration utility for XFree86
  474.   X server.  It is easier than traditional xf86config. You can select a
  475.   keyboard layout easily with this tool.
  476.  
  477.   Ther are many choices of keyboard switch key to select. The default is
  478.   LeftAlt+RightShift switch to Thai and LeftAlt+LeftShift switch to US.
  479.   You can type Thai characters in any applications which support
  480.   ISO-8859-1 character set, but don't forget to use Thai fonts with
  481.   those applications too.
  482.  
  483.   I found that pre-configured keymaps that came with XFree86-3.2 is not
  484.   correct. You may not be able to type THO THUNG which located at " 5
  485.   key " . To fix this problem, you should add the line
  486.  
  487.  
  488.            key <AE05> {        [], [   paragraph,      ocircumflex     ]       };
  489.  
  490.  
  491.  
  492.  
  493.   in the file /usr/X11R6/lib/X11/xkb/symbols/th as the example.
  494.  
  495.  
  496.        .................
  497.            key <AE03> {        [], [       minus,      ograve          ]       };
  498.            key <AE04> {        [], [      Agrave,      oacute          ]       };
  499.            key <AE05> {        [], [   paragraph,      ocircumflex     ]       };
  500.            key <AE06> {        [], [    Ooblique,      Ugrave          ]       };
  501.            key <AE07> {        [], [  Odiaeresis,      ssharp          ]       };
  502.        .................
  503.  
  504.  
  505.  
  506.  
  507.   You can not type SORUSI also. Please change the line from
  508.  
  509.  
  510.            key <AC08> {        [], [      Ograve,      eacute          ]       };
  511.  
  512.  
  513.  
  514.  
  515.   to
  516.  
  517.  
  518.            key <AC08> {        [], [      Ograve,      Eacute          ]       };
  519.  
  520.  
  521.  
  522.  
  523.   Note that eacute is equal to MAITHO and Eacute is equal to SORUSI.
  524.  
  525.   There are also XKB extension utilities such as setxkbmap, xkbcomp,
  526.   etc. Please see man-page for more information. I recommend to use
  527.   xkbvled. The leds will be on when you are using Thai keyboard so you
  528.   can know your keyboard's status.
  529.   The following is part of XF86Config file about keyboard section. If
  530.   you want to configure the keyboard by hand, change the content of
  531.   /usr/X11R6/lib/X11/XF86Config as an example below. This configuration
  532.   uses the default toggle key.
  533.  
  534.  
  535.        Section "Keyboard"
  536.           Protocol        "Standard"
  537.           AutoRepeat      500 5
  538.           LeftAlt         Meta
  539.           RightAlt        Meta
  540.           ScrollLock      Compose
  541.           RightCtl        Control
  542.        #  XkbDisable
  543.           XkbKeycodes     "xfree86"
  544.           XkbTypes        "default"
  545.           XkbCompat       "default"
  546.           XkbSymbols      "us(pc101)"
  547.           XkbGeometry     "pc"
  548.           XkbRules        "xfree86"
  549.           XkbModel        "pc101"
  550.           XkbLayout       "th"
  551.        EndSection
  552.  
  553.  
  554.  
  555.  
  556.   If you use XKB extension, Thai keyboard mapping with xmodmap may not
  557.   work.  See XF86Config man-page for mor information.
  558.  
  559.  
  560.   2.2.2.2.  Thai keyboard layout with xmodmap
  561.  
  562.   You can use the utility xmodmap to map Thai keyboard.  Normally
  563.   xmodmap is used to load a keyboard configured file.  For most Linux
  564.   distributions, when you start X window with startx, X server will find
  565.   .Xmodmap in /usr/X11R6/lib/X11/xinit/ first. If .Xmodmap does not
  566.   exist, X server will find .Xmodmap in your home directory. Please see
  567.   the content of /usr/X11R6/lib/X11/xinit/xinitrc.
  568.  
  569.   The following is the sample of .Xmodmap for Thai Kedmanee keyboard
  570.   layout.
  571.  
  572.  
  573.  
  574.  
  575.  
  576.  
  577.  
  578.  
  579.  
  580.  
  581.  
  582.  
  583.  
  584.  
  585.  
  586.  
  587.  
  588.  
  589.  
  590.  
  591.  
  592.  
  593.  
  594.  
  595.   !
  596.   ! Linux/XFree86 Thai Kedmanee layout (based on US keyboard)
  597.   ! Use ScrollLock to switch to Thai keyboard.
  598.   ! This file will work with XFree86 only.
  599.   !
  600.  
  601.   keycode 0x09 =  Escape
  602.   keycode 0x43 =  F1
  603.   keycode 0x44 =  F2
  604.   keycode 0x45 =  F3
  605.   keycode 0x46 =  F4
  606.   keycode 0x47 =  F5
  607.   keycode 0x48 =  F6
  608.   keycode 0x49 =  F7
  609.   keycode 0x4A =  F8
  610.   keycode 0x4B =  F9
  611.   keycode 0x4C =  F10
  612.   keycode 0x5F =  F11
  613.   keycode 0x60 =  F12
  614.   keycode 0x6F =  Print
  615.   keycode 0x4E =  Mode_switch     XF86ModeLock
  616.   keycode 0x6E =  Pause
  617.   keycode 0x31 =  grave           asciitilde      minus           percent
  618.   keycode 0x0A =  1               exclam          0x0e5           plus
  619.   keycode 0x0B =  2               at              slash           0x0f1
  620.   keycode 0x0C =  3               numbersign      underscore      0x0f2
  621.   keycode 0x0D =  4               dollar          0x0c0           0x0f3
  622.   keycode 0x0E =  5               percent         0x0b6           0x0f4
  623.   keycode 0x0F =  6               asciicircum     0x0d8           0x0d9
  624.   keycode 0x10 =  7               ampersand       0x0d6           0x0df
  625.   keycode 0x11 =  8               asterisk        0x0a4           0x0f5
  626.   keycode 0x12 =  9               parenleft       0x0b5           0x0f6
  627.   keycode 0x13 =  0               parenright      0x0a8           0x0f7
  628.   keycode 0x14 =  minus           underscore      0x0a2           0x0f8
  629.   keycode 0x15 =  equal           plus            0x0aa           0x0f9
  630.   keycode 0x33 =  backslash       bar             0x0a3           0x0a5
  631.   keycode 0x16 =  BackSpace
  632.   keycode 0x6A =  Insert
  633.   keycode 0x61 =  Home
  634.   keycode 0x63 =  Prior
  635.   keycode 0x4D =  Num_Lock
  636.   keycode 0x70 =  KP_Divide
  637.   keycode 0x3F =  KP_Multiply
  638.   keycode 0x52 =  KP_Subtract
  639.   keycode 0x17 =  Tab
  640.   keycode 0x18 =  q               Q               0x0e6           0x0f0
  641.   keycode 0x19 =  w               W               0x0e4           quotedbl
  642.   keycode 0x1A =  e               E               0x0d3           0x0ae
  643.   keycode 0x1B =  r               R               0x0be           0x0b1
  644.   keycode 0x1C =  t               T               0x0d0           0x0b8
  645.   keycode 0x1D =  y               Y               0x0d1           0x0ed
  646.   keycode 0x1E =  u               U               0x0d5           0x0ea
  647.   keycode 0x1F =  i               I               0x0c3           0x0b3
  648.   keycode 0x20 =  o               O               0x0b9           0x0cf
  649.   keycode 0x21 =  p               P               0x0c2           0x0ad
  650.   keycode 0x22 =  bracketleft     braceleft       0x0ba           0x0b0
  651.   keycode 0x23 =  bracketright    braceright      0x0c5           comma
  652.   keycode 0x24 =  Return
  653.   keycode 0x6B =  Delete
  654.   keycode 0x67 =  End
  655.   keycode 0x69 =  Next
  656.   keycode 0x4F =  KP_7
  657.   keycode 0x50 =  KP_8
  658.   keycode 0x51 =  KP_9
  659.   keycode 0x56 =  KP_Add
  660.   keycode 0x42 =  Caps_Lock
  661.   keycode 0x26 =  a               A               0x0bf           0x0c4
  662.   keycode 0x27 =  s               S               0x0cb           0c0a6
  663.   keycode 0x28 =  d               D               0x0a1           0x0af
  664.   keycode 0x29 =  f               F               0x0b4           0x0e2
  665.   keycode 0x2A =  g               G               0x0e0           0x0ac
  666.   keycode 0x2B =  h               H               0x0e9           0x0e7
  667.   keycode 0x2C =  j               J               0x0e8           0x0eb
  668.   keycode 0x2D =  k               K               0x0d2           0x0c9
  669.   keycode 0x2E =  l               L               0x0ca           0x0c8
  670.   keycode 0x2F =  semicolon       colon           0x0c7           0x0ab
  671.   keycode 0x30 =  apostrophe      quotedbl        0x0a7           period
  672.   keycode 0x53 =  KP_4
  673.   keycode 0x54 =  KP_5
  674.   keycode 0x55 =  KP_6
  675.   keycode 0x32 =  Shift_L
  676.   keycode 0x34 =  z               Z               0x0bc           parenleft
  677.   keycode 0x35 =  x               X               0x0bb           parenright
  678.   keycode 0x36 =  c               C               0x0e1           0x0a9
  679.   keycode 0x37 =  v               V               0x0cd           0x0ce
  680.   keycode 0x38 =  b               B               0x0d4           0x0da
  681.   keycode 0x39 =  n               N               0x0d7           0x0ec
  682.   keycode 0x3A =  m               M               0x0b7           question
  683.   keycode 0x3B =  comma           less            0x0c1           0x0b2
  684.   keycode 0x3C =  period          greater         0x0e3           0x0cc
  685.   keycode 0x3D =  slash           question        0x0bd           0x0c6
  686.   keycode 0x3E =  Shift_R
  687.   keycode 0x62 =  Up
  688.   keycode 0x57 =  KP_1
  689.   keycode 0x58 =  KP_2
  690.   keycode 0x59 =  KP_3
  691.   keycode 0x6C =  KP_Enter
  692.   keycode 0x25 =  Control_L
  693.   keycode 0x40 =  Alt_L           Meta_L
  694.   keycode 0x41 =  space
  695.   keycode 0x71 =  Alt_R           Meta_R
  696.   keycode 0x6D =  Control_R
  697.   keycode 0x64 =  Left
  698.   keycode 0x68 =  Down
  699.   keycode 0x66 =  Right
  700.   keycode 0x5A =  KP_0
  701.   keycode 0x5B =  KP_Decimal
  702.  
  703.   clear Shift
  704.   clear Lock
  705.   clear Control
  706.   clear Mod1
  707.   clear Mod2
  708.   clear Mod3
  709.   clear Mod4
  710.   clear Mod5
  711.  
  712.   add    Shift   = Shift_L Shift_R
  713.   add    Lock    = Caps_Lock
  714.   add    Control = Control_L Control_R
  715.   add    Mod1    = Alt_L Alt_R
  716.   add    Mod2    = Mode_switch
  717.  
  718.  
  719.  
  720.  
  721.   Just put .Xmodmap in your home directory will be OK. When you start X
  722.   window, X server will load this file.
  723.  
  724.   You can also load .Xmodmap from command line.
  725.  
  726.  
  727.   %xmodmap ~/.Xmodmap
  728.  
  729.  
  730.  
  731.  
  732.  
  733.   In above .Xmodmap file, US/Thai switch key is assigned to keycode 0x4E
  734.   (78), Scroll Lock key, with the statement
  735.  
  736.  
  737.        ______________________________________________________________________
  738.        keycode 0x4E =  Mode_switch     XF86ModeLock
  739.        ______________________________________________________________________
  740.  
  741.  
  742.  
  743.  
  744.   XF86ModeLock is the special keysym for XFree86 X server. If you don't
  745.   add this keysym, you have to hold the scroll lock key while you are
  746.   typing Thai characters. Note that if you use commercial X server, some
  747.   keycodes are different. You may have to map keyboard by yourself.  See
  748.   man-pages of X and xev for further information.
  749.  
  750.  
  751.   Note: If you are using XFree86 version 3.1.2D or later, you need to
  752.   add the line XkbDisable in keyboard section of XF86Config file. You
  753.   may config the keyboard section like the following sample.
  754.  
  755.  
  756.        Section "Keyboard"
  757.           Protocol        "Standard"
  758.           AutoRepeat      500 5
  759.           LeftAlt         Meta
  760.           RightAlt        ModeShift
  761.           ScrollLock      ModeLock
  762.           RightCtl        Compose
  763.           XkbDisable
  764.        EndSection
  765.  
  766.  
  767.  
  768.  
  769.  
  770.  
  771.  
  772.  
  773.   3.  Applications with Thai language
  774.  
  775.   This is the tricky part. Most applications support ISO-8859-1
  776.   character set. For example, emacs can display ISO-8859-1 character. If
  777.   we set emacs to display ISO-8859-1 and use Thai font, you can edit
  778.   Thai document with emacs. But this is not a good policy. You should
  779.   avoid using this trick as possible. What we need is Thai locale or
  780.   Thai supported applications to manage these things.
  781.  
  782.  
  783.   To make X window application displays Thai font, you should run the
  784.   application with -fn option. For example,
  785.  
  786.  
  787.        %xedit -fn thai8x16
  788.  
  789.  
  790.  
  791.  
  792.   Note that thai8x16 is just a one of Thai font names. You can see all
  793.   available fonts by command xlfonts.  If you don't want to fill -fn
  794.   option every time you run application. You should set Thai font in
  795.   your ~/.Xdefaults or ~/.Xresources like this
  796.  
  797.  
  798.        XTerm*font:     thai8x16
  799.  
  800.  
  801.  
  802.  
  803.  
  804.  
  805.   3.1.  Some X applications and Thai language
  806.  
  807.  
  808.  
  809.   3.1.1.  txterm
  810.  
  811.   txterm is Thai version of xterm. There are several programs running
  812.   under xterm such as shell, pine, vi, less, etc. We can type Thai
  813.   characters without any problems with txterm. Txterm also provides its
  814.   own Thai input method by pressing " F1 " key. Txterm will use fonts
  815.   thai9x13 as default Thai font. You can change this by add -fn option.
  816.  
  817.   You can get txterm from Thaigate <http://thaigate.nacsis.ac.jp> or
  818.   ZzzThai
  819.   <ftp://ftp.fedu.uec.ac.jp/pub/thai/UEC/ZzzThai/Software/Linux>.
  820.  
  821.  
  822.  
  823.      bash shell :
  824.         Normally, shell accepts only ASCII character set. To type Thai
  825.         characters in shell command line, you should set environment
  826.         LC_CTYPE to iso_8859_1.
  827.  
  828.         I don't set LC_CTYPE environment variable to iso_8859_1 because
  829.         this environment variable will effect other applications too.
  830.         With bash shell, you can specify which environment variable to
  831.         be passed to the application. For example, I can make a fake
  832.         Thai X terminal with this syntax.
  833.  
  834.  
  835.           LC_CTYPE=iso_8859_1 xterm -fn thai8x16
  836.  
  837.  
  838.  
  839.  
  840.      This xterm display Thai characters well, but not good for typing
  841.      Thai characters. I strongly recommend you to use txterm.
  842.  
  843.  
  844.      ls :
  845.         If you name a filename in Thai. Issue the command as
  846.  
  847.  
  848.           ls -N
  849.  
  850.  
  851.  
  852.  
  853.  
  854.      You may set alias in ~/.bashrc or ~/.cshrc, so you can type ls
  855.      without option. If you don't use ls with -N option, you may see
  856.      Thai filename as ?????.
  857.  
  858.  
  859.   3.1.2.  Emacs, Mule
  860.  
  861.   Mule stands for " Multilingual Enhancement to GNU Emacs " . It has the
  862.   same functions as emacs and supports many languages. Mule provides its
  863.   own input method, so you don't need any configuration for typing Thai.
  864.   You needs only Thai fonts for mule which you can get from, ZzzThai
  865.   <ftp://ftp.fedu.uec.ac.jp/pub/thai/UEC/ZzzThai/Software/Linux/fonts/>
  866.   or Etl site <ftp://etlport.etl.go.jp/pub/mule/fonts/ETL/>.  These Thai
  867.   fonts are fixed width fonts.
  868.  
  869.   You need some configuration for mule. Puts the following lines in your
  870.   .emacs.
  871.  
  872.  
  873.        ;;
  874.        ;; Thai System, add in .emacs
  875.        ;;
  876.        (set-file-coding-system-for-read '*tis620*)
  877.        (set-default-file-coding-system '*tis620*)
  878.        (set-display-coding-system '*tis620*)
  879.        (set-keyboard-coding-system '*tis620*)
  880.        (setq-deafault quail-current-package (assoc "thai" quail-package-alist))
  881.  
  882.  
  883.  
  884.  
  885.   Add the following lines in .Xdefaults.
  886.  
  887.  
  888.        !
  889.        ! Emacs, Mule - Font menu
  890.        !
  891.        Emacs*FontSetList: thai14, thai16, thai24
  892.        Emacs*FontSet-thai14:\
  893.                -etl-fixed-medium-r-normal--14-140-72-72-m-70-tis620.2529-1
  894.        Emacs*FontSet-thai16:\
  895.                -etl-fixed-medium-r-normal--16-160-72-72-m-80-tis620.2529-1
  896.        Emacs*FontSet-thai24:\
  897.                -etl-fixed-medium-r-normal--24-500-72-72-m-120-tis620.2529-1
  898.  
  899.  
  900.  
  901.  
  902.   When you hold shift key and press left mouse's button, you can select
  903.   Thai fonts to display in mule window.  To type Thai characters, press
  904.   " Ctrl + ] " . To type English, press " Ctrl + ] " again.
  905.  
  906.   You can get mule from ElectroTechnical Laboratory(ETL)
  907.   <ftp://etlport.etl.go.jp/pub/mule/>
  908.  
  909.  
  910.   3.1.3.  vi
  911.  
  912.   Vi should be run on txterm.
  913.  
  914.  
  915.   3.1.4.  pine
  916.  
  917.   In the past, we could not send 8-bit characters through E-mail. Now,
  918.   although mail transfer agent can handle 8-bit characters but some old
  919.   mail transfer agent can not.  We can send Thai e-mail by using e-mail
  920.   application that supports MIME (Multipurpose Internet Mail Extensions)
  921.   E-mail applications that support MIME are pine, elm, Netscape mail,
  922.   etc.
  923.  
  924.  
  925.   Put the following definition in your ~/.pinerc file:
  926.  
  927.  
  928.        character-set=ISO-8859-1
  929.  
  930.  
  931.  
  932.  
  933.   This can also be set via the Setup option in pine window. You can find
  934.   it under Config. You can read Thai news from pine, too.
  935.  
  936.   Pine should be run in txterm.
  937.  
  938.  
  939.   3.1.5.  Netscape
  940.  
  941.   If you have Thai fonts in your system. Just set Thai font from
  942.   preference. Thai fonts will appear in User defined area. See
  943.   http://www.fedu.uec.ac.jp/ZzzThai/unix
  944.   <http://www.fedu.uec.ac.jp/ZzzThai/unix> for setting Thai language on
  945.   Netscape.
  946.  
  947.   Some movement about Thai Mozilla project at
  948.   http://members.xoom.com/inThai/mozthai.html
  949.   <http://members.xoom.com/inThai/mozthai.html>.
  950.  
  951.  
  952.   3.1.6.  Ss, Simple thai word Separator
  953.  
  954.   ss is a dictionary based Thai word separation program similar to
  955.   cttex. It can be used to insert a configurable string between Thai
  956.   words. It can also show words that cannot be found in the dictionary.
  957.   More words can be added to the dictionary. Developed by Mr.Teera
  958.   Kittichareonpot.
  959.  
  960.   We can use this program to insert < WBR > tag between Thai words in
  961.   html file. Browser will display Thai homepage better than normal html
  962.   document.
  963.  
  964.  
  965.   3.1.7.  Xzthai, X keyboard configurator + simple editor
  966.  
  967.   Xzthai, this is the Tcl/Tk application for mapping Thai keyboard on
  968.   any keyboard with graphical user interface. Also provides simple
  969.   editor and keyboard layout figure. It actually uses xmodmap program in
  970.   background to map Thai keyboard. This may be useful for commercial X
  971.   server and X server on UNIX.
  972.  
  973.  
  974.   3.2.  Printing Thai document
  975.  
  976.   Thai2ps is used to convert plain text file to postscript file.You can
  977.   use ghostscript(gs) to print your Thai document. For better quality
  978.   document, you have to use (La)TeX.
  979.  
  980.  
  981.   3.2.1.  Latex and Thai language
  982.  
  983.   Dr. Manop Wongsaisuwan first tried to use Thai language with latex. He
  984.   wrote some perl script as filter for latex source code that contains
  985.   Thai language. Then pass the result to latex. Mr. Vuthichai
  986.   Ampornaramvech used this concept and wrote a program in C language,
  987.   cttex, to handle this. It runs faster and makes Thai word segmentation
  988.   based on dictionary. Cttex also fixes the position of Thai characters
  989.   in word, so SARA and WANNAYUK will be placed in the beautiful
  990.   position.
  991.   You can find Thai latex filter from
  992.   http://thaigate.nacsis.ac.jp/files/ttex.html
  993.   <http://thaigate.nacsis.ac.jp/files/ttex.html>.
  994.  
  995.  
  996.   3.2.2.  Latex's configuration for Thai language
  997.  
  998.   You must have latex installed in your computer.  First, download Thai
  999.   postscript (Type1) fonts, tfm fonts and Thai style file. These fonts
  1000.   are needed by Latex. This is the list of files you should download.
  1001.  
  1002.  
  1003.        tfm fonts:
  1004.            dbtt.tfm    dbttb.tfm   dbttbi.tfm  dbtti.tfm
  1005.        postscript fonts:
  1006.            dbtt.pfa    dbttb.pfa   dbttbi.pfa  dbtti.pfa
  1007.        style files:
  1008.            thai.sty sakka.sty
  1009.        Thai Latex filter:
  1010.            cttex
  1011.        Sample Latex file:
  1012.            ttex.ttex test.ttex
  1013.  
  1014.  
  1015.  
  1016.  
  1017.  
  1018.   There is latex's directory at /usr/lib/texmf/texmf/ (RedHat 5.0). I
  1019.   will call /usr/lib/texmf/texmf/ as " $texroot " . We will concentrate
  1020.   at $texroot/texmf/ directory.  In $texroot/texmf/ directory, there are
  1021.   many files about tex's configuration. You have to edit files in dvips,
  1022.   fonts, tex subdirectories.
  1023.  
  1024.   Add the following lines to $texroot/texmf/dvips/misc/psfonts.map
  1025.  
  1026.  
  1027.        dbtt  DBThaiText <dbtt.pfa
  1028.        dbttb DBThaiTextBold <dbttb.pfa
  1029.        dbttbi DBThaiTextBoldItalic <dbttbi.pfa
  1030.        dbtti DBThaiTextItalic <dbtti.pfa
  1031.  
  1032.  
  1033.  
  1034.  
  1035.  
  1036.   Make a new directories and copy files to the appropriate directories.
  1037.  
  1038.  
  1039.        %mkdir /usr/lib/texmf/texmf/fonts/tfm/public/thai
  1040.        %mkdir /usr/lib/texmf/texmf/fonts/type1/public/thai
  1041.        %mkdir /usr/lib/texmf/texmf/tex/generic/thai
  1042.        %cp *.tfm /usr/lib/texmf/texmf/fonts/tfm/public/thai
  1043.        %cp *.pfa /usr/lib/texmf/texmf/fonts/type1/public/thai
  1044.        %cp *.sty /usr/lib/texmf/texmf/tex/generic/thai
  1045.  
  1046.  
  1047.  
  1048.  
  1049.  
  1050.   Run texhash or MakeTeXls-R(in some system) to update Tex database.
  1051.  
  1052.  
  1053.        %/usr/bin/texhash
  1054.        texhash: updating /usr/lib/texmf/texmf/ls-R ...
  1055.        texhash: Done.
  1056.  
  1057.   3.2.3.  Use Thai LaTeX  filter
  1058.  
  1059.   We can use cttex as filter like this,
  1060.  
  1061.  
  1062.        %cttex < ttex.ttex > ttex.tex
  1063.        C-TTeX $Revivsion: 1.15 $
  1064.        Usage : cttex [cutcode] < infile > outfile
  1065.        Usage : cutcode=0 forces operation in HTML mode.
  1066.        Build-in dictionary size: 9945 words
  1067.         343
  1068.        Done
  1069.        %latex ttex.tex
  1070.        ...
  1071.        %xdvi ttex.dvi
  1072.  
  1073.  
  1074.  
  1075.  
  1076.   You can convert dvi file to postscript file by,
  1077.  
  1078.  
  1079.        %dvips -o ttex.ps ttex.dvi
  1080.  
  1081.  
  1082.  
  1083.  
  1084.   Finally, you can print ttex.ps by using gs or lpr. You must configure
  1085.   printer before printing. See man-pages of printcap, gs, lpr for more
  1086.   information.
  1087.  
  1088.  
  1089.   3.2.4.  Editing LaTex  source file
  1090.  
  1091.   For new latex user, lyx is helpful. But I recommend to use mule to
  1092.   edit Thai latex source file because mule supports Thai language and it
  1093.   is a powerful editor. You may take a look a Thai Latex tutorial
  1094.   <http://www.fedu.uec.ac.jp/ZzzThai/Linux/ttex>.
  1095.  
  1096.  
  1097.  
  1098.   3.3.  X Application Resources
  1099.  
  1100.   Because Xt based applications allow user to configure the applications
  1101.   by resources. We can make the menu or label to be Thai language.
  1102.  
  1103.   For example, if you want xman to display Thai labels. You may add
  1104.   these lines in your .Xdefaults
  1105.  
  1106.  
  1107.        ......
  1108.        !!  Xman section
  1109.        Xman*Font:                          thai8x16
  1110.        Xman*helpButton.Label:              ¬Φ╟┬
  1111.        Xman*quitButton.Label:              ══í
  1112.        Xman*manpageButton.Label:           ñ┘Φ┴╫═í╥├π¬Θ
  1113.        ......
  1114.  
  1115.  
  1116.  
  1117.  
  1118.   You can use the same idea to set window manager to be more Thai
  1119.   environment too.
  1120.  
  1121.  
  1122.  
  1123.   3.4.  Thai Extension for Linux (TE)
  1124.  
  1125.   Thai Extension for Linux is a installation package comes with
  1126.   applicaions and Thai fonts. You don't have to configure Linux system
  1127.   and applications by yourself.  Let TE do configuration task for you.
  1128.   After installation, you can use Thai language suddenly. Get TE from
  1129.   ftp://fedu.uec.ac.jp/pub/thai/UEC/ZzzThai/Software/Linux/
  1130.   <ftp://fedu.uec.ac.jp/pub/thai/UEC/ZzzThai/Software/Linux/>
  1131.  
  1132.  
  1133.  
  1134.   4.  References and FTP sites
  1135.  
  1136.  
  1137.   4.1.  Other documents of relevance
  1138.  
  1139.   The HOWTOs ought to be available from all mirrors of sunsite.unc.edu.
  1140.  
  1141.   The Linux Danish/International HOWTO by Niels Kristian Bech Jensen
  1142.  
  1143.   The Linux Cyrillic HOWTO by Alexander L. Belikoff
  1144.  
  1145.   The Keystroke mini-HOWTO by Zenon Fortuna.
  1146.  
  1147.   The Locales mini-HOWTO by Peeter Joot. (This one is mainly for
  1148.   developers.)
  1149.  
  1150.   The ISO-8859-1 FAQ and Programming for Internationalization FAQ (plus
  1151.   much more) by Michael Gschwind is available from his homepage
  1152.   <http://www.vlsivie.tuwien.ac.at/mike/i18n.html>.
  1153.  
  1154.  
  1155.   4.2.  Thai related stuffs
  1156.  
  1157.   " NACSIS R& D Thai Project Page " ,http://thaigate.nacsis.ac.jp
  1158.   <http://thaigate.nacsis.ac.jp>
  1159.  
  1160.   ╖  Information about Thai computing.
  1161.  
  1162.   ╖  Discussion groups in Thai language, such as thai-l (Thai Mailing
  1163.      list), Thai news, etc.
  1164.  
  1165.   ╖  Thai references and Thai softwares.
  1166.  
  1167.   ╖  Thai Latex filter.
  1168.  
  1169.   " ZzzThai Project " , http://www.fedu.uec.ac.jp
  1170.   <http://www.fedu.uec.ac.jp/ZzzThai/>
  1171.  
  1172.   ╖  Most softwares and Thai fonts introduced here can download from
  1173.      ZzzThai.
  1174.  
  1175.   ╖  Describe how to use Thai with 3 main computer platforms, UNIX like,
  1176.      Windows and Mac.
  1177.  
  1178.   ╖  Linux information at http://www.fedu.uec.ac.jp/ZzzThai/Linux
  1179.      <http://www.fedu.uec.ac.jp/ZzzThai/Linux>, TE, Thai LaTeX tutorial,
  1180.      etc.
  1181.  
  1182.   ╖  By The group of students at The University of Electro-
  1183.      Communications, Tokyo.
  1184.  
  1185.   " Vuthichai's Page " , http://www.ctrl.titech.ac.jp:80/~vuthi/
  1186.   <http://www.ctrl.titech.ac.jp:80/~vuthi/>
  1187.  
  1188.  
  1189.   ╖  Information about Thai computing by Mr. Vuthichai Ampornaramveth.
  1190.  
  1191.   " An annotated reference to the Thai implementations " ,
  1192.   http://www.inet.co.th/cyberclub/trin/thairef/
  1193.   <http://www.inet.co.th/cyberclub/trin/thairef/>
  1194.  
  1195.   ╖  Information about Thai character standard.
  1196.  
  1197.   ╖  By Mr.Trin Tantsetthi.
  1198.  
  1199.   " X window and Thai language " , http://members.xoom.com.cwg.x11th/
  1200.   <http://members.xoom.com/cwg/x11th/>
  1201.  
  1202.   ╖  By Mr.Rawat S.Pirom
  1203.  
  1204.   " SchoolNet Internet Sever " , http://www.school.net.th/linux-sis/
  1205.   <http://www.school.net.th/linux-sis/>
  1206.  
  1207.   ╖  Using Linux in School, Thailand.
  1208.  
  1209.   ╖  By NECTEC <http://www.nectec.or.th> (National Electronics and
  1210.      Computer Technology Center).
  1211.  
  1212.   " Thai Open Source Development " , http://members.xoom.com/inThai
  1213.   <http://members.xoom.com/inThai>
  1214.  
  1215.   ╖  Mozilla Thai enabling.
  1216.  
  1217.   ╖  Open source Thai softwares and Libraries.
  1218.  
  1219.   ╖  By Mr.Samphan Raruenrom
  1220.  
  1221.   " Linux Thai Project " , http://www.geocities.com/SiliconValley/8302
  1222.   <http://www.geocities.com/SiliconValley/8302>
  1223.  
  1224.   ╖  Information about Linux in Thai language.
  1225.  
  1226.   ╖  By Kaiwal Development Team.
  1227.  
  1228.   " ThaiLinux unofficial Webboard " ,
  1229.   http://lulu.mptc.eng.cmu.ac.th/HyperNews/get/ThaiLinux.html
  1230.   <http://lulu.mptc.eng.cmu.ac.th/HyperNews/get/ThaiLinux.html>
  1231.  
  1232.   ╖  Questions and answers about Linux in Thai language.
  1233.  
  1234.   ╖  By Mr.Pruet Boonma
  1235.  
  1236.   " Thai Linux installation project " ,
  1237.   http://www.geocities.com/Tokyo/Bay/4521/
  1238.   <http://www.geocities.com/Tokyo/Bay/4521/>
  1239.  
  1240.   ╖  Installation guide in Thai language
  1241.  
  1242.  
  1243.   4.3.  FTP and Web sites
  1244.  
  1245.  
  1246.   Most softwares and Thai fonts which introdued in this howto.
  1247.  
  1248.   ╖  ftp://ftp.fedu.uec.ac.jp/pub/thai/UEC/ZzzThai/Software/Linux
  1249.      <ftp://ftp.fedu.uec.ac.jp/pub/thai/UEC/ZzzThai/Software/Linux>
  1250.  
  1251.   ╖  http://thaigate.nacsis.ac.jp/files/index.html
  1252.      <http://thaigate.nacsis.ac.jp/files/index.html>
  1253.  
  1254.  
  1255.   ╖  http://www.nectec.or.th/pub/software/i18n/thai
  1256.      <http://www.nectec.or.th/pub/software/i18n/thai>
  1257.  
  1258.   Mule
  1259.  
  1260.   ╖  ftp://etlport.etl.go.jp/pub/mule <ftp://etlport.etl.go.jp/pub/mule>
  1261.  
  1262.   Ss
  1263.  
  1264.   ╖  http://members.xoom.com/theera/ss/
  1265.      <http://members.xoom.com/theera/ss/>
  1266.  
  1267.   SunSite <ftp://sunsite.unc.edu/pub/linux/> and mirrors.  doc/howto has
  1268.   the above mentioned HOWTOs. utils/nls and subdirectories contain files
  1269.   related to National Language Support.  Developers should take a look
  1270.   at locale-tutorial-0.8.txt.gz, locale-pack-0.8.tar.gz and cat-
  1271.   pack.tar.gz.
  1272.  
  1273.   The GNU archives <ftp://prep.ai.mit.edu/pub/gnu/> has the recode
  1274.   package for character table conversion, the ABOUT-NLS file and the
  1275.   gettext package for locale support of some GNU applications and (of
  1276.   course) the latest versions of GNU emacs.
  1277.  
  1278.  
  1279.  
  1280.  
  1281.  
  1282.   5.  Acknowledgments and Copyright
  1283.  
  1284.   Some parts of this HOWTO comes from The Linux Danish/International
  1285.   HOWTO by Thomas Petersen, petersen@post1.tele.dk (the original author)
  1286.   and Niels Kristian Bech Jensen, nkbj@image.dk.
  1287.  
  1288.   Thank you to Phaisarn Techajaruwong for building Thai fonts and
  1289.   valuable discussion.
  1290.  
  1291.   Thank you to Thai students at The University of Electro-Communications
  1292.   and Mr. Vuthichai Ampornaramveth for every help.
  1293.  
  1294.   This HOWTO is copyrighted by Poonlap Veeratanabutr, poon-
  1295.   v@fedu.uec.ac.jp. It is distributed as other Linux HOWTOs under the
  1296.   terms described below.
  1297.  
  1298.   Linux HOWTO documents may be reproduced and distributed in whole or in
  1299.   part, in any medium physical or electronic, as long as this copyright
  1300.   notice is retained on all copies. Commercial redistribution is allowed
  1301.   and encouraged; however, the authors would like to be notified of any
  1302.   such distributions.
  1303.  
  1304.   All translations, derivative works, or aggregate works incorporating
  1305.   any Linux HOWTO documents must be covered under this copyright notice.
  1306.   That is, you may not produce a derivative work from a HOWTO and impose
  1307.   additional restrictions on its distribution. Exceptions to these rules
  1308.   may be granted under certain conditions; please contact the Linux
  1309.   HOWTO coordinator at the address given below.
  1310.  
  1311.   If you have questions, please contact Tim Bynum, the Linux HOWTO
  1312.   coordinator, at linux-howto@sunsite.unc.edu via email.
  1313.  
  1314.  
  1315.  
  1316.  
  1317.  
  1318.  
  1319.  
  1320.  
  1321.