gremlin ファイル用 groff プリプロセッサ
grn
は、
groff
の入力中に
gremlin
図を入れるためのプリプロセッサです。
grn
は、
と
の間にはさまれた入力行のみを処理し、標準出力に書き出します。
処理される行には
grn
コマンド (後述) が含まれていなくてはなりません。
これらのコマンドは、
gremlin
ファイルを要求し、そのファイル中の図を変換し
troff
の入力ストリームに置きます。
リクエストは、続けて C, L, R をとることができ、
gremlin
図全体を中央揃え、左揃え、あるいは右揃えにすることができます
(デフォルトは中央揃えです)。
file
が指定されていない場合は、標準入力が読み込まれます。
図の最後では、ページ内での位置は
gremlin
図の下になります。
grn
エントリが
ではなく
で終わっている場合は、ページ内での位置は図の左上になります。
現在のところ、-me マクロパッケージだけが
をサポートしていることに注意してください。
次のコマンドラインオプションを理解します:
-T dev
-M dir
dir
を、
gremlin
ファイルのデフォルト検索パスの前に追加します。
デフォルトパスは (順番に)、現在のディレクトリ、ホームディレクトリ、
/usr/share/tmac ,
/usr/share/tmac ,
/usr/share/tmac
(訳注: 重複していますが原文通りです) です。
-F dir
dir
中からサブディレクトリ
dev name
( name
はデバイス名です) を探し、通常の
/usr/share/groff_font
の前に読み込まれる
DESC
ファイルを探します。
-C
-v
grn
コマンドを持っています。
コマンドは、1 つの文字列か、空白で区切られた 2 つの文字列で
できています。最初の文字列はコマンドであり、2 番目の文字列は
オペランドです。
コマンドは大文字小文字どちらでも良く、1 文字までに縮めることもできます。
図の環境に影響を与えるコマンド (以降において
default
の前にリストされているもの) は、現在の図に対して
のみ効果を持ちます。
次の図が始まると、環境はデフォルトで再初期化されます。
コマンドは次のとおりです:
1 N
N
ポイントに設定します。
デフォルトは 12 (16, 24, 36) です。
roman f
f
(フォント名あるいは番号) に設定します。
デフォルトは R (I, B, S) です。
l f
f
(フォント名あるいは番号)
に設定します。
コマンド
stipple
は、`st' までになら省略できます
(
special
との混乱を避けるためです)。
スティプルフォントにはデフォルトは
ありません
(default コマンドで設定されていない限りは)。
スティプルフォントを指定しないまま、ポリゴンを含んだ
gremlin
図を取り込むことは不正です。
x N
narrow N
N
倍に設定します。
デフォルトは 1.0 (3.0, 5.0) です。これは、0.15 ポイント
(0.45 ポイントおよび 0.75 ポイント) に対応しています。
太さを表す値が 0 のときは、使用できる中で最も小さな値を
選択します。
負の値は、現在のポイントサイズに比例した、線の太さの指定になります。
pointscale <off/on>
off
以外のオペランドは何であっても
テキストのスケーリングを有効にします。
default
troff
入力ファイルの先頭でグローバルパラメータを設定するメカニズムとして
使われることを意図していますが、デフォルト設定を再設定したいときは
いつでも使うことができます。
width N
N
インチにします。
このオプションは、同じ図中に存在する他のスケールファクタに優先します。
` width
0 '
は、無視されます。
height N
N
インチにします。
`width' と `height' 両方が指定されているときには、
図をより小さくする制約が図のスケールを決定します。
height
および
width
コマンドは、
default
コマンドでは保存はされません。
しかしながら、
ポイントサイズスケーリングが使用されている場合には、
これに対する影響はあります。
file name
gremlin
ファイル
name
から図を取得します。
file
コマンドが 2 つ与えられた場合、2 つめのコマンドが最初のコマンドに優先します。
name
が存在しない場合は、エラーメッセージが報告され、
行から処理が再開されます。
grn
はプリプロセッサですので、現在のインデントやポイントサイズ、
余白や番号レジスタなどについては分かりません。
そのため、
リクエストと
リクエストの間には
troff
への入力を置くことができません。
しかしながら、
gremlin
テキストは現在
troff
で処理されます。そのため、
gremlin
テキスト行にある
troff
への入力行はどれも正しいものになります (ただし、
行頭に `.' ディレクティブを置くことは禁止されています)。
そのため、
gremlin
ファイル中に
定義済みのデリミタ (例えば
$$ )
で括った
eqn
表記を埋め込むことによって、
gremlin
図の中に等式を書くことができます。
grn
を他のプリプロセッサと一緒に使う場合、
tbl
が仕事をしすぎないようにするために、
grn ,
pic ,
ideal
よりも前に
tbl
を呼び出すのが最も良いやり方です。
eqn
は必ず最後に起動させるべきです。
図はひとつのエンティティとみなされますが、
ページの末尾を越えてしまった場合、
troff
は図を分割しようとしてしまいます。
-me マクロ中で図を `keeps' 中に置くことで
適切な位置決めができるようになります。
grn
は
troff
の番号レジスタ
g1
から
g9
までを使い、そして
リクエストを処理する前にレジスタ
g1
および
g2
に
gremlin
図の幅および高さ (デバイス単位) を設定します
(これらのマクロを書き直したいと思っている人たちのために
そうしています)。
gremlin
ファイル形式には 2 つの異なった形式があります。
AED
グラフィック端末用バージョン由来のオリジナルの形式と
SUN
および
X11
バージョンの形式です。
負の座標を用いた参照点を容認する
SUN / X11
バージョンの拡張機能は、
AED
バージョンとは互換性が
ありません
。
gremlin
ファイルに負の座標が含まれていない限りは、どちらの形式のファイルも
gremlin
あるいは
grn
で読み込むことができます。
他に
SUN / X11
の形式が異なる点は、図のオブジェクトに対して番号を
使うのではなく、名前 (例えば、POLYGON, CURVE) を使うことです。
同じ図を表すファイルを、それぞれの形式について 表 1 に示します。
gremlin
ファイルの 1 行目は、
文字列
gremlinfile
( AED
バージョン) あるいは
sungremlinfile
( SUN / X11 バージョン)
のどちらかです。
bu
ファイルの 2 行目には点の位置を決めるための、方向、
x
および
y
の値が含まれており、各値は空白で区切られています。
方向は、
0
あるいは
1
をとり、
SUN / X11
バージョンでは無視されます。
0
は、
gremlin
図が水平方向の形式で表示されることを意味しています
(描画領域の幅が実際の図の高さよりも広くとられ、
上部にメニューがつきます)。
1
は、
gremlin
図が垂直方向の形式で表示されることを意味しています
(描画領域の高さが実際の図の幅よりも高くとられ、
左側にメニューがつきます)。
x
および
y
は浮動小数値であり、このファイルが他のファイルに読み込まれる
際に、位置決め点を与えるために使用されます。
この行の要素は、それほど重要なものではありません。
``1 0.00 0.00'' という値を推奨します。
bu
このファイルの残りの部分は 0 個以上の要素を
記述したものになっています。
最後の要素を記述した後には、文字列 ``-1'' を持った行がきます。
grn
を使っている場合は、
ここでのフォントはただ開始時のフォントになるだけです:
テキスト文字列には、
``\''
や
``\\d''
のような、フォントを変更し得る (他のこともする)
フォーマット用シーケンスを含んでも構いません。
テキストでは、サイズフィールドは 1 から 4 までの
10 進数です。
これは、テキストが描画されるフォントサイズを選択します。
ポリゴンに対しては、このサイズフィールドはポリゴン内部を
埋めるために使われるスティプル番号と解釈されます。
この番号は、表示する際にスティプルフォントに置き換える
インデックスとして使われます。
bu
各要素の最終行には、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
コードを変更したい場合には同じ形式を用いるのが
おそらくは良い考えでしょう。
/usr/share/groff_font/dev name /DESC