3    Motif アプリケーションのためのアジア系言語サポート拡張機能の使用方法

CDE などの Motif 環境では,これまでの章で説明した機能をサポートしているフォント,コードセット,サーバ,およびアプリケーションを使用します。 この章では,アジア系言語を使用する際に役立つ機能の使い方について説明します。 次のトピックごとに解説します。

フォント・レンダリングについての情報や,マルチバイトの PostScript フォント,UDC フォント,および TrueType フォント用のフォント・レンダラの使用方法については,『国際化ソフトウェア・プログラミング・ガイド』を参照してください。

3.1    表意文字言語を表示するための X サーバのチューニング

アジア系言語では多数の表意文字が使用されるため,表示するすべての文字を一度にメモリにロードすることはできません。 代わりに,メモリ・キャッシュに収まる数のフォントだけがロードできます。 表示する文字がメモリにキャッシュされていない場合,表示する文字をキャッシュにロードするために,最低使用頻度のフォント・グリフがキャッシュから削除されます。 フォント・キャッシュ・メカニズムを使用することにより,システムが表意文字をサポートするのに必要なメモリ量を増加しなくても,複数の書体,フォント・サイズ,およびフォント・スタイルで表意文字のテキストを表示できます。

X サーバのフォント・キャッシュ・メカニズムにより,表示に使用する文字セットに最も合うように,キャッシュ・ユニットの数とユニット・サイズを変更できます。 一般に,アジア系言語のテキストを表示するときは,最大限のシステム性能を得るために,キャッシュ・パラメータの省略時設定を変更しなければなりません。 フォント・キャッシングの最適値を決定する際は,次の基準に従ってください。

キャッシュ・サイズ (キャッシュ・ユニットの数) と,各キャッシュ・ユニットのサイズを変更するには,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 の意味は,次のとおりです。

表意文字を表示する際は,小さなフォント (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 以外のコードセットの中国語フォントを,次のディレクトリで見つけることができます。

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    アジア系言語用の端末エミュレーション・ウィンドウのカスタマイズ

言語設定にアジア系言語が指定されているときは,次の機能と制約が,作成する端末ウィンドウに適用されます。