grn - gremlin ファイル用 groff
プリプロセッサ
grn [
-Cv ] [
-Tdev ] [
-Mdir ] [
-Fdir ] [
file... ]
コマンドラインオプションとパラメータの間に空白を含めることが可能です。
grn は、
groff
の入力中に
gremlin
図を入れるためのプリプロセッサです。
grn は、
.GS と
.GE
の間にはさまれた入力行のみを処理し、標準出力に書き出します。
処理される行には
grn
コマンド (後述)
が含まれていなくてはなりません。
これらのコマンドは、
gremlin
ファイルを要求し、そのファイル中の図を変換し
troff
の入力ストリームに置きます。
.GS
リクエストは、続けて
C, L, R
をとることができ、
gremlin
図全体を中央揃え、左揃え、あるいは右揃えにすることができます
(デフォルトは中央揃えです)。
file
が指定されていない場合は、標準入力が読み込まれます。
図の最後では、ページ内での位置は
gremlin
図の下になります。
grn エントリが
.GE
ではなく
.GF
で終わっている場合は、ページ内での位置は図の左上になります。
現在のところ、-me
マクロパッケージだけが
.GS,
.GE,
.GF
をサポートしていることに注意してください。
次のコマンドラインオプションを理解します:
-
-Tdev
- プリンタ dev
用の出力を用意します。
デフォルトのデバイスは
ps
です。受け付け可能なデバイスについては
groff(1)
を参照してください。
-
-Mdir
-
dir を、 gremlin
ファイルのデフォルト検索パスの前に追加します。
デフォルトパスは
(順番に)、現在のディレクトリ、ホームディレクトリ、
/usr/share/tmac, /usr/share/tmac, /usr/share/tmac
(訳注:
重複していますが原文通りです)
です。
-
-Fdir
-
dir
中からサブディレクトリ
devname (name
はデバイス名です)
を探し、通常の
/usr/share/groff_font
の前に読み込まれる
DESC
ファイルを探します。
- -C
- たとえ空白や改行以外の文字が後に続いていても
.GS および .GE
(およびこれに相応する
.GF) を認識します。
- -v
- バージョン番号を表示します。
.GS と
.GE
にはさまれた入力行はそれぞれ
1 つずつ
grn
コマンドを持っています。
コマンドは、1
つの文字列か、空白で区切られた
2 つの文字列で
できています。最初の文字列はコマンドであり、2
番目の文字列は
オペランドです。
コマンドは大文字小文字どちらでも良く、1
文字までに縮めることもできます。
図の環境に影響を与えるコマンド
(以降において
default
の前にリストされているもの)
は、現在の図に対して
のみ効果を持ちます。
次の図が始まると、環境はデフォルトで再初期化されます。
コマンドは次のとおりです:
-
1 N
-
-
2 N
-
-
3 N
-
-
4 N
-
gremlin
のテキストサイズ番号
1 (2, 3 または 4) を N
ポイントに設定します。
デフォルトは 12 (16, 24, 36)
です。
-
roman f
-
-
italics f
-
-
bold f
-
-
special f
- ローマン体
(イタリック体、ボールド体、あるいは特殊文字)
の フォントを troff
フォント f
(フォント名あるいは番号)
に設定します。
デフォルトは R (I, B, S)
です。
-
l f
-
-
stipple f
- スティプル (stipple)
フォントを troff
のスティプルフォント
f
(フォント名あるいは番号)
に設定します。
コマンド stipple は、`st'
までになら省略できます
( special
との混乱を避けるためです)。
スティプルフォントにはデフォルトは
ありません (default
コマンドで設定されていない限りは)。
スティプルフォントを指定しないまま、ポリゴンを含んだ
gremlin
図を取り込むことは不正です。
-
x N
-
-
scale N
- (デフォルトの拡大処理に加えて)
gremlin 図を N
倍に拡大します。ここで
N は 0
より大きな浮動小数値です。
コマンド scale は、`sc'
までになら省略できます。
-
narrow N
-
-
medium N
-
-
thick N
- 細線
(中間の太さの線、および太線)
の太さを 0.15 ポイント
(この値は、コンパイル時に変更できます)
の N
倍に設定します。
デフォルトは 1.0 (3.0, 5.0)
です。これは、0.15
ポイント (0.45
ポイントおよび 0.75
ポイント)
に対応しています。
太さを表す値が 0
のときは、使用できる中で最も小さな値を
選択します。
負の値は、現在のポイントサイズに比例した、線の太さの指定になります。
-
pointscale <off/on>
- テキストを図に合うようにスケーリングします。
gremlin
テキストは、通常、図のスケールファクタによらず、
コマンド
1, 2, 3, あるいは 4
で指定されるポイントサイズで表示されます。
pointscale
を設定すると、ポイントサイズが図に合わせて変更されます
(もちろん、 troff
の制限内で)。 off
以外のオペランドは何であっても
テキストのスケーリングを有効にします。
- default
- デフォルトの図の環境を、現在の図の環境で、再設定します。
このオプションは、
troff
入力ファイルの先頭でグローバルパラメータを設定するメカニズムとして
使われることを意図していますが、デフォルト設定を再設定したいときは
いつでも使うことができます。
-
width N
- 図を強制的に幅
N インチにします。
このオプションは、同じ図中に存在する他のスケールファクタに優先します。
`width 0'
は、無視されます。
-
height N
- 他のスケールファクタに優先して、図を強制的に高さ
N インチにします。
`width' と `height'
両方が指定されているときには、
図をより小さくする制約が図のスケールを決定します。
height および width
コマンドは、 default
コマンドでは保存はされません。
しかしながら、
ポイントサイズスケーリングが使用されている場合には、
これに対する影響はあります。
-
file name
- カレントディレクトリ
(あるいはライブラリディレクトリ。前述の
-M
オプションを参照してください)
に置かれた gremlin
ファイル name
から図を取得します。
file コマンドが 2
つ与えられた場合、2
つめのコマンドが最初のコマンドに優先します。
name
が存在しない場合は、エラーメッセージが報告され、
.GE
行から処理が再開されます。
grn
はプリプロセッサですので、現在のインデントやポイントサイズ、
余白や番号レジスタなどについては分かりません。
そのため、
.GS
リクエストと
.GE
リクエストの間には
troff
への入力を置くことができません。
しかしながら、
gremlin
テキストは現在
troff
で処理されます。そのため、
gremlin
テキスト行にある
troff
への入力行はどれも正しいものになります
(ただし、 行頭に `.'
ディレクティブを置くことは禁止されています)。
そのため、
gremlin
ファイル中に
定義済みのデリミタ
(例えば
$$) で括った
eqn
表記を埋め込むことによって、
gremlin
図の中に等式を書くことができます。
grn
を他のプリプロセッサと一緒に使う場合、
tbl
が仕事をしすぎないようにするために、
grn,
pic,
ideal よりも前に
tbl
を呼び出すのが最も良いやり方です。
eqn
は必ず最後に起動させるべきです。
図はひとつのエンティティとみなされますが、
ページの末尾を越えてしまった場合、
troff
は図を分割しようとしてしまいます。
-me マクロ中で図を `keeps'
中に置くことで
適切な位置決めができるようになります。
grn は
troff
の番号レジスタ
g1
から
g9
までを使い、そして
.GS
リクエストを処理する前にレジスタ
g1 および
g2 に
gremlin
図の幅および高さ
(デバイス単位)
を設定します
(これらのマクロを書き直したいと思っている人たちのために
そうしています)。
gremlin ファイル形式には
2
つの異なった形式があります。
AED
グラフィック端末用バージョン由来のオリジナルの形式と
SUN および
X11
バージョンの形式です。
負の座標を用いた参照点を容認する
SUN/
X11
バージョンの拡張機能は、
AED
バージョンとは互換性が
ありません 。
gremlin
ファイルに負の座標が含まれていない限りは、どちらの形式のファイルも
gremlin あるいは
grn
で読み込むことができます。
他に
SUN/
X11
の形式が異なる点は、図のオブジェクトに対して番号を
使うのではなく、名前
(例えば、POLYGON, CURVE)
を使うことです。
同じ図を表すファイルを、それぞれの形式について
表 1 に示します。
sungremlinfile |
|
gremlinfile |
0 240.00 128.00 |
|
0 240.00 128.00 |
CENTCENT |
|
2 |
240.00 128.00 |
|
240.00 128.00 |
185.00 120.00 |
|
185.00 120.00 |
240.00 120.00 |
|
240.00 120.00 |
296.00 120.00 |
|
296.00 120.00 |
* |
|
-1.00 -1.00 |
2 3 |
|
2 3 |
10 A Triangle |
|
10 A Triangle |
POLYGON |
|
6 |
224.00 416.00 |
|
224.00 416.00 |
96.00 160.00 |
|
96.00 160.00 |
384.00 160.00 |
|
384.00 160.00 |
* |
|
-1.00 -1.00 |
5 1 |
|
5 1 |
0 |
|
0 |
-1 |
|
-1 |
表 1. ファイル例 |
|
|
- •
- それぞれの gremlin
ファイルの 1
行目は、 文字列
gremlinfile (AED バージョン)
あるいは sungremlinfile
(SUN/X11バージョン)
のどちらかです。
- •
- ファイルの 2
行目には点の位置を決めるための、方向、
x および y
の値が含まれており、各値は空白で区切られています。
方向は、 0 あるいは
1 をとり、 SUN/X11
バージョンでは無視されます。
0 は、 gremlin
図が水平方向の形式で表示されることを意味しています
(描画領域の幅が実際の図の高さよりも広くとられ、
上部にメニューがつきます)。
1 は、 gremlin
図が垂直方向の形式で表示されることを意味しています
(描画領域の高さが実際の図の幅よりも高くとられ、
左側にメニューがつきます)。
x および y
は浮動小数値であり、このファイルが他のファイルに読み込まれる
際に、位置決め点を与えるために使用されます。
この行の要素は、それほど重要なものではありません。
``1 0.00 0.00''
という値を推奨します。
- •
- このファイルの残りの部分は
0 個以上の要素を
記述したものになっています。
最後の要素を記述した後には、文字列
``-1''
を持った行がきます。
- •
- 各要素の最初の行には、要素タイプを与える
10 進数 (AED
バージョンの場合)
あるいは要素の ASCII
文字での名称 (SUN/X11
バージョンの場合) が
1 つ
含まれています。 表
2
を参照してください。
gremlin
ファイルフォーマット
−
オブジェクトタイプの仕様 |
|
|
AED 番号 |
SUN/X11 名称 |
解説 |
0 |
BOTLEFT |
左下揃えのテキスト |
1 |
BOTRIGHT |
右下揃えのテキスト |
2 |
CENTCENT |
中央揃えのテキスト |
3 |
VECTOR |
ベクトル |
4 |
ARC |
円弧 |
5 |
CURVE |
曲線 |
6 |
POLYGON |
ポリゴン |
10 |
TOPLEFT |
左上揃えのテキスト |
11 |
TOPCENT |
中央上揃えのテキスト |
12 |
TOPRIGHT |
右上揃えのテキスト |
13 |
CENTLEFT |
左中央揃えのテキスト |
14 |
CENTRIGHT |
右中央揃えのテキスト |
15 |
BOTCENT |
中央下揃えのテキスト |
表 2. |
|
|
gremlin
ファイルにおける要素タイプの仕様 |
|
|
- •
- オブジェクトタイプの後には、可変数の行がきます。
各行は、オブジェクトの要素を表示するのに使われる点を指定します。
各行には、x
座標および y
座標が浮動小数値で入っており、
それぞれは空白文字で区切られています。
点のリストは、文字列
``-1.0 -1.0'' を含んだ行 (AED
バージョンの場合)
あるいはアスタリスク
``*'' 1 個 (SUN/X11
バージョンの場合)
で終わります。
- •
- 点の後には、10
進数 2
個を含んだ行がきます。これは、
要素に対するブラシとサイズを与えます。
ブラシは、オブジェクトが描かれる際のスタイルを決定します。
ベクトル、円弧、および曲線については、ブラシの値として
6
個の正当な値があります:
1 − |
|
細い点線 |
2 − |
|
細い一点鎖線 |
3 − |
|
太い直線 |
4 − |
|
細い破線 |
5 − |
|
細い直線 |
6 − |
|
通常の直線 |
ポリゴンに対しては、さらに
0
も正当な値となります。
この値は、境界線の見えないポリゴンを指定するものです。
テキストに対しては、ブラシは次のようにフォントを選択します:
1 − |
|
ローマン体 (groff での R
フォント) |
2 − |
|
イタリック体 (groff
での I フォント) |
3 − |
|
ボールド体 (groff での B
フォント) |
4 − |
|
特殊文字 (groff での S
フォント) |
図を groff
に通すために grn
を使っている場合は、
ここでのフォントはただ開始時のフォントになるだけです:
テキスト文字列には、
``\fI'' や ``\d''
のような、フォントを変更し得る
(他のこともする)
フォーマット用シーケンスを含んでも構いません。
テキストでは、サイズフィールドは
1 から 4 までの 10
進数です。
これは、テキストが描画されるフォントサイズを選択します。
ポリゴンに対しては、このサイズフィールドはポリゴン内部を
埋めるために使われるスティプル番号と解釈されます。
この番号は、表示する際にスティプルフォントに置き換える
インデックスとして使われます。
- •
- 各要素の最終行には、10
進数と文字列が空白文字
1 つで
区切られて入っています。
10
進数は、文字列中の文字数をカウントしたものです。
この情報はテキスト要素に対してのみ使われ、
テキスト文字列が情報の中に含まれています。
テキスト内部には空白文字が入っていても良いです。
円弧、曲線、およびベクトルについては、それぞれの要素が対応する行には
文字列 ``0''
が入っています。
gremlin は
AED
用に設計され、その座標系は
AED
の座標空間を反映したものになっています。
垂直方向の図に対しては、x
値は 116 から 511
までをとり、 y 値は 0
から 483
までをとります。
水平方向の図に対しては、
x 値は 0 から 511
までをとり、 y 値は 0
から 367
までをとります。
この範囲に必ずしもこだわることはありませんが、
少なくともこの近傍にとどめておけば最良の結果が
得られるでしょう。
さらに、点のリストは
(-1, -1)
で終わりますので、
負の座標を使うことはできません。
gremlin 図は、``%f1.2''
という形式を使って座標を出力します。
ですので、
grn
コードを変更したい場合には同じ形式を用いるのが
おそらくは良い考えでしょう。
SUN/
X11 バージョンの
gremlin
図では、オブジェクト生成に用いられる座標の範囲に
制限はもうありません。
しかし、負の座標を持ったファイルでは、
AED
上で表示させようとすると問題が
発生するでしょう
。
-
/usr/share/groff_font/devname/DESC
- デバイス name
用のデバイス定義ファイル
gremlin(1),
groff(1),
pic(1),
ideal(1)
David Slattengren と Barry Roitblat
がオリジナルの Berkeley 版
grn を書きました。
Daniel Senderowicz と Werner Lemberg が
groff
用に書き直しました。