The Unicode HOWTO: 表示の設定

次のページ 前のページ 目次へ

## 3. 表示の設定

ここでは、既に Linux のコンソールと X11 の設定を、使用しているキーボードと ロケールにあわせてあると仮定します。この方法は デンマーク/インターナショナル HOWTO や 他の国(Finnish(フィンランド), French(フランス), German(ドイツ), Italian (イタリア), Polish(ポーランド), Slovenian(スロベニア), Spanish(スペイン), Cyrillic(キリル), Hebrew(ヘブライ), Chinese(中国), Thai(タイ), Esperanto(エスペラント)) の HOWTO で説明されています。ただ、 Thai HOWTO で説明されている方法には従わないでください。ISO-8859-1 の 文字(U0000..U00FF) を使用してもタイ語の文字 (U0E01..U0E5B) になってしまいます。これは Unicode に変更するときに問題となります。

(訳注：日本語版のほとんどのディストリビューションでは既に設定済みですが、 もしまだであれば JF プロジェクトにある Keyboard-and-Console-HOWTO が役にたつでしょう)

## 3.1 Linux コンソール

ここでは Linux コンソールについてあまり多くは述べません。私が xdm を動か していないマシンを使う場合、単にログイン名とパスワードを入力して "xinit" を実行するだけだからです。

kbd-0.99 パッケージ ftp://sunsite.unc.edu/pub/Linux/system/keyboards/kbd-0.99.tar.gz と、それをかなり拡張したバージョンである console-tools-0.2.2 パッケージ ftp://sunsite.unc.edu/pub/Linux/system/keyboards/console-tools-0.2.2.tar.gz には kbd-0.99/src/ (もしくは console-tools-0.2.2/screenfonttools/)ディレ クトリに二つのプログラム `unicode_start' と `unicode_stop' があります。

`unicode_start'を呼びだすと、コンソールのスクリーンへの出力は UTF-8と解 釈されます。またキーボードは Unicode モード("man kbd_mode" を参照)に入り ます。このモードでは、Alt-x1 〜 Alt-xn(x1 〜 xn はテンキー上の数値です) で入力された Unicode 文字は UTF-8 となります。あなたのキーボードに (正確 にはあなたの通常のキーマップに) 非 ASCII 文字のキー(たとえばドイツ語のウ ムラウト)があり、その文字をキャップスロックしたい場合には、カーネルパッ チ linux-2.2.9-keyboard.diff もしくは linux-2.3.12-keyboard.diff をあてる必要があります。

スクリーン上で同時に異なった種類の文字を表示する場合、Unicode コンソール のためのフォントが必要となります。 ftp://sunsite.unc.edu/pub/Linux/system/keyboards/kbd-0.99.tar.gz および ftp://sunsite.unc.edu/pub/Linux/system/keyboards/console-data-1999.08.29.tar.gz パッケージに含まれているフォント(LatArCyrHeb-{08,14,16,19}.psf) はラテン 語、キリル文字、ヘブライ語、アラビア語の文字をカバーします。つまりこれ一 つで ISO 8859 の 1,2,3,4,5,6,8,9,10 をカバーします。インストールするには /usr/lib/kbd/consolefonts/ へコピーし、
"/usr/bin/setfont /usr/lib/kbd/consolefonts/LatArCyrHeb-14.psf" を実行します。

カット & ペーストを UTF-8 のコンソールで動作させたいのであれば、 Edmund Thomas Grimley Evans と Stanislav Voronyi によるパッチ linux-2.3.12-console.diff が必要になります。

## 3.2 X11 外国語フォント

キリル文字、中国語、日本語などのフォントのインストールをためらう理由はあ りません。それらが Unicode フォントではないとしても、Unicode の文書を表 示する時に役立ちます。少くとも Netscape Communicator 4 と Java は、可能な 時には外国語のフォントを利用します。

以下は、フォントをインストールする時に便利なプログラムです。

- "mkfontdir directory" は X サーバーが使用する font ディレクトリを準備します。 これはディレクトリにフォントをインストールした後に 実行する必要があります。
- "xset fp+ directory" は X サーバーのカレントフォントパスに directory を追加します。恒久的にディ レクトリを追加するのであれば、/etc/XF86Config ファイルの "Files" セクショ ンに "FontPath" 行を追加します。
- "xset fp rehash" を mkfontdir を呼びだしたあとに実行する必要があります。これはフォントパ スを現在値にリセットし、カレントフォントパスのフォントデータベースを X サーバに再読み込みさせます。
- "xfontsel" で、インストールされている各種フォントのプロパティをマウスで選択して ブラウズすることができます。
- "xlsfonts -fn fontpattern" は fontpattern にマッチしている全てのフォントをリスト表示し、各種フォント のプロパティを表示します。"xlsfonts -ll -fn font" を実行すると、フォント プロパティ CHARSET_REGISTRY と CHARSET_ENCODING をリスト表示します。 これらのプロパティはフォントのエンコーディングを決定します。
- "xfd -fn font" はページ毎に font を表示します。

次のフォントは自由に利用できます(完全なリストではありません)：

- XFree86 に含まれるもの。別のパッケージになってるかもしれません。 例えば SuSE には普通の 75dpi フォントのみが 基本の `xf86' パッケージに入っています。その他のフォントはパッケージ `xfnt100', `xfntbig', `xfntcyr', `xfntscl' に含まれています。
- ftp://ftp.gnu.org/pub/gnu/intlfonts/intlfonts-1.2.tar.gz の Emacs 国際フォント。既に言及されているように、GNU Emacs より XEmacs を好む場合や Emacs を使わない場合であっても、これらは役に立ちます。

## 3.3 X11 Unicode フォント

アプリケーションで異なる用字(例えばキリル文字やギリシャ文字)のテキストを 同時に表示するには、異なる X フォントを使うことによって可能になります。 これは Netscape Communicator と Java が行なっていることです。ですがこの 方法はより複雑です。プログラマーは `Font' と `XFontStruct' を利用するか わりに `XFontSet' を扱わなければならなく、その上さらにフォントセットの全 てのフォントが同じ文字幅を持っているわけではないからです。

- Markus Kuhn は Unicode でエンコードされた固定幅の 75dpi フォントを作りました。これはラテン語、ギリシャ語、キリル文字、アルメニア語、 グルジア語、ヘブライ語、記号をカバーしています。つまり ISO 8859 の 1,2,3,4,5,7,8,9,10,13,14,15 全てを 1 つでカバーします。 このフォントは xterm を utf-8 モードで実行する必要があります。 http://www.cl.cam.ac.uk/~mgk25/download/ucs-fonts.tar.gz
- Roman Czyborra は Unicode でエンコードされた 8x16 / 16x16 幅 75dpi フォントを作りました。これは Unicode の非常に多くの部分をカバーしています。 unifont.hex.gz と hex2bdf を http://czyborra.com/unifont/ からダウンロードしてください。また、これは固定幅ではありません： ヨーロッパの文字は 8 ピクセル幅、中国語などの文字は 16 ピクセルです。次のようにして、インストールを行ないます。

  > `

  >     $ gunzip unifont.hex.gz
  >     $ hex2bdf < unifont.hex > unifont.bdf
  >     $ bdftopcf -o unifont.pcf unifont.bdf
  >     $ gzip -9 unifont.pcf
  >     # cp unifont.pcf.gz /usr/X11R6/lib/X11/fonts/misc
  >     # cd /usr/X11R6/lib/X11/fonts/misc
  >     # mkfontdir
  >     # xset fp rehash

  > `

- Primoz Peterlin は ETL ファミリーのフォントを作りました。これはラテン語、 ギリシャ語、キリル文字、アルメニア語、グルジア語、 ヘブライ語をカバーしています。
  ftp://ftp.x.org/contrib/fonts/etl-unicode.tar.gz
  インストールするには "bdftopcf" プログラムを使用します。

## 3.4 Unicode xterm

xterm は X11R6 と XFree86 の 1 部なのですが、Tom Dickey により別にメンテナンスされています。 http://www.clark.net/pub/dickey/xterm/xterm.html
新しい バージョン(パッチレベル 109 以降)は、xterm で動作しているアプリケーションにキーストロークを送る前にキーストロークを UTF-8 にコンバートする機能と、アプリケーションの出力する Unicode 文字を UTF-8 のバイトシーケンスとして表示する機能をサポートしています。

UTF-8 をサポートする xterm を実行するには、次のようにします。

- http://www.clark.net/pub/dickey/xterm/xterm.tar.gz を入手
- "./configure --enable-wide-chars ..." を実行して設定を行ない、コンパイルおよびインストールを行なう
- Unicode 固定幅フォントをインストールする。Markus Kuhn の ucs-fonts.tar.gz(上記を参照)はこのために使えるでしょう。
- "xterm -u8 -fn fixed" を実行します。"-u8" オプションは Unicode と UTF-8 のハンドリング機能を有効にします。"fixed" で指定するフォントは Markus Kuhn の Unicode フォントです。
- Markus Kuhn の ucs-fonts パッケージに含まれるサンプルファイルを 覗いてみると、ギリシャ語やロシア語などの文字が見えるはずです。

  > `

  >     $ cd .../ucs-fonts
  >     $ cat quickbrown.txt
  >     $ cat utf-8-demo.txt

  > `

- xterm の起動時から UTF-8 をハンドリングする機能を有効にするには、 XTerm*utf8: 1 という行を $HOME/.Xdefaults に追加します(自分自身の設定だ けを変える場合)。システム全体の設定である /usr/X11R6/lib/X11/app-defaults/XTerm を変更することはお勧めしません。 XFree86 の新しいバージョンにアップグレードした際に、変更が消されてしまう からです。 (訳注：個人的には逆にアップグレードまでは大丈夫なので、 システムワイドな設定の方を好みます)
- フォントも変更するのであれば、

  > `

  >         *VT100*font:  フォント名

  > `

  のような行が $HOME/.Xdefaults に必要となります。 "fixed" の場合には指定する必要はありません。

Robert Brady <rwb197@ecs.soton.ac.uk>, による、倍のサイズのワイド文字 (CJK の表意文字など)の実装、結合(combine)をするためのパッチは http://www.ecs.soton.ac.uk/~rwb197/xterm/ です。

これは xterm パッチレベル 120 http://www.clark.net/pub/dickey/xterm/xterm-120.tgz ベースです。 次のような設定で使うのがよいでしょう。

> `

>       *VT100*font:     -Misc-Fixed-Medium-R-Normal--18-120-100-100-C-90-ISO10646-1
>       *VT100*wideFont: -Daewoo-Gothic-Medium-R-Normal--18-18-100-100-M-180-ISO10646-1

> `

## 3.5 その他

Linux のコンソールや xterm が UTF-8 モードかどうかをテストする 簡単なプログラム testUTF-8.c と testUTF8.c が、Ricardas Cepas のパッケージ ftp://sunsite.unc.edu/pub/Linux/system/keyboards/x-lt-1.18.tar.gz にあります。

次のページ 前のページ 目次へ