Thai HOWTO

この文書に関して

この文書は、Linux Slackware 3.4 のThai-HOWTO(1997/05/26版) を堀田倫英(sim@remus.dti.ne.jp)が勝手に翻訳したものです。お気づきの点は、直接私の方にお知らせください。

The Linux Thai HOWTO
Poonlap Veeratanabutr, poon-v@fedu.uec.ac.jp
v0.2, 26 May 1997

この文書はLinuxでタイ語を使う方法について記述されています。つまり、少なくともあなたは、タイ語のプレーンテキスト文書を読み書きしたり、タイ語のファイル名を付けたり、タイ文字でいくつかのアプリケーションを使うことができるようになるということです。私はSlackware96のLinuxを使っていますが、私がここで述べるパス名は他のディストリビューションとは異なっているかもしれません。

  1. はじめに

    私がこの文書を書こうと思ったのは、uecthai@fedu.uec.ac.jpさんによるZzzThai Projectが発端でした。ここには、多くのコンピュータ・プラットフォームにおけるタイ語の使い方が述べられています。私はこのプロジェクトに参加して、Windows95で作業を始めたのですが、今ではLinuxの方に多くの興味を持つようになりました。

    これはThai HOWTOの最初のバージョンで、まだ完全なものではありません。私がまだここで述べていないこととしては、タイ語文書の印刷、タイ語Tex、コンソール・フォントなどがあります。今後のバージョンではこれらについて書いてゆきたいと考えています。

    タイ標準の文字コードはTIS620です。タイ語の文字コードは iso_8859_1 と同じ範囲に入っているので、 iso_8859_1 タイプと同じように扱うことができます。これはトリッキーです。X11R6では/usr/X11/include/X11/keysymdef.h/usr/X11/lib/X11/locale/th_TH.TACTISにタイ語に関する情報があります。これらのディレクトリやファイルを見てください。私はこれらの情報を使おうとしてみましたが、うまく動きませんでした。今では、タイ語文字を iso_8859_1 として扱い、これらはうまく動いています。タイ語文字はラテン系文字とは異なり、文字がいろいろな位置に来ます。通常の位置や他の字の上に来るもの、他の字の下に来るものなどです。文中には空白はありません。これらは、タイ語のワープロを開発する際に、しばしば障害となります。

  2. タイ語の入出力

    1. Linux コンソール

      1. タイ語フォント

        Phaisarn Techajaruwong さんがつくった Linux のタイ語コンソール・フォントをftp://ftp.fedu.uec.ac.jp/pub/thai/UEC/ZzzThai/Software/Linux/Fontsから入手できます。

        新しいフォントを Linux コンソールからロードするには、

               %setfont ThaiFont

        としてください。タイ語フォント(psf フォーマット)は/usr/lib/kbd/consolefonts/に入れてください。マシンのブート時にタイ語フォントを自動的にロードさせたい場合は、/etc/rc.d/rc.fontを以下の内容で作成します。

          #!/bin/sh
          #
          # This selects your default screen font from among the ones in
          # /usr/lib/kbd/consolefonts.
          #
          setfont phaisarn.psf
                    
      2. キーボード・レイアウト

        loadkeysコマンドにより、キーボードの振る舞いを好きなように設定することができます。通常は、loadkeysを使って/usr/lib/kbd/keytablesにあるファイルをロードします。マッピングファイルを作成して、このディレクトリに保存してください。以下に例を示します。

          # thai.map
          # This thai.map was modified by Poonlap Veeratanabutr (poon-v@fedu.uec.ac.jp)
          # from us.map. Map Thai Kedmanee keyboard to US keyboard.
          # 28 April 1997
          # Thai/Us toggle key is AltGr(right alt).
          keycode   0 =
          keycode   1 = Escape           Escape
                  alt     keycode   1 = Meta_Escape
          keycode   2 = +one              exclam          +aring          plus
                  alt     keycode   2 = Meta_one
                  alt shift keycode 2 = Meta_exclam
          keycode   3 = +two              at              +slash          ntilde
                  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     ograve
                  control keycode   4 = Escape
                  alt     keycode   4 = Meta_three
                  alt shift keycode 4 = Meta_numbersign
          keycode   5 = +four             dollar          +Agrave         oacute
                  control keycode   5 = Control_backslash
                  alt     keycode   5 = Meta_four
                  alt shift keycode 5 = Meta_dollar
          keycode   6 = +five             percent         +paragraph      ocircumflex
                  control keycode   6 = Control_bracketright
                  alt     keycode   6 = Meta_five
                  alt shift keycode 6 = Meta_percent
          keycode   7 = +six              asciicircum     +Ooblique       Ugrave
                  control keycode   7 = Control_asciicircum
                  alt     keycode   7 = Meta_six
                  alt shift keycode 7 = Meta_asciicircum
          keycode   8 = +seven            ampersand       +Odiaeresis     ssharp
                  control keycode   8 = Control_underscore
                  alt     keycode   8 = Meta_seven
          keycode   9 = +eight            asterisk        +currency       otilde
                  control keycode   9 = Delete
                  alt     keycode   9 = Meta_eight
          keycode  10 = +nine             parenleft       +mu             Odiaeresis
                  alt     keycode  10 = Meta_nine
          keycode  11 = +zero             parenright      +diaeresis      division
                  alt     keycode  11 = Meta_zero
          keycode  12 = +minus            underscore      +cent           oslash
                  control keycode  12 = Control_underscore
                  control shift keycode 12 = Control_underscore
                  alt     keycode  12 = Meta_minus
          keycode  13 = +equal            plus            +ordfeminine    ugrave
                  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       +ae             eth
          keycode  17 = +w        W       +adiaeresis     quotedbl
          keycode  18 = +e        E       +Oacute         registered
          keycode  19 = +r        R       +threequarters  plusminus
          keycode  20 = +t        T       +ETH            cedilla
          keycode  21 = +y        Y       +Ntilde         iacute
          keycode  22 = +u        U       +Otilde         ecircumflex
          keycode  23 = +i        I       +Atilde         threesuperior
          keycode  24 = +o        O       +onesuperior    Idiaeresis
          keycode  25 = +p        P       +Acircumflex    hyphen
          keycode  26 = +bracketleft      braceleft       +masculine      degree
                  control keycode  26 = Escape
                  alt     keycode  26 = Meta_bracketleft
                  alt shift keycode 26 = Meta_braceleft
          keycode  27 = +bracketright     braceright      +Aring          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       +questiondown   Adiaeresis
          keycode  31 = +s        S       +Ediaeresis     brokenbar
          keycode  32 = +d        D       +exclamdown     macron
          keycode  33 = +f        F       +acute          acircumflex
          keycode  34 = +g        G       +agrave         notsign
          keycode  35 = +h        H       +eacute         ccedilla
          keycode  36 = +j        J       +egrave         ediaeresis
          keycode  37 = +k        K       +Ograve         Eacute
          keycode  38 = +l        L       +Ecircumflex    Egrave
          keycode  39 = +semicolon        colon           +Ccedilla       guillemotleft
                  alt     keycode  39 = Meta_semicolon
          keycode  40 = +apostrophe       quotedbl        +section        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             +sterling       yen
                  control keycode  43 = Control_backslash
                  alt     keycode  43 = Meta_backslash
                  alt shift keycode 43 = Meta_bar
          keycode  44 = +z        Z       +onequarter     parenleft
          keycode  45 = +x        X       +guillemotright parenright
          keycode  46 = +c        C       +aacute         copyright
          keycode  47 = +v        V       +Iacute         Icircumflex
          keycode  48 = +b        B       +Ocircumflex    Uacute
          keycode  49 = +n        N       +multiply       igrave
          keycode  50 = +m        M       +periodcentered question
          keycode  51 = +comma    less    +Aacute         twosuperior
                  alt     keycode  51 = Meta_comma
                  alt shift keycode 51 = Meta_less
          keycode  52 = +period           greater         +atilde         Igrave
                  alt     keycode  52 = Meta_period
                  alt shift keycode 52 = Meta_greater
          keycode  53 = +slash            question        +onehalf        AE
                  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_0
                  alt     keycode  82 = Ascii_0
          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 = ""
                    

        このファイルを thai.map という名前でセーブしたのなら、このファイルをロードするために

               %loadkeys thai.map
                    
        とします。タイ語入力モードに切り替えるには、右 Alt キーを押します。英語モードに切り替えるには、もう一度右 Alt キーを押します。タイ語のキーマップをデフォルトにするなら、/usr/lib/kbd/keytablesにthai.map を書き込んだ後に、以下のサンプルのように/etc/rc.d/rc.keymapファイルを作成します。
               #!/bin/sh
               #
               # Loadkeys will look for thai.map in /usr/lib/kbd/keytables
               #
               loadkeys thai
                    
        マシンをブートした時に、thai.map が自動的にロードされます。

    2. Xウィンドウ・システム

      1. タイ語フォント

        Xウィンドウ・システムでタイ語文字を表示するには、Xウィンドウ・システム用のタイ語フォントが必要です。bdf または pcf フォーマットのタイ語フォントをインターネットから得ることができます。

        これらのフォントは通常 tar または gz フォーマットで置いてあります。tar または gunzip で解凍してください。

        (訳注:この後 You will get a lot of で切れてます(^_^);)

        1. タイ語フォントのインストール

          root でログインしておいてください。タイ語フォントを/usr/X11/lib/X11/fonts/misc/に入れて、/usr/X11/lib/X11/fonts/misc/に移動してから

                 #mkfontdir
                          

          を実行します。このコマンドはフォント・データベース・ファイルを更新します。このコマンドをXウィンドウ・システム配下で動かした場合は、Xウィンドウを再起動しないと有効にならないかもしれません。

      2. タイ語キーボード・レイアウト

        xmodmap ユーティリティにより、あなたのキーボードを好きなようにマッピングできます。通常は、xmodmap はファイルをロードするために使用します。/usr/X11/lib/X11/xinit/に .Xmodmap ファイルがあります。(Slackware 96 では)~.xinitrc/ および .Xmodmap がないと、このファイルがロードされます。/usr/X11/lib/X11/xinit/.Xmodmapファイルは、すべてのキーをマップするわけではありません。これは単に Backspace/Delete キーの問題を解決してくれるだけです。以下に Thai Kedmanee キーボード・レイアウト用の .Xmodmap の例を示します。

          !
          ! Linux/XFree86 Thai Kedmanee layout (based on US keyboard)
          ! Generated on Mon May 26 22:59:56 1997
          ! by Poonlap Veeratanabutr (poon-v@fedu.uec.ac.jp)
          ! 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          aring           plus
          keycode 0x0B =  2               at              slash           ntilde
          keycode 0x0C =  3               numbersign      underscore      ograve
          keycode 0x0D =  4               dollar          Agrave          oacute
          keycode 0x0E =  5               percent         paragraph       ocircumflex
          keycode 0x0F =  6               asciicircum     Ooblique        Ugrave
          keycode 0x10 =  7               ampersand       Odiaeresis      ssharp
          keycode 0x11 =  8               asterisk        currency        otilde
          keycode 0x12 =  9               parenleft       mu              odiaeresis
          keycode 0x13 =  0               parenright      diaeresis       division
          keycode 0x14 =  minus           underscore      cent            oslash
          keycode 0x15 =  equal           plus            ordfeminine     ugrave
          keycode 0x33 =  backslash       bar             sterling        yen
          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               ae              eth
          keycode 0x19 =  w               W               adiaeresis      quotedbl
          keycode 0x1A =  e               E               Oacute          registered
          keycode 0x1B =  r               R               threequarters   plusminus
          keycode 0x1C =  t               T               ETH             cedilla
          keycode 0x1D =  y               Y               Ntilde          iacute
          keycode 0x1E =  u               U               Otilde          ecircumflex
          keycode 0x1F =  i               I               Atilde          threesuperior
          keycode 0x20 =  o               O               onesuperior     Idiaeresis
          keycode 0x21 =  p               P               Acircumflex     hyphen
          keycode 0x22 =  bracketleft     braceleft       masculine       degree
          keycode 0x23 =  bracketright    braceright      Aring           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               questiondown    Adiaeresis
          keycode 0x27 =  s               S               Ediaeresis      brokenbar
          keycode 0x28 =  d               D               exclamdown      macron
          keycode 0x29 =  f               F               acute           acircumflex
          keycode 0x2A =  g               G               agrave          notsign
          keycode 0x2B =  h               H               eacute          ccedilla
          keycode 0x2C =  j               J               egrave          ediaeresis
          keycode 0x2D =  k               K               Ograve          Eacute
          keycode 0x2E =  l               L               Ecircumflex     Egrave
          keycode 0x2F =  semicolon       colon           Ccedilla        guillemotleft
          keycode 0x30 =  apostrophe      quotedbl        section         period
          keycode 0x53 =  KP_4
          keycode 0x54 =  KP_5
          keycode 0x55 =  KP_6
          keycode 0x32 =  Shift_L
          keycode 0x34 =  z               Z               onequarter      parenleft
          keycode 0x35 =  x               X               guillemotright  parenright
          keycode 0x36 =  c               C               aacute          copyright
          keycode 0x37 =  v               V               Iacute          Icircumflex
          keycode 0x38 =  b               B               Ocircumflex     Uacute
          keycode 0x39 =  n               N               multiply        igrave
          keycode 0x3A =  m               M               periodcentered  question
          keycode 0x3B =  comma           less            Aacute          twosuperior
          keycode 0x3C =  period          greater         atilde          Igrave
          keycode 0x3D =  slash           question        onehalf         AE
          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_0
          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
                    

        もしあなたのシステムのキーボード・レイアウトをタイのものに合わせたい場合は、このサンプル・ファイルをあなたのホーム・ディレクトリに書き込んでください。ホーム・ディレクトリに .xinitrc または x.session がある場合は、それらのファイルに以下の行を加えてください。

               xmodmap ~/.Xmodmap
                    

        タイ語/英語のトグルをするキーをキーコード 0x4E (78)の Scroll Lock キーに割り当てる場合は、

               keycode 0x4E =  Mode_switch     XF86ModeLock
                    
        のようになります。

        XF86ModeLock は XFree86 Xサーバのための特殊なキーシムです。もしこのキーシムを追加しないと、タイ語文字をタイプしている間は Scroll Lock キーが使えなくなります。

  3. タイ語文字を使うアプリケーション

    ここはトリッキーな部分です。ほとんどのアプリケーションは iso_8859_1 文字または 8ビット文字をサポートしています。たとえば、emacs は iso_8859_1 文字を表示することができます。emacs を iso_8859_1 文字を表示するように設定してタイ語フォントを使えば、タイ語の文書が emacs で編集できるようになります。

    LC_CTYPE 環境変数を、/etc/profile(bashユーザの場合)または /etc/csh.cshrc(tcshユーザの場合)に設定します。同様に、(原則として)これらを設定しておきます。

           *basicLocale:   C
           *timeFormat:    C
           *numeric:       C
           *displayLang:   iso_8859_1
           *inputLang:     iso_8859_1
        
    libc-4.x.xx をお使いの場合は、LC_CTYPE を iso_8859_1 の代わりに ISO-8859-1 としておきます。

    いくつかのアプリケーションでは、タイ語文字が使え、またそれらの構成を知っています。Xウィンドウ・アプリケーションでタイ語フォントを表示させるには、そのアプリケーションを -fn オプションで起動します。たとえば、以下のようにします。

           #xterm -fn NameOfThaifont
        

    毎回 -fn オプションを付けるのが煩わしければ、タイ語フォントをあなたの ~/.Xdefaults または ~/.Xresources に、以下のように設定すればよいでしょう。

           XTerm*font:     NameOfThaifont
        
    1. 非ネットワーク・アプリケーション

      1. xterm

        シェルや pine, vi などのように、xterm 配下で動くいくつかのプログラムがあります。前述のようなタイ語フォントの指定を忘れないようにしてください。

        bash :

        新しいバージョンの bash(v1.14.1+)では、LC_CTYPE を iso_8859_1 にするだけでいいです。何か問題が起こる場合は、以下の3行をあなたの /etc/inputrc か ~/.inputrc ファイルに入れてみてください。

                  set meta-flag on
                  set convert-meta off
                  set output-meta on
                        

        できれば ~/.inputrc を使ったほうが良いでしょう。というのは、タイ語文字セットは8ビットですが、厳密な iso-8859-1 ではないからです。できれば、LC_CTYPE は iso_8859_1 にするのをやめてください。

        コマンドラインでタイ語文字をタイプすることができます。つまり、タイ語のファイル名が付けられるということですね。

        tcsh :

        以下の1行を、あなたの /etc/csh.cshrc または .tcshrc ファイルに入れてください。

                  setenv LC_CTYPE iso_8859_1
                        

        注意:これで動かない場合は、あなたの tcsh のコピーが NLS サポートでコンパイルされていないか、またはそのバージョンが 6.03 以前であるかのどちらかでしょう。

        ls :

        以下のコマンドを発行してください。

                  ls -N
                        
        または
                  ls --8bit
                        
        かもしれません。

        ~/.bashrc または ~/.cshrc にエイリアスを用意しておけば、オプションなしで ls を実行できるようになります。-N オプションを使用しないと、タイ語のファイル名が ????? のようになります。

        less :

        以下のように環境変数をセットしてください。

                  LESSCHARSET=latin1
                        

      2. emacs

        バージョン 19.26 以降の X11 用 GNU emacs では、単に環境変数 LC_CTYPE を iso_8859_1 にするだけです。それより古いバージョンを使ったり、「まっさらの」Linux 上で emacs を使う場合は、あなたの ~/.emacs か、またはシステム全般の初期化ファイル(たぶん /usr/lib/emacs/site-lisp/default.el)に以下を追加してください。

               (standard-display-european t)
        
               (set-input-mode (car (current-input-mode))
                       (nth 1 (current-input-mode))
                       0)
                    

        すでに emacs を実行している場合は、Esc-x を押して、ミニバッファに standard-display-europeanとタイプすれば、このコマンドが emacs に8ビット文字を表示しなさいと教えてくれます。

        bash をご使用の場合は、このようにして emacs を起動します。

               %LC_CTYPE=iso_8859_1 emacs
                    

        このコマンドにより、emacs のみで LC_CTYPE=iso_8859_1 が有効となります。

        タイ語文字の中に長さが0の文字があるために、カーソルが正しい位置に来ないことがあります。mule からのフォントを使うようにしてください。以下のサイトにあります。

        ftp://ftp.fedu.uec.ac.jp/pub/thai/UEC/ZzzThai/Software/UNIX/Fonts/Mule/etl_fonts.tar

      3. vi

        vi は、タイ語フォントを使う xterm 上で動くはずです。

      4. xedit

        xterm のように、xedit を -fn オプション付きで起動してください。このアプリケーションは正しい位置にタイ語文字を表示できます。

    2. ネットワーク・アプリケーション

      1. E-mail

        mail コマンドではタイ語の電子メールを送ることはできません。mail コマンドはメールを7ビットで送ります。pine や elm のように、MINE をサポートしたメール・アプリケーションを使ったほうが良いでしょう。

        elm:

        あなたの ~/.elm/elmrc ファイルに以下の定義を入れてください。

                  charset = iso-8859-1
                  displaycharset = iso-8859-1
                  textencoding = 8bit
                        
        elm のいくつかのバージョンでは動かないかもしれません。

        pine :

        あなたの ~/.pinerc ファイルに以下の定義を入れてください。

                  # Reflects capabilities of the display you have. Default: US-ASCII.
                  # Typical alternatives include ISO-8859-x, (x is a number between 1 and 9).
                  character-set=ISO-8859-1
                        

        pine の Setup オプションからでも設定できます。Config 配下にあります。

      2. tin

        あなたの ~/.tin/headers ファイルに以下の定義を入れてください。

               Mime-Version: 1.0
               Content-Type: text/plain; charset=iso-8859-1
               Content-Transfer-Encoding: 8bit
                    

        メッセージ本文が適切なデンマーク文字(訳注:???)であるメッセージをポストできます。

      3. lynx

        あなたの ~/.lynxrc ファイルに以下の定義を入れてください。

               character_set=ISO Latin 1
                    

        lynx の Options メニューからでも設定できます。'o' をタイプして関連したオプションをセットしてください。

      4. telnet

        あなたの ~/.telnetrc ファイルに、telnet でログオンしたいホストごとに以下の定義を入れてください。

                set outbinary true
                    
        例:
               localhost set outbinary true
               foo.bar.dk set outbinary true
                    
      5. Netscape

        あなたのシステム内にタイ語フォントがあれば、Options | General Preferences | Fonts でタイ語フォントを選ぶだけです。タイ語フォントは ISO-8859-1 か User defined の中にでてきます。

  4. 参照とFTPサイト

    1. その他の関連した文書

      • HOWTO 文書は 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. (これは主に開発者用です)
      • The ISO-8859-1 FAQ and Programming for Internationalization FAQ (およびその他もろもろ)by Michael Gschwind は彼のホームページから
      • NACSIS R& D Thai Project Pageここでタイ語のコンピュータ処理の知識が得られます
      • ZzzThai Project by 東京の電気通信大学の学生さんたち。多くのコンピュータ・プラットホームにおいて、タイ語を使う方法が述べられています。
      • Vuthichai's PageVuthichai Ampornaramveth さんによる、タイ語のコンピュータ処理に関する情報。

    2. FTP and Web sites
      • NACSIS R & D Thai Project : http://thaigate.rd.nacsis.ac.jp
      • ZzzThai Project: http://www.fedu.uec.ac.jp/ZzzThai
      • Vuthichai's Homepage : http://www.ctrl.titech.ac.jp:80/~vuthi/
      • SunSite and mirrors. doc/howto には前述の HOWTOs があります。utils/nls とそのサブディレクトリには National Language サポートに関連するファイルがあります。開発者の方は、locale-tutorial-0.8.txt.gz, locale-pack-0.8.tar.gz and cat-pack.tar.gz を見られたらよいでしょう。
      • The GNU archives <ftp://prep.ai.mit.edu/pub/gnu/> には、文字コード変換テーブルを記録したパッケージと、いくつかの GNU アプリケーションのロケール・サポートに関する ABOUT-NLS ファイルと gettext パッケージ、および(当たり前ですが)最新バージョンの 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.
    
      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 Greg Hankins, the Linux HOWTO
      coordinator, at gregh@sunsite.unc.edu 
      via email.