XdeTT 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 にします.

webmaster Shigeyuki Yamashita (@). This server is sickhack.homelinux.org.

LastModified: 2004-09-29T06:10:18+0900