-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- X TrueType Server Version 1.3 [Aoi MATSUBARA Release 3] インストールマニュアル (C)1998,1999 X TrueType Server Project All rights reserved. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- このファイルは,X-TT のインストール方法について書いてあります. 現在のところ,X-TT は XFree86 3.3.5 に対するパッチとしてリリースされ ています.以下を読むことによって,ソースから X をインストールする方法 を知ることができるでしょう. ----------------- 1. 準備 ----------------- 1.1 必要なファイル ------------------ 以下のファイルが必要です: * このパッケージ - xtt-1.3.tar.gz * FreeType のライブラリ - freetype-1.3.tar.gz * XFree86 のソース - X335src-1.tgz もし xfs が必要ないのならば,X335servonly.tgz だけが必要です. * TrueType フォント. * GNU patch (***Ver2.5 以上***でないと***駄目です***) 1.2 FreeType のインストール --------------------------- まずは,FreeType のインストールをする必要があります.FreeType のソー スは,http://www.freetype.org/ から入手することができます. FreeType のインストールに関しては,FreeType 付属のドキュメントを参照 してください.FreeType は GNU の configure スクリプトを使用している ため,大きなトラブルに見舞われることはないでしょう. また,DynaLab のフォントを使用したいのならば,X-TT 付属のパッチを, 次のようにして当てることをお勧めします: --- % cd freetype-1.3/lib % patch < **どこか**/freetype1.3-adw-nocheck.patch --- 1.3 XFree86 に X-TT のパッチを当てる ------------------------------------ このパッケージ (xtt-1.3.tar.gz) は,以下のようなファイルを含んでいます: * freetype1.3-adw-nocheck.patch (任意) Dynalab フォントの不都合を回避するための, FreeType に対する ad hoc パッチ (前述) * ext-xfs.sh xfs や libfont のみをコンパイルするために必要最小限の ファイルを展開するためのシェルスクリプト * shared-libfont-1.2.diff (必須) XFree86 のフォントライブラリを共有ライブラリ化するパッチ * xfs-for-delayed-font-1.0.diff (xfs を使うのならば必須) xfs を X-TT のような遅延レンダリングのラスタライザに 対応させるためのパッチ * make-xfs-only-1.3.diff (任意) XFree86 で xfs や libfont のみをコンパイルすることが できるようにするパッチ * xtt-xf335-changes.diff (必須) X-TT を XFree86 で使うためのパッチ * xtt-core.tar (必須) X-TT フォントラスタライザの本体 (xc/lib/font/X-TrueType) * contribute/xtt-xfsft-lib.patch (任意) X-TT とは直接関係ないが,Type1 や Speedo で各種言語を 扱えるようにするパッチ あなたの目的によっては,これらのファイル全てを使う必要は必ずしもあり ませんが,これらのファイルには依存関係があるため,必ずこの順番で使用 せねばなりません. なお,shared-libfont-1.2.diff は,libfont を共有ライブラリ化するため に必要なパッチ全てを含んでいます.そこで,以下で述べるインストール方 法によっては, "No file to patch. Skipping..." というメッセージが出力されるでしょう.恐らく,これらのメッセージは無 視して平気ですが,必要なファイルを展開し忘れていないか注意したほうが 良いでしょう.また,make-xfs-only-1.3.diff は場合によっては必ずしも 適用する必要はありませんが,これを適用していない場合, xtt-xf335-changes.diff の適用時に patch コマンドがオフセットを出力す るでしょう.これは無視して構いません. 1.3.1 X サーバのみで X-TT を使用する ------------------------------------ もし,xfs で TrueType フォントを使用する必要がない場合,XFree86 の ソース全てが必要ではありません.この場合にはX335servonly.tgz を使っ て,これにさきほどのパッチを当てましょう. *** 例 *** ------------------------------------------------------------------------ % tar zxvf **どこか**/X335servonly.tgz % cd xc % patch -p1 -t -E -N < **どこか**/shared-libfont-1.2.diff % patch -p1 -t -E -N < **どこか**/xtt-xf335-changes.diff % patch -p1 -t -E -N < **どこか**/contribute/xtt-xfsft-lib.patch (任意) % tar xvf **どこか**/xtt-core.tar -C lib/font ------------------------------------------------------------------------ 1.3.2 X フォントサーバ ---------------------- xfs を介して X-TT を使いたいのならば,X335src-1.tgz が必要です. 1.3.2.1 フォントサーバのみで X-TT を使用する -------------------------------------------- この場合,libfont と xfs の再構築のみが必要となります. xtt-1.3.tar.gz に含まれている ext-xfs.sh というシェルスクリプトを 用いることにより,X335src-1.tgz から xfs の構築に必要なファイルの みを展開することができます.これを用いて,次のようにしましょう: *** 例 *** ------------------------------------------------------------------------ % sh **どこか**/ext-xfs.sh **どこか**/X335src-1.tgz % cd xc % patch -p1 -t -E -N < **どこか**/shared-libfont-1.2.diff % patch -p1 -t -E -N < **どこか**/xfs-for-delayed-font-1.0.diff % patch -p1 -t -E -N < **どこか**/make-xfs-only-1.3.diff % patch -p1 -t -E -N < **どこか**/xtt-xf335-changes.diff % patch -p1 -t -E -N < **どこか**/contribute/xtt-xfsft-lib.patch (任意) % tar xvf **どこか**/xtt-core.tar -C lib/font ------------------------------------------------------------------------ 1.3.3 ソースからのフルインストール ---------------------------------- X335src-1.tgz と X335src-2.tgz (任意)が必要です.この場合には,ただ ソースを展開して,必要なパッチを次のように当てて行くだけです: ------------------------------------------------------------------------ % tar zxvf **どこか**/X335src-1.tgz % tar zxvf **どこか**/X335src-2.tgz (任意) % cd xc % patch -p1 -t -E -N < **どこか**/shared-libfont-1.2.diff % patch -p1 -t -E -N < **どこか**/xfs-for-delayed-font-1.0.diff % patch -p1 -t -E -N < **どこか**/make-xfs-only-1.3.diff (任意) % patch -p1 -t -E -N < **どこか**/xtt-xf335-changes.diff % patch -p1 -t -E -N < **どこか**/contribute/xtt-xfsft-lib.patch (任意) % tar xvf **どこか**/xtt-core.tar -C lib/font ------------------------------------------------------------------------ 1.4 XFree86 のオプションの設定 ------------------------------ 基本的に,パッチを当ててコンパイル/インストールするだけで,X-TT が使 用可能になります.しかしながら,以下のようなオプションによって,カス タマイズすることが可能です: マクロ名 説明 ------------------------------------------------------------------------- HasFreeType FreeType ライブラリがインストールされていな いのならば,このマクロを 'NO' にします.X-TT の機能を使用したいのならば,NO にしてはいけ ません. (デフォルト : YES) FreeTypeLibDir FreeType のライブラリファイルが置かれている ディレクトリを指定します. (デフォルト : /usr/local/lib) FreeTypeIncDir FreeType のインクルードファイルが置かれてい るディレクトリを指定します. (デフォルト : /usr/local/include) FreeTypeLibName FreeType のライブラリ名を指定します. (デフォルト : ttf) BuildXTrueType X-TT によって TrueType フォントを扱いたくな ければこのマクロを 'NO' にします.X-TT の機 能を使用したいのならば,NO にしてはいけませ ん. (デフォルト : YES) これらのオプションは,通常 'xc/config/cf/xttsite.def' に記述します. 具体的には,xttsite.def のコメントを参照してください. 1.5 コンパイルとインストール ---------------------------- 1.5.1 XFree86 3.3.3 のインストールもついでに行う場合 ---------------------------------------------------- または,X サーバのみをインストールする場合 ------------------------------------------ 適切に xttsite.def が設定されていれば,以下のように打つだけです: % make World # make install 1.5.2 フォントサーバのみをインストールする場合 ---------------------------------------------- 同様に,以下のようにします: % make xfs # make install 1.5.3 古いバージョンの X-TT からアップデートする場合 ---------------------------------------------------- 以前のバージョンから X サーバの部分に変更されたところはありません(実 際には,X-TT の初期開発段階からずっと変更されていません).よって,フォ ントライブラリ 'libfont.so.1.2' を置き換えるだけで,X-TT をアップデー トすることができます.具体的には,次のようにします: % make libfont # make install また,このあと,共有ライブラリのヒントファイルを更新する必要がありま す.これはプラットフォームに依存する作業なので,詳しくはあなたのプラッ トフォームの ldconfig(8) を参照して下さい. # ldconfig -R (FreeBSD の場合) ---------------------- 2. フォントの設定 ---------------------- 2.1 フォントディレクトリを用意する ---------------------------------- フォントファイルを格納するためのディレクトリを決めて,そこへフォント ファイルを格納してください.もし,Windows 用のフォントを MS-DOS のファ イルシステムに格納してあるのならば,シンボリックリンクを使うのが良い でしょう. 2.2 fonts.dir ファイルを用意する -------------------------------- 次に,このディレクトリに fonts.dir という名前のファイルを用意します. このファイルは次のような書式を持っています: 一行目 fonts.dir が含んでいるフォントの数を書きます. 残りの行 フォントファイル名と XLFD (X 論理フォント名)の対応を 書きます.おのおののラインは,次のように書きます: FILENAME FOUNDRY-FAMILY-WEIGHT-SLANT-WIDTH--0-0-0-0-SPACING-0-CHARSET なお,各々のフォントに対して,最低でも一つの XLFD を割り当てる必要が あります. fonts.dir を手動で書くこともできますが,'mkttfdir.pl' という perl ス クリプトを用いることもできます.mkttfdir.pl については,次のURI を参 照してください: http://www.io.com/~kazushi/xtt/ X-TT をインストールすることによって,fonts.dir のエントリに TrueType フォントを使用する行があった場合,その行の文法が「TTCap」と名付けら れた機能を利用するために拡張されます.この拡張によって,たとえば文字 の変形というような,TrueType フォント固有の属性を,ユーザが自由にコ ントロールすることができるようになっています.TTCap については,この マニュアルのセクション 3 を参照してください. 以下に,XLFD の各要素の意味と書き方を示します. 2.2.1 FOUNDRY と FAMILY フィールド ---------------------------------- - FOUNDRY: フォント供給者名 - FAMILY: フォント種類名 この二つのフィールドは,自由に設定することができます. ネットスケープナビゲータを使用している人は,フォント選択ダイアログ を開いた時に, "FOUNDRY(FAMILY)" と表記されることを覚えておきましょう. 2.2.2 WEIGHT フィールド ----------------------- - WEIGHT: 文字の見た目の太さを示しています."normal" か "bold" と 書くのが適当です. このフィールドは,フォントの見た目と一致するように設定するべきでしょう. 2.2.3 SLANT フィールド ---------------------- - SLANT: 文字の見た目の傾きを表します.次のいずれかが使用可能です: 'r' : 直立フォント 'i' : イタリックフォント 'ri': 逆イタリックフォント 'o' : 「傾いた」フォント 'ro': 「逆に傾いた」フォント 2.2.4 WIDTH フィールド ---------------------- - WIDTH: フォントの幅を表します. 通常は "normal" と書きます. 2.2.5 SPACING フィールド ------------------------ - SPACING: フォントの「スペーシング」を表します.次のいずれかが 使用可能です: p: プロポーショナル m: モノスペース c: 定スペース X-TT では,これらのフィールドの記述によって,文字の バウンディングボックスの計算法が変化します: "p": メトリックが要求された時,まじめに計算した値を返 す.フォントのメトリックが文字によって異なる場合, プロポーショナルフォントとなります.バウンディン グボックスの最大/最小値も,全フォントを走査して決 定されます. "m": それぞれのフォントの境界は,p と同様に計算します が,バウンディングボックスの最大/最小値はフォント ファイルに記述されている値を用います. "c": 全てのメトリックを,フォントファイルのヘッダに書 かれている値で固定にします. なお,CJK フォント(中国,日本,韓国の漢字フォント)に対して "p" の 指定を行うと,フォントの初期化時に非常にものすごく信じられないほど 時間がかかります.これは,xfs で "m" を使っても同じです.逆に, ISO8859 のような少ないキャラクタセットに対しては,"p" は適している でしょう. TTCap を用いることにより,もっと柔軟に設定することができます. 2.2.6 CHARSET フィールド ------------------------ - CHARSET: キャラクタセットを表します. キャラクタセットの例: jisx0201.1976-0 jisx0208.1983-0 iso8859-1 unicode-0 iso10646-0 フォントによってはいくつかのキャラクタセットを利用することができ, このフィールドによってどのキャラクタセットを用いるかを選択できます. いくつかのキャラクタセットで取り出すことのできる例: フォントそのものの とりだすことのできる エンコーディング エンコーディング ---------------------------------------------- ascii ascii. iso8859-1 ascii, iso8859-1. Shift-JIS ascii, iso8859-1(*2), jisx0201, jisx0208. Unicode ascii, iso8859-1, unicode, jisx0201, jisx0208, and others... ---- (*2) 厳密にいうと,これは正しくありません.JISX0201 は ISO8859-1 の 多くの部分を含んでいますが,完全に等しいわけではありません. X-TT では便宜上,これをエラーとして扱いません. 2.3 fonts.dir の例 ------------------ fonts.dir の例を以下に示します: ======================================================================== 8 dfhsmw3.ttc -dynalab-mincho-medium-r-normal--0-0-0-0-c-0-jisx0208.1983-0 dfhsmw9.ttc -dynalab-mincho-bold-r-normal--0-0-0-0-c-0-jisx0208.1983-0 dfhsgw3.ttc -dynalab-gothic-medium-r-normal--0-0-0-0-c-0-jisx0208.1983-0 dfhsgw9.ttc -dynalab-gothic-bold-r-normal--0-0-0-0-c-0-jisx0208.1983-0 arial.ttf -ms-arial-medium-r-normal--0-0-0-0-p-0-iso8859-1 ariali.ttf -ms-arial-medium-i-normal--0-0-0-0-p-0-iso8859-1 arialbd.ttf -ms-arial-bold-r-normal--0-0-0-0-p-0-iso8859-1 arialbi.ttf -ms-arial-bold-i-normal--0-0-0-0-p-0-iso8859-1 ======================================================================== ここで,先頭の「8」は,このファイルに 8 個の XLFD エントリがあること を示しています. 'dfhs*.ttc' という名前のフォントファイルは,ダイナラブ・ジャパン(株) が販売しているフォントです."dfhsm" と "dfhsg" はそれぞれ,「ダイナ ラブフォント平成明朝」と「ダイナラブフォント平成ゴシック」に対応して おり,その後の "w3" と "w9" はフォントのウェイトを表しています. "arial.ttf","ariali.ttf","arialbd.ttf","arialbi.ttf" は,Windows 付属のarial フォントです. 2.4 フォントパスの設定(X サーバで X-TT を使う場合) -------------------------------------------------- フォントパスの設定を行うには,X が起動している状態で xset コマンドを 使います. 例: ======================================================================== % xset fp+ /usr/X11R6/lib/fonts/ttf % xset fp rehash ======================================================================== 詳しくは xset(1) を参照のこと. XFree86 が提供しているサーバの場合,/etc/XF86Config で指定することも できます.詳しくは XF86Config(4/5) を参照のこと. XF86Config の例: ======================================================================== Section "Files" ..... FontPath "/usr/X11R6/lib/X11/fonts/ttf" ..... EndSection ======================================================================== 2.5 xfs から X-TT を使用する ---------------------------- xfs から X-TT を使用する場合,xfs の config ファイルを適切に設定する 必要があります.config ファイルの書き方は,xfs(1) を参照してください. config ファイルの例: ======================================================================== ....... catalogue = /usr/X11R6/lib/X11/fonts/ttf deferglyphs = 16 port = 7100 ....... ======================================================================== つぎに,xfs を起動します: ======================================================================== % xfs -config /usr/X11R6/lib/X11/fs/config ======================================================================== そして,次のように, X サーバのオプションとして -deferglyphs 16 が指 定されるようにして X ウィンドウシステムを起動します: ======================================================================== % startx -- -deferglyphs 16 ======================================================================== ここでポイントとなるのが,deferglyphs の指定です.この指定が無い場合, X サーバはフォントを開いた時に全てのグリフを取得しようとします.とこ ろが,CJK のようなたくさんの文字を含んだフォントの場合,これではフォ ントを開くたびに非常に長い時間待たされることになり,実用になりません. そこで deferglyphs に 16 を指定すると,CJK のような 16bit でエンコー ディングされたフォントは,各文字が必要になった時にその文字を取りに行 くようになります.文字数が多いフォントを使用する場合は,X サーバのオ プションと xfs の config のオプションで deferglyph の指定をするのを 忘れてはいけません. 最後に,次のようにして xset を使用してフォントパスの指定を行います: ======================================================================== % xset fp+ tcp/localhost:7100 % xset fp rehash ======================================================================== ----------- 3. TTCap ----------- TTCap を用いることによって,ユーザは TrueType フォントの見た目を制御 することができます. 3.1 TTCap の文法 ---------------- TTCap のために,fonts.dir ファイルの文法が拡張されています. 次の例を見てみましょう: ----------------- ai=0.4:sb=0.6:cyberbit.ttf -cyberbit-fixed-medium-i-normal--0-0-0-0-c-jisx0201.1976-0 ----------------- ここで,先頭の "ai=0.4:sb=0.6:" の部分が,X-TT で拡張された部分です. この例では,Cyberbit のフォント "cyberbit.ttf" の ANK パートを固定幅 で使用し,イタリックに変形して使用しています. オプションの指定は,"KEYWORD=VALUE" の形のペアをコロンで分離した形で フォントのファイル名の前に指定することによって行います. 3.2 TTCap のオプション ---------------------- 次のようなオプションが指定できます: * fn=整数 -- このオプションにより,TrueType コレクション(*.ttc) ファイルの face 番号を指定します. (fn : Face Number) * ai=実数 -- このオプションによって,文字の傾きを指定することができます. (ai : Auto Italic) * fp=[yn] -- このオプションは,フォントメトリックの計算法を指定します.この オプションを 'y' に指定した場合,フォントメトリックの計算をプロ ポーショナルフォントと同様に計算します.対して,'n' に設定した 場合,固定幅フォントとして計算されます.このオプションの指定が 無かった場合,XLFD の SPACING フィールドによって制御されます. このオプションは 'fs' によって時代遅れなものとなっているため, 使用するべきではありません. (fp : Force Proportional) * fs=[pmc] -- このオプションは,フォントメトリックの計算法を指定します.この オプションに指定された文字が XLFD の SPACING フィールドに指定さ れたものと見なされて,フォントのメトリックが計算されます.この オプションが無かった場合,XLFD の SPACING フィールドによってメ トリックは制御されます. (fs : Force Spacing) * bw=実数 -- このオプションは,フォントのバウンディングボックスの幅の倍率を 指定します.このオプションは,固定幅フォントのみで使用できます. 次の 'sw' オプションと同時に指定された場合,'sw' によってスケー リングされた後にこのオプションが適用されます.このオプションが 存在しない場合,倍率は 1 となります. (bw : Bounding box Width) * sw=実数 -- このオプションは,フォントの文字幅の倍率を指定します.このオプ ションが存在しない場合,倍率は 1 となります. (sw : Scale Width) * ds=[yn] -- ダブルストライク(二重打ち)効果を使用したい場合,このオプション を y にします.以前は疑似ボールド効果と呼んでいましたが,不適切 な名称であるため変更しました.以前のオプション ab もそのまま使 えますが,ds を用いることをお勧めします. (ds : Double Strike) * vl=[yn] (Ver1.1pl01 以降で使用可能) -- y を指定すると,プロポーショナルおよびモノスペースフォントにお いて,ヘッダ情報に基づく,非常に怠惰な方法でメトリック計算を行 います. これは,MS P Gothic などのように,日本語フォントなど文字数の多 いプロポーショナルフォントを実用的な速度で使いたい場合に有効で す(逆に,厳密な方法だと実用にならないでしょう). メトリック計算を厳密に行わないのでレスポンスはかなり向上します が,逆にメトリック情報はいい加減なものになるでしょう(しかしな がら,この種のいい加減さが問題になるケースは非常に少ないでしょ う).このような理由から,英文字フォントのように文字数が少ない フォントでは指定しないのが好ましいです. このオプションが存在しない場合,メトリック計算は,アウトライン データに基づいた方法で厳密に行われます. (vl : Very Lazy metrics calculation method) * eo=文字列 -- コード変換モジュールに渡すオプションを指定します.指定できる文 字列は,コード変換モジュールに依ります. (eo : Encoding Options) * hi=[yn] -- このオプションを n に設定すると,FreeType レンダラはフォントの ヒント情報を使わなくなります. (hi : HInting) * cr=範囲[,範囲,...] -- フォントのコードの範囲を制限します.それぞれの範囲は, 数 数-数 -数 数- という書式で指定できます.範囲をコンマで区切ることにより 断片的な範囲を指定することもできますが,実際には断片には ならずにそれぞれの範囲を覆い尽くすような一つの範囲を指定 したのと等価に扱われます.それぞれの数には八進数,十進数, 十六進数を指定することができ,八進数は 0 を前置することに より,また,十六進数は 0x を前置することにより十進数と区 別します. このオプションは,特に Unicode フォントの一部のグリフのみ を使いたい場合などに有効です.XLFD の範囲指定とは異なり, クライアントからは,最初から指定された範囲内のグリフしか 持たないフォントとして見えます. (cr : Code Range) * eb=[yn] -- これを y にすると,埋め込みビットマップを使うよう試みます. ただし,フォントが埋め込みビットマップデータを持っている必要が あります. また,vl=y と同時に指定することもできますが,アウトライン部とは バウンディングボックスの値がしばしば異なっているため,bs オプシ ョンで補正する必要があるかもしれません.そのため,eb と vl の 併用はお勧めできません. (eb : Embedded Bitmap) * bs=実数 -- vl と eb が共に y の時にこのオプションが指定されていると, 埋め込みビットマップが用いられた際にバウンディングボックスの幅を この値でスケーリングします.アウトラインから作成されたグリフには 影響しません. これらのオプションは,全て大文字小文字の区別はありません. ------------------------- 4. ビットマップキャッシュ ------------------------- X-TT Ver1.3 からは,ビットマップキャッシュのメモリリソースが制限可能 なりました. 4.1 用語 -------- * バランス値 メモリプールの配分を表します.X-TT のビットマップキャッシュは, ビットマップのサイズによって 2 種類のメモリプールを使い分けます. 全体でキャッシュのサイズは決まっていて,両者のメモリプールの間で 配分されます.バランス値は両者のメモリ配分の比率を表しています. * ハイマーク値 これは,キャッシュで使われるメモリの上限を表します. * ローマーク値 これは,キャッシュの下限を表しています.キャッシュがあふれた場合, メモリ使用量がこの値になるまでキャッシュの中身が捨てられます. 4.2 キャッシュの調整 -------------------- 4.2.1 X server -------------- X サーバの場合,font cache extension を組み込んだ xset で 調整することができます.以下のような書式です: xset fc himark lowmark balance ハイマーク値とローマーク値はキロバイト単位,バランスはパーセント 単位で指定します.たとえば,ハイマーク値を 1MByte, ローマーク値を 500kByte, バランス値を 50% にするのなら, xset fc 1000 500 50 と指定します. 4.2.2 font server ----------------- フォントサーバでは,コンフィグファイルで指定することができます. 以下のような指定が追加されています: cache-hi-mark= cache-low-mark= cache-balance= ハイマーク値とローマーク値はキロバイト単位,バランスはパーセント 単位で指定します.たとえば,ハイマーク値を 1MByte, ローマーク値を 500kByte, バランス値を 50% にするのなら, cache-hi-mark = 1000 cache-low-mark= 500 cache-balance = 50 と指定します. $Id: INSTALL.mix,v 1.6 1999/10/08 03:22:57 tshiozak Exp $ # end of file