groff_font − groff のデバイスとフォントを記述するファイルの書式 |
groff のフォントの書式は ditroff のフォントの書式に対し、ほぼスーパセッ トになっています。 name というデバイス用のフォントファイルは、 devname というディレクトリに納められます。ファイルには 2 つの種類があります: そ れは DESC と呼ばれるデバイス記述ファイルと、各フォント F ごとに存在する F と呼ばれるフォントファイルです。これらはテキストファイルで、ditroff のフォントの書式とは異なり、対応したバイナリフォーマットはありません。 |
DESC ファイルの書式 |
DESC ファイルは、以下の形式の行を含んでいます: 後から出てきた項目は、そ れ以前の値を上書きします。 |
charset |
こ の行とその後に続くファイル内の行はすべて無視されます。これは 下位互換性のために残されています。 |
family fam |
デフォルトのフォントファミリは fam です。 |
fonts n F1 F2 F3...Fn |
フォント F1...Fn がフォント位置 m+1,...,m+n にマウント さ れ ま す。ここで m はスタイル数です。このコマンドは複数行にわたって続 けることができます。 0 というフォント名を指定すると、対応 す る フォント位置にはフォントはマウントされません。 |
hor n |
水平解像度は n マシン単位です。 |
paperheight n |
出 力メディアの、マシン単位での物理的な垂直方向の長さです。これ は troff 自体ではなく、出力デバイスによって使用されます。この項 目 の 使用はお勧めしません。代わりに papersize を使用してくださ い。 |
papersize string |
紙サイズを選択します。 string に有効な値は、ISO の紙タイプで あ る A0-A7, B0-B7, C0-C7, D0-D7, DL と、 US で使われている紙タイ プである letter, legal, tabloid, ledger, statement, executive, com10, monarch です。 string が定義済みの紙タイプであった場合、 大文字小文字は重要ではありません。別の指定方法とし て、 string に は ファイル名 (例えば ‘/etc/papersize’) を指定できます。この ファイルをオープンできると、 groff は最初の行を読み取り、上記の 紙 サ イ ズ を 検 査 し ま す。最後の方法としては、 string には length,width (コンマの前後に空白は入れられません) の書式で、 自 由に紙サイズを指定できます。 length と width のどちらにも、単位 がついてなければなりません。有効な値は、インチを表す ’i’、セ ン チ メー トルを表す ’c’、ポイントを表す ’p’、パイカを表す ’P’ で す。例: 12c,235p 。数字から始まる引数は、常に自由な紙サイズ指定 の書式として扱われます。 papersize は、出力メディアの垂直方向と 水平方向の両方の長さを設定します。 |
2 つ以上の引数を指定することもできます。 groff は左から右へ走 査 し、最初の有効な指定を使用します。 |
paperwidth n |
出 力メディアの、マシン単位での物理的な水平方向の長さです。この 項目の使用はお勧めしません。代わりに papersize を使用してくださ い。 こ れは troff 自体ではなく、出力デバイスによって使用されま す。 |
pass_filenames |
troff がドライバに対して、処理しているソースファイル名を伝え る よ う に し ま す。 こ れ は、別の tcommand にて実現されます: F filename 。 |
postpro program |
program を後処理プログラムとして使用します。 |
prepro program |
program をプリプロセッサとして呼び出します。 |
print program |
program を、印刷用のスプーラプログラムとして使用します。省略 さ れた場合、 groff の −l と −L オプションは無視されます。 |
res n |
1 インチあたりのマシン単位は n です。 |
sizes s1 s2...sn 0 |
デ バイスが、 s1, s2,...sn スケールドポイントのフォントを持つこ とを表します。大きさのリストは 0 で終らなければなりませ ん。 各 si は、大きさの範囲 m−n と指定することもできます。リストは複数 行にわたって続けることも可能です。 |
sizescale n |
ポイント数への倍率を指定します。デフォルトの値は 1 です。 1 ス ケー ル ドポイントは、1 ポイント/n と等しくなります。 unitwidth コマンドと sizes コマンドへの引数は、スケールドポイントで指定さ れます。 |
styles S1 S2...Sm |
先 頭 m 個のフォント位置が、スタイル S1...Sm に関連づけられま す。 |
tcommand |
後処理プログラムが t と u の出力コマンドを扱えることを 表 し ま す。 |
unitwidth n |
ポイントサイズが n スケールドポイントのフォントに対して、フォン トファイル中の数量をマシン単位で与えます。 |
use_charnames_in_special |
このコマンドは、特殊コマンドにおいて、名前の付いている 文 字 を troff がエンコードすべきであることを指定します。 |
vert n |
垂直解像度は n マシン単位です。 |
res, unitwidth, fonts, sizes の行は必須です。 DESC ファイル中のすべての コマンドが、 troff 自体で使用されるわけではありません。いくつか の キー ワードは (付加的なものでさえも)、後処理プログラムによって、デバイスに関 する任意の情報を保持しておくために使用されます。 次に示すのは旧式のキーワードであり、 groff が認識はしますが、完全に無視 するもののリストです: spare1, spare2, biggestfont 。 |
フォントファイルの書式 |
フォントファイルには 2 つのセクションがあります。最初のセクションは、空 白で区切られた単語が並んだ一連の行からなります。行の最初の単 語 は キー で、以降の単語はそのキーに対する値となります。 |
ligatures lig1 lig2...lign [0] |
文字 lig1, lig2, ..., lign は合字 (リガチャ; ligature) です。合 字には ff, fi, fl, ffi, ffl が使用可能です。下位互換性 の た め に、合字のリストは 0 で終ってもかまいません。合字のリストは複数 行にわたってはいけません。 |
name F |
フォントの名前は F です。 |
slant n |
フォントの文字が n 度傾斜していることを表します (正の値は進行方 向を意味します)。 |
spacewidth n |
空白の通常の幅は n です。 |
special |
フォントは 特殊です。これは、現在のフォントに存在しない文字が要 求された場合、マウントされているすべての特殊フォントが検索さ れ ることを示しています。 |
他のコマンドは troff には無視されますが、後処理プログラムによって、フォ ントに関する任意の情報をフォントファイルに保持しておくために使用され る かもしれません。 最初のセクションには、 # 文字で始まり行末まで続くコメントを入れることが できます。 2 番目のセクションには 1 つか 2 つのサブセクショ ン が 含 ま れ ま す。 charset サブセクションは必須で、 kernpairs サブセクションはオプションで す。これらのサブセクションは任意の順番で書くことができます。各サブセ ク ションは、サブセクション名のみからなる行から始まります。 単語 charset によって charset サブセクションが開始されます。 charset 行 には一連の行が続きます。各行は 1 文字の情報を提供します。行は空白かタブ により区切られたいくつかのフィールドからなります。書式は |
name metrics type code [entity_name] [-- comment] |
で、 name は文字を識別します: name が単一の文字 c ならば、それは groff の入力文字 c を表します。 \c という形式で c が単一の文字なら、特殊文 字 \[c] を表します。それ以外は groff の入力文字 \[name] を表します。これが 厳密に 2 文字の xx ならば、 \(xx として入力されます。単一の特殊文字は、 \c のように利用できないことに注意してください。唯一の例外は ‘\-’ で、こ れは ‘\[-]’ と同一です。 −−− という name は特別で、その文字に名前が無い こ と を表します。そのような文字は troff 中でエスケープシーケンス \N に よってのみ使われます。 groff は 8 ビット文字に対応していますが、いくつかのユーティリティでは 8 ビット文字を扱うのが困難です。このような理由から、文字コードが n である 単一の文字と等価な charn という表記法が存在します。例えば、 char163 は 文 字コード 163 の文字と等価であり、これは ISO Latin-1 で英国ポンド記号 を表します。 type フィールドは文字の種類を示します: |
1 |
は descender (ベースラインより下にはみ出した部分) を持つ文字 であることを表します。例えば p があてはまります。 |
||
2 |
は ascender (x の高さより上に出る部分) を持つ文字であること を表します。例えば b があてはまります。 |
||
3 |
は ascender と descender の両方を持つ文字であることを表し ま す。例えば ( があてはまります。 |
code フィールドは、後処理プログラムが文字を印字するために使うコードを示 します。 \N というエスケープシーケンスにより、このコードを使って groff に 文字を入力することもできます。 code はどんな整数でもかまいません。 0 から始まると 8 進数として扱われ、 0x や 0X で始まると 16 進数として扱わ れ ます。しかし、エスケープシーケンス \N は 10 進整数しか受け付けないこ とに注意してください。 entity_name フィールドは、グリフを識別する ASCII 文字列を与えます。この グ リフは、後処理を行うプログラムが文字の印刷に使用します。このフィール ドは省略可能であり、 html ドライバが文字集合をエンコード可能とするた め に導入されました。例えば、文字 ‘\[Po]’ は、html 4.0 では ‘£’ と表 現されます。 行の code フィールド以降と、‘--’ の後ろは、すべて無視されます。 metrics フィールドの形式は次のようになります (これは 1 行に書きますが、 ここでは読みやすさのために行を分けています): |
width[,height[,depth[,italic-correction |
サ ブフィールド間には空白を入れてはいけません。サブフィールドが存在しな い場合は 0 として扱われます。サブフィールドは全て 10 進数の整数で指定さ れます。対応するバイナリフォーマットが存在しないので、 ditroff のように これらの値を char 型変数の範囲に合わせる必要はありません。サブフィー ル ド width では文字の幅を指定します。サブフィールド height では文字の高さ を指定します (上が正)。文字がベースラインよりも上にいかない場合、負の高 さ を持つのではなく高さが 0 であるとします。サブフィールド depth では文 字の深さを指定します。これはベースラインから文字の一番下までの長さで す ( 下が正)。文字がベースラインより下に出ていない場合、負の深さを持つので はなく深さが 0 であるとします。サブフィールド italic-correction で は、 直 後にローマンフォントの文字が続く時に、文字の後に加えられる空白の量を 指定します。サブフィールド left-italic-correction では、直前にローマ ン フォ ントの文字がある時に、文字の前に加えられる空白の量を指定します。サ ブフィールド subscript-correction では、添字 (subscript) を加える際に文 字 の 後 に加えられる空白の量を指定します。これはイタリック補正 (上記の italic-correction) よりは少なくなければなりません。 charset セクション内では、以下のような書式の行も可能です |
name " |
これは、 name が前の行で言及した文字の別名であることを表します。 kernpairs セクションは kernpairs という単語から始まります。このセクショ ンは以下のような書式の行からなります: |
c1 c2 n |
文字 c1 が文字 c2 の次に現れる時には、それらの間の空白に n を加えること を意味します。 kernpairs セクションのほとんどのエントリは n に負の値 を 持つことになります。 |
/usr/share/groff_font/devname/DESC |
デバイス name 用のデバイス記述ファイル |
/usr/share/groff_font/devname/F |
デバイス name のフォント F 用のフォントファイル |
groff_out(5), troff(1) |