pic.man revision 114402
175584Sru.ig
275584SruCopyright (C) 1989-2000, 2001, 2002, 2003 Free Software Foundation, Inc.
375584Sru
475584SruPermission is granted to make and distribute verbatim copies of
575584Sruthis manual provided the copyright notice and this permission notice
6104862Sruare preserved on all copies.
7104862Sru
8104862SruPermission is granted to copy and distribute modified versions of this
9104862Srumanual under the conditions for verbatim copying, provided that the
1075584Sruentire resulting derived work is distributed under the terms of a
1175584Srupermission notice identical to this one.
12
13Permission is granted to copy and distribute translations of this
14manual into another language, under the above conditions for modified
15versions, except that this permission notice may be included in
16translations approved by the Free Software Foundation instead of in
17the original English.
18..
19.
20.
21.\" Like TP, but if specified indent is more than half
22.\" the current line-length - indent, use the default indent.
23.de Tp
24.ie \\n(.$=0:((0\\$1)*2u>(\\n(.lu-\\n(.iu)) .TP
25.el .TP "\\$1"
26..
27.
28.ie t \{\
29.  ds tx T\h'-.1667m'\v'.224m'E\v'-.224m'\h'-.125m'X
30.  ds lx L\h'-0.36m'\v'-0.22v'\s-2A\s0\h'-0.15m'\v'0.22v'\*(tx
31.\}
32.el \{\
33.  ds tx TeX
34.  ds lx LaTeX
35.\}
36.
37.ie \n(.g .ds ic \/
38.el       .ds ic \^
39.
40.\" The BSD man macros can't handle " in arguments to font change macros,
41.\" so use \(ts instead of ".
42.tr \(ts"
43.
44.
45.TH @G@PIC @MAN1EXT@ "@MDATE@" "Groff Version @VERSION@"
46.
47.
48.SH NAME
49.
50@g@pic \- compile pictures for troff or TeX
51.
52.
53.SH SYNOPSIS
54.
55.B @g@pic
56[
57.B \-nvCSU
58]
59[
60.I filename
61\&.\|.\|.\&
62]
63.br
64.B @g@pic
65.B \-t
66[
67.B \-cvzCSU
68]
69[
70.I filename
71\&.\|.\|.\&
72]
73.
74.
75.SH DESCRIPTION
76.
77This manual page describes the GNU version of
78.BR pic ,
79which is part of the groff document formatting system.
80.B pic
81compiles descriptions of pictures embedded within
82.B troff
83or \*(tx input files into commands that are understood by \*(tx or
84.BR troff .
85Each picture starts with a line beginning with
86.B .PS
87and ends with a line beginning with
88.BR .PE .
89Anything outside of
90.B .PS
91and
92.B .PE
93is passed through without change.
94.LP
95It is the user's responsibility to provide appropriate definitions of the
96.B PS
97and
98.B PE
99macros.
100When the macro package being used does not supply such definitions
101(for example, old versions of \-ms),
102appropriate definitions can be obtained with
103.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