grap コマンド

目的

pic コマンドで処理するグラフをタイプセットします。

構文

grap [ -l ] [ -T Name ] [ ] [ File ... ]

説明

grap コマンドは、grap 言語入力ファイルを処理し、pic コマンドに対する入力を生成します。grap 言語とは、グラフのタイプ・セット用の言語です。典型的なコマンド・ラインは次のとおりです。

grap  File  |  pic  |  troff  |  Typesetter

グラフは、.G1.G2 troff のコマンド要求で囲みます。これらの要求で囲まれたデータは、自動的に指定されるティック・マークを使ってスケーリングされ、プロットされます。コマンドにはフレーム変更コマンド、ラベル追加コマンド、デフォルトの目盛りを指定変更するコマンド、プロット・スタイル変更コマンド、座標範囲と変形を定義するコマンド、ファイルからのデータを指定するコマンドがあります。さらに、grap コマンドは、pic コマンドと同じループ、条件付き処理、マクロ処理を提供します。

Grap 言語ファイルには grap プログラムが定義されています。grap プログラムは次の構文で書かれています。

.G1
grap Statement
grap Statement
grap Statement
.G2

パラメーター

項目 説明
File grap コマンドが処理して、pic コマンドへ入力する grap 言語ファイル (grap プログラム) を指定します。

grap ステートメントの要約

以下に、grap プログラムの作成時に使用できる grap ステートメントをまとめます。

項目 説明
frame グラフを囲むフレームを定義します。構文は次のとおりです。
frame [ht Expression] [wid Expression] [[Side] LineDescription]

属性は次のように定義されます。

  • Side: top, bot, left, right
  • LineDescription: solid, invis, dotted [Expression], dashed [Expression]

高さのデフォルト値は 2 インチ、幅のデフォルト値は 3 インチ、側面のデフォルト値は実線です。side を省略した場合は、linedesc がフレーム全体に適用されます。

項目 説明
label グラフの指定した側にラベルを付けます。構文は次のとおりです。
label Side StringList ... Shift

属性は次のように定義されます。

  • Shift: left, right, up, down expression
  • StringList: str ... rjust, ljust, above, below [size (+)Expression] ...
  • String: "..."
項目 説明
coord 指定変更するシステムを定義します。構文は次のとおりです。

coord [Name] [x Expression,Expression] [y  Expression,Expression] [[log x] [log y] [log log]]
ticks フレームの一方の側にティック・マークを付けます。構文は次のとおりです。
ticks side [[in] [out] [Expression]] [Shift] [TickLocations]

属性は次のように定義されます。

  • Shift: left, right, up, down Expression
  • TickLocations: at [Name] Expression [String], Expression [String], ... from [Name] Expression to Expression [by [Operation] Expression] String

ティック・マークが指定されていない場合は、自動的に付加されます。ticks off を指定した場合は、ティック・マークが自動的に付加されるのを抑止します。

項目 説明
grid 指定した側面に沿って (つまり、垂直に) 格子線を作成します。構文は次のとおりです。
grid Side [LineDescription] [Shift] [TickLocations]

格子にはティック・マークと同様の方法でラベルが付けられます。

項目 説明
plot ポイントにテキストを配置します。構文は次のとおりです。
StartList at Point plot Expression [Start] at Point

属性は次のように定義されます。

  • StringList: str ... rjust, ljust, above, below [size +)Expression] ...
  • Point: [Name] Expression Expression
項目 説明
line ある点から他の点に直線または矢印を引きます。構文は次のとおりです。
{line | arrow} from Point to Point [LineDescription]

属性 linedesc は次のように定義されます。

  • Point: [Name] Expression Expression
  • LineDescription: solid, invis, dotted [Expression], dashed Expression]
項目 説明
circle 円を描きます。構文は次のとおりです。
circle at Point [radius Expression]

半径の単位はインチで、デフォルトのサイズは small です。

項目 説明
draw 行のシーケンスを定義します。構文は次のとおりです。

draw [Name] at Point[LineDescription]
next シーケンスを続行します。構文は次のとおりです。
next [Name] at Point [LineDescription]
new 新しいシーケンスを開始します。構文は次のとおりです。
new [Name] at Point [LineDescription]
numberlist 任意の数値群から直線を作成します。数値は点 x, y1, y2 などのように扱われます。つまり、x の値を持つ一点にプロットされます。構文は次のとおりです。
number x, y1, y2 ...
for ループを作成します。構文は次のとおりです。
for Variable {from | =} Expression to Expression ¥
[by [arithmetic or multiplicative operator] Expression] do X Anything X

X は文字列中にはない 1 つの文字です。X が左中括弧 { の場合は、文字列の中に対になる中括弧が含まれてその後ろに右中括弧 } が続く場合もあります。Variable が第 1 の Expression から第 2 の Expression までの値を継続して読み取るとき、テキスト Anything は反復されます。

if 条件評価を作成します。構文は次のとおりです。

if Expression then X Anything X [else X Anything X]
define 優先割り込みコントローラー (PIC) と同じマクロ・プロセッサーを提供します。構文は次のとおりです。
define MacroName X Anything X
copy 現行ファイルの内容を含め、ファイルをコピーします。 構文は次のとおりです。
copy Filename
copy-thru 次のように、マクロを介してファイルをコピーします。
copy Filename thru MacroName

各数値または引用される文字列は、引数として扱われます。コピーは、ファイルの終わりか次の .G2 まで続行されます。untilString 節を任意選択すると、最初のフィールドが String になっている行がきたとき、コピーは中止されます。

次のステートメントでは、マクロを介してその後ろの行がコピーされます。

copy thru MacroName

どの場合にも、次のように名前でなくインラインでマクロを指定できます。

copy thru x MacroBody x
sh テキストを UNIX シェルに渡します。構文は次のとおりです。
sh x Anything x

変数 Anything はマクロを探してスキャンされます。pid マクロは組み込み式です。プロセス識別番号からなる文字列であり、固有のファイル名を生成するために使用できます。

pic テキストを pic に渡し、pic を除去します。 変数とマクロは評価されません。(数字ではなく) ピリオドで始まる行は、troff コマンドであるという想定のもとに、文字どおりの内容が渡されます。
graph Picname という名前の新しいグラフを定義し、すべての座標系をリセットします。構文は次のとおりです。
graph Picname [pic-text]

graph プログラムで graph コマンドを使用する場合、.G1 の後ろのステートメントは graph コマンドにしなくてはなりません。次の例にあるように、pic-text を使用して、以前のグラフの Frames を参照することにより、前のグラフを基準にしてこのグラフの位置を決めることができます。

graph First
 ...
graph Second with .Frames.w at First.Frame.e + [0.1,0]

pic-text 内のマクロと式は評価されません。Picnames は、pic 構文に従って大文字で始まらなければなりません。

印刷 grap が入力を処理しているときに、stderr に書き出します。このステートメントはデバッグに役立ちます。構文は次のとおりです。

print [Expression | String]

grap 言語規則

次の規則が適用されます。

  • コメントの先頭には、 # (ポンド記号) が付きます。コメントは行の終わりで自動的に終了します。
  • 2 行以上に渡るステートメントでは、改行した行頭すべてに ¥ (円記号) を付けなければなりません。
  • 1 行に複数のステートメントがある場合は、 セミコロンで区切らなければなりません。
  • grap 言語はブランク行を無視します。
  • bulletplusboxstardottimeshtickvticksquare、および delta は、事前定義済み文字列です。
  • grap で使用できる組み込み関数には、 log (基数 10)、exp (基数 10)、 intsincosatan2sqrtminmax、および rand が定義されています。

フラグ

項目 説明
-l grap コマンドがマクロ定義の /usr/lib/dwb/grap.defines ライブラリー・ファイルを探すのを停止させます。
-TName Name 変数の値を grap コマンドの出力デバイスとして指定します。デフォルト値は、-Tibm3816 です。
- - (二重ダッシュ) フラグの終わりを示します。

ファイル

項目 説明
/usr/lib/dwb/grap.defines 標準プロット文字の定義が入っています。