# フォントの統合

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

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

インタフェース標準フォント名は、すべての ロケールで使用できることが保証されています。 標準アプリケーション・フォント名のほうは、ISO Latin ロケールだけで使用できます。 詳しくは、`DtStdInterfaceFontNames`と`DtStdAppFontNames`を参照してください。

PG.fonts.mkr.2
PG.fonts.mkr.4
PG.fonts.mkr.5

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

### デフォルトのフォント名

インタフェース標準フォント名のセットは、PG.fonts.mkr.6に示されているXLFDフィールド名の値によって定義されます。

### インタフェース標準フォント名のフィールド名の値

`フィールド` | `値` | `説明`
`FOUNDRY` | `dt` | CDE名
`FAMILY_NAME` | `interface system` または`interface user` | CDEインタフェース標準フォント名
`WEIGHT_NAME` | `medium`または`bold` | フォントの線の太さ
`SLANT` | `r` | ローマン
`SET_WIDTH` | `normal` | 通常設定幅
SPACING | pまたはm |
`ADD_STYLE` | 「サイズ・ヒント」 `sans`または`serif` | xxsからxxlまでのプロポーショナルまたは固定幅の値 sansはsans serifフォント。serifはserifフォント
`PIXEL_SIZE` | プラットホーム依存 |
`POINT_SIZE` | プラットホーム依存 |
`RESOLUTION_X` | プラットホーム依存 |
`RESOLUTION_Y` | プラットホーム依存 |
`AVERAGE_WIDTH` | `m` p | ユーザ・フォントに対する固定幅 システム・フォントに対するプロポーショナル
`NUMERIC FIELD` | プラットホーム依存 |
`CHAR_SET_REGI STRY` | ロケール依存 |
`ENCODING` | ロケール依存 |

### インタフェース標準フォントのポイント・サイズ

３つのスタイルそれぞれに対する７種類のポイント・サイズ名は `ADD_STYLE_NAME`フィールドに指定します。 名前と一致するフォントのXLFDパターンは、数値としてのサイズではなく、サイズ名に一致します。 インタフェース・フォントの正確なサイズがサイズ名より重要ではないことと、各システムで使用されるインタフェース・フォントの実装上の相違から、各システム間の共通値としてのポイント・サイズを保証できないことから、これらのサイズ名は使用されます。

７種類のサイズ名を次に示します。

    xxs  extra extra small
    xs  extra small
    s  small
    m  medium
    l  large
    xl  extra large
    xxl  extra extra large

サイズ名の目的は、CDEを実行するいろいろなサイズや解明度のモニタに表示するのに十分なフォントを用意することと、ユーザにとって読みやすいボタン・ラベルやウィンドウ・タイトルの範囲をGUIで実現することです。 最小サイズxxsと最大サイズxxlは、一般的なディスプレイX端末上で、CDEデスクトップの表示と操作を行うために適当なサイズを意図したものです。これらは、判読が難しいほど精緻な印刷物やヘッドライン・サイズ型のディスプレイまで、考慮した ものではありません。

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

このような値を使用すると、XLFDパターンの

    -dt-interface*-*

は、論理的にXCDEインタフェース標準フォント名のセットのすべてと一致します。(どの特定のXサーバ動作も意味しないことに注意してください。)

たとえば、Westernロケールでは、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

７種類のシステム・フォント・サイズに対する`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 ロケールに対する インタフェース標準名のすべてに一致するはずです。 詳しくは、`DtStdInterfaceFontNames(5)`を参照してください。

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

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

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

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

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

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

### デフォルトのフォント名

デフォルトの標準アプリケーション・フォント名のセットは、 PG.fonts.mkr.3に示されているXLFD フィールド名の値によって定義されます。

### 標準アプリケーション・フォント名に対するフィールド名の値

`フィールド` | `値` | `説明`
`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とsan sserifの両方)に一致します。

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

また、次のパターンは、固定幅フォントに一致します（serifまたはsan 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のデフォルトの、マッピングを構成するビットマップ・フォントの標準サイズ(８、１０、１２、１４、１８、２４)に対応します。

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

    -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かsan serifのどちらかになります。

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

一つの`app-defaults`ファイルを作成してアプリケーションのフォント・リソースを指定し、それをすべてのCDEプラットホームで使用することができます。 定義される標準名の部分はどのベンダのプラットホームでも同じなので、`app-defaults`ファイルの中のリソース指定でこれらの値を指定することができます。ただし、その他のフィールド(`PIXEL_SIZE`、`RESOLUTION_X`、`RESOLUTION_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`は、見出しとハイパーテキスト・リンクのために２つのフォント・リソースを定義すると仮定します。 `appTwo`は、１４ポイントのボールドのserifフォント (Lucidabright bold)と１２ポイントのボールドかつイタリックのsan 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フォントに必ず一致するようにできます。

詳細については、Common Desktop Environment Programmer's Referenceと`DtStdAppFontNames(5)`を参照してください。