JFP ユーザーズガイド

第 15 章 フォントの移行

この章では、すでに利用しているフォントの移行方法について説明します。

Solaris1.x SunView で使用していた evfont の再利用

JLE SunView システムで使用していた evfont フォントは、次の変換作業を順番に行うことにより、日本語 OpenWindows 3.6 上で使用可能になります。

  1. evfont から Adobe/MIT BDF 2.1 への変換

  2. Adobe/MIT BDF 2.1 から PCF フォントファイルへの変換

  3. フォントエイリアスの追加

  4. フォントセットの定義

evfont から Adobe/MIT BDF 2.1 への変換

まず、evftobdf(1) コマンドを使用して、いったん evfont を Adobe/MIT BDF 2.1 フォントファイル (拡張子 .bdf) に変換します。

sun% evftobdf jpn.gotm.12
jpn.gotm.12->jpn.gotm.12.j201.bdf
jpn.gotm.12->jpn.gotm.12.j208.bdf

1 つの evfont フォントファイルから 2 つの Adobe/MIT BDF 2.1 フォントファイルが出力されます。.j201.bdf の拡張子の付いたファイルは、 JIS X 0201 の文字集合のフォントを表し、.j208.bdf の拡張子の付いたファイルは、 JIS X 0208 の文字集合のフォントを表します。

Adobe/MIT BDF 2.1 から PCF フォントファイルへの変換

次に、OpenWindows 標準コマンドの bdftopcf(1) を使用して、Adobe/MIT BDF 2.1 フォントファイルをサーバーがアクセス可能な PCF フォントファイルへ変換します。

sun% /usr/openwin/bin/bdftopcf jpn.gotm.12.j208.bdf -o jpn.gotm.12.j208.pcf

sun% /usr/openwin/bin/bdftopcf jpn.gotm.12.j201.bdf -o jpn.gotm.12.j201.pcf

フォントエイリアスの追加

フォントファイルの変換が終了したあと、X11 ウィンドウシステムからアクセスするために、変換したフォントに対する XLFD フォント名のエイリアスを追加します。

フォントエイリアスの追加は、mkfontdir(1) コマンドを実行することにより、自動的に行うことができますが、そのためには前述の .bdf ファイルの FONT フィールドの XLFD の記述が適切である必要があります。XLFD 記述規約や設定値の詳細は、『X プロトコルリファレンス・マニュアル 0 巻』を参照してください。

sun% mkfontdir fontdir1

1. fontdir には、フォントが置かれているディレクトリを指定します。

なお、フォントディレクトリに font.alias ファイルを置くことにより、フォントのエイリアスとフォント名パターンの定義が可能となります。

gotm-12 -sun-gothic-medium-r-normal--12-120-75-75-c-120-japanese-0

フォントセットの定義

変換したフォントを、さらに日本語フォントセットとして DeskSet などの日本語 OpenWindows のアプリケーションから使用するには、日本語 OpenWindows のフォントセット定義ファイルに、エイリアスとして追加した XLFD フォント名の登録が必要です。フォントセット定義方法の詳細は、『XView Developer's Notes』を参照してください。

ここでは、例として、/usr/openwin/lib/locale/ja/OW_FONT_SETS/OpenWindows.fs に以下の行を追加します。なお、この作業終了後、OpenWindows を立ち上げ直す必要があります。

! sample definition
!
    gotm-12:alias,¥
       -sun-gothic-medium-r-normal--12-120-75-75-c-120-japanese-0

       -sun-gothic-medium-r-normal--12-120-75-75-c-120-japanese-0:definition,¥
       -sun-gothic-medium-r-normal--12-120-75-75-c-60-jisx0201.1976-0,¥
       -sun-gothic-medium-r-normal--12-120-75-75-c-120-jisx0208.1983-0

evfont から変換したフォントファイルは、上記の例の場合、次の方法で確認できます。

sun% xfd -fn gotm-12

Solaris 2.5.1 以前のシステムで作成したユーザー定義文字の移行

Solaris 2.5.1 以前の環境ですでにユーザー定義文字を登録している場合は、次の方法でその文字を移行し、既存のユーザー定義文字を再利用できます。

ここでは、ユーザー定義文字を含む既存のフォントファイルから $HOME/.Xlocale/$LANG/fonts/UDC ディレクトリにユーザー定義文字を抜き出し、Solaris 7 でサポートする環境へ移行する方法について説明します。

なお、環境変数 DTUDCFONTPATH が設定されている場合は、そのディレクトリを利用してください。

フォントエディタで作成したビットマップフォントを移行する場合

  1. sdtudc_extract を使用して、登録済みのユーザー定義文字を別フォントファイルに抜き出します。

    sdtudc_extract/usr/dt/config/locale/sdtudc_map にある変換テーブルを参照し、ユーザー定義文字のコードポイントを Solaris 7 のユーザー定義文字の領域内に移動しながら、別フォントファイルに抜き出します。

    sdtudc_map の形式は「変換前の領域」と「変換後の領域の先頭」で表現され、デフォルトでは次のように記述されます。

    a9a1,a9ff                    f5a1
    aaa1,aaff                    f6a1
    aba1,abff                    f7a1
    aca1,acff                    f8a1
    ada1,adff                    f9a1
    aea1,aeff                    faa1
    afa1,afff                    fba1

    上記の 1 行目では、指定したフォントファイル中の 0xa9a1 から 0xa9ff に登録されているユーザー定義文字を 0xf5a1 から始まるコードポイントに順番に割り付けながら抜き出すことを表しています。

    sun% sdtudc_extract gotm14.pcf > UDC14.bdf
    

    14 ドットのビットマップフォントの場合は、作成するフォントファイル名を UDC14.pcf にしてください。

  2. 抜き出したフォントファイルをユーザー定義文字の保存ディレクトリに移動してから、「Solaris 外字ツール」を起動し、新たにユーザー定義文字を登録します。

    sun% bdftopcf -o UDC14.pcf UDC14.bdf
    sun% mkdir -p $HOME/.Xlocale/$LANG/fonts/UDC/Bitmaps
    sun% mv UDC14.pcf $HOME/.Xlocale/$LANG/fonts/UDC/Bitmaps
    sun% /usr/dt/bin/sdtudctool
    

    また、ユーザー定義文字を使用して作成したテキストファイルがある場合は、次のように sdtudc_convert を使ってユーザー定義文字のコードポイントを移動します。

    sun% sdtudc_convert <テキストファイル> > <新しいテキストファイル>

    sdtudc_convert のソースファイルは、ディレクトリ$OPENWINHOME/share/src/locale/ja/fonts/sdtudc_convert.c にあります。

    詳細は、sdtudc_convert(1) のマニュアルページを参照してください。

フォントマネージャで作成したフォントを移行する場合

  1. sdtudc_extract_ps を使って、登録済みのユーザー定義文字を別フォントファイルに抜き出します。

    たとえば、フォントマネージャを使って作成した font.ps というフォントファイルからユーザー定義文字を移行するには、次のコマンドを実行します。

    sun% sdtudc_extract_ps font.ps
    UDC1.pfa
    UDC2.pfa
    UDC3.pfa
    :
    UDC10.pfa

  2. 抜き出したフォントファイルをユーザー定義文字の保存ディレクトリに移動してから、sdtudctool を起動し、新たなユーザー定義文字を登録します。

    sun% mkdir -p $HOME/.Xlocale/$LANG/fonts/UDC/Type1
    sun% mv UDC*.pfa $HOME/.Xlocale/$LANG/fonts/UDC/Type1
    sun% /usr/dt/bin/sdtudctool
    

フォントエディタで作成したビットマップフォントとフォントマネージャで作成したフォントをマージする場合

  1. フォントエディタで作成したビットマップフォントファイルとフォントマネージャで作成したフォントファイルからユーザー定義文字を抜き出します。

    sun% sdtudc_extract gotm14.pcf > UDC14.bdf
    sun% sdtudc_extract_ps font.ps
    UDC1.pfa
    UDC2.pfa
    UDC3.pfa
    :
    UDC10.pfa

  2. 「Solaris 外字ツール」を起動したときに参照するディレクトリに移動します。

    フォントエディタで作成したフォントファイルを優先する場合

    sun% mkdir -p $HOME/.Xlocale/$LANG/fonts/UDC/Bitmaps
    sun% mv UDC14.bdf $HOME/.Xlocale/$LANG/fonts/UDC/Bitmaps
    

    フォントマネージャで作成したフォントを優先する場合

    sun% mkdir -p $HOME/.Xlocale/$LANG/fonts/UDC/Type1
    sun% mv UDC*.pfa $HOME/.Xlocale/$LANG/fonts/UDC/Type1
    

  3. 「Solaris 外字ツール」を起動します。

  4. 参照表を開き、もう一方のフォントファイルを読み込みます。

    sun% /usr/dt/bin/sdtudctool
    

  5. 参照表から、必要なユーザー定義文字を一覧表にドラッグ&ドロップします。

  6. 「ファイル」->「保存」を選択し、ユーザー定義文字フォントファイルを作成します。

  7. 「ファイル」->「ユーザー定義文字」を選択し、ユーザー定義文字を読み込んでから新たに登録を開始します。