Solaris 共通デスクトップ環境 プログラマーズ・ガイド

第 2 章 フォントの統合

アプリケーションは、X 端末で、またはネットワークを介してリモート・ワークステーションで使用できます。このような状況では、ユーザの X ディスプレイを X Window System のサーバから使用できるフォントは、アプリケーションのデフォルトとは異なることもあり、使用できないフォントもあります。

共通デスクトップ環境 (CDE) によって定義された標準フォント名は、すべての CDE 準拠システムで使えるように保証されています。これらの名前は、実際のフォントを表すわけではありません。その代わりに、各システム・ベンダが、使用できるフォントの中で最も適したフォントにマップする別名です。アプリケーションの中でこれらのフォント名だけを使用する場合には、CDE 準拠システムで最もよく適合したフォントを使用できます。

標準アプリケーションフォント名が ISO Latin 言語環境でしか利用できないのに対して、これらの標準インタフェースフォント名はすべての言語環境で利用できることを保証されています。 詳細については、マニュアルページ、DtStdInterfaceFontNamesDtStdAppFontNames を参照してください。

標準インタフェースフォント

デフォルトのフォント名

標準的なインタフェースフォント名のセットは、表 2-2で説明する XLFD フィールド名の値によって定義されます。

表 2-1 標準インタフェースフォント名のフィールド名の値

フィールド 

値 

説明 

FOUNDRY

dt

CDE 名 

FAMILY_NAME

interface system あるいは interface user

CDE 標準インタフェースフォント名 

WEIGHT_NAME

medium あるいは bold

フォントの太さ 

SLANT

r

Roman 

SET_WIDTH

normal

標準の太さ 

SPACING 

p あるいは m 

 

ADD_STYLE

size hint 

sans あるいは serif

xxs から xxl までのプロポーショナルまたはモノスペースの値 

sans serif フォントに sans、または serif フォントに serif 

PIXEL_SIZE

プラットフォーム依存 

 

POINT_SIZE

プラットフォーム依存 

 

RESOLUTION_X

プラットフォーム依存 

 

RESOLUTION_Y

プラットフォーム依存 

 

AVERAGE_WIDTH

m

ユーザフォントのモノスペースフォント 

システムフォントのプロポーショナルフォント 

NUMERIC FIELD

*

プラットフォーム依存 

CHAR_SET_REGISTRY

iso8859-1

規格作成組織 

ENCODING

1

文字セット番号 

標準インタフェースフォントのポイント数

3 つのスタイルそれぞれの 7 つの名前付きポイント数が ADD_STYLE_NAME フィールドに付加されます。 XLFD フォントのパターンは、数値の大きさではなく、名前付きサイズに一致します。これらの名前付きサイズが使われるのは、インタフェースフォントについては、その正確なサイズよりも名目上のフォントサイズが優先されるためです。また、個別に調整されたインタフェースフォントに起因する実装の差異によって、異なるシステム間に共通するポイント数を設定できないためです。

7 つのサイズ名は次の通りです。

xxs  

extra extra small 

xs  

extra small 

s  

small 

m  

medium 

l  

large 

xl  

extra large 

xxl  

extra extra large 

名前付けされたサイズを用いるのは、CDE が実行されるさまざまなモニタサイズと解像度に対応するだけの、十分なフォント数を提供するためです。また、ボタンラベル、ウィンドウ名などのさまざまなユーザー設定に GUI を適合させるためです。ただし、最も小さい xxl と最も大きい xxs は、一般的なディスプレイや X 端末を利用して CDE デスクトップで表示するのに最適なものとして用意されているもので、精度の低い印刷や見出しサイズのディスプレイには適しません。

標準インタフェースフォント名のパターン

XLFD パターンは、

-dt-interface*-*

これらの値によって、XCDE 標準インタフェースフォント名のフルセットに論理的に適合します(特定のXサーバーの動作が暗黙に定義されるわけではないことに注意してください)。

例えば、西欧語のロケールでは、21の CDE 標準インタフェースフォント名が表示されます。

-dt-interface system-medium-r-normal-*-*-*-*-*-*-*-iso8859-1
-dt-interface user-medium-r-normal-*-*-*-*-*-m-*-iso8859-1
-dt-interface user-bold-r-normal-*-*-*-*-*-m-*-iso8859-1

7 つのシステムフォントサイズすべてについての、app-defaults ファイル内のパターンのフルセットは次のとおりです。

-dt-interface system-medium-r-normal-xxs*-*-*-*-*-*-*-iso8859-1
-dt-interface system-medium-r-normal-xs*-*-*-*-*-*-*-iso8859-1
-dt-interface system-medium-r-normal-s*-*-*-*-*-*-*-iso8859-1
-dt-interface system-medium-r-normal-m*-*-*-*-*-*-*-iso8859-1
-dt-interface system-medium-r-normal-l*-*-*-*-*-*-*-iso8859-1
-dt-interface system-medium-r-normal-xl*-*-*-*-*-*-*-iso8859-1
-dt-interface system-medium-r-normal-xxl*-*-*-*-*-*-*-iso8859-1

これらのパターンはリソースファイルで使用することができ、すべての CDE 対応のシステム上の iso Latin-1 ロケール用の CDE 標準インタフェース名と一致します。詳細については、DtStdInterfaceFontNames(5) マニュアルページを参照してください。

CDE 構成ファイルでのフォントの使用

CDE は、すべてのプラットフォーム上の CDE で動作するアプリケーションで使用できる一般的な標準アプリケーション・フォント名のセットを、いくつかのサイズにおいて指定します。各 CDE ベンダは、標準フォント名のセットを使用可能なフォントにマップします。既存のフォントへのフォント名のマッピングは、ベンダによって異なります。

app-defaults ファイルの中で標準アプリケーション・フォント名を使用すると、すべての CDE プラットフォームで単一の app-defaults ファイルを使用できます。標準フォント名を使用しない場合には、各 CDE プラットフォーム上の各アプリケーションごとに別の app-defaults ファイルをそれぞれ提供しなければなりません。

すべての CDE システムは、13 の標準アプリケーション・フォント名のセットを、少なくとも 6 サイズで提供します。これは、12 の一般的なデザインと変形スタイル (serif および sans serif)、および記号フォントを表します。これらの標準名に加えて、特定の CDE プラットフォームに対応して標準名がマップされるフォント名が提供されます。また、追加の 4 つの標準フォント名 (固定幅フォント内に serif と sans serif の両方のデザインを可能にします) が CDE プラットフォーム・ベンダによって提供されることもあります。

これら 13 のフォント名は、ISO 8859-1 の文字セットを使用するロケールのために、CDE プラットフォームの中に用意されています。他のロケールでの標準フォント名の使用方法については、『Solaris 共通デスクトップ環境 プログラマーズ・ガイド(国際化対応編)』を参照してください。

標準アプリケーションフォント

デフォルトのフォント名

フォント名のセットは、表 2-2 に示されている XLFD フィールド名の値によって定義されます。

表 2-2 フォント名のフィールド名の値

フィールド 

値 

説明 

FOUNDRY

dt

CDE 名 

FAMILY_NAME

application

CDE 標準アプリケーション・フォント名 

WEIGHT_NAME

mediumまたはbold

フォントの線の太さ 

SLANT

r

i

ローマン 

イタリック 

SET_WIDTH

normal

通常設定幅 

ADD_STYLE

sans または

serif

sans serif フォントまたは 

serif フォント 

PIXEL_SIZE

*

プラットフォーム依存 

POINT_SIZE

pointsize

要求されたフォントのポイント・サイズ 

RESOLUTION_X

*

プラットフォーム依存 

RESOLUTION_Y

*

プラットフォーム依存 

AVERAGE_WIDTH

p

m

プロポーショナル (システムフォント) 

固定幅 (ユーザフォント) 

NUMERIC FIELD

*

プラットフォーム依存 

CHAR_SET_REGISTRY

iso8859-1

規格作成組織 

ENCODING

1

文字セット番号 

標準名は、X Windows XLFD フォント命名スキーマに従って使用できます。プラットフォーム依存フィールドに対して適切なワイルドカードで正しく指定すれば、CDE フォント名は、有効な、対応するプラットフォーム依存フォントを確実に開きます。ただし、Xlib の XListFont() 関数の呼び出しから返される XLFD 名は、すべての CDE プラットフォーム上で同じであるとは限りません。

このような値を使うと、次の XLFD パターンは、特定のプラットフォーム上の CDE 標準 アプリケーション・フォント名のセットのすべてと一致します。

-dt-application-*

次のパターンは、CDE のボールドのプロポーショナルスペース・フォント (serif と sans serif の両方) に一致します。

-dt-application-bold-*-*-*-*-*-*-*-p-*-*-*-

また、次のパターンは、固定幅フォントに一致します (serif または sans serif、あるいは両方)。

-dt-application-*-*-*-*-*-*-*-*-m-*-*-*-

CDE 標準アプリケーション・フォント名のセットのすべては、次のように表すことができます。

-dt-application-bold-i-normal-serif-*-*-*-*-p-*-iso8859-1
-dt-application-bold-r-normal-serif-*-*-*-*-p-*-iso8859-1
-dt-application-medium-i-normal-serif-*-*-*-*-p-*-iso8859-1
-dt-application-medium-r-normal-serif-*-*-*-*-p-*-iso8859-1
-dt-application-bold-i-normal-sans-*-*-*-*-p-*-iso8859-1
-dt-application-bold-r-normal-sans-*-*-*-*-p-*-iso8859-1
-dt-application-medium-i-normal-sans-*-*-*-*-p-*-iso8859-1
-dt-application-medium-r-normal-sans-*-*-*-*-p-*-iso8859-1
-dt-application-bold-i-normal-*-*-*-*-*-m-*-iso8859-1
-dt-application-bold-r-normal-*-*-*-*-*-m-*-iso8859-1
-dt-application-medium-i-normal-*-*-*-*-*-m-*-iso8859-1
-dt-application-medium-r-normal-*-*-*-*-*-m-*-iso8859-1
-dt-application-medium-r-normal-*-*-*-*-*-p-*-dtsymbol-1

ポイント・サイズ

それぞれの標準アプリケーション・フォント名で使用できるポイント・サイズの完全なセットは、ベンダの CDE プラットフォームで出荷されるフォントのセットによって決まります (ビットマップ・フォントのみか、ビットマップ・フォントとスケーラブル・アウトライン・フォントの両方)。すべての CDE プラットフォーム上で使用できる必要最小限のサイズのセットは、X11R5 のデフォルトのマッピングを構成するビットマップ・フォントの標準サイズ (8、10、12、14、18、または 24) に対応します。

たとえば、単純な固定幅フォントの 6 サイズの全セットを次のパターンによって表すことができます。

-dt-application-medium-r-normal-*-80-*-*-*-m-*-iso8859-1
-dt-application-medium-r-normal-*-100-*-*-*-m-*-iso8859-1
-dt-application-medium-r-normal-*-120-*-*-*-m-*-iso8859-1
-dt-application-medium-r-normal-*-140-*-*-*-m-*-iso8859-1
-dt-application-medium-r-normal-*-180-*-*-*-m-*-iso8859-1
-dt-application-medium-r-normal-*-240-*-*-*-m-*-iso8859-1

これらのパターンは、CDE プラットフォーム上の対応する標準フォント名に一致しますが、POINTSIZE 以外の数値フィールドはプラットフォームによって異なる場合があります。また、ベンダが標準名のセットを実装する方法によって、一致するフォントは serif か sans serif のどちらかになります。

app-defaults ファイル内の標準アプリケーション・フォント名

一つの app-defaults ファイルを作成してアプリケーションのフォント・リソースを指定し、それをすべての CDE プラットフォームで使用できます。定義される標準名の部分は、どのベンダのプラットフォームでも同じなので、app-defaults ファイルの中のリソース指定でこれらの値を指定できます。ただし、その他のフィールド (PIXEL_SIZERESOLUTION_XRESOLUTION_Y、および AVERAGE_WIDTH) はプラットフォームによって異なることがあるので、ワイルドカードを使用しなければなりません。たとえば、appOne という名前のアプリケーションが必要とするデフォルトのリソースを指定するには、次のようにします。

appOne*headFont:
-dt-application-bold-r-normal-sans-*-140-*-*-p-*-iso8859-1 

appOne*linkFont:
-dt-application-bold-i-normal-sans-*-100-*-*-p-*-iso8859-1

もう一つの例として、あるベンダのプラットフォーム上で動作する appTwo は、見出しとハイパーテキスト・リンクのために 2 つのフォント・リソースを定義すると仮定します。appTwo は、14 ポイントのボールドの serif フォント (Lucidabright bold) と 12 ポイントのボールドかつイタリックの sans serif フォント (Lucida bold-italic) を使用します。その場合、app-defaultsファイル内のフォント定義を、

apptwo *headingFont:
-b&h-lucidabright-bold-r-normal--20-140-100-100-p-127-iso8859-1 

apptwo *linkFont:   
-b&h-lucida-bold-i-normal-sans-17-120-100-100-p-96-iso8859-1

から

apptwo *headingFont: 
-dt-application-bold-r-normal-serif-*-140-*-*-p-*-iso8859-1

apptwo *linkFont:   
-dt-application-bold-i-normal-sans-*-120-*-*-p-*-iso8859-1

に変更します。他の CDE プラットフォーム上のフォント名がわからなくても、CDE 標準アプリケーション・フォント名で指定されたプラットフォームに独立したパターンは、各プラットフォーム上の適切なフォントを示します。

リソース定義の中で、*ワイルドカードを使用して示した例のように作成します。ポイント・サイズ以外の数値フィールドにワイルドカードを適用することによって、フォントの正確なピクセル・サイズまたは平均の幅が多少違っても、リソースがすべてのプラットフォーム上の CDE フォントに必ず一致するようにできます。

詳細は、DtStdAppFontNames(5) マニュアルページを参照してください。