このページでは、X Window System でよりよい日本語の表示を 行なうために各種フォントを追加する方法を解説しています。
また X11の font の標準設定は Netscape にとってあまり良い設定では ないため、その点の修正も行ないます。
X11 で使用可能な free なフォントとして次のようなものがあります。
また、いしじま☆だい さん(恵梨沙フォントを X Window System 用に変換 したかたです) の作成された fontx2bdf を使用すれば、DOS/V で使用されている $FONTX2 形式の フォントを、bdf に変換することが可能です。これを用いることで いろいろと公開されている DOS/V 用のフォントを流用することが可能になります。
これを利用すると、当然 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補助漢字の X Window System 用のフォントは、 安岡孝一さん@京都大学大型計算機センター ほかのみなさまが 作成されたものが一般に配布されています。 また、mule 用のフォントに 24dot のものが存在します。
以下の手順で 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としてフォントを再検索させると新規登録したフォントが 使用可能になります。
# cat $(SRCDIR)/fonts.alias.netscape >> fonts.alias
このあと X を再起動させるか、xset fp rehashとして、 フォントの設定を再読み込みさせます。
1997 10/5 をもって、この項目は意味をなさなくなってしまいました。 理由は次の項目を参照しましょう(^^;;
とうとうでました。だれかつくらないかなーとみんなが思っていた、VFlib 対応 の Xserver です。これがあれば、VFlib によるスケーラブルなフォントを X のあらゆるアプリケーションから使用することが可能です。
作成された方は 東工大の 高木淳司さんです。
こちらのページでの解説どおりに Xserver を作成すれば、その Xserver からは VFlib なフォントを使用することが可能になります。
Netscape での jisx0208 フォント一覧の中に、登録した VFlib フォントが あらわれるようになります。これを選択するだけで OK です。
OpenBSD/i386 2.2-current での VFlib対応XServer を作成してみました。 御利用下さい。VFlib は static link されています。
これだけではこのページの芸がないので....
TrueType フォントは、ベクトルフォントに加えて、いくつかのサイズのビットマップ フォントを内蔵しており、文字が小さい場合は、これを利用しています。 このため、小さいフォントでも潰れずに表示することができるのです。 しかし、残念ながら、現在の VFlib ではこのビットマップなフォントを 扱うことができないため、フォントサイズが小さいにもベクトルフォントを 使用することになり、つぶれてよみにくい文字になってしまいます。
X のフォント探索においては、指定した名前のフォントで ビットマップなものとスケーラブルなものが両方あった場合は、 ビットマップなものが優先されるようになっています。
つまり、完全に同名のビットマップフォントと、VFlib による スケーラブルばフォントを登録すれば、ビットマップが存在するサイズ においては、それが使用され、そうでない場合には、スケーラブル なものが使用されることになるわけです。
このドキュメントの 「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
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 フォントになっています。