groff_font - ファイルのフォーマットと規約の説明 - Linux コマンド集 一覧表
- 名称
- 解説
- 関連ファイル
- 関連項目
名称
groff_font - groff のデバイスとフォントを記述するファイルの書式
解説
groff のフォントの書式は ditroff のフォントの書式に対し、
ほぼスーパセットになっています。
ditroff のフォントの書式とは異なり、
関連したバイナリ書式はありません。
name
というデバイス用のフォントファイルは
dev
name
というディレクトリに納められます。
ファイルには 2 つの種類があります: それは
DESC
と呼ばれるデバイス記述ファイルと、各フォント
F
ごとに存在する
F
と呼ばれるフォントファイルです。
これらはテキストファイルであり、関連したバイナリ書式の
ファイルはありません。
DESC ファイルの書式
DESC ファイルは以下の形式の行を含むことができます:
-
res
n
-
1 インチあたりのマシン単位は
n
です。
-
hor
n
-
水平解像度は
n
マシン単位です。
-
vert
n
-
垂直解像度は
n
マシン単位です。
-
sizescale
n
-
ポイント数への倍率を指定します。デフォルトの値は 1 です。1
スケールドポイント
は、1
ポイント/
n
と等しくなります。
unitwidth
コマンドと
sizes
コマンドへの引数はスケールドポイントで指定されます。
-
unitwidth
n
-
ポイントサイズが
n
スケールドポイントのフォントに対して、
フォントファイル毎の数量をマシン単位で与えます。
-
prepro
program
-
program
をプリプロセッサとして呼び出します。
-
postpro
program
-
program
をポストプロセッサとして使用します。
-
tcommand
-
ポストプロセッサが
t
と
u
の出力コマンドを扱えることを表します。
-
sizes
s1
s2...sn
0
-
デバイスが
s1
,
s2
,...
sn
スケールドポイントのフォントを持つことを表します。
大きさのリストは
0
で終らなければなりません。
各
s
i
は大きさの範囲
m
-
n
でも指定できます。
リストは複数行にわたることも可能です。
-
styles
S1
S2...Sm
-
先頭
m
個のフォント位置が、スタイル
S1...Sm
に関連づけられます。
-
fonts
n
F1
F2
F3...Fn
-
フォント
F1...Fn
がフォント位置
m
+1,...,
m
+
n
にマウントされます(
m
はスタイル数)。
このコマンドは複数行にわたることができます。
0
というフォント名を指定すると、
対応するフォント位置にはフォントはマウントされません。
-
family
fam
-
デフォルトのフォントファミリは
fam
です。
-
use_charnames_in_special
-
このコマンドは、スペシャルコマンドにおいては、
指定した文字を troff がエンコードすべきであることを指定します。
-
pass_filenames
-
troff がドライバに対して、処理すべきソースファイル名を伝えるリクエストです。
これは、次に示す別の tcommand にて実現されます:
F
filename
。
-
charset
-
この行とファイル内の以下に続く行はすべて無視されます。
これは下位互換性のために許されています。
-
print
program
-
program
を、印刷用のスプーラプログラムとして使用します。
これが存在しない場合、
-l
と
-L
の
groff
オプションが無視されます。
res, unitwidth, fonts, sizes の行は必須です。
他のコマンドは
troff
には無視されますが、デバイスに関する任意の情報を DESC ファイルに
入れておくためにポストプロセッサにより使われるかもしれません。
次に示すのは廃れたキーワードであり、
groff
が認識するものの完全に無視するもののリストです:
spare1
,
spare2
,
biggestfont
。
フォントファイルの書式
フォントファイルには 2 つのセクションがあります。
最初のセクションは空白で区切られた単語が並んだ一連の行からなります。
行の最初の単語はキーで、以降の単語はそのキーに対する値となります。
-
name
F
-
フォントの名前は
F
です。
-
spacewidth
n
-
空白の通常の幅は
n
です。
-
slant
n
-
フォントの文字が
n
度傾斜していることを表します (正の値は進行方向を意味します)。
-
ligatures
lig1
lig2...lign
[
0
]
-
文字
lig1
,
lig2
,...,
lign
は合字 (リガチャ; ligature) です。合字には
ff
,
fi
,
fl
,
ffi
,
ffl
が使用可能です。
下位互換性のために、合字のリストは
0
で終ってもかまいません。
合字のリストは複数行にわたってはいけません。
-
special
-
フォントは
スペシャル
です。これは現在のフォントに存在しない文字が要求された場合、
マウントされた全てのスペシャルフォントが検索されることを示しています。
他のコマンドは
troff
には無視されますが、フォントに関する任意の情報をフォントファイルに
入れておくためにポストプロセッサにより使われるかも知れません。
最初のセクションには
#
文字ではじまるコメントを、行末まで入れることができます。
次のセクションには 1 つか 2 つのサブセクションが含まれます。
サブセクション
charset
は必須で、サブセクション
kernpairs
はオプションです。
これらのサブセクションは任意の順番で書くことができます。
各サブセクションは、サブセクション名のみからなる行から始まります。
単語
charset
で charset サブセクションを開始します。
charset
行には一連の行が続きます。
各行は 1 文字の情報を与えます。
行は空白かタブにより区切られたいくつかのフィールドから成ります。
書式は
name metrics type code
[
entity_name
][
--
comment
]
で、
name
は文字を識別します:
name
が単一の文字
c
ならば、それは groff の入力文字
c
を表します。
\
c
という形式で c が単一の文字なら、groff の入力文字
\
c
を表します。それ以外は groff の入力文字
\[
name
]
を表します (2 文字の
xx
だとすると、
\(
xx
として入力されます)。
groff は 8 ビット文字に対応していますが、いくつかのユーティリティでは
8 ビット文字を扱うのが困難です。
このような理由から、文字コードが
n
である単一の文字と等価な
char
n
という表記法が存在します。
例えば、
char163
は ISO Latin-1 で英国ポンド記号を表す文字コード 163 の文字と等価です。
---
という name は特別で、その文字に名前が無いことを示します。
そのような文字は
troff
中でエスケープシーケンス
\N
によってのみ使われます。
type
フィールドは文字の種類を示します:
-
1
-
は descender (ベースラインより下にはみ出した部分) を持つ
文字であることを表します。例えば p があてはまります。
-
2
-
は ascender (x の高さより上に出る部分) を持つ文字であることを表します。
例えば b があてはまります。
-
3
-
は ascender と descender の両方を持つ文字であることを表します。
例えば ( があてはまります。
code
フィールドはポストプロセッサが文字を印字するために使うコードを示します。
\N
というエスケープシーケンスを用いたこのコードを使って、groff に文字を
入力することもできます。
code はどんな整数でもかまいません。
0
から始まると、8 進数として扱われ、
0x
や
0X
で始まると 16 進数として扱われます。
entity_name
フィールドは、グリフを識別する ASCII 文字列を与えます。
このグリフは、後処理を行うプログラムが文字の印刷に使用します。
このフィールドは省略可能であり、
html ドライバが文字集合をエンコード可能とするために導入されました。
例えば、文字 `\[Po]' は、html 4.0 では `£' と表現されます。
行の code フィールド以降と、`--' の後ろは、すべて無視されます。
metrics
フィールドの形式はこのようになります:
width
[,
height
[,
depth
[,
italic_correction
[,
left_italic_correction [, subscript_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/dev
name
/DESC
デバイス
name
用のデバイス記述ファイル
-
/usr/share/groff_font/dev
name
/
F
-
デバイス
name
のフォント
F
用のフォントファイル
関連項目
- Linux Tips 関連記事
- Linux Tips(目次)
- Linux ディストリビューション一覧
- rpm のファイル名にあるi386とかi686とは
- 自分のマシンの情報を調べる
- cron の設定
- ssh の root ログインを禁止する
- ssh を、ユーザ、IPでアクセス制限
- 鍵交換方式によるssh接続
- 鍵交換方式によるssh接続( windowsから )
- 複数ファイル内の文字列を置換して上書き保存する
- あるグループをイニシャルグループとするユーザー一覧出力
- 複数ファイルのファイル名を一括変換する
- 連番ファイルをコマンド一発で作成する
- 中身がランダムなファイルを任意のサイズで作成する
- Linux ユーザーアカウントをロック・アンロックする