# 国際化 (日本語、韓国語などの使用)

xfig 3.2.X、及び fig2dev 3.2.X には国際化のためのコードが含まれており、 テキストに日本語などの文字を含めることが可能となっています。 現時点では、日本語、及び韓国語での動作が確認されています。

これについての追加の情報が http://member.nifty.ne.jp/tsato/xfig/ から入手できるかも知れません。 この国際化機能に関する質問などは、 VEF00200@nifty.ne.jp (T.Sato) へお送り下さい。 日本のユーザーは、xfig そのものに関する質問なども この宛先へ送られても結構です。

現時点では xfig の公式リリースには含まれていませんが、 ギリシャ (ISO-8859-4)、ヘブライ (ISO-8859-8)、タイ (ISO-8859-11)、 シリル (ru_RU.KOI8) なども使用できるかも知れません。 これについては、 http://member.nifty.ne.jp/tsato/xfig/ の Xfig and non-ASCII Characters を参照して下さい。

- 環境
- インストール
  - xfig のインストール
  - fig2dev のインストール
- 起動
- テキストの入力
- カスタマイズ
  - 画面への表示に用いるフォントの変更
  - PostScript 出力に用いるフォントの変更
  - リソースの指定
- 注意事項など
- 動作確認済みの環境

## 環境

国際化機能を使用するためには、以下の環境が必要です。

- X11R5、もしくは X11R6 のライブラリ、及び X サーバー
  (これらは適切に国際化されており、 かつ使用する入力メソッドとの接続が行なえるものでなければなりません。 基本的には X11R6 の使用を推奨します。)

- 適切な変換サーバー (Canna や Wnn など)、 及び入力メソッド (kinput2 や htt など)。 変換サーバーと入力メソッドは1つのプログラムとして実装されているかも知れません。

- その言語のフォント (例えば `jiskan16`)。

## インストール

### xfig のインストール

1. xfig.3.2.4x.full.tar.gz を入手し、展開します。

2. `xfig.3.2.4x/Imakefile` の、 ```#define I18N`'' のコメント・アウトを解除 (`XCOMM` を削除) します。

3. あなたのシステムの C ライブラリが必要なロケールをサポートしているならば、 その `Imakefile` の中の `I18N_DEFS` の定義から `-DSETLOCALE` を取り除きます。 C ライブラリが必要なロケールをサポートしていないならば、 `-DSETLOCALE` が指定されていることを確認します。

4. xfig を 通常の手順でコンパイルし、 インストールします。

### fig2dev のインストール

1. transfig.3.2.4x.tar.gz を入手し、展開します。

2. `transfig.3.2.4x/fig2dev/Imakefile` の、 ```#define I18N`'' のコメント・アウトを解除 (`XCOMM` を削除) します。

3. `japanese.ps` などのファイルを `/usr/local/lib/fig2dev` 以外のディレクトリにインストールしたいならば、 その `Imakefile` の中の `FIG2DEV_LIBDIR`、及び `I18N_DEV_DEFS` の指定を書き換えます。

4. transfig (fig2dev) を 通常の手順でコンパイルし、 インストールします。

## 起動

1. 環境変数 `LANG` に、 使用したい言語を示すロケール名 (`ja_JP.eucJP`、`ko_KR.eucKR` など) を設定します。

2. 必要であれば、使用すべき入力メソッドを指定するために 環境変数 `XMODIFIERS` を設定します。

3. 適切な変換サーバー (Canna や Wnn など)、 及び入力メソッド (kinput2 や htt など) が使用可能であることを確認します。

4. ```xfig -international`'' を実行します。

   `-international` オプションを指定しなかった場合には、 国際化機能が有効となっていない xfig と同様に動作します。 リソース・ファイルに ```Fig.international: true`'' のような行を追加しておけば、 `-international` オプションは不要となります。

## テキストの入力

国際化機能を有効とすると、日本語などを含んだテキスト (以下、「国際化テキスト」と呼ぶ) を TEXT 機能を用いて 入力することが可能となります。 国際化テキストを入力する際には、 TEXT FONT で、 ``Times-Roman''、もしくは ``Times-Bold'' (日本語環境においては ``Times-Roman + 明朝''、 及び ``Times-Bold + ゴシック'' と表示される) を選択しておく必要があります。

国際化テキストの入力は、 TEXT モードにおいて テキストを入力する状態となっている時に、 入力モードを切り替えるためのキーを押すことによって開始します。 どのキーを押すと入力モードが切り替えられるかは環境に依存しますが、 Shift-SPACE、Control-SPACE、Control-O、Control-\ などの いずれかとなっていることが多いものと思われます。 変換の方法なども環境に依存しますが、 通常はその環境における他のアプリケーションでの操作と共通となります。

入力のスタイルとしては Off the Spot、Over the Spot、 及び Root のいずれかを使用することができ、 どのスタイルを使用するかは `inputStyle` リソース、 もしくは `-inputStyle` オプションによって指定することができます。 例えば、`xfig -international -inputStyle OverTheSpot` とすると、 Over the Spot での入力を行なうようになります。

Off the Spot:
  変換中のテキストはキャンバスの下端に表示されます。

Over the Spot:
  変換中のテキストは実際に入力を行なう箇所に表示され、 その場で変換を行なうことができます。 ただし、最終的な表示とは異なったフォントが使用されるため、 入力中の表示はやや奇妙なものになります。 また、環境などによっては、やや不自然な挙動を示したり、 あるいはキャンバス上の表示が乱れたりする可能性もあります。

Root:
  変換中のテキストは独立したウィンドウに表示されます。

## カスタマイズ

### 画面への表示に用いるフォントの変更

デフォルトでは、画面への表示に用いるフォントの指定 (プログラムにハードコードされている) は、 おおよそどのようなシステムでも確実にフォントを見付けられるように、 かなり緩いものとしてあります:

        Fig.normalFontSet: -*-times-medium-r-normal--16-*-*-*-*-*-*-*,\
    	 -*-*-medium-r-normal--16-*-*-*-*-*-*-*,\
    	 -*-*-*-r-*--16-*-*-*-*-*-*-*
        Fig.boldFontSet: -*-times-bold-r-normal--16-*-*-*-*-*-*-*,\
    	 -*-*-bold-r-normal--16-*-*-*-*-*-*-*,\
    	 -*-*-*-r-*--16-*-*-*-*-*-*-*

しかし、このデフォルトの指定では 環境によってはあまり好ましくないフォントがロードされてしまう (好ましくない字体で表示されたり、xfig の起動に時間がかかったりする) 可能性もあります。 そのような場合には、リソース・ファイル (`app-defaults/Fig`) でフォントをより具体的に指定することによって、 指定したフォントをロードさせることが可能です:

        Fig*FontSet: -misc-fixed-medium-r-normal--14-*-*-*-*-*-*-*
        Fig.normalFontSet: -*-times-medium-r-normal--14-*-*-*-*-*-*-*,\
            -misc-fixed-medium-r-normal--14-*-*-*-*-*-*-*
        Fig.boldFontSet: -*-times-bold-r-normal--14-*-*-*-*-*-*-*,\
            -misc-fixed-medium-r-normal--14-*-*-*-*-*-*-*

また、スケーラブルなフォントが使用可能である場合 (例えば X-TrueType Server のようなスケーラブル・フォントに対応した X サーバーを使用している場合) には、次のように大きなフォントを指定することによって 文字の表示品質を改善することも可能です:

        Fig*FontSet: -*-times-medium-r-normal--16-*-*-*-*-*-*-*,\
            -foobar-mincho-medium-r-normal--16-*-*-*-*-*-*-*
        Fig.normalFontSet: -*-times-medium-r-normal--64-*-*-*-*-*-*-*,\
            -foobar-mincho-medium-r-normal--64-*-*-*-*-*-*-*
        Fig.boldFontSet: -*-times-bold-r-normal--64-*-*-*-*-*-*-*,\
            -foobar-gothic-medium-r-normal--64-*-*-*-*-*-*-*

### PostScript 出力に用いるフォントの変更

PostScript での出力に際して用いるフォントは fig2dev パッケージに含まれる `japanese.ps` などのファイルで指定されており、 このファイルを書き換えることによって他のフォントに変更することができます。

#### 日本語

デフォルトでは、Ryumin-Light、及び GothicBBB-Medium が使用可能であればそれらを、 さもなくば HeiseiMin-W3、及び HeiseiKakuGo-W5 を使用します。

ロケール名としては、`japanese`、`ja`、`ja_JP`、 `ja_JP.ujis`、`ja_JP.eucJP`、及び `ja_JP.EUC` が使用できるようにしてあります。

#### 韓国語

デフォルトでは、Munhwa-Regular、及び MunhwaGothic-Bold が使用可能であればそれらを、 さもなくば HLaTeX-Myoungjo-Regular、及び HLaTeX-Gothic-Regular を使用します。

ロケール名としては、`korean`、`ko`、`ko_KR`、 `ko_KR.eucKR`、及び `ko_KR.EUC` が使用できるようにしてあります。

#### その他の言語

日本語、及び韓国語以外の言語のための設定ファイルは用意していませんので、 使用したい言語と使用可能なフォントに応じてファイルを作成する必要があります。

ファイルは、fig2dev のインストールの際に指定したディレクトリに、 ロケール名の後に ```.ps`'' を付けた名前で作成する必要があります。 例えば、ロケール名が `zh_CN.eucCN` であるならば、 このファイル名は `zh_CN.eucCN.ps` とする必要があります。

### リソースの指定

X Window System では、アプリケーションの国際化 (地域化) の支援のため、 実行時のロケールに応じたリソース・ファイルを読み込ませることができるようになっています。 この機能を用いると、実行に際してオプションなどを指定することなく、 言語に応じて適切な設定を行なうことが可能となります。 xfig を複数の言語環境で適切に動作するようにするようにするためには、 この機能を用いて適切な設定を行なうことが必要となるかも知れません。

X11R6 のデフォルトの設定では、 `/usr/X11R6/lib/X11/locale/app-defaults/Fig` のようなリソース・ファイル (ここで、`locale` はロケール名、もしくはその「言語部分」を示す) が存在する場合、それは `/usr/X11R6/lib/X11/app-defaults/Fig` に優先して読み込まれます。 従って、例えば日本語環境用の設定を `/usr/X11R6/lib/X11/ja/app-defaults/Fig` に書いておけば、 環境変数 `LANG` が `ja_JP.eucJP` などに設定されている場合には その日本語用の設定が、それ以外の場合には `/usr/X11R6/lib/X11/app-defaults/Fig` に書かれている標準の設定が有効となります。

## 注意事項など

- 国際化テキストを入力する際には、 TEXT FONT で、 ``Times-Roman''、もしくは ``Times-Bold'' (日本語環境においては ``Times-Roman + 明朝''、 及び ``Times-Bold + ゴシック'' と表示される) を選択しておく必要があります。 これ以外のフォントが選択されている場合には、 通常の xfig と同様に Latin-1 キャラクタ が使用可能となります。

- Edit パネル上で 国際化テキストの編集を行なうことはできません。 ただし、テキストの編集は、 TEXT モードで キャンバス上で行なうことが可能です。

- `international` リソースを設定する際には ```Fig*international: true`'' ではなく、 ```Fig.international: true`'' と指定して下さい。 これは、Text ウィジェットの国際化機能を有効とすると、 xfig が正常に動作しない場合があるためです。

- 原則として、マルチ・バイト文字列のエンコーディングとしては EUC を使うようにして下さい。 このためには、ロケール名 (環境変数 `LANG`) の指定を システムに応じて変える必要があるかも知れません。 システムによっては、`japanese` では EUC 以外のエンコーディングが選択される場合もあります。

- 日本語環境において、テキストに含めることができるのは、 ASCII、及び JIS-X-0208 の文字のみです。 環境がそれをサポートしている場合には JIS-X-0201 のカナ (いわゆる半角カナ) や JIS-X-0212 (補助漢字) の文字を xfig 上で入力することができますが、 fig2dev はそれらの文字を取り扱うことはできません。

- 残念ながら、X11R5 のシステムの多くにおいては、 xfig 3.2.X の国際化機能を使用できるようにすることは難しいようです。 日本語 Solaris 2 の OpenWindows、及び Solaris CDE での動作は確認されていますが、 それ以外の X11R5 ベースのシステムでの動作については未確認です。

## 動作確認済みの環境

現時点において、以下の環境での動作が報告されています。

### 日本語

Operating System | X | Input Method
--- | --- | ---
SunOS 4.1 | X11R6 | kinput2
Solaris 2.5 | X11R6 | kinput2
Solaris 2.5-2.6 | OpenWindows, CDE | htt, ATOK
HP-UX 10.20 | X11R6 | kinput2
IRIX 6.3* | X11R6 | kinput2
FreeBSD 2.2 | XFree86 | kinput2
Slackware Linux 3.1 | XFree86 | kinput2
RedHat Linux 4.2, 5.2 | XFree86 | kinput2
Debian GNU/Linux 2.x | XFree86 | kinput2, skkinput
Linux MLD 5 | XFree86 | kinput2

> * IRIX 6.3 では、IRIX の純正の `cc` (`gcc` ではなく) を用いて、 コンパイル・オプションとして `-N32 -mips3` を指定して コンパイルする必要があるかも知れません。 また、IRIX に含まれている JPEG ライブラリを使用せずに、 JPEG ライブラリのソースを入手してコンパイルする必要があるかも知れません。

### 韓国語

Operating System | X | Input Method
--- | --- | ---
RedHat Linux 5.2, 6.0 | XFree86 | hanIM, ami

参照:
  Hangul and Internet in Korea FAQ
  Hangul and Printing

[ Contents | Introduction | Credits ]