X で TrueTypeFont を使おう
XLFD
XFree86 では,論理フォント名 (XLFD) というモノでフォントを管理しています.長くて複雑ですが,覚えておくと多少幸せになれます.というか fonts.dir をいじる際に必要になりますので覚えておきましょう.
- XLFD の書式
-
-Foundry-Family-Weight-Slant-SetWidth-AddStyle-PixelSize-PointSize-ResolutionX-ResolutionY-Spacing-AverageWidth-Registry-Encoding
- Foundry
-
提供者名.フォント制作会社 (Adobe や Dynalab , Ricoh 等) や,作者がつけたブランド名 (kochi や shinonome , efont 等) ,或いは,使用者がテキト〜につけたり :-p します.
- Family
-
フォントの名前. gothic とか times とか.
名前については,テキト〜につけても構いませんし, TrueType フォントの場合, ftdump を使って PostScript name: 行を摘出し,それを基につけても良いかと思います.
たとえば,
$ for f in *.tt[cf]; do psname=`/usr/bin/ftdump $f | grep '^PostScript.*$' | sed 's/PostScript name: \([^-]*\)-\([^-]*\)-.*/\1-\2/'` \ echo "$f $psname" >> font_psname.list ; done
とやればカレントディレクトリに放り込んである *.ttc ,*.ttf ファイルの ファイル名と PostScript name の Weight のフィールドまでの部分の対応一覧が font_psname.list というファイルに書き出せます. (ただし,フォントファイルに PostScript name のデータがある場合に限ります.)
- Weight
-
文字の太さ (重さ?) .
- ultralight
- extralight
- light
- semilight (demilight)
- medium
- semibold (demibold)
- bold
- extrabold
- ultrabold
などが使われます.上から順に下に向かって太く (重く?) なります.
- Slant
-
文字の傾き.
- Roman (正字体 r)
- Italic (イタリック体 i)
- Oblique (斜体 o)
- Reversed Italic (逆傾きのイタリック体 ri)
- Reversed Oblique (逆傾きの斜体 ro)
が使われます.
- SetWidth
-
文字幅. condenced や normal , extended 等
- AddStyle
-
付加情報.普通,ここは空のままが多いです.たまに ja とか sans とかいう付加スタイル情報が書かれます.
- PixelSize
-
ピクセルでのサイズです.単純に 12 とあれば 12pixel です. TrueType フォントなどのスケーラブルフォントでは,ここを 0 にしておきます.
- PointSize
-
ポイントサイズとありますが,数字は deci point の値を書きます. TrueType フォントなどのスケーラブルフォントではここも 0 にしておきます.
伝統的に (謎) 1point (1pt) は 1/72inch で, pixel と point の関係は,
pixel = point * resolution / 72 point = pixel * 72 / resolution
となっています. (resolution は デバイスの 解像度 dpi)
- ResolutionX
-
フォントの X 軸方向の解像度. 72 , 75 , 100 が使われることが多いです. TrueType フォントなどのスケーラブルフォントでは通常ここを 0 にしておきます.
- ResolutionY
-
フォントの Y 軸方向の解像度.以下 ResolutionX と同様.
- Spacing
-
文字送り.
- p プロポーショナル (可変)
- m モノスペース (一定)
- c 文字セル
があります.
- AverageWidth
-
平均文字幅. TrueType フォントなどのスケーラブルフォントでは通常ここを 0 にしておきます.*.bdf ,*.pcf などビットマップフォントでは PointSize と同値 (日本語マルチバイト文字などのいわゆる全角文字の場合) か,或いは PointSize の半分 (ASCII などいわゆる半角文字の場合) にします.
- Registry
-
登録組織,或いは標準名
- Encoding
-
エンコーディング.上の Registry とペアで単に encoding と称される場合もあります.フォントのキャラクターコード範囲を指定します.
たとえば, jisx0208.1990-0 であれば, JIS X 0208-1990 の範囲の文字となります. (間違っていることをのたまってるかも知れませんので,お気づきの方はツッコミいれてください.;-p)
- Unscalable フォントの例
-
-misc-fixed-medium-r-normal--12-120-75-75-c-60-iso8859-1 -misc-fixed-medium-r-normal--14-140-75-75-c-140-jisx0208.1983-0
- Scalable フォント (TrueType , Type1 等) の例
-
-dynalab-dfhsgothic-medium-r-normal--0-0-0-0-c-0-jisx0208.1990-0
TrueType フォントの場合, pixel size, point size, resolution X, resolution Y, average width の部分は通常 0 にします.