次の例は、新しい PCF、TrueType、または Type1 のプリンタ常駐フォントを構成ファイルに追加するときの手順を示しています。
0x00000021 から 0x0000007f の範囲にある文字を表示するためのフォントを現在の PCF フォントから TrueType フォントに変更します。
新しいフォントを追加する前に、現在設定されているフォントに対応する、構成ファイルのさまざまなコンポーネントを次に示します。
FontNameAlias iso88591R PCF /usr/openwin/lib/X11/fonts/75dpi/courR18PCF.Z FontNameAlias iso88591B PCF /usr/openwin/lib/X11/fonts/75dpi/courB18PCF.Z . . . FontGroup iso88591 PCF iso88591R iso88591B . . . MapCode2Font 0x00000020 0x0000007f iso88591 . . . CnvCode2Font iso88591R _xuiso88591 /usr/lib/lp/locale/$LANG/mp/xuiso88591.so CnvCode2Font iso88591B _xuiso88591 /usr/lib/lp/locale/$LANG/mp/xuiso88591.so
en_US.UTF-8 ロケールで行なう対応付けの候補として /usr/openwin/lib/locale/ja/X11/fonts/TT/HG-MinchoL.ttf を選択しているとします。これは Unicode 文字が対応付けられた TrueType フォントファイルであるため、.so モジュール内の対応付け機能には、受け取った ucs-2 コードポイントを直接返す機能だけあれば十分です。
unsigned short _ttfjis0201(unsigned short ucs2) { return(ucs2); }
これを ttfjis0201.c ファイルに保存します。共有オブジェクトを次のように作成します。
cc -G -Kpic -o ttfjis0201.so ttfjis0201.c
ただし、PCF ファイル (/usr/openwin/lib/locale/ja/X11/fonts/75dpi/gotmrk20.pcf.Z など) を対応付ける場合は、 /usr/openwin/lib/locale/ja/X11/fonts/75dpi/ ディレクトリの fonts.dir ファイルを参照してください。次のような、XLFD に対応するエンコーディングに慣れておく必要があります。
-sun-gothic-medium-r-normal--22-200-75-75-c-100-jisx0201.1976-0
エンコーディングが jisx0201 である場合は、ucs-2 と jisx0201 を対応付ける共有オブジェクトを用意します。.so モジュールを作成するための対応付けテーブルがまだない場合は、これを取得する必要があります。 Unicode ロケールの場合は、ftp.unicode.org/public/MAPPINGS/ の中から文字と Unicode を対応付けるテーブルを見つけます。これらの対応付けに従って xu2jis0201.c ファイルを作成します。
unsigned short _xu2jis0201(unsigned short ucs2) { if(ucs2>= 0x20 && ucs2 <= 0x7d ) return (ucs2); if(ucs2==0x203e) return (0x7e); if(ucs2>= 0xff61 && ucs2 <= 0xff9f) return (ucs2 - 0xff60 + 0xa0); return(0); }
対応付けファイルを作成するときには、UCS-2 を jisx0201 に対応付けるすべての組み合わせを組み込みます。
cc -G -o xu2jis0201.so xu2jis0201.c