.TH PIC 1
.de PS	\" start picture
.	\" $1 is height, $2 is width, both in inches
.if \\$1>0 .sp .35
.ie \\$1>0 .nr $1 \\$1
.el .nr $1 0
.in (\\n(.lu-\\$2)/2u
.ne \\$1
..
.de PE	\" end of picture
.in
.if \\n($1>0 .sp .65
..
.SH NAME
pic, tpic \- troff and tex preprocessors for drawing pictures
.SH SYNOPSIS
.B pic
[
.I files
]
.PP
.B tpic
[
.I files
]
.SH DESCRIPTION
.I Pic
is a
.IR troff (1)
preprocessor for drawing figures on a typesetter.
.I Pic
code is contained between
.B .PS
and
.B .PE
lines:
.IP
.EX
\&.PS \f2optional-width\fP \f2optional-height\fP
\f2element-list\fP
\&.PE
.EE
.LP
or in a file mentioned in a
.B .PS
line:
.IP
.BI .PS " " < file
.LP
If
.IR optional-width
is present, the picture is made that many inches wide,
regardless of any dimensions used internally.
The height is scaled in the same proportion unless
.IR optional-height
is present.
If
.B .PF
is used instead of
.BR .PE ,
the typesetting position after printing is restored to what it was
upon entry.
.PP
An
.IR element-list
is a list of elements:
.EX
	\f2primitive  attribute-list\fP
	\f2placename\fP : \f2element\fP
	\f2placename\fP : \f2position\fP
	\f2var\fP = \f2expr\fP
	\f2direction\fP
	{ \f2element-list\fP }
	[ \f2element-list\fP ]
	for \f2var\fP = \f2expr\fP to \f2expr\fP by \f2expr\fP do { \f2anything\fP }
	if \f2expr\fP then { \f2anything\fP } else { \f2anything\fP }
	copy \f2file,\fP  copy thru \f2macro,\fP  copy \f2file\fP thru \fPmacro\fP
	sh { \f2commandline\fP }
	print \f2expr\fP
	reset \f2optional var-list\fP
	\f2troff-command\fP
.EE
.PP
Elements are separated by newlines or semicolons;
a long element may be continued by ending the line with a backslash.
Comments are introduced by a
.BI #
and terminated by a newline.
Variable names begin with a lower case letter;
place names begin with upper case.
Place and variable names retain their values
from one picture to the next.
.PP
After each primitive
the current position moves in the current direction
.RB ( up , down ,
.BR left , right
(default)) by the size of the primitive.
The current position and direction are saved upon entry
to a
.BR { ... }
block and restored upon exit.
Elements within a block enclosed in
.BR [ ... ]
are treated as a unit;
the dimensions are determined by the extreme points
of the contained objects.
Names, variables, and direction of motion within a block are local to that block.
.PP
.IR Troff-command
is any line that begins with a period.
Such a line is assumed to make sense in the context where it appears;
generally, this means only size and font changes.
.PP
The
.I primitive
objects are:
.br
.EX
	box  circle  ellipse  arc  line  arrow  spline  move  \f2text-list\fP
.EE
.L arrow
is a synonym for
.LR "line ->" .
.PP
An
.IR attribute-list
is a sequence of zero or more attributes;
each attribute consists of a keyword, perhaps followed by a value.
.EX
.ta .5i 2.5i
	h(eigh)t \f2expr\fP	wid(th) \f2expr\fP
	rad(ius) \f2expr\fP	diam(eter) \f2expr\fP
	up \f2opt-expr\fP	down \f2opt-expr\fP
	right \f2opt-expr\fP	left \f2opt-expr\fP
	from \f2position\fP	to \f2position\fP
	at \f2position\fP	with \f2corner\fP
	by \f2expr, expr\fP	then
	dotted \f2opt-expr\fP	dashed \f2opt-expr\fP
	chop \f2opt-expr\fP	->  <-  <->
	invis	same
	fill \f2opt-expr\fP
	\f2text-list\fP	\f2expr\fP
.EE
Missing attributes and values are filled in from defaults.
Not all attributes make sense for all primitives;
irrelevant ones are silently ignored.
The attribute
.L at
causes the geometrical center to be put at the specified place;
.L with
causes the position on the object to be put at the specified place.
For lines, splines and arcs,
.L height
and
.L width
refer to arrowhead size.
A bare
.I expr
implies motion in the current direction.
.PP
Text is normally an attribute of some primitive;
by default it is placed at the geometrical center of the object.
Stand-alone text is also permitted.
A text list
is a list of text items:
.EX
\f2  text-item\fP:
	"..." \f2positioning ...\fP
	sprintf("\f2format\fP", \f2expr\fP, \f2...\fP) \f2positioning ...\fP
\f2  positioning\fP:
	center  ljust  rjust  above  below
.EE
If there are multiple text items for some primitive,
they are arranged vertically and centered except as qualified.
Positioning requests apply to each item independently.
Text items may contain
.I troff
commands for size and font changes, local motions, etc.,
but make sure that these are balanced
so that the entering state is restored before exiting.
.PP
A position is ultimately an
.I x,y
coordinate pair, but it may be specified in other ways.
.EX
\f2  position\fP:
	\f2expr, expr\fP
	\f2place\fP ± \f2expr, expr\fP
	\f2place\fP ± ( \f2expr, expr\fP )
	( \f2position\fP,\f2 position\fP )	\f2x\fP\fR from one, \f2y\fP\fR the other\fP
	\f2expr\fP [\fLof the way\fP] between \f2position\fP and \f2position\fP
	\f2expr\fP < \f2position\fP , \f2position\fP >
	( \f2position\fP )
.EE
.PP
.EX
\f2  place\fP:
	\f2placename\fP \f2optional-corner\fP
	\f2corner\fP of \f2placename\fP
	\f2nth\fP \f2primitive\fP \f2optional-corner\fP
	\f2corner\fP of \f2nth\fP \f2primitive\fP
	Here
.EE
An
.IR optional-corner
is one of the eight compass points
or the center or the start or end of a primitive.
.EX
\f2  optional-corner\fP:
	.n  .e  .w  .s  .ne  .se  .nw  .sw  .c  .start  .end
\f2  corner\fP:
	top  bot  left  right  start  end
.EE
Each object in a picture has an ordinal number;
.IR nth
refers to this.
.EX
\f2  nth\fP:
	\f2n\fPth\f2,     n\fPth last
.EE
.PP
The built-in variables and their default values are:
.EX
.ta .5i 2.5i
	boxwid 0.75	boxht 0.5
	circlerad 0.25	arcrad 0.25
	ellipsewid 0.75	ellipseht 0.5
	linewid 0.5	lineht 0.5
	movewid 0.5	moveht 0.5
	textwid 0	textht 0
	arrowwid 0.05	arrowht 0.1
	dashwid 0.1	arrowhead 2
	scale 1
.EE
These may be changed at any time,
and the new values remain in force from picture to picture until changed again
or reset by a
.L reset
statement.
Variables changed within
.B [
and
.B ]
revert to their previous value upon exit from the block.
Dimensions are divided by
.B scale
during output.
.PP
Expressions in
.I pic
are evaluated in floating point.
All numbers representing dimensions are taken to be in inches.
.EX
\f2  expr\fP:
	\f2expr\fP \f2op\fP \f2expr\fP
	- \f2expr\fP
	! \f2expr\fP
	( \f2expr\fP )
	variable
	number
	\f2place\fP .x  \f2place\fP .y  \f2place\fP .ht  \f2place\fP .wid  \f2place\fP .rad
	sin(\f2expr\fP)  cos(\f2expr\fP)  atan2(\f2expr,expr\fP)  log(\f2expr\fP)  exp(\f2expr\fP)
	sqrt(\f2expr\fP)  max(\f2expr,expr\fP)  min(\f2expr,expr\fP)  int(\f2expr\fP)  rand()
\f2  op\fP:
	+  -  *  /  %  <  <=  >  >=  ==  !=  &&  ||
.EE
.PP
The
.B define
and
.B undef
statements are not part of the grammar.
.EX
	define \f2name\fP { \f2replacement text\fP }
	undef \f2name\fP
.EE
Occurrences of
.BR $1 ,
.BR $2 ,
etc.,
in the replacement text
will be replaced by the corresponding arguments if
.I name
is invoked as
.EX
	\f2name\fP(\f2arg1\fP, \f2arg2\fP, ...)
.EE
Non-existent arguments are replaced by null strings.
Replacement text
may contain newlines.
The
.B undef
statement removes the definition of a macro.
.PP
.I Tpic
is a
.IR tex (1)
preprocessor that accepts
.IR pic
language.
It produces Tex commands that define a box called
.BR \egraph ,
which contains the picture.
The box may be output this way:
.IP
.L
\ecenterline{\ebox\egraph}
.SH EXAMPLES
.EX
arrow "input" above; box "process"; arrow "output" above
move
A: ellipse 
   circle rad .1 with .w at A.e
   circle rad .05 at 0.5 <A.c, A.ne>
   circle rad .065 at 0.5 <A.c, A.ne>
   spline from last circle.nw left .25 then left .05 down .05
   arc from A.c to A.se rad 0.5
   for i = 1 to 10 do { line from A.s+.025*i,.01*i down i/50 } 
.EE
.PP
.PS
arrow "input" above; box "process"; arrow "output" above
move
A: ellipse 
   circle rad .1 with .w at A.e
   circle rad .05 at 0.5 <A.c, A.ne>
   circle rad .065 at 0.5 <A.c, A.ne>
   spline from last circle.nw left .25 then left .05 down .05
   arc from A.c to A.se rad 0.5
   for i = 1 to 10 do { line from A.s+.025*i,.01*i down i/50 } 
.PE
.SH SOURCE
.B \*9/src/cmd/pic
.SH "SEE ALSO"
.IR grap (1), 
.IR doctype (1),
.IR troff (1)
.br
B. W. Kernighan,
``PIC\(ema Graphics Language for Typesetting'',
.I
Unix Research System Programmer's Manual,
Tenth Edition, Volume 2
