pic.man revision 114402
1637Skshefov.ig 2637SkshefovCopyright (C) 1989-2000, 2001, 2002, 2003 Free Software Foundation, Inc. 3637Skshefov 4637SkshefovPermission is granted to make and distribute verbatim copies of 5637Skshefovthis manual provided the copyright notice and this permission notice 6637Skshefovare preserved on all copies. 7637Skshefov 8637SkshefovPermission is granted to copy and distribute modified versions of this 9637Skshefovmanual under the conditions for verbatim copying, provided that the 10637Skshefoventire resulting derived work is distributed under the terms of a 11637Skshefovpermission notice identical to this one. 12637Skshefov 13637SkshefovPermission is granted to copy and distribute translations of this 14637Skshefovmanual into another language, under the above conditions for modified 15637Skshefovversions, except that this permission notice may be included in 16637Skshefovtranslations approved by the Free Software Foundation instead of in 17637Skshefovthe original English. 18637Skshefov.. 19637Skshefov. 20637Skshefov. 21637Skshefov.\" Like TP, but if specified indent is more than half 22637Skshefov.\" the current line-length - indent, use the default indent. 23637Skshefov.de Tp 24637Skshefov.ie \\n(.$=0:((0\\$1)*2u>(\\n(.lu-\\n(.iu)) .TP 25637Skshefov.el .TP "\\$1" 26637Skshefov.. 27637Skshefov. 28637Skshefov.ie t \{\ 29637Skshefov. ds tx T\h'-.1667m'\v'.224m'E\v'-.224m'\h'-.125m'X 30637Skshefov. ds lx L\h'-0.36m'\v'-0.22v'\s-2A\s0\h'-0.15m'\v'0.22v'\*(tx 31637Skshefov.\} 32637Skshefov.el \{\ 33637Skshefov. ds tx TeX 34637Skshefov. ds lx LaTeX 35637Skshefov.\} 36637Skshefov. 37637Skshefov.ie \n(.g .ds ic \/ 38637Skshefov.el .ds ic \^ 39637Skshefov. 40637Skshefov.\" The BSD man macros can't handle " in arguments to font change macros, 41637Skshefov.\" so use \(ts instead of ". 42637Skshefov.tr \(ts" 43666Skshefov. 44666Skshefov. 45666Skshefov.TH @G@PIC @MAN1EXT@ "@MDATE@" "Groff Version @VERSION@" 46666Skshefov. 47666Skshefov. 48666Skshefov.SH NAME 49666Skshefov. 50666Skshefov@g@pic \- compile pictures for troff or TeX 51666Skshefov. 52666Skshefov. 53666Skshefov.SH SYNOPSIS 54666Skshefov. 55666Skshefov.B @g@pic 56666Skshefov[ 57637Skshefov.B \-nvCSU 58637Skshefov] 59637Skshefov[ 60637Skshefov.I filename 61637Skshefov\&.\|.\|.\& 62637Skshefov] 63637Skshefov.br 64637Skshefov.B @g@pic 65637Skshefov.B \-t 66637Skshefov[ 67666Skshefov.B \-cvzCSU 68666Skshefov] 69666Skshefov[ 70666Skshefov.I filename 71666Skshefov\&.\|.\|.\& 72666Skshefov] 73637Skshefov. 74637Skshefov. 75637Skshefov.SH DESCRIPTION 76666Skshefov. 77637SkshefovThis manual page describes the GNU version of 78637Skshefov.BR pic , 79637Skshefovwhich is part of the groff document formatting system. 80637Skshefov.B pic 81637Skshefovcompiles descriptions of pictures embedded within 82637Skshefov.B troff 83637Skshefovor \*(tx input files into commands that are understood by \*(tx or 84637Skshefov.BR troff . 85637SkshefovEach picture starts with a line beginning with 86666Skshefov.B .PS 87666Skshefovand ends with a line beginning with 88637Skshefov.BR .PE . 89666SkshefovAnything outside of 90637Skshefov.B .PS 91637Skshefovand 92637Skshefov.B .PE 93637Skshefovis passed through without change. 94637Skshefov.LP 95637SkshefovIt is the user's responsibility to provide appropriate definitions of the 96637Skshefov.B PS 97637Skshefovand 98637Skshefov.B PE 99637Skshefovmacros. 100637SkshefovWhen the macro package being used does not supply such definitions 101637Skshefov(for example, old versions of \-ms), 102637Skshefovappropriate definitions can be obtained with 103637Skshefov.BR \-mpic : 104These will center each picture. 105. 106. 107.SH OPTIONS 108. 109Options that do not take arguments may be grouped behind a single 110.BR \- . 111The special option 112.B \-\^\- 113can be used to mark the end of the options. 114A filename of 115.B \- 116refers to the standard input. 117. 118.TP 119.B \-C 120Recognize 121.B .PS 122and 123.B .PE 124even when followed by a character other than space or newline. 125. 126.TP 127.B \-S 128Safer mode; do not execute 129.B sh 130commands. 131This can be useful when operating on untrustworthy input. 132(enabled by default) 133. 134.TP 135.B \-U 136Unsafe mode; revert the default option 137.BR \-S . 138. 139.TP 140.B \-n 141Don't use the groff extensions to the troff drawing commands. 142You should use this if you are using a postprocessor that doesn't support 143these extensions. 144The extensions are described in 145.BR groff_out (@MAN5EXT@). 146The 147.B \-n 148option also causes 149.B pic 150not to use zero-length lines to draw dots in troff mode. 151. 152.TP 153.B \-t 154\*(tx mode. 155. 156.TP 157.B \-c 158Be more compatible with 159.BR tpic . 160Implies 161.BR \-t . 162Lines beginning with 163.B \e 164are not passed through transparently. 165Lines beginning with 166.B . 167are passed through with the initial 168.B . 169changed to 170.BR \e . 171A line beginning with 172.B .ps 173is given special treatment: 174it takes an optional integer argument specifying 175the line thickness (pen size) in milliinches; 176a missing argument restores the previous line thickness; 177the default line thickness is 8 milliinches. 178The line thickness thus specified takes effect only 179when a non-negative line thickness has not been 180specified by use of the 181.B thickness 182attribute or by setting the 183.B linethick 184variable. 185. 186.TP 187.B \-v 188Print the version number. 189. 190.TP 191.B \-z 192In \*(tx mode draw dots using zero-length lines. 193. 194.LP 195The following options supported by other versions of 196.B pic 197are ignored: 198. 199.TP 200.B \-D 201Draw all lines using the \eD escape sequence. 202.B pic 203always does this. 204. 205.TP 206.BI \-T \ dev 207Generate output for the 208.B troff 209device 210.IR dev . 211This is unnecessary because the 212.B troff 213output generated by 214.B pic 215is device-independent. 216. 217. 218.SH USAGE 219. 220This section describes only the differences between GNU 221.B pic 222and the original version of 223.BR pic . 224Many of these differences also apply to newer versions of Unix 225.BR pic . 226A complete documentation is available in the file 227.LP 228.RS 229.B @DOCDIR@/pic.ms 230.RE 231. 232.SS \*(tx mode 233. 234\*(tx mode is enabled by the 235.B \-t 236option. 237In \*(tx mode, 238.B pic 239will define a vbox called 240.B \egraph 241for each picture. 242Use the 243.B figname 244command to change the name of the vbox. 245You must yourself print that vbox using, for example, the command 246.RS 247.LP 248.B 249\ecenterline{\ebox\egraph} 250.RE 251.LP 252Actually, since the vbox has a height of zero (it is defined with 253\evtop) this will produce slightly more vertical space above the 254picture than below it; 255.RS 256.LP 257.B 258\ecenterline{\eraise 1em\ebox\egraph} 259.RE 260.LP 261would avoid this. 262.LP 263To make the vbox having a positive height and a depth of zero 264(as used e.g.\& by \*(lx's 265.BR \%graphics.sty ), 266define the following macro in your document: 267.RS 268.LP 269.B \edef\egpicbox#1{% 270.br 271.B " \evbox{\eunvbox\ecsname #1\eendcsname\ekern 0pt}}" 272.RE 273.LP 274Now you can simply say 275.B \egpicbox{graph} 276instead of \ebox\egraph. 277.LP 278You must use a \*(tx driver that supports the 279.B tpic 280specials, version 2. 281.LP 282Lines beginning with 283.B \e 284are passed through transparently; a 285.B % 286is added to the end of the line to avoid unwanted spaces. 287You can safely use this feature to change fonts or to 288change the value of 289.BR \ebaselineskip . 290Anything else may well produce undesirable results; use at your own risk. 291Lines beginning with a period are not given any special treatment. 292. 293.SS Commands 294. 295.TP 296\fBfor\fR \fIvariable\fR \fB=\fR \fIexpr1\fR \fBto\fR \fIexpr2\fR \ 297[\fBby\fR [\fB*\fR]\fIexpr3\fR] \fBdo\fR \fIX\fR \fIbody\fR \fIX\fR 298Set 299.I variable 300to 301.IR expr1 . 302While the value of 303.I variable 304is less than or equal to 305.IR expr2 , 306do 307.I body 308and increment 309.I variable 310by 311.IR expr3 ; 312if 313.B by 314is not given, increment 315.I variable 316by 1. 317If 318.I expr3 319is prefixed by 320.B * 321then 322.I variable 323will instead be multiplied by 324.IR expr3 . 325.I X 326can be any character not occurring in 327.IR body . 328. 329.TP 330\fBif\fR \fIexpr\fR \fBthen\fR \fIX\fR \fIif-true\fR \fIX\fR \ 331[\fBelse\fR \fIY\fR \fIif-false\fR \fIY\fR] 332Evaluate 333.IR expr ; 334if it is non-zero then do 335.IR if-true , 336otherwise do 337.IR if-false . 338.I X 339can be any character not occurring in 340.IR if-true . 341.I Y 342can be any character not occurring in 343.IR if-false . 344. 345.TP 346\fBprint\fR \fIarg\fR\|.\|.\|. 347Concatenate the arguments and print as a line on stderr. 348Each 349.I arg 350must be an expression, a position, or text. 351This is useful for debugging. 352. 353.TP 354\fBcommand\fR \fIarg\fR\|.\|.\|. 355Concatenate the arguments 356and pass them through as a line to troff or \*(tx. 357Each 358.I arg 359must be an expression, a position, or text. 360This has a similar effect to a line beginning with 361.B .\& 362or 363.BR \e , 364but allows the values of variables to be passed through. 365. 366.TP 367\fBsh\fR \fIX\fR \fIcommand\fR \fIX\fR 368Pass 369.I command 370to a shell. 371.I X 372can be any character not occurring in 373.IR command . 374. 375.TP 376\fBcopy\fR \fB"\fIfilename\fB"\fR 377Include 378.I filename 379at this point in the file. 380. 381.TP 382\fBcopy\fR [\fB"\fIfilename\fB"\fR] \fBthru\fR \fIX\fR \fIbody\fR \fIX\fR \ 383[\fBuntil\fR \fB"\fIword\*(ic\fB"\fR] 384.ns 385.TP 386\fBcopy\fR [\fB"\fIfilename\fB"\fR] \fBthru\fR \fImacro\fR \ 387[\fBuntil\fR \fB"\fIword\*(ic\fB"\fR] 388This construct does 389.I body 390once for each line of 391.IR filename ; 392the line is split into blank-delimited words, 393and occurrences of 394.BI $ i 395in 396.IR body , 397for 398.I i 399between 1 and 9, 400are replaced by the 401.IR i -th 402word of the line. 403If 404.I filename 405is not given, lines are taken from the current input up to 406.BR .PE . 407If an 408.B until 409clause is specified, 410lines will be read only until a line the first word of which is 411.IR word ; 412that line will then be discarded. 413.I X 414can be any character not occurring in 415.IR body . 416For example, 417.RS 418.IP 419.ft B 420.nf 421\&.PS 422copy thru % circle at ($1,$2) % until "END" 4231 2 4243 4 4255 6 426END 427box 428\&.PE 429.ft 430.fi 431.RE 432.IP 433is equivalent to 434.RS 435.IP 436.ft B 437.nf 438\&.PS 439circle at (1,2) 440circle at (3,4) 441circle at (5,6) 442box 443\&.PE 444.ft 445.fi 446.RE 447.IP 448The commands to be performed for each line can also be taken 449from a macro defined earlier by giving the name of the macro 450as the argument to 451.BR thru . 452. 453.LP 454.B reset 455.br 456.ns 457.TP 458\fBreset\fI variable1\fR[\fB,\fR]\fI variable2 .\^.\^. 459Reset pre-defined variables 460.IR variable1 , 461.I variable2 462\&.\^.\^. to their default values. 463If no arguments are given, reset all pre-defined variables 464to their default values. 465Note that assigning a value to 466.B scale 467also causes all pre-defined variables that control dimensions 468to be reset to their default values times the new value of scale. 469. 470.TP 471\fBplot\fR \fIexpr\fR [\fB"\fItext\*(ic\fB"\fR] 472This is a text object which is constructed by using 473.I text 474as a format string for sprintf 475with an argument of 476.IR expr . 477If 478.I text 479is omitted a format string of 480.B "\(ts%g\(ts" 481is used. 482Attributes can be specified in the same way as for a normal text 483object. 484Be very careful that you specify an appropriate format string; 485.B pic 486does only very limited checking of the string. 487This is deprecated in favour of 488.BR sprintf . 489. 490.TP 491.IB variable\ := \ expr 492This is similar to 493.B = 494except 495.I variable 496must already be defined, 497and 498.I expr 499will be assigned to 500.I variable 501without creating a variable local to the current block. 502(By contrast, 503.B = 504defines the variable in the current block if it is not already defined there, 505and then changes the value in the current block only.) 506For example, the following: 507.RS 508.IP 509.ft B 510.nf 511\&.PS 512x = 3 513y = 3 514[ 515 x := 5 516 y = 5 517] 518print x " " y 519\&.PE 520.ft 521.fi 522.RE 523.IP 524prints 525.BR 5\ 3 . 526. 527.LP 528Arguments of the form 529.IP 530.I X anything X 531.LP 532are also allowed to be of the form 533.IP 534.BI {\ anything\ } 535.LP 536In this case 537.I anything 538can contain balanced occurrences of 539.B { 540and 541.BR } . 542Strings may contain 543.I X 544or imbalanced occurrences of 545.B { 546and 547.BR } . 548. 549.SS Expressions 550. 551The syntax for expressions has been significantly extended: 552. 553.LP 554.IB x\ ^\ y 555(exponentiation) 556.br 557.BI sin( x ) 558.br 559.BI cos( x ) 560.br 561.BI atan2( y , \ x ) 562.br 563.BI log( x ) 564(base 10) 565.br 566.BI exp( x ) 567(base 10, ie 568.ie t 10\v'-.4m'\fIx\*(ic\fR\v'.4m') 569.el 10^\fIx\fR) 570.br 571.BI sqrt( x ) 572.br 573.BI int( x ) 574.br 575.B rand() 576(return a random number between 0 and 1) 577.br 578.BI rand( x ) 579(return a random number between 1 and 580.IR x ; 581deprecated) 582.br 583.BI srand( x ) 584(set the random number seed) 585.br 586.BI max( e1 , \ e2 ) 587.br 588.BI min( e1 , \ e2 ) 589.br 590.BI ! e 591.br 592\fIe1\fB && \fIe2\fR 593.br 594\fIe1\fB || \fIe2\fR 595.br 596\fIe1\fB == \fIe2\fR 597.br 598\fIe1\fB != \fIe2\fR 599.br 600\fIe1\fB >= \fIe2\fR 601.br 602\fIe1\fB > \fIe2\fR 603.br 604\fIe1\fB <= \fIe2\fR 605.br 606\fIe1\fB < \fIe2\fR 607.br 608\fB"\fIstr1\*(ic\fB" == "\fIstr2\*(ic\fB"\fR 609.br 610\fB"\fIstr1\*(ic\fB" != "\fIstr2\*(ic\fB"\fR 611.br 612. 613.LP 614String comparison expressions must be parenthesised in some contexts 615to avoid ambiguity. 616. 617.SS Other Changes 618. 619A bare expression, 620.IR expr , 621is acceptable as an attribute; 622it is equivalent to 623.IR dir\ expr , 624where 625.I dir 626is the current direction. 627For example 628.IP 629.B line 2i 630.LP 631means draw a line 2\ inches long in the current direction. 632The `i' (or `I') character is ignored; to use another measurement unit, 633set the 634.I scale 635variable to an appropriate value. 636. 637.LP 638The maximum width and height of the picture are taken from the variables 639.B maxpswid 640and 641.BR maxpsht . 642Initially these have values 8.5 and 11. 643. 644.LP 645Scientific notation is allowed for numbers. 646For example 647.RS 648.B 649x = 5e\-2 650.RE 651. 652.LP 653Text attributes can be compounded. 654For example, 655.RS 656.B 657"foo" above ljust 658.RE 659is legal. 660. 661.LP 662There is no limit to the depth to which blocks can be examined. 663For example, 664.RS 665.B 666[A: [B: [C: box ]]] with .A.B.C.sw at 1,2 667.br 668.B 669circle at last [\^].A.B.C 670.RE 671is acceptable. 672. 673.LP 674Arcs now have compass points 675determined by the circle of which the arc is a part. 676. 677.LP 678Circles and arcs can be dotted or dashed. 679In \*(tx mode splines can be dotted or dashed. 680. 681.LP 682Boxes can have rounded corners. 683The 684.B rad 685attribute specifies the radius of the quarter-circles at each corner. 686If no 687.B rad 688or 689.B diam 690attribute is given, a radius of 691.B boxrad 692is used. 693Initially, 694.B boxrad 695has a value of\ 0. 696A box with rounded corners can be dotted or dashed. 697. 698.LP 699The 700.B .PS 701line can have a second argument specifying a maximum height for 702the picture. 703If the width of zero is specified the width will be ignored in computing 704the scaling factor for the picture. 705Note that GNU 706.B pic 707will always scale a picture by the same amount vertically as well as 708horizontally. 709This is different from the 710.SM DWB 7112.0 712.B pic 713which may scale a picture by a different amount vertically than 714horizontally if a height is specified. 715. 716.LP 717Each text object has an invisible box associated with it. 718The compass points of a text object are determined by this box. 719The implicit motion associated with the object is also determined 720by this box. 721The dimensions of this box are taken from the width and height attributes; 722if the width attribute is not supplied then the width will be taken to be 723.BR textwid ; 724if the height attribute is not supplied then the height will be taken to be 725the number of text strings associated with the object 726times 727.BR textht . 728Initially 729.B textwid 730and 731.B textht 732have a value of 0. 733. 734.LP 735In (almost all) places where a quoted text string can be used, 736an expression of the form 737.IP 738.BI sprintf(\(ts format \(ts,\ arg ,\fR.\|.\|.\fB) 739.LP 740can also be used; 741this will produce the arguments formatted according to 742.IR format , 743which should be a string as described in 744.BR printf (3) 745appropriate for the number of arguments supplied. 746. 747.LP 748The thickness of the lines used to draw objects is controlled by the 749.B linethick 750variable. 751This gives the thickness of lines in points. 752A negative value means use the default thickness: 753in \*(tx output mode, this means use a thickness of 8 milliinches; 754in \*(tx output mode with the 755.B -c 756option, this means use the line thickness specified by 757.B .ps 758lines; 759in troff output mode, this means use a thickness proportional 760to the pointsize. 761A zero value means draw the thinnest possible line supported by 762the output device. 763Initially it has a value of -1. 764There is also a 765.BR thick [ ness ] 766attribute. 767For example, 768.RS 769.LP 770.B circle thickness 1.5 771.RE 772.LP 773would draw a circle using a line with a thickness of 1.5 points. 774The thickness of lines is not affected by the 775value of the 776.B scale 777variable, nor by the width or height given in the 778.B .PS 779line. 780. 781.LP 782Boxes (including boxes with rounded corners), 783circles and ellipses can be filled by giving them an attribute of 784.BR fill [ ed ]. 785This takes an optional argument of an expression with a value between 7860 and 1; 0 will fill it with white, 1 with black, values in between 787with a proportionally gray shade. 788A value greater than 1 can also be used: 789this means fill with the 790shade of gray that is currently being used for text and lines. 791Normally this will be black, but output devices may provide 792a mechanism for changing this. 793Without an argument, then the value of the variable 794.B fillval 795will be used. 796Initially this has a value of 0.5. 797The invisible attribute does not affect the filling of objects. 798Any text associated with a filled object will be added after the 799object has been filled, so that the text will not be obscured 800by the filling. 801. 802.LP 803Three additional modifiers are available to specify colored objects: 804.BR outline [ d ] 805sets the color of the outline, 806.B shaded 807the fill color, and 808.BR colo [ u ] r [ ed ] 809sets both. 810All three keywords expect a suffix specifying the color, for example 811.RS 812.LP 813.B circle shaded """green""" outline """black""" 814.RE 815.LP 816Currently, color support isn't available in \*(tx mode. 817Predefined color names for 818.B groff 819are in the device macro files, for example 820.BR ps.tmac ; 821additional colors can be defined with the 822.B .defcolor 823request (see the manual page of 824.BR @g@troff (@MAN1EXT@) 825for more details). 826.LP 827To change the name of the vbox in \*(tx mode, set the pseudo-variable 828.B figname 829(which is actually a specially parsed command) within a picture. 830Example: 831.RS 832.LP 833.B .PS 834.br 835.B figname = foobar; 836.br 837.B ... 838.br 839.B .PE 840.RE 841.LP 842The picture is then available in the box 843.BR \efoobar . 844.LP 845.B pic 846assumes that at the beginning of a picture both glyph and fill color are 847set to the default value. 848. 849.LP 850Arrow heads will be drawn as solid triangles if the variable 851.B arrowhead 852is non-zero and either \*(tx mode is enabled or the 853.B \-n 854option has not been given. 855Initially 856.B arrowhead 857has a value of\ 1. 858Note that solid arrow heads are always filled with the current outline 859color. 860. 861.LP 862The troff output of 863.B pic 864is device-independent. 865The 866.B \-T 867option is therefore redundant. 868All numbers are taken to be in inches; numbers are never interpreted 869to be in troff machine units. 870. 871.LP 872Objects can have an 873.B aligned 874attribute. 875This will only work if the postprocessor is 876.BR grops . 877Any text associated with an object having the 878.B aligned 879attribute will be rotated about the center of the object 880so that it is aligned in the direction from the start point 881to the end point of the object. 882Note that this attribute will have no effect for objects whose start and 883end points are coincident. 884. 885.LP 886In places where 887.IB n th 888is allowed 889.BI ` expr 'th 890is also allowed. 891Note that 892.B 'th 893is a single token: no space is allowed between the 894.B ' 895and the 896.BR th . 897For example, 898.IP 899.ft B 900.nf 901for i = 1 to 4 do { 902 line from `i'th box.nw to `i+1'th box.se 903} 904.ft 905.fi 906. 907. 908.SH CONVERSION 909. 910To obtain a stand-alone picture from a 911.B pic 912file, enclose your 913.B pic 914code with 915.B .PS 916and 917.B .PE 918requests; 919.B roff 920configuration commands may be added at the beginning of the file, but no 921.B roff 922text. 923. 924.LP 925It is necessary to feed this file into 926.B groff 927without adding any page information, so you must check which 928.B .PS 929and 930.B .PE 931requests are actually called. 932For example, the mm macro package adds a page number, which is very 933annoying. 934At the moment, calling standard 935.B groff 936without any macro package works. 937Alternatively, you can define your own requests, e.g. to do nothing: 938.LP 939.RS 940.nf 941.ft B 942\&.de PS 943\&.. 944\&.de PE 945\&.. 946.ft 947.fi 948.RE 949. 950.LP 951.B groff 952itself does not provide direct conversion into other graphics file 953formats. 954But there are lots of possibilities if you first transform your picture 955into PostScript\*R format using the 956.B groff 957option 958.BR -Tps . 959Since this 960.IR ps -file 961lacks BoundingBox information it is not very useful by itself, but it 962may be fed into other conversion programs, usually named 963.BI ps2 other 964or 965.BI psto other 966or the like. 967Moreover, the PostScript interpreter 968.B ghostscript 969.RB ( gs ) 970has built-in graphics conversion devices that are called with the option 971.LP 972.RS 973.BI "gs -sDEVICE=" <devname> 974.RE 975.LP 976Call 977.RS 978.B gs --help 979.RE 980.LP 981for a list of the available devices. 982. 983.LP 984As the Encapsulated PostScript File Format 985.B EPS 986is getting more and more important, and the conversion wasn't regarded 987trivial in the past you might be interested to know that there is a 988conversion tool named 989.B ps2eps 990which does the right job. 991It is much better than the tool 992.B ps2epsi 993packaged with 994.BR gs . 995.LP 996For bitmapped graphic formats, you should use 997.BR pstopnm ; 998the resulting (intermediate) 999.B PNM 1000file can be then converted to virtually any graphics format using the tools 1001of the 1002.B netpbm 1003package . 1004. 1005. 1006.SH FILES 1007. 1008.Tp \w'\fB@MACRODIR@/pic.tmac'u+3n 1009.B 1010@MACRODIR@/pic.tmac 1011Example definitions of the 1012.B PS 1013and 1014.B PE 1015macros. 1016. 1017. 1018.SH "SEE ALSO" 1019. 1020.BR @g@troff (@MAN1EXT@), 1021.BR groff_out (@MAN5EXT@), 1022.BR tex (1), 1023.BR gs (1), 1024.BR ps2eps (1), 1025.BR pstopnm (1), 1026.BR ps2epsi (1), 1027.BR pnm (5) 1028.LP 1029Tpic: Pic for \*(tx 1030.LP 1031Brian W. Kernighan, 1032PIC \(em A Graphics Language for Typesetting (User Manual). 1033AT&T Bell Laboratories, Computing Science Technical Report No.\ 116 1034<http://cm.bell-labs.com/cm/cs/cstr/116.ps.gz> 1035(revised May, 1991). 1036.LP 1037.B ps2eps 1038is available from CTAN mirrors, e.g. 1039.br 1040<ftp://ftp.dante.de/tex-archive/support/ps2eps/> 1041.LP 1042W. Richard Stevens - Turning PIC Into HTML 1043.br 1044<http://www.kohala.com/start/troff/pic2html.html> 1045.LP 1046W. Richard Stevens - Examples of picMacros 1047.br 1048<http://www.kohala.com/start/troff/pic.examples.ps> 1049. 1050. 1051.SH BUGS 1052. 1053Input characters that are invalid for 1054.B groff 1055(ie those with 1056.SM ASCII 1057code 0, or 013 octal, or between 015 and 037 octal, or between 0200 and 0237 1058octal) are rejected even in \*(tx mode. 1059.LP 1060The interpretation of 1061.B fillval 1062is incompatible with the pic in 10th edition Unix, 1063which interprets 0 as black and 1 as white. 1064.LP 1065PostScript\*R is a registered trademark of Adobe Systems Incorporation. 1066. 1067.\" Local Variables: 1068.\" mode: nroff 1069.\" End: 1070