2. XLFD

XFree86 では,論理フォント名 (XLFD [1]) というモノでフォントを管理しています.長くて複雑ですが,覚えておくと多少幸せになれます.

2.1. XLFD の書式

書式
-Foundry-Family-Weight-Slant-SetWidth-AddStyle-PixelSize-PointSize-ResolutionX-ResolutionY-Spacing-AverageWidth-Registry-Encoding
Unscalable フォントの例
-misc-fixed-medium-r-normal--12-120-75-75-c-60-iso8859-1
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 にします.

2.2. XLFD の各フィールドの意味

Foundry

提供者名.フォント制作会社 (Adobe や Dynalab , Ricoh 等) や,作者がつけたブランド名 (kochi や shinonome , efont 等) ,或いは,使用者がテキト〜につけたり :-p します.

Family

フォントの名前. gothic , times 等.

名前については,テキト〜につけても構いませんし, TrueType フォントの場合,ftdump を使って PostScript name: 行を摘出し,それを基につけても良いかと思います. (ftdumpは freetype-utils というパッケージに収録されています)

たとえば,

$ for f in *.tt[cf];
do psname=`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 というファイルに書き出せます.[2]

Weight

文字の太さ (重さ?) .

  • thin (ultralight)

  • extralight

  • light

  • book (semilight,demilight)

  • medium

  • demibold (semibold)

  • bold

  • heavy (extrabold)

  • black (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
となっています.[3]

ResolutionX

フォントの X 軸方向の解像度.7275100 が使われることが多いです. TrueType フォントなどのスケーラブルフォントでは通常ここを 0 にしておきます.

ResolutionY

フォントの Y 軸方向の解像度.以下 ResolutionX と同様.

Spacing

文字送り.

  • p プロポーショナル (可変)

  • m モノスペース (一定)

  • c 文字セル

があります.

AverageWidth

平均文字幅. TrueType フォントなどのスケーラブルフォントでは通常ここを 0 にしておきます.*.bdf*.pcf などビットマップフォントでは PointSize と同値 [4] か, PointSize の半分 [5] にします.

Registry

登録組織,或いは標準名

Encoding

エンコーディング.上の Registry とペアで単に encoding と称される場合もあります.フォントのキャラクターコード範囲を指定します.

たとえば,jisx0208.1990-0 であれば, JIS X 0208-1990 の範囲の文字となります.[6]



[1] X Logical Font Description

[2] ただし,フォントファイルに PostScript name のデータがある場合に限ります.

[3] resolution は デバイスの 解像度 dpi

[4] 日本語マルチバイト文字などのいわゆる全角文字の場合

[5] ASCII , JIS X 0201 カナ などいわゆる半角文字の場合

[6] 間違っていることを曰ってるかも知れませんので,お気づきの方はツッコミいれてください.;-p