「VFlib 対応 X フォントサーバを設置して X を多書体化する」 1998/10/7 山田 泰司 ======== はじめに ======== TeX 環境の多書体化が出来たのでついでに X でも TrueType フォントを表示 できるようにしたい。しかし、筆者の環境には UltraSparc の Creator2D な どもあるので、X-VFlib や X-TT のように X サーバ自体を変更するのは現実 的ではない。よって、とりあえず VFlib 対応の X フォントサーバが試みられ ているのでそれを導入してみる。この文書はそのインストールメモである。参 考文献[1]を参照して行った。 環境は Sparc Station 5, Solaris 2.3, X11R6 で X11R6 は必須である。なぜ なら、運用してみて判明したことだが、X11R6 の Xsun のサーバオプション ``-deferglyphs 16'' をつけて X を起動しないとフォントのロードが遅くて 実用上問題があるからである。となると、うちのあるクライアントは Creator2D + Solaris 2.5.1 で、これは X11R5 ベースなので ``-deferglyphs'' オプションはサポートされない。困ったが、そのクライア ントは X11R6 ベースの Solaris 2.6 へのバージョンアップまで我慢してもら うしかない。 ============ 用意するもの ============ すでにインストールされてあるべきものは VFlib で、筆者の環境の場合、 VFlib 2.24.0 を使っているのでシャアードライブラリかつ freetype 対応 の VFlib で xfs を構築することになる。 また、/usr/X11R6/lib/X11/config が必要である。つまり、X11R6 がインストー ルされているのが望ましいが、筆者の環境の場合、以下で使う xc-1.tar.gz の X11R6.3 はインストールされておらず、X11R6 である。よって、ちょっと した対処が必要になる。 そして Flib 対応 X フォントサーバ の構築に必要なものは以下の通りである。 xfs-VFlib.patch.gz, xfs-fix-rej.patch.gz [1], X-VFlib-1.0.2.tar.gz, vffuncs.c.patch.gz [2], xc-1.tar.gz [3], xc-1.tar.gz をすべて展開するのは大変なので、以下のように使う所だけを展 開しておく。 % tar xvzf /cdrom/X11R6.3/tars/xc-1.tar.gz xc/programs/xfs xc/lib/font xc/lib/xtrans xc/include xc/programs/Xserver/include/servermd.h また、vffuncs.c.patch.gz は Sparc とかでは必須。# これに気付かなくて一 度諦めかけた。 ================ パッチあてと準備 ================ X-VFlib-1.0.2.tar.gz を利用しているのでまず展開しておく。 % tar xvzf X-VFlib-1.0.2.tar.gz すると README-1.0.2 と X-VFlib-1.0.2.patch が生成される。このパッチを あてるのだが、reject されるので前もって対処。 % touch xc/programs/Xserver/Imakefile そしてパッチ X-VFlib-1.0.2.patch をあてる。 % patch -p0 < X-VFlib-1.0.2.patch そして VFlib 対応 X フォントサーバ用のパッチをあてる。 % zcat xfs-fix-rej.patch.gz | patch -p0 % zcat xfs-VFlib.patch | patch -p0 また、Sparc では xc/lib/font/VFlib/vffuncs.c で問題があるので vffuncs.c.patch.gz をあてる必要があるが、うまくあたらないので自分で編 集した。以下は自分で作成したパッチでの例である。 % cd xc/lib/font/VFlib % patch < ../../../../vffuncs.c.patch % cd ../../../.. そしてインクルードファイルのシンボリックリンクを作成しておく。 % cd xc % cd include; ln -s . X11 % cd .. % cd lib/xtrans; ln -s . X11 % cd ../.. ==================== フォントサーバの構築 ==================== Imakefile を編集してすべて xmkmf -a; make で構築できるようにする。 % cd xc % mule lib/font/Imakefile lib/font/Speedo/Imakefile lib/font/Type1/Imakefile lib/font/VFlib/Imakefile lib/font/bitmap/Imakefile lib/font/fc/Imakefile lib/font/fontfile/Imakefile lib/font/util/Imakefile programs/xfs/Imakefile programs/xfs/difs/Imakefile programs/xfs/os/Imakefile & % cd .. 以下は編集したもののオリジナルとの diff 出力である。主な対処は参考文献 [1]でコマンドラインで指定しているものを Imakefile で記述していることと、 筆者の環境の X11R6 は X11R6.3 ではないことの対処である。また、インクルー ドパスも参考文献[1]のようにシンボリックリンクで対処してないので、少々 面倒かも知れない。 :::::::::::::::::::::::::::::::: % diff -rc ../xc.org . :::::::::::::::::::::::::::::::: diff -rc ./lib/font/Imakefile ../xc-fs-VFlib/lib/font/Imakefile *** ./lib/font/Imakefile Wed Oct 7 10:15:52 1998 --- ../xc-fs-VFlib/lib/font/Imakefile Mon Oct 5 18:54:12 1998 *************** *** 1,3 **** --- 1,15 ---- + /* + * InstallLinkKitLibrary - rule to install Link Kit library. + * (only used for XFree86). This is a no-op + * rule so that Imakefiles on non-XFree86 systems + * continue to build Makefiles correctly. + */ + #ifndef InstallLinkKitLibrary + #define InstallLinkKitLibrary(lib,dir) + #endif + + #define HasVFlib 1 + XCOMM $XConsortium: Imakefile /main/12 1995/12/07 21:15:22 gildea $ #include diff -rc ./lib/font/Speedo/Imakefile ../xc-fs-VFlib/lib/font/Speedo/Imakefile *** ./lib/font/Speedo/Imakefile Sat Sep 4 18:00:01 1993 --- ../xc-fs-VFlib/lib/font/Speedo/Imakefile Mon Oct 5 19:16:10 1998 *************** *** 1,7 **** XCOMM $XConsortium: Imakefile,v 1.10 93/09/04 16:42:59 rws Exp $ #include ! INCLUDES = -I$(FONTINCSRC) -I../include -I$(SERVERSRC)/include HEADERS = SPEEDOSRCS = do_char.c do_trns.c out_bl2d.c out_blk.c \ out_scrn.c out_util.c reset.c set_spcs.c set_trns.c --- 1,9 ---- XCOMM $XConsortium: Imakefile,v 1.10 93/09/04 16:42:59 rws Exp $ #include ! INCLUDES = -I$(FONTINCSRC) -I../include -I$(SERVERSRC)/include \ ! -I../../../include/ -I../../../include/fonts/ \ ! -I../../../programs/Xserver/include/ HEADERS = SPEEDOSRCS = do_char.c do_trns.c out_bl2d.c out_blk.c \ out_scrn.c out_util.c reset.c set_spcs.c set_trns.c diff -rc ./lib/font/Type1/Imakefile ../xc-fs-VFlib/lib/font/Type1/Imakefile *** ./lib/font/Type1/Imakefile Sat Sep 4 18:00:01 1993 --- ../xc-fs-VFlib/lib/font/Type1/Imakefile Mon Oct 5 19:16:38 1998 *************** *** 2,8 **** #include ! INCLUDES = -I$(FONTINCSRC) -I../include SRCS = \ arith.c \ --- 2,10 ---- #include ! INCLUDES = -I$(FONTINCSRC) -I../include \ ! -I../../../include/ -I../../../include/fonts/ \ ! -I../../../programs/Xserver/include/ SRCS = \ arith.c \ diff -rc ./lib/font/VFlib/Imakefile ../xc-fs-VFlib/lib/font/VFlib/Imakefile *** ./lib/font/VFlib/Imakefile Wed Oct 7 10:15:52 1998 --- ../xc-fs-VFlib/lib/font/VFlib/Imakefile Tue Oct 6 10:54:41 1998 *************** *** 1,3 **** --- 1,5 ---- + #define HasVFlib 1 + /* * VFlib support for X * *************** *** 6,15 **** #include VFLIBINCLUDES = VFlibIncludes INCLUDES = -I$(FONTINCSRC) -I../include -I$(SERVERSRC)/include \ ! -I$(VFLIBINCLUDES) SRCS = vffuncs.c btree.c OBJS = vffuncs.o btree.o --- 8,20 ---- #include + #define VFlibIncludes /usr/local/ptex/include VFLIBINCLUDES = VFlibIncludes INCLUDES = -I$(FONTINCSRC) -I../include -I$(SERVERSRC)/include \ ! -I$(VFLIBINCLUDES) \ ! -I../../../include/ -I../../../include/fonts/ \ ! -I../../../programs/Xserver/include/ SRCS = vffuncs.c btree.c OBJS = vffuncs.o btree.o diff -rc ./lib/font/bitmap/Imakefile ../xc-fs-VFlib/lib/font/bitmap/Imakefile *** ./lib/font/bitmap/Imakefile Mon Nov 4 13:36:01 1996 --- ../xc-fs-VFlib/lib/font/bitmap/Imakefile Mon Oct 5 18:56:30 1998 *************** *** 1,7 **** XCOMM $XConsortium: Imakefile /main/9 1996/11/03 19:31:58 kaleb $ #include ! INCLUDES = -I$(FONTINCSRC) -I../include HEADERS = #ifdef FontFormatDefines FORMAT_DEFS = FontFormatDefines --- 1,8 ---- XCOMM $XConsortium: Imakefile /main/9 1996/11/03 19:31:58 kaleb $ #include ! INCLUDES = -I$(FONTINCSRC) -I../include \ ! -I../../../include/ -I../../../include/fonts/ HEADERS = #ifdef FontFormatDefines FORMAT_DEFS = FontFormatDefines diff -rc ./lib/font/fc/Imakefile ../xc-fs-VFlib/lib/font/fc/Imakefile *** ./lib/font/fc/Imakefile Wed Dec 13 18:00:01 1995 --- ../xc-fs-VFlib/lib/font/fc/Imakefile Mon Oct 5 19:25:01 1998 *************** *** 4,10 **** XCOMM #include ! INCLUDES = -I$(FONTINCSRC) -I../include HEADERS = SRCS = fsconvert.c fserve.c fsio.c transport.c OBJS = fsconvert.o fserve.o fsio.o transport.o --- 4,12 ---- XCOMM #include ! INCLUDES = -I$(FONTINCSRC) -I../include \ ! -I../../../include/ -I../../../include/fonts/ \ ! -I../../xtrans/ HEADERS = SRCS = fsconvert.c fserve.c fsio.c transport.c OBJS = fsconvert.o fserve.o fsio.o transport.o *************** *** 19,24 **** --- 21,27 ---- NormalLibraryObjectRule() SpecialCObjectRule(fsio,$(ICONFIGFILES),$(CONN_DEFINES) $(SOCK_DEFINES)) SpecialCObjectRule(transport,$(ICONFIGFILES),$(TRANS_INCLUDES) $(CONN_DEFINES) $(SOCK_DEFINES)) + TRANSCOMMSRC = ../../xtrans/ LinkSourceFile(transport.c,$(TRANSCOMMSRC)) NormalLintTarget($(SRCS)) diff -rc ./lib/font/fontfile/Imakefile ../xc-fs-VFlib/lib/font/fontfile/Imakefile *** ./lib/font/fontfile/Imakefile Wed Oct 7 10:18:01 1998 --- ../xc-fs-VFlib/lib/font/fontfile/Imakefile Mon Oct 5 18:59:16 1998 *************** *** 1,7 **** XCOMM $XConsortium: Imakefile /main/14 1996/11/03 19:58:41 kaleb $ #include ! INCLUDES = -I$(FONTINCSRC) -I../include -I$(SERVERSRC)/include -I$(TOP)/lib/zlib HEADERS = #ifdef FontFormatDefines FORMAT_DEFS = FontFormatDefines --- 1,11 ---- + #define HasVFlib 1 + XCOMM $XConsortium: Imakefile /main/14 1996/11/03 19:58:41 kaleb $ #include ! INCLUDES = -I$(FONTINCSRC) -I../include -I$(SERVERSRC)/include -I$(TOP)/lib/zlib \ ! -I../../../include/ -I../../../include/fonts/ \ ! -I../../../programs/Xserver/include/ HEADERS = #ifdef FontFormatDefines FORMAT_DEFS = FontFormatDefines diff -rc ./lib/font/util/Imakefile ../xc-fs-VFlib/lib/font/util/Imakefile *** ./lib/font/util/Imakefile Mon Feb 7 18:00:01 1994 --- ../xc-fs-VFlib/lib/font/util/Imakefile Mon Oct 5 19:16:54 1998 *************** *** 1,7 **** XCOMM $XConsortium: Imakefile,v 1.11 94/02/07 16:07:31 gildea Exp $ #include ! INCLUDES = -I$(FONTINCSRC) -I../include HEADERS = #ifdef FontFormatDefines FORMAT_DEFS = FontFormatDefines --- 1,9 ---- XCOMM $XConsortium: Imakefile,v 1.11 94/02/07 16:07:31 gildea Exp $ #include ! INCLUDES = -I$(FONTINCSRC) -I../include \ ! -I../../../include/ -I../../../include/fonts/ \ ! -I../../../programs/Xserver/include/ HEADERS = #ifdef FontFormatDefines FORMAT_DEFS = FontFormatDefines diff -rc ./programs/xfs/Imakefile ../xc-fs-VFlib/programs/xfs/Imakefile *** ./programs/xfs/Imakefile Mon Nov 4 13:37:01 1996 --- ../xc-fs-VFlib/programs/xfs/Imakefile Wed Oct 7 08:43:14 1998 *************** *** 1,3 **** --- 1,30 ---- + /* + * InstallNamedTargetNoClobber - Like InstallNamedTarget, but doesn't + * do the install if an installed version already exists. Useful + * for files that might have local customizations that you don't + * want to clobber. Config files are good candidates for this. + */ + #ifndef InstallNamedTargetNoClobber + #define InstallNamedTargetNoClobber(step,srcname,flags,dest,dstname) @@\ + step:: srcname @@\ + MakeDir($(DESTDIR)dest) @@\ + @if [ -f $(DESTDIR)dest/dstname ]; then \ @@\ + echo "Not overwriting existing" $(DESTDIR)dest/dstname; \ @@\ + else set -x; \ @@\ + $(INSTALL) $(INSTALLFLAGS) flags srcname $(DESTDIR)dest/dstname; fi + #endif /* InstallNamedTargetNoClobber */ + + /* + * InstallNonExecFileNoClobber - install a data file once + */ + #ifndef InstallNonExecFileNoClobber + #define InstallNonExecFileNoClobber(file,dest) @@\ + InstallNamedTargetNoClobber(install,file,$(INSTDATFLAGS),dest,file) + #endif /* InstallNonExecFileNoClobber */ + + EXTRA_LOAD_FLAGS=-L/usr/local/ptex/lib/ -R/usr/local/ptex/lib/ -lVFlib2 -lttf + DEPFONTLIB=../../lib/font/libfont.a + XCOMM $XConsortium: Imakefile /main/28 1996/11/03 19:33:19 kaleb $ #undef ServerDefines #include diff -rc ./programs/xfs/difs/Imakefile ../xc-fs-VFlib/programs/xfs/difs/Imakefile *** ./programs/xfs/difs/Imakefile Wed Feb 9 18:00:01 1994 --- ../xc-fs-VFlib/programs/xfs/difs/Imakefile Tue Oct 6 21:45:56 1998 *************** *** 11,17 **** fonts.o difsutils.o cache.o initfonts.o atom.o ! INCLUDES = -I../include -I$(FONTINCSRC) DEFINES = AllocateLocalDefines FONTDEFINES = -DFONT_PCF -DFONT_FS -DFONT_SPEEDO #ifdef DefaultFSConfigFile --- 11,19 ---- fonts.o difsutils.o cache.o initfonts.o atom.o ! INCLUDES = -I../include -I$(FONTINCSRC) \ ! -I../../../include/ -I../../../include/fonts/\ ! -I../../../lib/xtrans/ DEFINES = AllocateLocalDefines FONTDEFINES = -DFONT_PCF -DFONT_FS -DFONT_SPEEDO #ifdef DefaultFSConfigFile diff -rc ./programs/xfs/os/Imakefile ../xc-fs-VFlib/programs/xfs/os/Imakefile *** ./programs/xfs/os/Imakefile Tue Dec 19 18:00:01 1995 --- ../xc-fs-VFlib/programs/xfs/os/Imakefile Mon Oct 5 19:36:52 1998 *************** *** 7,13 **** OBJS = connection.o waitfor.o io.o utils.o osinit.o \ config.o access.o osglue.o error.o ! INCLUDES = -I../include -I$(FONTINCSRC) CONN_DEFINES = ConnectionFlags -DFONT_t -DTRANS_SERVER -DTRANS_REOPEN --- 7,15 ---- OBJS = connection.o waitfor.o io.o utils.o osinit.o \ config.o access.o osglue.o error.o ! INCLUDES = -I../include -I$(FONTINCSRC) \ ! -I../../../include/ -I../../../include/fonts/ \ ! -I../../../lib/xtrans/ CONN_DEFINES = ConnectionFlags -DFONT_t -DTRANS_SERVER -DTRANS_REOPEN 以上の Imakefile の編集で xmkmf -a; make で構築できるようになる。 % cd xc % cd lib/font % xmkmf -a % make % cd ../.. これで libfont.a が作成されたので xfs を構築する。 % cd programs/xfs % xmkmf -a % make すると VFlib 対応 xfs が構築される。 ============== フォントの確認 ============== 構築したディレクトリでフォントのテストをしてみる。 以下は試した xfs のコンフィグファイルと VFlib のエントリを記述したフォ ントの設定ファイルである。 :::::::::::::::: config :::::::::::::::: # font server configuration file # $XConsortium: config.cpp,v 1.7 91/08/22 11:39:59 rws Exp $ clone-self = on use-syslog = off #catalogue = /usr/X11R6/lib/X11/fs/ catalogue = ./ #error-file = /usr/X11R6/lib/X11/fs/fs-errors error-file = ./fs-errors # in decipoints default-point-size = 120 default-resolutions = 75,75,100,100 # deferglyphs = 16 ::::::::::::::::::: fonts.dir ::::::::::::::::::: 10 dynalab-df-tokufuto-gothic.vflib -dynalab-df tokufuto gothic-medium-r-normal--0-0-0-0-c-0-jisx0208.1983-0 dynalab-df-gyosyo.vflib -dynalab-df gyosyo-medium-r-normal--0-0-0-0-c-0-jisx0208.1983-0 dynalab-df-gokufuto-mincho.vflib -dynalab-df gokufuto mincho-medium-r-normal--0-0-0-0-c-0-jisx0208.1983-0 dynalab-df-maru.vflib -dynalab-df maru-medium-r-normal--0-0-0-0-c-0-jisx0208.1983-0 dynalab-df-pop.vflib -dynalab-df pop-medium-r-normal--0-0-0-0-c-0-jisx0208.1983-0 ricoh-hg-gothic-e-pro.vflib -ricoh-hg gothic e pro-medium-r-normal--0-0-0-0-c-0-jisx0208.1983-0 ricoh-hg-sei-kaisyo-pro.vflib -ricoh-hg sei kaisyo pro-medium-r-normal--0-0-0-0-c-0-jisx0208.1983-0 ricoh-hg-maru-gothic-m-pro.vflib -ricoh-hg maru gothic m pro-medium-r-normal--0-0-0-0-c-0-jisx0208.1983-0 microsoft-gothic.vflib -microsoft-gothic-medium-r-normal--0-0-0-0-c-0-jisx0208.1983-0 microsoft-mincho.vflib -microsoft-mincho-medium-r-normal--0-0-0-0-c-0-jisx0208.1983-0 ::::::::::::::::::: 特に config の deferglyphs = 16 が重要である。そして Xsun を立ち上げる 時にも startx -- -deferglyphs 16 としておく。これらをしないととても遅 い。 % cd xc/xc/programs/xfs/ % xfs -config config -port 7002 & % xset +fp tcp/localhost:7002 % xset fp rehash % xfontsel テストが済んだら config と fonts.dir をディレクトリ指定は変更して /usr/X11R6/lib/X11/fs に置く。 ============ インストール ============ VFlib 対応 xfs は /usr/X11R6/bin に xfs-vflib2 としてインストールする ことにした。 # cp -p xfs /usr/X11R6/bin/xfs-vflib2 そしてフォントサーバとなるマシンで起動スクリプト /etc/rc3.d/S99xfs-vflib2 を書いておいた。 =============== Tgif での利用例 =============== 参考の為に、VFlib 対応フォントサーバの利用例として Tgif の X リソース を紹介する。以下は $(HOME)/.Xdefaults の一部である。 :::::::::::::::::::::::::::: $(HOME)/.Xdefaults :::::::::::::::::::::::::::: ; Tgif*FontSizes: 8 10 11 12 14 16 17 18 20 24 25 34 38 40 42 44 50 60 70 100 150 300 Tgif*NihongoFonts: \ fixed-medium-r-normal, jisx0208.1983-*, Ryumin-Light-EUC-H, Ryumin, H, false, 14,16,24 \n\ fixed-medium-r-normal, jisx0208.1983-*, Ryumin-Light-EUC-V, Ryumin-V, V, false, 14,16,24 \n\ fixed-medium-r-normal, jisx0208.1983-*, GothicBBB-Medium-EUC-H, Gothic, H, true, 14,16,24 \n\ fixed-medium-r-normal, jisx0208.1983-*, GothicBBB-Medium-EUC-V, Gothic-V, V, true, 14,16,24 \n\ -dynalab-df tokufuto gothic-medium-r-normal--%d-*-*-*-*-*-jisx0208.1983-0,, DYNALAB-DF-TOKUFUTO-GOTHIC-EUC-H, DYNALAB-DF-TOKUFUTO-GOTHIC, H, false, all\n\ -dynalab-df tokufuto gothic-medium-r-normal--%d-*-*-*-*-*-jisx0208.1983-0,, DYNALAB-DF-TOKUFUTO-GOTHIC-EUC-V, DYNALAB-DF-TOKUFUTO-GOTHIC-V, V, false, all\n\ -dynalab-df gyosyo-medium-r-normal--%d-*-*-*-*-*-jisx0208.1983-0,, DYNALAB-DF-GYOSYO-EUC-H, DYNALAB-DF-GYOSYO, H, false, all\n\ -dynalab-df gyosyo-medium-r-normal--%d-*-*-*-*-*-jisx0208.1983-0,, DYNALAB-DF-GYOSYO-EUC-V, DYNALAB-DF-GYOSYO-V, V, false, all\n\ 以下省略 ; :::::::::::::::::::::::::::: ちなみに、上記の fonts.dir, Tgif に関する X リソースは参考文献[4]で紹 介されているツールで自動生成したものである。また、Tgif で多書体化が X 上で出来ても印刷できないと意味が無い。よって、VFlib 対応 gs の設定も必 要である。例を紹介すれば以下のようになる。 :::::::::::::::::::: kconfig.ps :::::::::::::::::::: ; /Ryumin-Light 4300000 (min) VFlibkanji /GothicBBB-Medium 4300200 (goth) VFlibkanji ; /Ryumin-Light-RKSJ-H /Ryumin-Light-Ext-RKSJ-H copyfont /Ryumin-Light-RKSJ-V /Ryumin-Light-Ext-RKSJ-V copyfont /GothicBBB-Medium-RKSJ-H /GothicBBB-Medium-Ext-RKSJ-H copyfont /GothicBBB-Medium-RKSJ-V /GothicBBB-Medium-Ext-RKSJ-V copyfont ; /DYNALAB-DF-TOKUFUTO-GOTHIC 4300400 (dynalab-df-tokufuto-gothic) VFlibkanji /DYNALAB-DF-TOKUFUTO-GOTHIC-RKSJ-H /DYNALAB-DF-TOKUFUTO-GOTHIC-Ext-RKSJ-H copyfont /DYNALAB-DF-TOKUFUTO-GOTHIC-RKSJ-V /DYNALAB-DF-TOKUFUTO-GOTHIC-Ext-RKSJ-V copyfont /DYNALAB-DF-GYOSYO 4300600 (dynalab-df-gyosyo) VFlibkanji /DYNALAB-DF-GYOSYO-RKSJ-H /DYNALAB-DF-GYOSYO-Ext-RKSJ-H copyfont /DYNALAB-DF-GYOSYO-RKSJ-V /DYNALAB-DF-GYOSYO-Ext-RKSJ-V copyfont 以下省略 ; :::::::::::::::::::: ちなみに、参考文献[4]で紹介されている自動生成するツールはこの kconfig.ps を自動生成するしくみも用意してある。 ======== おわりに ======== 以上 VFlib 対応の X フォントサーバの設置が出来た。TeX 環境の多書体化も VFlib2 を中心に行っているので、X と TeX で一貫したフォント管理環境が出 来、安定して動作している。今後は、VFlib3 に対応したものへ移行していく だろうが、これまで構築した多書体の X と TeX の環境は、安定版としてずっ と使っていく予定である。最後に、このような素晴らしいソフトを開発して下 さった方々に深く感謝を申し上げたい次第である。 ======== 参考文献 ======== [1] 塩崎 拓也, ``xfs-VFlib …「VFlib 対応のフォントサーバを作る試み」 のページ'', http://hawk.ise.chuo-u.ac.jp/student/person/tshiozak/study/freebsd-at-random/xfs-VFlib/index.html. [2] ``X-V プロジェクトのページ,'' http://karin.ip.titech.ac.jp/~takagi/X-VFlib/index.html. [3] UNIX USER, libCD Vol.37, ソフトバンク, 4月号 1997. [4] 山田 泰司, ``TeX のインストールや多書体化について,'' http://www.aihara.co.jp/~taiji/tex/index-j.html.