GROFF_FONT(5) | File Formats Manual | GROFF_FONT(5) |
groff_font - groff のデバイスとフォントを記述するファイルの書式
groff のフォントの書式は ditroff のフォントの書式に対し、 ほぼスーパセットになっています。 ditroff のフォントの書式とは異なり、 関連したバイナリ書式はありません。 name というデバイス用のフォントファイルは devname というディレクトリに納められます。 ファイルには 2 つの種類があります: それは DESC と呼ばれるデバイス記述ファイルと、各フォント F ごとに存在する F と呼ばれるフォントファイルです。 これらはテキストファイルであり、関連したバイナリ書式の ファイルはありません。
DESC ファイルは以下の形式の行を含むことができます:
res, unitwidth, fonts, sizes の行は必須です。 他のコマンドは troff には無視されますが、デバイスに関する任意の情報を DESC ファイルに 入れておくためにポストプロセッサにより使われるかもしれません。
次に示すのは廃れたキーワードであり、 groff が認識するものの完全に無視するもののリストです: spare1, spare2, biggestfont 。
フォントファイルには 2 つのセクションがあります。 最初のセクションは空白で区切られた単語が並んだ一連の行からなります。 行の最初の単語はキーで、以降の単語はそのキーに対する値となります。
他のコマンドは troff には無視されますが、フォントに関する任意の情報をフォントファイルに 入れておくためにポストプロセッサにより使われるかも知れません。
最初のセクションには # 文字ではじまるコメントを、行末まで入れることができます。
次のセクションには 1 つか 2 つのサブセクションが含まれます。 サブセクション charset は必須で、サブセクション kernpairs はオプションです。 これらのサブセクションは任意の順番で書くことができます。 各サブセクションは、サブセクション名のみからなる行から始まります。
単語 charset で charset サブセクションを開始します。 charset 行には一連の行が続きます。 各行は 1 文字の情報を与えます。 行は空白かタブにより区切られたいくつかのフィールドから成ります。 書式は
で、 name は文字を識別します: name が単一の文字 c ならば、それは groff の入力文字 c を表します。 \c という形式で c が単一の文字なら、groff の入力文字 \c を表します。それ以外は groff の入力文字 \[name] を表します (2 文字の xx だとすると、 \(xx として入力されます)。 groff は 8 ビット文字に対応していますが、いくつかのユーティリティでは 8 ビット文字を扱うのが困難です。 このような理由から、文字コードが n である単一の文字と等価な charn という表記法が存在します。 例えば、 char163 は ISO Latin-1 で英国ポンド記号を表す文字コード 163 の文字と等価です。 --- という name は特別で、その文字に名前が無いことを示します。 そのような文字は troff 中でエスケープシーケンス \N によってのみ使われます。
type フィールドは文字の種類を示します:
code フィールドはポストプロセッサが文字を印字するために使うコードを示します。 \N というエスケープシーケンスを用いたこのコードを使って、groff に文字を 入力することもできます。 code はどんな整数でもかまいません。 0 から始まると、8 進数として扱われ、 0x や 0X で始まると 16 進数として扱われます。
entity_name フィールドは、グリフを識別する ASCII 文字列を与えます。 このグリフは、後処理を行うプログラムが文字の印刷に使用します。 このフィールドは省略可能であり、 html ドライバが文字集合をエンコード可能とするために導入されました。 例えば、文字 `\[Po]' は、html 4.0 では `£' と表現されます。
行の code フィールド以降と、`--' の後ろは、すべて無視されます。
metrics フィールドの形式はこのようになります:
サブフィールド間には空白を入れてはいけません。 サブフィールドが存在しない場合は 0 として扱われます。 サブフィールドは全て 10 進数の整数で指定されます。 対応するバイナリフォーマットが存在しないので、 ditroff のようにこれらの値を char 型変数の範囲に合わせるという必要はありません。 サブフィールド width では文字の幅を指定します。 サブフィールド height では文字の高さを指定します (上が正)。 文字がベースラインよりも上にいかない場合、負の高さを持つとするのではなく 高さが 0 であるとします。 サブフィールド depth では文字の深さを指定します。これはベースラインから文字の一番下までの 長さです (下が正)。 文字がベースラインより下に出ていない場合、負の深さを持つとするのではなく 深さが 0 であるとします。 サブフィールド italic_correction では直後にローマンフォントの文字が続く時に、文字の後に加えられる空白の 量を指定します。 サブフィールド left_italic_correction では直前にローマンフォントの文字がある時に、文字の前に加えられる空白の 量を指定します。 サブフィールド subscript_correction では添字 (subscript) を加える際に文字の後に加えられる空白の量を 指定します。 これはイタリック補正 (上記の italic_correction) よりは少なくなければ なりません。
charset セクション内では、以下のような書式の行も可能です
これは name が前の行で言及した文字の別名であることを表します。
kernpairs セクションは kernpairs という単語から始まります。このセクションは以下のような書式の 行からなります:
文字 c1 が文字 c2 の次に現れる時には、それらの間の空白に n を加えることを意味します。 kernpairs セクションのほとんどのエントリは n に負の値を持つことになります。
groff_out(5), troff(1).
6 August 2001 | Groff Version 1.17.2 |