Bring in some more man pages.
This commit is contained in:
parent
6cc703dc9a
commit
dfc67f9b6d
5 changed files with 1582 additions and 0 deletions
344
man/man1/pic.1
Normal file
344
man/man1/pic.1
Normal file
|
|
@ -0,0 +1,344 @@
|
|||
.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 /sys/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
|
||||
Loading…
Add table
Add a link
Reference in a new issue