1091 lines
19 KiB
Groff
1091 lines
19 KiB
Groff
.ig
|
||
Copyright (C) 1989-2000, 2001, 2002, 2003 Free Software Foundation, Inc.
|
||
|
||
Permission is granted to make and distribute verbatim copies of
|
||
this manual provided the copyright notice and this permission notice
|
||
are preserved on all copies.
|
||
|
||
Permission is granted to copy and distribute modified versions of this
|
||
manual under the conditions for verbatim copying, provided that the
|
||
entire resulting derived work is distributed under the terms of a
|
||
permission notice identical to this one.
|
||
|
||
Permission is granted to copy and distribute translations of this
|
||
manual into another language, under the above conditions for modified
|
||
versions, except that this permission notice may be included in
|
||
translations approved by the Free Software Foundation instead of in
|
||
the original English.
|
||
..
|
||
.\" $FreeBSD$
|
||
.
|
||
.
|
||
.\" Like TP, but if specified indent is more than half
|
||
.\" the current line-length - indent, use the default indent.
|
||
.de Tp
|
||
.ie \\n(.$=0:((0\\$1)*2u>(\\n(.lu-\\n(.iu)) .TP
|
||
.el .TP "\\$1"
|
||
..
|
||
.
|
||
.ie t \{\
|
||
. ds tx T\h'-.1667m'\v'.224m'E\v'-.224m'\h'-.125m'X
|
||
. ds lx L\h'-0.36m'\v'-0.22v'\s-2A\s0\h'-0.15m'\v'0.22v'\*(tx
|
||
.\}
|
||
.el \{\
|
||
. ds tx TeX
|
||
. ds lx LaTeX
|
||
.\}
|
||
.
|
||
.ie \n(.g .ds ic \/
|
||
.el .ds ic \^
|
||
.
|
||
.\" The BSD man macros can't handle " in arguments to font change macros,
|
||
.\" so use \(ts instead of ".
|
||
.tr \(ts"
|
||
.
|
||
.
|
||
.TH PIC 1 "1 May 2003" "Groff Version 1.19"
|
||
.
|
||
.
|
||
.SH 名称
|
||
.
|
||
pic \- troff と TeX で用いるピクチャコンパイラ
|
||
.
|
||
.
|
||
.SH 書式
|
||
.
|
||
.B pic
|
||
[
|
||
.B \-nvCSU
|
||
]
|
||
[
|
||
.I filename
|
||
\&.\|.\|.\&
|
||
]
|
||
.br
|
||
.B pic
|
||
.B \-t
|
||
[
|
||
.B \-cvzCSU
|
||
]
|
||
[
|
||
.I filename
|
||
\&.\|.\|.\&
|
||
]
|
||
.
|
||
.
|
||
.SH 解説
|
||
.
|
||
.LP
|
||
本マニュアルでは、groff ドキュメントフォーマットシステムの一部である
|
||
GNU バージョンの
|
||
.B pic
|
||
について記述します。
|
||
.B pic
|
||
は、
|
||
.B troff
|
||
か \*(tx の入力ファイルに埋め込まれたピクチャの記述を
|
||
.B troff
|
||
か \*(tx が解釈できるコマンドに変換します。
|
||
ピクチャは
|
||
.B .PS
|
||
で始まる行から開始され、
|
||
.B .PE
|
||
で始まる行で終了します。
|
||
.B .PS
|
||
と
|
||
.B .PE
|
||
に狭まれた領域以外は、変更せずに素通しします。
|
||
.LP
|
||
.B .PS
|
||
と
|
||
.B .PE
|
||
マクロの適切な定義はユーザに任されています。使用している
|
||
マクロパッケージが適当な定義を提供しない場合 (たとえば、古いバージョンの
|
||
\-ms マクロの場合)、
|
||
.B \-mpic
|
||
マクロから取り出すことができます。
|
||
\-mpic マクロではピクチャ
|
||
は中央寄せになります。
|
||
.
|
||
.
|
||
.SH オプション
|
||
.
|
||
引数を伴わないオプションは
|
||
.B \-
|
||
のあとにまとめて続けることができます。
|
||
特別なオプション
|
||
.B \-\^\-
|
||
は、オプションの最後を意味します。ファイル名のかわ
|
||
りに用いられる
|
||
.B \-
|
||
は、標準入力を意味します。
|
||
.
|
||
.TP
|
||
.B \-C
|
||
.B .PS
|
||
や
|
||
.B .PE
|
||
のあとに空白や改行以外の文字がきても、それを
|
||
.B .PS
|
||
や
|
||
.B .PE
|
||
であると解釈します。
|
||
.
|
||
.TP
|
||
.B \-S
|
||
より安全なモード;
|
||
.B sh
|
||
コマンドを実行しません。
|
||
信用できない入力を処理する場合に便利です。
|
||
(デフォルトで有効です)
|
||
.
|
||
.TP
|
||
.B \-U
|
||
安全でないモード;
|
||
デフォルトオプション
|
||
.BR \-S
|
||
を打ち消します。
|
||
.
|
||
.TP
|
||
.B \-n
|
||
groff の troff に対する独自拡張を用いません。後処理に独自拡張を解釈
|
||
できないものを用いるときに、このオプションを指定します。拡張については、
|
||
.BR groff_out (5)
|
||
に記述されています。
|
||
.B \-n
|
||
オプションはまた、troff モードにおいて、点を打つために
|
||
.B pic
|
||
が長さ 0 の直線を使わないようにします。
|
||
.
|
||
.TP
|
||
.B \-t
|
||
\*(tx モードです。
|
||
.
|
||
.TP
|
||
.B \-c
|
||
より
|
||
.B tpic
|
||
との互換性が高い処理を行います。本オプションは自動的に -t
|
||
オプションも設定します。
|
||
.B \e
|
||
で始まる行が透過的に出力されることがなくなり
|
||
ます。
|
||
.B .
|
||
で始まる行は先頭の
|
||
.B .
|
||
を
|
||
.B \e
|
||
に置き換えます。
|
||
.B .ps
|
||
で始まる行は、特
|
||
別な扱いを受けます。すなわち、整数のオプションを続けることができ、それ
|
||
は直線の太さ (ペンのサイズ) を 1000 分の 1 インチで示します。オプションが
|
||
省略された場合は、直
|
||
前の直線の太さに戻します。直線の太さの初期値は 1000 分の 8 インチです。
|
||
このように指定された直線の太さは、
|
||
.B thickness
|
||
属性、または、
|
||
.B linethick
|
||
変数によって負でない値が設定されていない場合にのみ有効です。
|
||
.
|
||
.TP
|
||
.B \-v
|
||
バージョン番号を表示します。
|
||
.
|
||
.TP
|
||
.B \-z
|
||
\*(tx モードにおいて、長さ 0 の直線を用いて点を描画します。
|
||
.LP
|
||
他のバージョンの
|
||
.B pic
|
||
でサポートされている以下のオプションは無視されます。
|
||
.
|
||
.TP
|
||
.B \-D
|
||
すべての直線を
|
||
.B \eD
|
||
エスケープシーケンスにより描画します。
|
||
.B pic
|
||
は、つねに
|
||
この動作を行います。
|
||
.
|
||
.TP
|
||
.BI \-T \ dev
|
||
.B troff
|
||
のデバイス
|
||
.I dev
|
||
のための出力を行います。
|
||
.B pic
|
||
が
|
||
.B troff
|
||
に出
|
||
力する内容はデバイス非依存なので、本オプションは不要です。
|
||
.
|
||
.
|
||
.SH 使用法
|
||
.
|
||
本節では GNU
|
||
.B pic
|
||
とオリジナルバージョンの
|
||
.B pic
|
||
との違いのみを説明します。
|
||
これらの違いの多くは新しいバージョンの Unix
|
||
.B pic
|
||
にもあてはまります。
|
||
完全な文書は次のファイルにあります
|
||
.LP
|
||
.RS
|
||
.B /usr/src/contrib/groff/doc/pic.ms
|
||
.RE
|
||
.
|
||
.SS \*(tx モード
|
||
.
|
||
\*(tx モードは
|
||
.B \-t
|
||
オプションにて有効になります。
|
||
\*(tx モードでは、各ピクチャのために
|
||
.B \egraph
|
||
から呼び出される vbox を、
|
||
.B pic
|
||
は定義します。
|
||
vbox の名前を変えるには
|
||
.B figname
|
||
コマンドを使用してください。
|
||
例えば以下のようにして、自分自身で vbox を表示する必要が有ります。
|
||
.RS
|
||
.LP
|
||
.B
|
||
\ecenterline{\ebox\egraph}
|
||
.RE
|
||
.LP
|
||
実際、vbox は高さが 0 ですから
|
||
(これは \evtop で定義されています)、この表現ではピクチャの上の空間が
|
||
ピクチャの下の空間よりも若干大きくなります。
|
||
.RS
|
||
.LP
|
||
.B
|
||
\ecenterline{\eraise 1em\ebox\egraph}
|
||
.RE
|
||
.LP
|
||
はこの問題を避けます。
|
||
.LP
|
||
vbox が正の高さおよび 0 の深さを持つようにするには
|
||
(例えば \*(lx の
|
||
.BR \%graphics.sty
|
||
が使うように)、次のマクロを文書中に定義します:
|
||
.RS
|
||
.LP
|
||
.B \edef\egpicbox#1{%
|
||
.br
|
||
.B " \evbox{\eunvbox\ecsname #1\eendcsname\ekern 0pt}}"
|
||
.RE
|
||
.LP
|
||
そうすれば、\ebox\egraph の代りに単に
|
||
.B \egpicbox{graph}
|
||
と書けます。
|
||
.LP
|
||
\*(tx ドライバで
|
||
.B tpic
|
||
スペシャルバージョン 2 をサポートするものを使用する必要が有ります。
|
||
.LP
|
||
.B \e
|
||
で始まる行は透過的に通されます; 単一の
|
||
.B %
|
||
が行末に追加され、望まれない空白が出るのを防ぎます。
|
||
この機能を使用して、安全にフォントを変更したり
|
||
.B \ebaselineskip
|
||
の値を変更できます。
|
||
この方法以外で実行すると、望ましくない結果となるでしょう;
|
||
各自のリスクで実行して下さい。
|
||
ピリオドで始まる行は特別には扱われません。
|
||
.
|
||
.SS コマンド
|
||
.
|
||
.TP
|
||
\fBfor\fR \fIvariable\fR \fB=\fR \fIexpr1\fR \fBto\fR \fIexpr2\fR \
|
||
[\fBby\fR [\fB*\fR]\fIexpr3\fR] \fBdo\fR \fIX\fR \fIbody\fR \fIX\fR
|
||
.I variable
|
||
を
|
||
.IR expr1
|
||
に設定します。
|
||
.I variable
|
||
の値が
|
||
.IR expr2
|
||
以下の間、
|
||
.I body
|
||
を実行して
|
||
.I variable
|
||
を
|
||
.IR expr3
|
||
だけ増加させます;
|
||
もし
|
||
.B by
|
||
が指定されない場合、
|
||
.I variable
|
||
の増分は 1 です。
|
||
もし
|
||
.I expr3
|
||
の前に
|
||
.B *
|
||
が指定された場合、
|
||
.I variable
|
||
には
|
||
.IR expr3
|
||
が掛けられます。
|
||
.I X
|
||
は
|
||
.IR body
|
||
に存在しない任意の文字を使用して構いません。
|
||
.
|
||
.TP
|
||
\fBif\fR \fIexpr\fR \fBthen\fR \fIX\fR \fIif-true\fR \fIX\fR \
|
||
[\fBelse\fR \fIY\fR \fIif-false\fR \fIY\fR]
|
||
.IR expr
|
||
を評価します;
|
||
もし非 0 ならば、
|
||
.IR if-true
|
||
を実行します、
|
||
そうでないなら
|
||
.IR if-false
|
||
を実行します。
|
||
.I X
|
||
は
|
||
.IR if-true
|
||
に存在しない任意の文字であり、
|
||
.I Y
|
||
は
|
||
.IR if-false
|
||
に存在しない任意の文字です。
|
||
.
|
||
.TP
|
||
\fBprint\fR \fIarg\fR\|.\|.\|.
|
||
引数を結合し、標準エラー出力に 1 行で出力します。
|
||
各
|
||
.I arg
|
||
は式、位置、テキストのいずれかである必要が有ります。
|
||
デバッグに有効です。
|
||
.
|
||
.TP
|
||
\fBcommand\fR \fIarg\fR\|.\|.\|.
|
||
引数を結合し、troff または \*(tx に 1 行として渡します。
|
||
各
|
||
.I arg
|
||
は式、位置、テキストのいずれかである必要が有ります。
|
||
これは
|
||
.B .\&
|
||
や
|
||
.BR \e
|
||
で始まる行と同様の効果が有りますが、
|
||
値や変数をそのまま通します。
|
||
.
|
||
.TP
|
||
\fBsh\fR \fIX\fR \fIcommand\fR \fIX\fR
|
||
.I command
|
||
をシェルに渡します。
|
||
.I X
|
||
は
|
||
.IR command
|
||
中に存在しない任意の文字です。
|
||
.
|
||
.TP
|
||
\fBcopy\fR \fB"\fIfilename\fB"\fR
|
||
.I filename
|
||
をファイルのこの位置に埋め込みます。
|
||
.
|
||
.TP
|
||
\fBcopy\fR [\fB"\fIfilename\fB"\fR] \fBthru\fR \fIX\fR \fIbody\fR \fIX\fR \
|
||
[\fBuntil\fR \fB"\fIword\*(ic\fB"\fR]
|
||
.ns
|
||
.
|
||
.TP
|
||
\fBcopy\fR [\fB"\fIfilename\fB"\fR] \fBthru\fR \fImacro\fR \
|
||
[\fBuntil\fR \fB"\fIword\*(ic\fB"\fR]
|
||
この構造は
|
||
.I body
|
||
を
|
||
.IR filename
|
||
の各行に対して 1 度づつ実行します。
|
||
行は空白で区切られた語に分割され、
|
||
.IR body
|
||
中の
|
||
.BI $ i
|
||
ただし
|
||
.I i
|
||
は 1 から 9 までは、
|
||
行の
|
||
.IR i
|
||
番目の語に置換されます。
|
||
.I filename
|
||
が指定されない場合、行は現在の行から
|
||
.BR .PE
|
||
の行までが使用されます。
|
||
.B until
|
||
節が指定されると、
|
||
行の最初の語が
|
||
.IR word
|
||
の行までが読み込まれます;
|
||
その行は捨てられます。
|
||
.I X
|
||
は
|
||
.IR body
|
||
に含まれない任意の文字です。
|
||
例えば
|
||
.RS
|
||
.IP
|
||
.ft B
|
||
.nf
|
||
\&.PS
|
||
copy thru % circle at ($1,$2) % until "END"
|
||
1 2
|
||
3 4
|
||
5 6
|
||
END
|
||
box
|
||
\&.PE
|
||
.ft
|
||
.fi
|
||
.RE
|
||
.IP
|
||
は以下等価です。
|
||
.RS
|
||
.IP
|
||
.ft B
|
||
.nf
|
||
\&.PS
|
||
circle at (1,2)
|
||
circle at (3,4)
|
||
circle at (5,6)
|
||
box
|
||
\&.PE
|
||
.ft
|
||
.fi
|
||
.RE
|
||
.IP
|
||
各行に対して実行されるコマンドは、
|
||
.BR thru
|
||
の引数としてマクロ名を与えることで、
|
||
すでに定義されているマクロをとりえます。
|
||
.
|
||
.LP
|
||
.B reset
|
||
.br
|
||
.ns
|
||
.
|
||
.TP
|
||
\fBreset\fI variable1\fR[\fB,\fR]\fI variable2 .\^.\^.
|
||
既定義の変数
|
||
.IR variable1 ,
|
||
.I variable2
|
||
\&.\^.\^. をデフォルト値にリセットします。
|
||
引数が指定されない場合、すべての既定義の変数はデフォルト値にリセットされます。
|
||
また
|
||
.B scale
|
||
に値を定義すると、寸法を管理する全ての既定義の変数は、
|
||
それらのデフォルト値に新しい scale を掛けたものになります。
|
||
.
|
||
.TP
|
||
\fBplot\fR \fIexpr\fR [\fB"\fItext\*(ic\fB"\fR]
|
||
これはテキストオブジェクトであり、
|
||
.I text
|
||
をフォーマットとして
|
||
.IR expr
|
||
を引数として sprintf を用いて構成します。
|
||
.I text
|
||
が省略された場合にはフォーマット文字列
|
||
.B "\(ts%g\(ts"
|
||
が使用されます。
|
||
通常のテキストオブジェクトと同様属性を指定できます。
|
||
適切なフォーマット文字列を指定するように非常に気を付ける必要が有ります;
|
||
.B pic
|
||
は文字列に関して非常に限られたチェックしか行いません。
|
||
この仕様は、
|
||
.BR sprintf
|
||
のことを考慮して批判されています。
|
||
.
|
||
.TP
|
||
.IB variable\ := \ expr
|
||
これは
|
||
.B =
|
||
と同じですが、
|
||
.I variable
|
||
が既に定義されていなければならず、
|
||
現在のブロックに対してローカルな変数を作成せずに
|
||
.I expr
|
||
を
|
||
.I variable
|
||
へ代入します
|
||
(これに対して
|
||
.B =
|
||
は、variable がまだ定義されていない場合には現在のブロックにおいて定義し、
|
||
現在のブロックに置いてのみ値を変更します。)
|
||
例えば
|
||
.RS
|
||
.IP
|
||
.ft B
|
||
.nf
|
||
\&.PS
|
||
x = 3
|
||
y = 3
|
||
[
|
||
x := 5
|
||
y = 5
|
||
]
|
||
print x " " y
|
||
\&.PE
|
||
.ft
|
||
.fi
|
||
.RE
|
||
.IP
|
||
は
|
||
.BR 5\ 3
|
||
を表示します。
|
||
.
|
||
.LP
|
||
.IP
|
||
.I X anything X
|
||
.LP
|
||
という形式に対しては
|
||
.IP
|
||
.BI {\ anything\ }
|
||
.LP
|
||
も許されます。
|
||
この場合、
|
||
.I anything
|
||
には
|
||
.B {
|
||
と
|
||
.BR }
|
||
がバランスして登場する必要が有ります。
|
||
文字列に
|
||
.I X
|
||
が含まれる場合、
|
||
.B {
|
||
と
|
||
.BR }
|
||
のバランスが悪い場合に対応します。
|
||
.
|
||
.SS 式
|
||
.
|
||
式の文法が少し拡張されました:
|
||
.LP
|
||
.IB x\ ^\ y
|
||
(指数)
|
||
.br
|
||
.BI sin( x )
|
||
.br
|
||
.BI cos( x )
|
||
.br
|
||
.BI atan2( y , \ x )
|
||
.br
|
||
.BI log( x )
|
||
(base 10)
|
||
.br
|
||
.BI exp( x )
|
||
(base 10, ie
|
||
.ie t 10\v'-.4m'\fIx\*(ic\fR\v'.4m')
|
||
.el 10^\fIx\fR)
|
||
.br
|
||
.BI sqrt( x )
|
||
.br
|
||
.BI int( x )
|
||
.br
|
||
.B rand()
|
||
(0 から 1 までの乱数を返す)
|
||
.br
|
||
.BI rand( x )
|
||
(1 から
|
||
.IR x
|
||
までの乱数を返す;
|
||
勧められません)
|
||
.br
|
||
.BI srand( x )
|
||
(乱数の種を設定する)
|
||
.br
|
||
.BI max( e1 , \ e2 )
|
||
.br
|
||
.BI min( e1 , \ e2 )
|
||
.br
|
||
.BI ! e
|
||
.br
|
||
\fIe1\fB && \fIe2\fR
|
||
.br
|
||
\fIe1\fB || \fIe2\fR
|
||
.br
|
||
\fIe1\fB == \fIe2\fR
|
||
.br
|
||
\fIe1\fB != \fIe2\fR
|
||
.br
|
||
\fIe1\fB >= \fIe2\fR
|
||
.br
|
||
\fIe1\fB > \fIe2\fR
|
||
.br
|
||
\fIe1\fB <= \fIe2\fR
|
||
.br
|
||
\fIe1\fB < \fIe2\fR
|
||
.br
|
||
\fB"\fIstr1\*(ic\fB" == "\fIstr2\*(ic\fB"\fR
|
||
.br
|
||
\fB"\fIstr1\*(ic\fB" != "\fIstr2\*(ic\fB"\fR
|
||
.br
|
||
.
|
||
.LP
|
||
曖昧さを避けるために、
|
||
文字列の比較式はあるコンテキストにおいては括弧で括られる必要が有ります
|
||
.
|
||
.SS その他の変更
|
||
.
|
||
単なる式
|
||
.IR expr
|
||
は属性として受理可能です;
|
||
これは
|
||
.IR dir\ expr
|
||
と同じであり、
|
||
.I dir
|
||
は現在の方向です。
|
||
例えば
|
||
.IP
|
||
.B line 2i
|
||
.LP
|
||
は 2 インチの長さの線を現在の方向へ描きます。
|
||
文字 `i' (または `I') は無視されます。
|
||
他の計量単位を使用したい場合は、
|
||
.I scale
|
||
変数を適切な値に設定してください。
|
||
.
|
||
.LP
|
||
ピクチャの最大の幅と高さは変数
|
||
.BR maxpswid ,
|
||
.B maxpsht
|
||
により指定されます。
|
||
初期値は 8.5 および 11 です。
|
||
.
|
||
.LP
|
||
数を表すのに科学技術的表記が可能です。
|
||
例えば
|
||
.RS
|
||
.B
|
||
x = 5e\-2
|
||
.RE
|
||
.
|
||
.LP
|
||
テキストの属性は組み合わせることが可能です。
|
||
例えば
|
||
.RS
|
||
.B
|
||
"foo" above ljust
|
||
.RE
|
||
は正しいです。
|
||
.
|
||
.LP
|
||
ブロックが検査される深さには制限は有りません。
|
||
例えば
|
||
.RS
|
||
.B
|
||
[A: [B: [C: box ]]] with .A.B.C.sw at 1,2
|
||
.br
|
||
.B
|
||
circle at last [\^].A.B.C
|
||
.RE
|
||
は受理可能です。
|
||
.
|
||
.LP
|
||
円弧はコンパスポイントを持ち、円弧が部分となるような円から決定されます。
|
||
.
|
||
.LP
|
||
円と円弧は点線や破線で書くことが出来ます。
|
||
\*(tx モードではスプラインを点線や破線で書くことが出来ます。
|
||
.
|
||
.LP
|
||
ボックスの角を丸くできます。
|
||
.B rad
|
||
属性は、角を構成する 1/4 円の半径を指定します。
|
||
.BR rad ,
|
||
.B diam
|
||
属性が与えられない場合、
|
||
.B boxrad
|
||
が半径として使用されます。
|
||
初期値では
|
||
.B boxrad
|
||
は値 0 です。
|
||
角の丸いボックスは点線や破線で書くことが出来ます。
|
||
.
|
||
.LP
|
||
.B .PS
|
||
行は 2 番目の引数としてピクチャの最大の高さを指定できます。
|
||
幅として 0 が指定された場合には、
|
||
ピクチャのスケーリングファクタの計算においては幅は無視されます。
|
||
GNU
|
||
.B pic
|
||
は常に水平方向と垂直方向ともに同じ縮尺で
|
||
スケーリングしていることに注意して下さい。
|
||
これは
|
||
高さが指定された場合に水平方向と垂直方向を同じ縮尺でスケーリングしない
|
||
.SM DWB
|
||
2.0
|
||
.B pic
|
||
と異なります。
|
||
.
|
||
.LP
|
||
テキストオブジェクトはそれぞれに関連づけられた見えないボックスを持っています。
|
||
テキストオブジェクトのコンパスポイントはこのボックスによって決定されます。
|
||
オブジェクトに関連づけられた暗示的な動きもこのボックスによって決定されます。
|
||
このボックスの寸法は width, height 属性から定まります;
|
||
もし width 属性が与えられていない場合は幅は
|
||
.BR textwid
|
||
となります;
|
||
もし height 属性が与えられていない場合は高さは
|
||
.BR textht
|
||
となります。
|
||
初期値では
|
||
.BR textwid ,
|
||
.B textht
|
||
は値 0 です。
|
||
.
|
||
.LP
|
||
クォートされたテキストが使用される場合、
|
||
.IP
|
||
.BI sprintf(\(ts format \(ts,\ arg ,\fR.\|.\|.\fB)
|
||
.
|
||
.LP
|
||
という形式の式を (ほとんどの場所で) 使用可能です;
|
||
これは引数を
|
||
.IR format
|
||
に従い整形したものを出力します。
|
||
.I format
|
||
は
|
||
.BR printf (3)
|
||
に記述されている文字列であり、
|
||
与えられる数及び引数に適切なものである必要が有ります。
|
||
.
|
||
.LP
|
||
オブジェクトを描画する時に使用する線の太さは
|
||
.B linethick
|
||
変数で制御可能です。
|
||
これは線の太さをポイントで指定します。
|
||
負の値はデフォルトの太さを使用することを意味します:
|
||
\*(tx 出力モードでは、8 ミリインチを使用することを意味します;
|
||
\*(tx 出力モードで
|
||
.B -c
|
||
オプション使用時には、線の太さには
|
||
.B .ps
|
||
行で指定されるものを使用することを意味します;
|
||
troff 出力モードでは、ポイントサイズに比例する太さを使用することを意味します。
|
||
値 0 ではデバイスがサポートするもっとも細い線で描画します。
|
||
初期値は -1 です。
|
||
また、
|
||
.BR thick [ ness ]
|
||
属性が有ります。
|
||
例えば
|
||
.RS
|
||
.
|
||
.LP
|
||
.B circle thickness 1.5
|
||
.RE
|
||
.
|
||
.LP
|
||
は 1.5 ポイントの太さの円を描画します。
|
||
線の太さは
|
||
.B scale
|
||
変数の値の影響も
|
||
.B .PS
|
||
行における高さの影響も受けません。
|
||
.
|
||
.LP
|
||
ボックス (角の丸いボックスを含みます)、
|
||
円、楕円は塗りつぶすことが可能であり、
|
||
属性
|
||
.BR fill [ ed ]
|
||
で指定します。
|
||
これは値が 0 から 1 の式をオプションで引数として取ります;
|
||
0 は白で塗りつぶし、1 は黒で塗りつぶし、その間の値では
|
||
適切な灰色で塗りつぶします。
|
||
1 より大きい値も使用可能です:
|
||
この場合、現在のテキスト及び線に使用している灰色で塗りつぶします。
|
||
通常これは黒ですが、出力デバイスが変更する機構を持っているかも知れません。
|
||
引数を取らない場合、
|
||
.B fillval
|
||
変数の値が使用されます。
|
||
初期値では 0.5 です。
|
||
invisible 属性はオブジェクトの塗りつぶしには影響しません。
|
||
塗りつぶされたオブジェクトに関連づけられたテキストは、
|
||
塗りつぶし後に追加されます。
|
||
このため、塗りつぶしによってテキストが隠されることは有りません。
|
||
.
|
||
.LP
|
||
3 個の追加修正子を使用して、色付きオブジェクトを指定可能です:
|
||
.BR outline [ d ]
|
||
は外周の色を設定し、
|
||
.B shaded
|
||
は色で塗りつぶし、
|
||
.BR colo [ u ] r [ ed ]
|
||
は両方を設定します。
|
||
これら 3 種のキーワードは、色を指定するサフィックスを期待します。
|
||
例えば次のようになります。
|
||
.RS
|
||
.LP
|
||
.B circle shaded """green""" outline """black"""
|
||
.RE
|
||
.LP
|
||
現在のところ、\*(tx モードでは色サポートは使用できません。
|
||
.B groff
|
||
で既定義の色の名前はデバイスマクロファイルにあり、例えば
|
||
.BR ps.tmac
|
||
にあります。
|
||
追加の色は、
|
||
.B .defcolor
|
||
リクエストで定義可能です (詳細は
|
||
.BR troff (1)
|
||
マニュアルページを参照してください)。
|
||
.LP
|
||
\*(tx モードで vbox 名を変えるには、擬似変数
|
||
.B figname
|
||
(これは実際には特別に構文解析されるコマンドです) をピクチャ中で設定します。
|
||
例:
|
||
.RS
|
||
.LP
|
||
.B .PS
|
||
.br
|
||
.B figname = foobar;
|
||
.br
|
||
.B ...
|
||
.br
|
||
.B .PE
|
||
.RE
|
||
.LP
|
||
このピクチャは、ボックス
|
||
.BR \efoobar
|
||
中で使用可能となります。
|
||
.LP
|
||
.B pic
|
||
は、ピクチャの開始時に、
|
||
グリフと塗りつぶしの色がデフォルト値に設定されていることを仮定しています。
|
||
.
|
||
.LP
|
||
変数
|
||
.B arrowhead
|
||
が非 0 でありかつ \*(tx モードが有効もしくは
|
||
.B \-x
|
||
オプションが与えられている場合には、
|
||
矢印の頭を実線の三角形で描画します。
|
||
初期値では
|
||
.B arrowhead
|
||
は 1 です。
|
||
.
|
||
.LP
|
||
.B pic
|
||
の troff 出力はデバイス独立です。
|
||
それゆえ
|
||
.B \-T
|
||
オプションは冗長です。
|
||
全ての数値はインチとして扱われます;
|
||
数値は troff マシン単位としては解釈されません。
|
||
.
|
||
.LP
|
||
オブジェクトは
|
||
.B aligned
|
||
属性を取りえます。
|
||
これは後処理が
|
||
.BR grops
|
||
で実行される場合のみ機能します。
|
||
オブジェクトに関連づけられたテキストで
|
||
.B aligned
|
||
属性を持つものは全て
|
||
オブジェクトの中央において回転されます。
|
||
それゆえ、オブジェクトの始点から終点への方向にあわせられます。
|
||
この属性は始点と終点が同じオブジェクトに関しては効果が有りません。
|
||
.
|
||
.LP
|
||
.IB n th
|
||
と言う表現が許されている場所では
|
||
.BI ` expr 'th
|
||
という表現も許されます。
|
||
.B 'th
|
||
は単一のトークンであることに注意して下さい:
|
||
.B '
|
||
と
|
||
.BR th
|
||
の間には空白を入れてはなりません。
|
||
使用例は以下です。
|
||
.IP
|
||
.ft B
|
||
.nf
|
||
for i = 1 to 4 do {
|
||
line from `i'th box.nw to `i+1'th box.se
|
||
}
|
||
.ft
|
||
.fi
|
||
.
|
||
.
|
||
.SH 変換
|
||
.
|
||
スタンドアロンのピクチャを
|
||
.B pic
|
||
ファイルから得るには、
|
||
.B pic
|
||
コードを
|
||
.B .PS
|
||
と
|
||
.B .PE
|
||
のリクエストで囲みます。
|
||
.B roff
|
||
設定コマンドをファイルの先頭に追加しても良いですが、
|
||
.B roff
|
||
テキストは追加しません。
|
||
.
|
||
.LP
|
||
ページ情報をなにも加えずに、このファイルを
|
||
.B groff
|
||
に喰わせることが必要です。
|
||
どの
|
||
.B .PS
|
||
と
|
||
.B .PE
|
||
のリクエストが実際に呼ばれたのかを確認してください。
|
||
例えば、mm マクロパッケージはページ番号を追加しますが、
|
||
これは非常に迷惑です。
|
||
当面、標準の
|
||
.B groff
|
||
を、どのマクロパッケージも働かないようにして呼び出します。
|
||
または、独自のリクエストを定義します。
|
||
例えば、なにもしないようにするには次のようにします:
|
||
.
|
||
.LP
|
||
.RS
|
||
.nf
|
||
.ft B
|
||
\&.de PS
|
||
\&..
|
||
\&.de PE
|
||
\&..
|
||
.ft
|
||
.fi
|
||
.RE
|
||
.
|
||
.LP
|
||
.B groff
|
||
自身は、他のグラフィックスファイル書式への直接変換はできません。
|
||
しかし、
|
||
.B groff
|
||
オプション
|
||
.BR -Tps
|
||
の使用により、ピクチャを最初に PostScript\*R 書式へ変換すれば、
|
||
多くの可能性があります。
|
||
この
|
||
.IR ps
|
||
ファイルは、BoundingBox 情報が無いので、
|
||
それ自身は非常に使用し易いというものではないので、
|
||
他の変換プログラム、通常は
|
||
.BI ps2 other
|
||
や
|
||
.BI psto other
|
||
といった名前のものに喰わせます。
|
||
さらに、PostScript インタプリタ
|
||
.B ghostscript
|
||
.RB ( gs )
|
||
は、
|
||
次のオプションで呼び出し可能な組み込みのグラフィックス変換デバイスを持ちます:
|
||
.
|
||
.LP
|
||
.RS
|
||
.BI "gs -sDEVICE=" <devname>
|
||
.RE
|
||
.
|
||
.LP
|
||
使用可能なデバイス一覧を得るには、次のように呼び出します:
|
||
.RS
|
||
.B gs --help
|
||
.RE
|
||
.
|
||
.LP
|
||
Encapsulated PostScript ファイル書式
|
||
.B EPS
|
||
がより重要になっており、
|
||
また変換が過去のようには簡単ではないので、正しい仕事を行う
|
||
.B ps2eps
|
||
という名前の変換ツールの存在を知っていると良いでしょう。
|
||
これは、
|
||
.BR gs
|
||
にパッケージされているツール
|
||
.B ps2epsi
|
||
よりも良いものです。
|
||
.
|
||
.LP
|
||
ビットマップグラフィックス書式用には、
|
||
.BR pstopnm
|
||
を使用します。結果の (中間出力の)
|
||
.B PNM
|
||
ファイルは、
|
||
.B netpbm
|
||
パッケージを使用することにより、
|
||
実質的に任意のグラフィックス書式に変換可能です。
|
||
.
|
||
.
|
||
.SH 関連ファイル
|
||
.
|
||
.Tp \w'\fB/usr/share/tmac/pic.tmac'u+3n
|
||
.B
|
||
/usr/share/tmac/pic.tmac
|
||
.B PS
|
||
と
|
||
.B PE
|
||
マクロの定義の例です。
|
||
.
|
||
.
|
||
.SH 関連項目
|
||
.
|
||
.BR troff (1),
|
||
.BR groff_out (5),
|
||
.BR tex (1),
|
||
.BR gs (1),
|
||
.BR ps2eps (1),
|
||
.BR pstopnm (1),
|
||
.BR ps2epsi (1),
|
||
.BR pnm (5)
|
||
.
|
||
.LP
|
||
Tpic: Pic for \*(tx
|
||
.br
|
||
Brian W. Kernighan,
|
||
PIC \(em A Graphics Language for Typesetting (User Manual).
|
||
AT&T Bell Laboratories, Computing Science Technical Report No.\ 116
|
||
<http://cm.bell-labs.com/cm/cs/cstr/116.ps.gz>
|
||
(revised May, 1991).
|
||
.
|
||
.LP
|
||
.B ps2eps
|
||
は CTAN ミラーで入手可能であり、例えば次のところから入手可能です:
|
||
.br
|
||
<ftp://ftp.dante.de/tex-archive/support/ps2eps/>
|
||
.
|
||
.LP
|
||
W. Richard Stevens - Turning PIC Into HTML
|
||
.br
|
||
<http://www.kohala.com/start/troff/pic2html.html>
|
||
.
|
||
.LP
|
||
W. Richard Stevens - Examples of picMacros
|
||
.br
|
||
<http://www.kohala.com/start/troff/pic.examples.ps>
|
||
.
|
||
.
|
||
.SH バグ
|
||
.
|
||
.B groff
|
||
にとって不正な文字 (例えば
|
||
.SM ASCII
|
||
code 0 や 8 進数で 013、015~037、
|
||
0200~0237) は \*(tx モードであっても拒否されます。
|
||
.
|
||
.LP
|
||
.B fillval
|
||
の解釈は 10th edition Unix と互換性がありません。
|
||
10th edition Unix は 0 を黒、1 を白と解釈します。
|
||
.
|
||
.LP
|
||
PostScript\*R は、Adobe Systems Incorporation の登録商標です。
|
||
.\" Kazuo HORIKAWA <horikawa@jp.freebsd.org>
|
||
.\" USAGE 訳出 (Dec 27, 1996)
|
||
.
|
||
.\" Local Variables:
|
||
.\" mode: nroff
|
||
.\" End:
|