pic(1) FreeBSD 一般コマンドマニュアル

pic

前のページ 上に戻る 次のページ

pic



書式

       pic [ -nvCSU ] [ filename ...  ]
       pic -t [ -cvzCSU ] [ filename ...  ]


解説

       本マニュアルでは、groff ドキュメントフォーマットシステムの
       一部である GNU バージョンの pic について記述しま す。  pic
       は、 troff か TeX の入力ファイルに埋め込まれたピクチャの記
       述を troff か TeX が解釈できるコマンドに変換します。 ピ ク
       チャは .PS で始まる行から開始され、 .PE で始まる行で終了し
       ます。 .PS.PE に狭まれた領域以外は、変更せずに素通しし
       ます。

       .PS.PE マクロの適切な定義はユーザに任されています。使
       用しているマクロパッケージが適当な定義を提供しない場合 (た
       と えば、古いバージョンの -ms マクロの場合)、 -mpic マクロ
       から取り出すことができます。 -mpic マクロではピクチャは 中
       央寄せになります。


オプション

       引 数を伴わないオプションは - のあとにまとめて続けることが
       できます。特別なオプション -- は、オプションの最後を意味し
       ま す。ファイル名のかわりに用いられる - は、標準入力を意味
       します。

       -C     .PS.PE のあとに空白や改行以外の文字がきても、そ
              れを .PS.PE であると解釈します。

       -S     より安全なモード; sh コマンドを実行しません。信用で
              きない入力を処理する場合に便利です。 (デフォルト で
              有効です)

       -U      安全でないモード; デフォルトオプション -S を打ち消
              します。

       -n     groff の troff に対する独自拡張を用いません。後処理
              に 独自拡張を解釈できないものを用いるときに、このオ
              プションを指定します。拡張については、 groff_out(5)
              に 記述されています。 -n オプションはまた、troff モ
              ードにおいて、点を打つために pic が長さ 0 の直線 を
              使わないようにします。

       -t     TeX モードです。

       -c      よ り  tpic との互換性が高い処理を行います。本オプ
              ションは自動的に -t オプションも設定します。 \ で始
              ま る 行 が透過的に出力されることがなくなります。 .
              で始まる行は先頭の .\ に置き換えます。 .ps  で
              始 まる行は、特別な扱いを受けます。すなわち、整数の
              オプションを続けることができ、それは直線の太さ ( ペ
              ン の サイズ) を 1000 分の 1 インチで示します。オプ
              ションが省略された場合は、直前の直線の太さに戻し ま
              ます。 pic は、つねにこの動作を行います。

       -T dev troff   のデバイス dev のための出力を行います。 pictroff に出力する内容はデバイス非依存なので、本オ
              プションは不要です。


使用法

       本節では GNU pic とオリジナルバージョンの pic との違いのみ
       を説明します。これらの違いの多くは新しいバージョンの  Unix
       pic にもあてはまります。

   TeX B>モB>ーB>ド
       TeX  モードは -t オプションにて有効になります。 TeX モード
       では、各ピクチャのために \graph から呼び出される vbox を、
       pic  は定義します。例えば以下のようにして、自分自身で vbox
       を表示する必要が有ります。

              \centerline{\box\graph}

       実際、vbox は高さが 0 ですから、この表現ではピクチャの上の
       空間がピクチャの下の空間よりも若干大きくなります。

              \centerline{\raise 1em\box\graph}

       はこの問題を避けます。

       TeX  ドライバで tpic スペシャルバージョン 2 をサポートする
       ものを使用する必要が有ります。

       \ で始まる行は透過的に通されます; 単一の % が行末に追加 さ
       れ、望まれない空白が出るのを防ぎます。この機能を使用して、
       安全にフォントを変更したり \baselineskip の値を変更でき ま
       す。この方法以外で実行すると、望ましくない結果となるでしょ
       う; 各自のリスクで実行して下さい。ピリオドで始まる行は特別
       には扱われません。

   B>コB>マB>ンB>ド
       for variable = expr1 to expr2 [by [*]expr3] do X body X
              variableexpr1 に設定します。 variable の値が
              expr2 以下の間、 body を実行して variableexpr3
              だ け 増 加 さ せます; もし by が指定されない場合、
              variable の増分は 1 です。もし expr3 の前に * が 指
              定された場合、 variable には expr3 が掛けられます。
              Xbody に存在しない任意の文字を使用して構いま せ
              ん。

       if expr then X if-true X [else Y if-false Y]
              expr を評価します; もし非 0 ならば、 if-true を実行
              します、そうでないなら if-false を実行します。 Xif-true   に 存 在しない任意の文字であり、 Yif-
              false に存在しない任意の文字です。


       copy "filename"
              filename をファイルのこの位置に埋め込みます。

       copy ["filename"] thru X body X [until "word"]
       copy ["filename"] thru macro [until "word"]
              この構造は bodyfilename の各行に対して 1 度づつ
              実行します。行は空白で区切られた語に分割され、 body
              中の $i ただし i は 1 から 9 までは、行の i 番目 の
              語 に置換されます。 filename が指定されない場合、行
              は現在の行から .PE の行までが使用されま す。  until
              節 が指定されると、行の最初の語が word の行までが読
              み込まれます; その行は捨てられます。 Xbody に含
              まれない任意の文字です。例えば

                     .PS
                     copy thru % circle at ($1,$2) % until "END"
                     1 2
                     3 4
                     5 6
                     END
                     box
                     .PE

              は以下等価です。

                     .PS
                     circle at (1,2)
                     circle at (3,4)
                     circle at (5,6)
                     box
                     .PE

              各 行に対して実行されるコマンドは、 thru の引数とし
              てマクロ名を与えることで、すでに定義されているマ ク
              ロをとりうる。

       reset
       reset variable1, variable2 ...
              既 定義の変数 variable1, variable2 ... をデフォルト
              値にリセットします。引数が指定されない場合、すべ て
              の 既定義の変数はデフォルト値にリセットされます。ま
              た scale に値を定義すると、寸法を管理する全ての既定
              義の変数は、それらのデフォルト値に新しい scale を掛
              けたものになります。

       plot expr ["text"]
              これはテキストオブジェクトであり、 text  を フォ ー
              マットとして expr を引数として sprintf を用いて構成
              します。 text が省略された場合にはフォーマット文 字
              列  "%g" が使用されます。通常のテキストオブジェクト
              と同様属性を指定できます。適切なフォーマット文字 列
              X anything X

       という形式に対しては

              { anything }

       も許されます。この場合、 anything には {} がバランスし
       て登場する必要が有ります。文字列に X が含まれる場合、 {} のバランスが悪い場合に対応します。

   B>式
       式の文法が少し拡張されました:

       x ^ y (指数)
       sin(x)
       cos(x)
       atan2(y, x)
       log(x) (base 10)
       exp(x) (base 10, ie 10x)
       sqrt(x)
       int(x)
       rand() (0 から 1 までの乱数を返す)
       rand(x) (1 から x までの乱数を返す; 勧められません)
       srand(x) (乱数の種を設定する)
       max(e1, e2)
       min(e1, e2)
       !e
       e1 && e2
       e1 || e2
       e1 == e2
       e1 != e2
       e1 >= e2
       e1 > e2
       e1 <= e2
       e1 < e2
       "str1" == "str2"
       "str1" != "str2"

       曖昧さを避けるために、文字列の比較式はあるコンテキストにお
       いては括弧で括られる必要が有ります

   B>そB>のB>他B>のB>変B>更
       単なる式 expr は属性として受理可能です; これは dir expr と
       同じであり、 dir は現在の方向です。例えば

              line 2i

       は 2 インチの長さの線を現在の方向へ描きます。

       ピ クチャの最大の幅と高さは変数 maxpswid, maxpsht により指
       定されます。初期値は 8.5 および 11 です。


       円 と円弧は点線や破線で書くことが出来ます。 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 に従い整
       形 したものを出力します。 formatprintf(3) に記述されて
       いる文字列であり、与えられる数及び引数に適切なものである必
       要 が 有ります。 e, f, g, % フォーマット文字のみ使用可能で
       す。

       オブジェクトを描画する時に使用する線の太さは linethick  変
       数で制御可能です。これは線の太さをポイントで指定します。負
       の値はデフォルトの太さを使用することを意味します: TeX 出力
       モードでは、8 ミリインチを使用することを意味します; TeX 出
       力モードで -c オプション使用時には、線の太さには .ps 行 で
       指 定 されるものを使用ことを意味します; troff 出力モードで
       は、ポイントサイズに比例する太さを使用することを意味 し ま
       す。 値 0 ではデバイスがサポートするもっとも細い線で描画し
       ます。初期値は -1 です。また、 thick[ness] 属性が 有 り ま
       す。例えば

              circle thickness 1.5

       は 1.5 ポイントの太さの円を描画します。線の太さは scale 変
       数の値の影響も .PS 行における高さの影響も受けません。

       変数 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
              }


変換

       スタンドアロンのピクチャを pic ファイルから得るには、  pic
       コードを .PS.PE のリクエストで囲みます。 roff 設定コマ
       ンドをファイルの先頭に追加しても良いですが、 roff テキスト
       は追加しません。

       ペ ージ情報をなにも加えずに、このファイルを groff に喰わせ
       ることが必要です。どの .PS.PE のリクエストが実際に呼ば
       れ たのかを確認してください。例えば、mm マクロパッケージは
       ページ番号を追加しますが、これは非常に迷惑です。当面、標準
       の  groff を、どのマクロパッケージも働かないようにして呼び
       出します。または、独自のリクエストを定義します。例えば、な
       にもしないようにするには次のようにします:

              .de PS
              ..
              .de PE
              ..

       groff 自身は、他のグラフィックスファイル書式への直接変換は
       できません。しかし、 groff オプション -Tps の使用によ り、
       ピ クチャを最初に PostScript(R) 書式へ変換すれば、多くの可
       能性があります。この ps ファイルは、BoundingBox 情報が無い
       ので、それ自身は非常に使用し易いというものではないので、他
       の変換プログラム、通常は ps2otherpstoother といった 名
       前 の も の に 喰わせます。さらに、PostScript インタプリタ
       ghostscript (gs) は、次のオプションで呼び出し可能な組み 込
       みのグラフィックス変換デバイスを持ちます:
       ジを使用することにより、実質的に任意のグラフィックス書式に
       変換可能です。


関連ファイル

       /usr/share/tmac/pic.tmac   PSPE マクロの定義の例です。


関連項目

       troff(1),    groff_out(5),   tex(1),   gs(1),   ps2eps(1),
       pstopnm(1), ps2epsi(1), pnm(5)

       Tpic: Pic for TeX
       Brian W. Kernighan, PIC -- A Graphics Language  for  Type-
       setting  (User Manual).  AT&T Bell Laboratories, Computing
       Science  Technical  Report  No. 116   <URL:http://cm.bell-
       labs.com/cm/cs/cstr/116.ps.gz> (revised May, 1991).

       ps2eps  は CTAN ミラーで入手可能であり、例えば次のところか
       ら入手可能です:
       <ftp://ftp.dante.de/tex-archive/support/ps2eps/>

       W. Richard Stevens - Turning PIC Into HTML
       <http://www.kohala.com/start/troff/pic2html.html>

       W. Richard Stevens - Examples of picMacros
       <http://www.kohala.com/start/troff/pic.examples.ps>


バグ

       groff にとって不正な文字 (例えば ASCII code 0 や 8   進 で
       013 〜037、  0200〜0237) は TeX モードであっても拒否されま
       す。

       fillval の解釈は 10th edition Unix と互換性がありませ ん。
       10th edition Unix は 0 を黒、1 を白と解釈します。

       PostScript(R) は、Adobe Systems Incorporation の登録商標で
       す。



Groff Version 1.17.2      6 August 2001                    PIC(1)

ABELNET VPSサービス