国際化対応言語環境の利用ガイド

mp.conf 構成ファイルを使用した地域対応

構成ファイルを使用することによって、フォントエントリまたはフォントグループエントリの追加や変更を柔軟に行うことができます。

システムのデフォルト構成ファイルは、/usr/lib/lp/locale/$LANG/mp/mp.conf です。$LANG は、印刷が行われるロケールのロケール環境変数です。ユーザーは、-u config.file path オプションを指定することによって独自の構成ファイルを指定できます。

互換性のために 1 文字としてエンコードされた合字または変形グリフを表示書式と呼びます。mp.conf ファイルは、主に、あるロケールの中間コードポイントを、そのコードポイントの印刷に使用されるフォントのエンコーディングでの表示書式に対応付けるために使用されます。

中間コードポイントは、ワイド文字か、PLS (Portable Layout Services) レイヤの出力です。ただし、CTL (Complex Text Layout) 印刷では、中間コードポイントは PLS の出力でなければなりません。mp が生成するデフォルトの中間コードポイントは PLS 出力です。

サポートされているフォント形式は PCF (Portable Compiled Format)、TrueType、Type1 です。システム常駐とプリンタ常駐の両方の Type1 フォントがサポートされます。mp.conf 構成ファイルの形式と内容については、次の点に注意してください。

次の項目はそれぞれ mp.conf ファイルの別々のセクションに定義されます。

フォント別名の定義

mp.conf ファイルのフォント別名定義セクションには、印刷に使用する各フォントの別名を定義します。各行の形式は次のとおりです。

FontNameAlias font-alias-name font-type font-path 			
font-alias-name

フォントの別名には、通常、フォントのエンコーディング/スクリプト名と、フォントが Roman、Bold、Italic、BoldItalic (R、B、I、BI) のどれであるかを示す文字を指定します。

たとえば、フォントが iso88591 Roman なら、/usr/openwin/lib/X11/fonts/75dpi/courR18.pcf.Z に別名として iso88591R を割り当てます。

font-type

.pcf フォントには PCF、Adobe Type1 フォントには Type1、TrueType フォントには TrueType が使用可能です。mp.conf ファイルに設定できるフォントはこの 3 種類だけです。

font-path

フォントファイルの絶対パス名。Type1 のプリンタ常駐フォントの場合は、Helvetica など、フォント名だけを指定します。

定義例は次のとおりです。

FontNameAlias   prnHelveticaR   Type1   Helvetica

フォントグループの定義

同じタイプのフォントをフォントグループとして定義することができます。フォントグループの形式は次のとおりです。

keyword

FontGroup

fontgroupname

フォント群のグループ名

GroupType

フォントタイプ。同じタイプのフォント (PCF、Type1、TrueType) からなるフォントグループを作成します。

Roman

フォントグループで使用する Roman フォントの名前

Bold

フォントグループで使用する Bold フォントの名前

Italic

フォントグループで使用する Italic フォントの名前

BoldItalic

フォントグループで使用する BoldItalic フォントの名前

グループの作成では Roman フォントのエントリだけが必須で、Bold、Italic、BoldItalic フォントの指定は任意です。メールやニュースでは、ヘッダーラインの表示に異なるタイプのフォントが使用されることがあります。Roman フォントだけを定義している場合、他のフォントの代わりに Roman フォントが使用されます。

対応付けセクション

mp.conf ファイルの対応付けセクションには、中間コードの範囲とロケールのフォントグループの対応付けを定義します。行の形式は次のとおりです。

keyword

MapCode2Font

range_start

0x で始まる 4 バイトの 16 進数値。1 つまたは複数のフォントグループに対応付けるコード範囲の始めを表します。

range_end

対応付けるコード範囲の終わりを表します。この値が「-」の場合は、1 つのコードポイント範囲だけがターゲットフォントに対応付けられます。

group

Type1、PCF、または TrueType フォントグループ。印刷書式に使用されます。

関連付けセクション

mp.conf ファイルの関係付けセクションでは、各フォントと共有オブジェクトを関係付けます。共有オブジェクトとは、中間コードポイントと、フォントエンコーディングを対応付けるものです。行の形式は次のとおりです。

keyword

CnvCode2Font

font alias name

フォントに対して定義されている別名

mapping function

中間コードポイントを受け取り、フォントエンコーディングでのグリフインデックスを取得し、そのグリフを描くために使用される

file path having mapping function

対応付けの関数が格納されている .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

このフォントは ISO 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 はこの値を無視し、ワイド文字コードを生成します。

ロケールが 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