mp.conf ファイルの関係付けセクションでは、各フォントと共有オブジェクトを関係付けます。共有オブジェクトとは、中間コードポイントと、フォントエンコーディングを対応付けるものです。行の形式は次のとおりです。
CnvCode2Font
フォントに対して定義されている別名
中間コードポイントを受け取り、フォントエンコーディングでのグリフインデックスを取得し、そのグリフを描くために使用されます。
対応付けの関数が格納されている .so ファイル。dumpcs 内のユーティリティを使用すれば、EUC ロケールの中間コードセットを知ることができます。
mp (1) で使用される現在の TrueType エンジンでは、書式 4 と PlatformID 3 の cmap しか処理できません。つまり、構成できるのは Microsoft .ttf ファイルだけです。さらに、TrueType フォントエンジンが正しく機能するためには、文字マップエンコーディングが Unicode か Symbol でなければなりません。Solaris 環境ではほとんどの .ttf フォントがこれらの制約に従っていますので、Solaris ソフトウェアでは mp.conf ファイル内のすべての TrueType フォントを対応付けることができます。
PCF type1 X Logical Fonts Description (XLFD) に対応するフォントを対応付けるための共有オブジェクトを作成する場合は、中間コード範囲と、XLFD で指定されたエンコーディングを対応付ける共有オブジェクトを作成します。 たとえば、次のようにします。
-monotype-arial-bold-r-normal-bitmap-10-100-75-75-p-54-iso8859-8
対応する PCF フォントは次のとおりです。
/usr/openwin/lib/locale/iso_8859_8/X11/fonts/75dpi/ariabd10.pcf.Z
このフォントは isoISO 8859-8 でエンコードされているため、共有オブジェクトでは、中間コードと、対応する ISO 8859-8 コードポイントを対応付ける必要があります。
次の XLFD をもつ TrueType フォントが
-monotype-arial-medium-r-normal--0-0-0-0-p-0-iso8859-8
次のフォントに対応しているとします。
/usr/openwin/lib/locale/iso_8859_8/X11/fonts/TrueType/arial__h.ttf
この場合は、前の TrueType フォントの cmap エンコーディングが Unicode であるため、中間コードと Unicode を対応付ける必要があります。この TrueType フォントの例では、 en_US.UTF-8 ロケールの中間コードが 0xe50000e9 であるとします。このコードはヘブライ語文字 (PLS レイヤによって生成された) に対応しています。このフォントは Unicode でエンコードされているため、0xe50000e9 が渡されたときにその出力が Unicode の表現形式に対応するように、対応する .so モジュール内の機能を設計する必要があります。この例では 0x000005d9 になります。
対応付け機能の機能プロトタイプは次のようになります。
unsigned int function(unsigned int inter_code_pt)
mp.conf: には、オプションで次のキーワード/値ペアを指定できます。
PresentationForm WC/PLSOutput
デフォルト値は PLSOutput です。WC を指定すると、中間コードポイントとしてワイド文字が生成されます。CTL 印刷では、このデフォルト値を使用してください。
ロケールが CTL 以外のロケールで、キーワードの値が PLSOutput であると、mp(1) はこの値を無視し、ワイド文字コードを生成します。
ロケールが CTL をサポートしている場合は、次の表に示すキーワード/値ペアをオプションで指定できます。これらの変数には、表の中間の列に示す値をどれでも指定できます。
表 7–1 キーワード/値ペア (オプション)
キーワード (オプション) |
値 (オプション) |
デフォルト |
---|---|---|
Orientation |
ORIENTATION_LTR/ ORIENTATION_RTL/ ORIENTATION_CONTEXTUAL |
ORIENTATION_LTR |
Numerals |
NUMERALS_NOMINAL/ NUMERALS_NATIONAL/ NUMERALS_CONTEXTUAL |
NUMERALS_NOMINAL |
TextShaping |
TEXT_SHAPED/ TEXT_NOMINAL/ TEXT_SHFORM1/ TEXT_SHFORM2/ TEXT_SHFORM3/ TEXT_SHFORM4 |
TEXT_SHAPED |