[CONTENTS] [PREV] [NEXT]

X各種フォントの設定

このページでは、X Window System でよりよい日本語の表示を 行なうために各種フォントを追加する方法を解説しています。

また X11の font の標準設定は Netscape にとってあまり良い設定では ないため、その点の修正も行ないます。

フォントの追加

X11 で使用可能な free なフォントとして次のようなものがあります。

また、いしじま☆だい さん(恵梨沙フォントを X Window System 用に変換 したかたです) の作成された fontx2bdf を使用すれば、DOS/V で使用されている $FONTX2 形式の フォントを、bdf に変換することが可能です。これを用いることで いろいろと公開されている DOS/V 用のフォントを流用することが可能になります。


Notice

これを利用すると、当然 DOS/V に附属するFreeでないフォントも変換できる ことになります。著作権の問題などもありますので十分注意して利用しましょう。 一般的には、個人が自分が購入したものを自分個人のためだけに使うぶんには 問題ないでしょう。


もうひとつ、$FONTX2 を BDF 形式に変換するソフトウェアとして、 「としちゃん」さんが作成した perl 版の Fontx2BDF というもの あります。(いしじまさんに教えてもらいました)

としちゃんに連絡をいただきました。 http://www2a.meshnet.or.jp/~tea/toshi/exhibition/ が正規配布元になっています。ftp.tut.ac.jp にも転載しておきました。

DOS/V 用のフォントは、Vector Software Pack のアーカイブの /data/writing/font/ でいろいろと入手できます。

変換後のフォントのインストールについては、このページで解説 されている他のフォントと同様になります。

要町フォント

要町フォントはもともとX68k用に(株)満開製作所が作成したフォントで、 これの X Window System 用にコンバートした版が存在します。

以下の手順でフォントを pcf 化し、X のフォントディレクトリにコピーします。

% tar zxvf kaname_k12_bdf.tar.gz
% bdftopcf knmhn12x.bdf > knmhn12x.pcf
% bdftopcf knmzn12x.bdf > knmzn12x.pcf
% compress knm*.pcf
ここは X11R6.3 以降 (XFree86 3.3以降) で gzip で .gz 形式にすることができます。
(% gzip knm*.pcf)
% su
# mv *.pcf.Z /usr/X11R6/lib/X11/fonts/misc
(# mv *.pcf.gz /usr/X11R6/lib/X11/fonts/misc)

恵梨沙フォント

恵梨沙フォントは、Hewlett-Packerd HP 95/100/200LX の日本語化のために 作成された 8x8ドット日本語フォントで、 オリジナル版(「恵梨沙フォントPJ」のみなさんが作成)を いしじま☆だい さんが X Window System で使用できるように 改変された版が存在します。

恵梨沙フォントは、附属のドキュメントに詳細な解説が 入っていますので、それにしたがって作業すればよいでしょう。 基本的には要町と同様になります。

% tar zxvf elisau10.tgz
% bdftopcf elisau10.bdf > elisau10.pcf
% compress elisau10.pcf
(% gzip elisau10.pcf)
% su
# mv *.pcf.Z /usr/X11R6/lib/X11/fonts/misc 
(# mv *.pcf.gz /usr/X11R6/lib/X11/fonts/misc)

jis 補助漢字 (jisx0212)

jis補助漢字の X Window System 用のフォントは、 安岡孝一さん@京都大学大型計算機センター ほかのみなさまが 作成されたものが一般に配布されています。 また、mule 用のフォントに 24dot のものが存在します。

14dot
jisksp14.bdf.gz ( jisksp16 から bdfresizeで作成 )
16dot
jisksp16-1990.bdf.gz
24dot
min-1-24.bdf.gz ( mule 用のフォント )

以下の手順で pcf フォントを作成し、Xのフォントのディレクトリに いれます。他のフォントも同様にしてください。 なお、下ではcompress で圧縮形式にしてあります。

% gzip -d jisksp14.bdf.gz
% bdftopcf jisksp14.bdf > jisksp14.pcf
% compress jisksp14.pcf
(% gzip jisksp14.pcf)
% su
# mv jisksp14.pcf.Z /usr/X11R6/lib/X11/fonts/misc
(# mv jisksp14.pcf.gz /usr/X11R6/lib/X11/fonts/misc)

最終作業

すべてのフォントを入れたら、mkfontdir しておきます。

# cd /usr/X11R6/lib/X11/fonts/misc
# mkfontdir
これにより、フォントがデータベースに登録されて使用可能になります。 これ以降 X を再起動するか、
% xset fp rehash
としてフォントを再検索させると新規登録したフォントが 使用可能になります。

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

Netscape は、フォントの名称を 形状と作成者の組合せで区別しており、 そのままでは好き勝手(^^;な名前のついている日本語フォントを 併せて使用することができません。 (名前の違うフォントは本来別ものなので、この Netscape の仕様は正当です。 たまたま日本語のフォントが少ないので不都合になります(^^;) そこで適当にエイリアスをでっちあげて、登録した日本語フォントを まとめて使用できるようにします。 上記エイリアスファイルを /usr/X11R6/lib/fonts/misc/fonts.alias に 追加します。Netscape で、5つのサイズのフォント(10,12,14,16,24ドット)を ちゃんと使えるように名前を割り振っています。
# cat $(SRCDIR)/fonts.alias.netscape >> fonts.alias

このあと X を再起動させるか、xset fp rehashとして、 フォントの設定を再読み込みさせます。

VFlibを使ってフォントを作成しよう!!

はじめに

1997 10/5 をもって、この項目は意味をなさなくなってしまいました。 理由は次の項目を参照しましょう(^^;;

VFlib を組み込んだ Xserver の作成

とうとうでました。だれかつくらないかなーとみんなが思っていた、VFlib 対応 の Xserver です。これがあれば、VFlib によるスケーラブルなフォントを X のあらゆるアプリケーションから使用することが可能です。

作成された方は 東工大の 高木淳司さんです。

こちらのページでの解説どおりに Xserver を作成すれば、その Xserver からは VFlib なフォントを使用することが可能になります。

Netscapeからの利用

Netscape での jisx0208 フォント一覧の中に、登録した VFlib フォントが あらわれるようになります。これを選択するだけで OK です。

X-V server for OpenBSD

OpenBSD/i386 2.2-current での VFlib対応XServer を作成してみました。 御利用下さい。VFlib は static link されています。

これだけではこのページの芸がないので....

X-V Xserver での VFlib フォントと Bitmap フォントの複合利用

TrueType フォントは、ベクトルフォントに加えて、いくつかのサイズのビットマップ フォントを内蔵しており、文字が小さい場合は、これを利用しています。 このため、小さいフォントでも潰れずに表示することができるのです。 しかし、残念ながら、現在の VFlib ではこのビットマップなフォントを 扱うことができないため、フォントサイズが小さいにもベクトルフォントを 使用することになり、つぶれてよみにくい文字になってしまいます。

X のフォント探索においては、指定した名前のフォントで ビットマップなものとスケーラブルなものが両方あった場合は、 ビットマップなものが優先されるようになっています。

つまり、完全に同名のビットマップフォントと、VFlib による スケーラブルばフォントを登録すれば、ビットマップが存在するサイズ においては、それが使用され、そうでない場合には、スケーラブル なものが使用されることになるわけです。

Netscapeでの利用例

このドキュメントの 「Netscape 用のフォントのエイリアスの追加」 での解説で設定した、Netscape 用に最適化したビットマップフォントと スケーラブルフォントを複合させて利用する方法を解説します。

上記のフォントのエイリアスでは、フォントの名称を "netscape-fixed" と 設定してあります。まず VFlib のほうで、これと同じ名前になるようにフォント を設定します。

fonts.dir の例


1
min.vflib -netscape-fixed-medium-r-normal--0-0-0-0-c-0-jisx0208.1983-0

このビットマップフォントと、VFlibフォントが両方同名で登録された 状態で Netscape を起動すると、VFlibフォントのみの時とはちょっと違う設定が 可能になります。 具体的には、「スケーリングする(scaleable)」の指定が ON/OFF 可能になり、 またサイズ指定に「その他(any)」以外に、ビットマップフォントのサイズ 指定がならぶようになります。

ここで、「スケーリングする」を ON にして、サイズを「その他(Any)」 ではなく 任意のビットマップフォントを選ぶようにします。 すると、size=3 のフォントについては、その指定されたビットマップが 利用されるようになります。

ここで、ビットマップになるのは、size=3 のフォントだけで、 他の size=2 や size=1 のフォントなどは、VFlib による潰れた文字に なっていることでしょう。これをさらに回避するために、fonts.alias に 細工した情報を登録してしまいます。

ここで UNIX 版 Netscape のフォントのサイズ決定の仕組みについて 簡単に解説しておきます。 Netscape のフォントのサイズは size=3 の部分を基準に決定されます。 フォントの選択メニューから選択されたフォントの POINT SIZE を基準に、 リソース Netscape*documentFonts.sizeIncrement で指定された 割合で指定された分ずつ拡大/縮小したサイズのフォントが要求されます。 デフォルトでこのリソースは 20% の値になっており、たとえば size=4 の フォントは size=3 の 120% のサイズ、size=5 は 140%, size=2 は 80% のサイズということになります。

この計算によって決定されたフォントが Xserver に要求されるわけですが、 スケーラブルの指定がない場合は、最も近い bitmap フォントが選ばれるの ですが、VFlib フォントが存在するために、そのサイズのフォントが生成 されてしまいます。これを防ぐためには、そのポイントサイズのビットマップ フォントを登録してしまえば OK です。当然ぴったりのサイズのフォントは ありませんから、近いサイズのものをそのポイントサイズだとして 登録することになります。

具体例です。14pixel の k14 フォントを size=3 として選択することにします。 上記エイリアスでは、これは次のように登録してあります。


-netscape-fixed-medium-r-normal--14-130-75-75-c-140-jisx0208.1983-0 -misc-fixed-medium-r-normal--14-130-75-75-c-140-jisx0208.1983-0

このなかの、PIXEL SIZE [14] のとなりの [130] が POINT SIZE です。 これから考えると、それぞれのサイズのフォントは次のようになります。
size=1  130 x 0.6 = 78 point
size=2  130 x 0.8 = 104 point
size=3  130 x 1.0 = 130 point
size=4  130 x 1.2 = 156 point
これの size=1 に 10pixel の 恵梨沙フォント、size=2 に 12pixel の要町フォント size=4 に 16pixel の kanji16 フォントを割り当てることにします。 それ以上のサイズについては、VFlib フォントを使用します。 このために、次のような alias を追加します。(fonts.alias に追加)
! Add for Netscape
-netscape-fixed-medium-r-normal--16-156-75-75-c-160-jisx0208.1983-0 -jis-fixed-medium-r-normal--16-150-75-75-c-160-jisx0208.1983-0
-netscape-fixed-medium-r-normal--12-104-75-75-c-120-jisx0208.1983-0 -mnkaname-fixed-medium-r-normal--12-110-75-75-c-120-jisx0208.1983-0
-netscape-fixed-medium-r-normal--10-78-75-75-c-100-jisx0208.1983-0 -elisa-fixed-medium-r-normal--10-70-75-75-c-100-jisx0208.1983-0

みればわかると思いますが、POINT SIZE の部分に目的の数値を設定してあるだけです。 これにより、Netscape からその POINT SIZE のフォントの要請があった場合、 このビットマップフォントが使用されることになります。

なおこれらのエイリアスを追加したあとは、xset fp rehash するか、 X を再起動しないと利用可能にならないことにご注意下さい。

こんなかんじになります。

size 1〜4 がビットマップフォント、5〜7 が VFlib フォントになっています。

フォントサーバの利用

書いてません。

はじめに

メーカ製の X サーバは、たいてい独自の拡張がほどこしてあり、 日本語のアウトラインフォントが使えるようになっていることがあります。 そしてそれに附属している X Font Server もそのフォントに対応していたりします。 あと、いろいろなサイズの日本語のフォントが入っているかもしれません

フォントサーバの設定例

標準的な場合

フォントサーバを使用する場合の X の起動

まだ書いてないです。

[CONTENTS] [PREV] [NEXT]