CDE などの Motif 環境では,これまでの章で説明した機能をサポートしているフォント,コードセット,サーバ,およびアプリケーションを使用します。 この章では,アジア系言語を使用する際に役立つ機能の使い方について説明します。 次のトピックごとに解説します。
表意文字言語を表示するための,X ディスプレイ・サーバのキャッシュとユニット・サイズのチューニング (3.1 節)
ローカル言語を表示するためのフォントの設定 (3.2 節)
ローカル言語に合わせてアプリケーション・ウィンドウをカスタマイズする方法 (3.3 節)
フォント・レンダリングについての情報や,マルチバイトの PostScript フォント,UDC フォント,および TrueType フォント用のフォント・レンダラの使用方法については,『国際化ソフトウェア・プログラミング・ガイド』を参照してください。
3.1 表意文字言語を表示するための X サーバのチューニング
アジア系言語では多数の表意文字が使用されるため,表示するすべての文字を一度にメモリにロードすることはできません。 代わりに,メモリ・キャッシュに収まる数のフォントだけがロードできます。 表示する文字がメモリにキャッシュされていない場合,表示する文字をキャッシュにロードするために,最低使用頻度のフォント・グリフがキャッシュから削除されます。 フォント・キャッシュ・メカニズムを使用することにより,システムが表意文字をサポートするのに必要なメモリ量を増加しなくても,複数の書体,フォント・サイズ,およびフォント・スタイルで表意文字のテキストを表示できます。
X サーバのフォント・キャッシュ・メカニズムにより,表示に使用する文字セットに最も合うように,キャッシュ・ユニットの数とユニット・サイズを変更できます。 一般に,アジア系言語のテキストを表示するときは,最大限のシステム性能を得るために,キャッシュ・パラメータの省略時設定を変更しなければなりません。 フォント・キャッシングの最適値を決定する際は,次の基準に従ってください。
X サーバで表示する表意文字言語の数
同一 CDE セッションで複数の表意文字言語を使用する場合,通常の性能を得るには,より大きな値を設定する必要があります。
同時に使用するフォントの数
使用するフォントの数とサイズは,実行するアプリケーションの種類によって変わります。 一般に,デスクトップ・パブリッシング・アプリケーションでは,他のタイプのアプリケーションよりも多くのフォントを必要とします。 ソフトウェア開発ツールが必要とするフォントは,他のタイプのアプリケーションよりも少数です。
表示したい言語で頻繁に使用される文字の数
アジア系言語では,頻繁に使用されるのは一部の文字だけです。 このサブセットのサイズは言語によって異なります。 たとえば,台湾では約 20,000 の標準文字がサポートされていますが,頻繁に使用されるのはそのうちの 5,000 文字だけです。 他のアジア系言語で頻繁に使用される文字の概算は,中国語では約 3,000 文字,韓国語と日本語では約 2,000 文字です。 フォント・キャッシュ・パラメータは,頻繁に使用される文字のサブセットに合わせてチューニングします。
キャッシュ・サイズ (キャッシュ・ユニットの数) と,各キャッシュ・ユニットのサイズを変更するには,X サーバの構成ファイル
/usr/lib/X11/xdm/Xservers
を変更する必要があります。
このファイルには,X サーバを起動するための,次のような行が含まれています。
:0 local /usr/bin/X11/X
この行を変更して,キャッシュ・サイズとユニット・サイズの設定を追加します。 次に例を示します。
:0 local /usr/bin/X11/X -cs
cache_size
-cu
unit_size
表 3-1
に,フォント・キャッシュ・メカニズムのチューニングに使用するオプションを示します。
表 3-1: フォント・キャッシュ・メカニズムをチューニングするための X サーバ・オプション
stty オプション | 説明 |
-cs
cache_size |
キャッシュ・ユニットの数を設定します。 このパラメータの最小値 (省略値) は 1024 です。 1024 より小さいキャッシュ・サイズを指定した場合,フォント・キャッシングは無効になります。 1 つの表意文字言語に対する推奨値は,その言語で頻繁に使用される文字をすべて収納できる,1024 の最小倍数です。 ワークステーションで複数の表意文字言語を同時に表示するときは,最小のキャッシュ・サイズにするために,各言語に必要な値を合計しなければなりません。 表意文字ごとに複数のフォント・スタイルとサイズを必要とする,デスクトップ・パブリッシング・ソフトウェアなどのアプリケーションを実行する場合は,それよりもさらに大きな値を指定します。 |
-cu
unit_size |
各キャッシュ・ユニットのサイズを設定します。 ユニット・サイズの最小値は 31 バイトで,省略値は 128 バイトです。 31 バイトよりも小さな値を指定しても効果はありません。 特定のフォントが 128 バイトよりも多くのメモリ・スペースを必要とする場合,フォント・キャッシュ・メカニズムは,そのグリフを格納するために 1 つまたは複数のユニットを自動的に割り当てます。 |
注意
フォント・キャッシングは,
pcf
フォーマットの未圧縮のフォントにのみ適用されます。 フォント・キャッシングは,圧縮されたフォントや,bdf
フォーマットのフォントには適用されません。 フォント・キャッシングは圧縮されたフォントには使用できないため,アジア系言語用の 2 バイト・フォントは,圧縮形式ではインストールできません。
unit_size = ((floor(ceil((double)WIDTH / 8.0) /4.0)) + 1.0) * 4.0 * (double)HEIGHT
以下に,典型的な 24 ドット x 24 ドットのフォント・サイズの計算式を示します。
unit_size in bytes = ((floor(ceil((double) 24 / 8.0 / 4.0)) + 1.0) * 4.0 * (double) 24 = 96
34x34 のフォントでは,ユニット・サイズは 272 バイトになります。
24x24 のフォント・グリフのキャッシングには 96 バイトが必要であり,34x34 のフォント・グリフのキャッシングには 272 バイトが必要なため,省略時のユニット・サイズ 128 の意味は,次のとおりです。
24x24 のフォントでは,個々の文字はキャッシュ・ユニットを 1 つしか必要としない。 キャッシュ・サイズが 4096 に設定されている場合,このキャッシュは 4096 文字を収納できます。
34x34 のフォントでは,個々の文字はキャッシュ・ユニットを 3 つ必要とする。 キャッシュ・サイズが 4096 に設定されている場合,このキャッシュは 1365 文字を収納できます。
表意文字を表示する際は,小さなフォント (1 文字が 128 バイトのユニットを 1 つだけ必要とする) が使用されます。
そのため通常は,表意文字を含む言語のテキスト表示の性能を向上したいときは,キャッシュ・サイズを変更するだけで対応できます。
3.2 ローカル言語を表示するためのフォント設定
言語バリアント・サブセットをインストールしたシステムでは, サポート言語でテキストを表示するのに必要なフォントが自動的にアップデートされます。
CDE では,アプリケーションは,フォント・エイリアス・メカニズムを使用してローカル言語フォントにアクセスします。
アプリケーションがどのフォントを使うかは,/usr/dt/config/xfonts/locale-name/
にインストールされているファイルよりも
/usr/dt/config/xfonts/i18n/{75,100}dpi/fonts.alias
ファイルの方が重要になります。
これにより,一貫したセッション言語をサポートするとともに,セッション言語とは異なる言語で個々のアプリケーションを起動する機能を提供します,
X アプリケーションや Motif アプリケーションでは,中国語 (非英語) の文字を表示するために非 ASCII フォントを必要とします。 このため,中国語の文字を表示するアプリケーションを起動する前に,適切なフォント・パスを設定しなければなりません。 アプリケーションは,GBK や GB18030 以外のコードセットの中国語フォントを,次のディレクトリで見つけることができます。
/usr/i18n/lib/X11/fonts/decwin/75dpi
/usr/i18n/lib/X11/fonts/decwin/100dpi
GBK および GB18030 の中国語フォントは,/usr/i18n/lib/X11/fonts/SChineseTT
(TrueType フォント用) にインストールされています。
CDE アプリケーションでは,適切なフォントがシステム上にインストールされているか,フォント・サーバを介して利用できます。
このため,適切なフォントが見つかるか確認するために手動でコマンドを入力する必要はありません。
xset
コマンドを使って,フォント・パスをチェックしたり,適切なフォントをパスに追加することができます
(
xset
(1X)3.2.1 リモート・ディスプレイ用のローカル言語フォントへのアクセス
アジア系言語のサブセットがインストールされているシステムがクライアント/サーバ表示環境のクライアントとして機能する場合は,ウィンドウを管理するサーバ・システムでローカル言語のフォントが利用できなければなりません。
他のサーバ・システムでローカル言語のフォントを利用できるようにするには,次の手順のいずれかを実行しなければなりません。
言語バリアントのサブセットがインストールされているシステムへのリモート・ログインに使う各システム上に,他のロケール用のフォントをインストールします。
フォント・サーバを介して,他のシステムでフォントを利用できるようにします。
/usr/bin/X11/
コマンドを使って,システム上に現在インストールされているフォントを調べることができます。
xlsfonts
フォントに関する表が,付録 Aに記載されています。
この表では,フォント・セットごとに,言語,タイプフェース・コード,スタイル,サイズ,サポートしている解像度 (75 dots-per-inch または 100 dots-per-inch) を示しています。
3.3 アジア系言語用の端末エミュレーション・ウィンドウのカスタマイズ
言語設定にアジア系言語が指定されているときは,次の機能と制約が,作成する端末ウィンドウに適用されます。
言語設定に応じて,端末ウィンドウをカスタマイズするためのメニュー項目,プッシュ・ボタン,切り替えスイッチ,テキスト入力フィールドなどが表示される。
CDE 個人アプリケーション・メニューから端末を呼び出した場合,端末エミュレーションは,常に選択された言語に従う。
LANG
や
LC_ALL
環境変数が他の言語のロケールに設定されている端末ウィンドウから新しい端末ウィンドウを呼び出した場合,新しいウィンドウの言語は変更されます。
親ウィンドウでロケールを設定しても,親ウィンドウの言語は変更できません。
親ウィンドウから呼び出された子ウィンドウの言語だけが変更されます。
入力サーバがサポートしている言語を使用するときは,入力サーバが,その言語で文字を入力する端末ウィンドウに接続されていることを確認する。 入力サーバが接続されていないときは,文字入力に入力システムを使用することはできません。 端末ウィンドウと入力サーバ間の接続は,次のいずれかの場合には存在しません。
入力サーバが起動される前に,端末ウィンドウが起動されている場合
CDE セッションの始めにセッションで使用する言語を選択すると,入力サーバが自動的に起動します。 たとえば,セッションで使用する言語に中国語を選択すると,中国語の入力サーバが自動的に端末ウィンドウにアタッチされます。 ただし,セッションでの言語を設定した後で,韓国語で操作を行うウィンドウを作成したいときは,新しい端末ウィンドウを呼び出す前に,韓国語用の入力サーバを起動しておく必要があります (あらかじめ,韓国語のロケールが設定されていなければなりません)。
入力サーバが何らかの理由で終了している場合
端末ウィンドウと入力サーバ間の接続が切断されているときは,入力サーバを起動して,入力システムを使用するための別の端末ウィンドウを呼び出せます。