次の手順例は、新しい PCF、TrueType、または Type1 のプリンタ常駐フォントを構成ファイルに追加する方法を示しています。
この手順を実行して、現在設定されているフォントを変更します。最初の 2 つの手順では、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
たとえば、/usr/openwin/lib/locale/ja/X11/fonts/TT/HG-MinchoL.ttf フォントを en_US.UTF-8 ロケールに対応付けするとします。HG-MinchoL.ttf は Unicode TrueType フォントファイルであるため、.so モジュールの対応付け機能を使用して、受け取った ucs-2 コードポイントを直接返します。
unsigned short _ttfjis0201(unsigned short ucs2) { return(ucs2); }
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/pub/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); }
対応付けファイルを作成するときには、usc—2 をjisx0201 に対応付けるすべての組み合わせを組み込みます。
cc -G -o xu2jis0201.so xu2jis0201.c