単なる式 expr は属性として受理可能です; これは dir expr と同じであり、 dir は現在の方向です。 例えば
- line 2i
は 2 インチの長さの線を現在の方向へ描きます。
ピクチャの最大の幅と高さは変数 maxpswid, maxpsht により指定されます。 初期値は 8.5 および 11 です。
数を表すのに科学技術的表記が可能です。 例えば
x = 5e-2
テキストの属性は組み合わせることが可能です。 例えば
"foo" above ljust
は正しいです。 ブロックが検査される深さには制限は有りません。 例えば
[A: [B: [C: box ]]] with .A.B.C.sw at 1,2
circle at last [].A.B.C
は受理可能です。 円弧はコンパスポイントを持ち、円弧が部分となるような円から決定されます。
円と円弧は点線や破線で書くことが出来ます。 TeX モードではスプラインを点線や破線で書くことが出来ます。
ボックスの角を丸くできます。 rad 属性は、角を構成する 1/4 円の半径を指定します。 rad, diam 属性が与えられない場合、 boxrad が半径として使用されます。 初期値では boxrad は値 0 です。 角の丸いボックスは点線や破線で書くことが出来ます。
.PS 行は 2 番目の引数としてピクチャの最大の高さを指定できます。 幅として 0 が指定された場合には、 ピクチャのスケーリングファクタの計算においては幅は無視されます。 GNU pic は常に水平方向と垂直方向ともに同じ縮尺で スケーリングしていることに注意して下さい。 これは 高さが指定された場合に水平方向と垂直方向を同じ縮尺でスケーリングしない DWB 2.0 pic と異なります。
テキストオブジェクトはそれぞれに関連づけられた見えないボックスを持っています。 テキストオブジェクトのコンパスポイントはこのボックスによって決定されます。 オブジェクトに関連づけられた暗示的な動きもこのボックスによって決定されます。 このボックスの寸法は width, height 属性から定まります; もし width 属性が与えられていない場合は幅は textwid となります; もし height 属性が与えられていない場合は高さは textht となります。 初期値では textwid, textht は値 0 です。
クオートされされたテキストが使用される場合、
- sprintf("format", arg,...)
という形式の式を使用可能です; これは引数を format に従い整形したものを出力します。 format は printf(3) に記述されている文字列であり、 与えられる数及び引数に適切なものである必要が有ります。 e, f, g, % フォーマット文字のみ使用可能です。
オブジェクトを描画する時に使用する線の太さは linethick 変数で制御可能です。 これは線の太さをポイントで指定します。 負の値はデフォルトの太さを使用することを意味します: TeX 出力モードでは、8 ミリインチを使用することを意味します; TeX 出力モードで -c オプション使用時には、線の太さには .ps 行で指定されるものを使用ことを意味します; troff 出力モードでは、ポイントサイズに比例する太さを使用することを意味します。 値 0 ではデバイスがサポートするもっとも細い線で描画します。 初期値は -1 です。 また、 thick[ness] 属性が有ります。 例えば
は 1.5 ポイントの太さの円を描画します。 線の太さは scale 変数の値の影響も .PS 行における高さの影響も受けません。
ボックス (角の丸いボックスを含みます)、 円、楕円は塗りつぶすことが可能であり、 属性 fill[ed] で指定します。 これは値が 0 から 1 の式をオプションで引数として取ります; 0 は白で塗りつぶし、1 は黒で塗りつぶし、その間の値では 適切な灰色で塗りつぶします。 1 より大きい値も使用可能です: この場合、現在のテキスト及び線に使用している灰色で塗りつぶします。 通常これは黒ですが、出力デバイスが変更する機構を持っているかも知れません。 引数を取らない場合、 fillval 変数の値が使用されます。 初期値では 0.5 です。 invisible 属性はオブジェクトの塗りつぶしには影響しません。 塗りつぶされたオブジェクトに関連づけられたテキストは、 塗りつぶし後に追加されます。 このため、塗りつぶしによってテキストが隠されることは有りません。
変数 arrowhead が非 0 でありかつ TeX モードが有効もしくは -x オプションが与えられている場合には、 矢印の頭を実線の三角形で描画します。 初期値では arrowhead は 1 です。
pic の troff 出力はデバイス独立です。 それゆえ -T オプションは冗長です。 全ての数値はインチとして扱われます; 数値は troff マシン単位としては解釈されません。
オブジェクトは aligned 属性を取りえます。 これは後処理が grops で実行される場合のみ機能します。 オブジェクトに関連づけられたテキストで aligned 属性を持つものは全て オブジェクトの中央において回転されます。 それゆえ、オブジェクトの始点から終点への方向にあわせられます。 この属性は始点と終点が同じオブジェクトに関しては効果が有りません。
nth と言う表現が許されている場所では `expr'th という表現も許されます。 'th は単一のトークンであることに注意して下さい: ' と th の間には空白を入れてはなりません。 使用例は以下です。
-
for i = 1 to 4 do {
line from `i'th box.nw to `i+1'th box.se
}