Annotation of researchv10dc/man/adm/man1/pic.1, revision 1.1

1.1     ! root        1: .de PS \" start picture
        !             2: .      \" $1 is height, $2 is width, both in inches
        !             3: .if \\$1>0 .sp .35
        !             4: .ie \\$1>0 .nr $1 \\$1
        !             5: .el .nr $1 0
        !             6: .in (\\n(.lu-\\$2)/2u
        !             7: .ne \\$1
        !             8: ..
        !             9: .de PE \" end of picture
        !            10: .in
        !            11: .if \\n($1>0 .sp .65
        !            12: ..
        !            13: .TH PIC 1
        !            14: .CT 1 writing_troff graphics
        !            15: .SH NAME
        !            16: pic, tpic \(mi troff and tex preprocessors for drawing pictures
        !            17: .SH SYNOPSIS
        !            18: .B pic
        !            19: [
        !            20: .I files
        !            21: ]
        !            22: .PP
        !            23: .B tpic
        !            24: [
        !            25: .I files
        !            26: ]
        !            27: .SH DESCRIPTION
        !            28: .I Pic
        !            29: is a
        !            30: .IR troff (1)
        !            31: preprocessor for drawing figures on a typesetter.
        !            32: .I Pic
        !            33: code is contained between
        !            34: .B .PS
        !            35: and
        !            36: .B .PE
        !            37: lines:
        !            38: .IP
        !            39: .EX
        !            40: \&.PS \f2optional-width\fP \f2optional-height\fP
        !            41: \f2element-list\fP
        !            42: \&.PE
        !            43: .EE
        !            44: .LP
        !            45: or in a file mentioned in a
        !            46: .B .PS
        !            47: line:
        !            48: .IP
        !            49: .BI .PS " optional-width optional-height " < file
        !            50: .LP
        !            51: If
        !            52: .IR optional-width
        !            53: is present, the picture is made that many inches wide,
        !            54: regardless of any dimensions used internally.
        !            55: The height is scaled in the same proportion unless
        !            56: .IR optional-height
        !            57: is present.
        !            58: If
        !            59: .B .PF
        !            60: is used instead of
        !            61: .BR .PE ,
        !            62: the typesetting position after printing is restored to what it was
        !            63: upon entry.
        !            64: .PP
        !            65: An
        !            66: .IR element-list
        !            67: is a list of elements:
        !            68: .EX
        !            69:        \f2primitive  attribute-list\fP
        !            70:        \f2placename\fP : \f2element\fP
        !            71:        \f2placename\fP : \f2position\fP
        !            72:        \f2var\fP = \f2expr\fP
        !            73:        \f2direction\fP
        !            74:        { \f2element-list\fP }
        !            75:        [ \f2element-list\fP ]
        !            76:        for \f2var\fP = \f2expr\fP to \f2expr\fP by \f2expr\fP do { \f2anything\fP }
        !            77:        if \f2expr\fP then { \f2anything\fP } else { \f2anything\fP }
        !            78:        copy \f2file,\fP  copy thru \f2macro,\fP  copy \f2file\fP thru \fPmacro\fP
        !            79:        sh { \f2commandline\fP }
        !            80:        print \f2expr\fP
        !            81:        reset \f2optional var-list\fP
        !            82:        \f2troff-command\fP
        !            83: .EE
        !            84: .PP
        !            85: Elements are separated by newlines or semicolons;
        !            86: a long element may be continued by ending the line with a backslash.
        !            87: Comments are introduced by a
        !            88: .BI #
        !            89: and terminated by a newline.
        !            90: Variable names begin with a lower case letter;
        !            91: place names begin with upper case.
        !            92: Place and variable names retain their values
        !            93: from one picture to the next.
        !            94: .PP
        !            95: After each primitive
        !            96: the current position moves in the current direction
        !            97: .RB ( up , down ,
        !            98: .BR left , right
        !            99: (default)) by the size of the primitive.
        !           100: The current position and direction are saved upon entry
        !           101: to a
        !           102: .BR { ... }
        !           103: block and restored upon exit.
        !           104: Elements within a block enclosed in
        !           105: .BR [ ... ]
        !           106: are treated as a unit;
        !           107: the dimensions are determined by the extreme points
        !           108: of the contained objects.
        !           109: Names, variables, and direction of motion within a block are local to that block.
        !           110: .PP
        !           111: .IR troff-command
        !           112: is any line that begins with a period.
        !           113: Such a line is assumed to make sense in the context where it appears;
        !           114: generally, this means only size and font changes.
        !           115: .PP
        !           116: The
        !           117: .I primitive
        !           118: objects are:
        !           119: .br
        !           120: .EX
        !           121:        box  circle  ellipse  arc  line  arrow  spline  move  \f2text-list\fP
        !           122: .EE
        !           123: .L arrow
        !           124: is a synonym for
        !           125: .LR "line ->" .
        !           126: .PP
        !           127: An
        !           128: .IR attribute-list
        !           129: is a sequence of zero or more attributes;
        !           130: each attribute consists of a keyword, perhaps followed by a value.
        !           131: .EX
        !           132: .ta .5i 2.5i
        !           133:        h(eigh)t \f2expr\fP     wid(th) \f2expr\fP
        !           134:        rad(ius) \f2expr\fP     diam(eter) \f2expr\fP
        !           135:        up \f2opt-expr\fP       down \f2opt-expr\fP
        !           136:        right \f2opt-expr\fP    left \f2opt-expr\fP
        !           137:        from \f2position\fP     to \f2position\fP
        !           138:        at \f2position\fP       with \f2corner\fP
        !           139:        by \f2expr, expr\fP     then
        !           140:        dotted \f2opt-expr\fP   dashed \f2opt-expr\fP
        !           141:        chop \f2opt-expr\fP     ->  <-  <->
        !           142:        invis   same
        !           143:        \f2text-list\fP \f2expr\fP
        !           144: .EE
        !           145: Missing attributes and values are filled in from defaults.
        !           146: Not all attributes make sense for all primitives;
        !           147: irrelevant ones are silently ignored.
        !           148: The attribute
        !           149: .L at
        !           150: causes the geometrical center to be put at the specified place;
        !           151: .L with
        !           152: causes the position on the object to be put at the specified place.
        !           153: For lines, splines and arcs,
        !           154: .L height
        !           155: and
        !           156: .L width
        !           157: refer to arrowhead size.
        !           158: A bare
        !           159: .I expr
        !           160: implies motion in the current direction.
        !           161: .PP
        !           162: Text is normally an attribute of some primitive;
        !           163: by default it is placed at the geometrical center of the object.
        !           164: Stand-alone text is also permitted.
        !           165: A text list
        !           166: is a list of text items:
        !           167: .EX
        !           168: \f2  text-item\fP:
        !           169:        "..." \f2positioning ...\fP
        !           170:        sprintf("\f2format\fP", \f2expr\fP, \f2...\fP) \f2positioning ...\fP
        !           171: \f2  positioning\fP:
        !           172:        center  ljust  rjust  above  below
        !           173: .EE
        !           174: If there are multiple text items for some primitive,
        !           175: they are arranged vertically and centered except as qualified.
        !           176: Positioning requests apply to each item independently.
        !           177: Text items may contain
        !           178: .I troff
        !           179: commands for size and font changes, local motions, etc.,
        !           180: but make sure that these are balanced
        !           181: so that the entering state is restored before exiting.
        !           182: .PP
        !           183: A position is ultimately an
        !           184: .I x,y
        !           185: coordinate pair, but it may be specified in other ways.
        !           186: .EX
        !           187: \f2  position\fP:
        !           188:        \f2expr, expr\fP
        !           189:        \f2place\fP \(+- \f2expr, expr\fP
        !           190:        \f2place\fP \(+- ( \f2expr, expr\fP )
        !           191:        ( \f2position\fP,\f2 position\fP )      \f2x\fP\fR from one, \f2y\fP\fR the other\fP
        !           192:        \f2expr\fP [\f2of the way\fP] between \f2position\fP and \f2position\fP
        !           193:        \f2expr\fP < \f2position\fP , \f2position\fP >
        !           194:        ( \f2position\fP )
        !           195: .EE
        !           196: .PP
        !           197: .EX
        !           198: \f2  place\fP:
        !           199:        \f2placename\fP \f2optional-corner\fP
        !           200:        \f2corner\fP of \f2placename\fP
        !           201:        \f2nth\fP \f2primitive\fP \f2optional-corner\fP
        !           202:        \f2corner\fP of \f2nth\fP \f2primitive\fP
        !           203:        Here
        !           204: .EE
        !           205: An
        !           206: .IR optional-corner
        !           207: is one of the eight compass points
        !           208: or the center or the start or end of a primitive.
        !           209: .EX
        !           210: \f2  optional-corner\fP:
        !           211:        .n  .e  .w  .s  .ne  .se  .nw  .sw  .c  .start  .end
        !           212: \f2  corner\fP:
        !           213:        top  bot  left  right  start  end
        !           214: .EE
        !           215: Each object in a picture has an ordinal number;
        !           216: .IR nth
        !           217: refers to this.
        !           218: .EX
        !           219: \f2  nth\fP:
        !           220:        \f2n\fPth\f2,     n\fPth last
        !           221: .EE
        !           222: .PP
        !           223: The built-in variables and their default values are:
        !           224: .EX
        !           225: .ta .5i 2.5i
        !           226:        boxwid 0.75     boxht 0.5
        !           227:        circlerad 0.25  arcrad 0.25
        !           228:        ellipsewid 0.75 ellipseht 0.5
        !           229:        linewid 0.5     lineht 0.5
        !           230:        movewid 0.5     moveht 0.5
        !           231:        textwid 0       textht 0
        !           232:        arrowwid 0.05   arrowht 0.1
        !           233:        dashwid 0.1     arrowhead 2
        !           234:        scale 1
        !           235: .EE
        !           236: These may be changed at any time,
        !           237: and the new values remain in force from picture to picture until changed again
        !           238: or reset by a
        !           239: .L reset
        !           240: statement.
        !           241: Variables changed within
        !           242: .B [
        !           243: and
        !           244: .B ]
        !           245: revert to their previous value upon exit from the block.
        !           246: Dimensions are divided by
        !           247: .B scale
        !           248: during output.
        !           249: .PP
        !           250: Expressions in
        !           251: .I pic
        !           252: are evaluated in floating point.
        !           253: All numbers representing dimensions are taken to be in inches.
        !           254: .EX
        !           255: \f2  expr\fP:
        !           256:        \f2expr\fP \f2op\fP \f2expr\fP
        !           257:        - \f2expr\fP
        !           258:        ! \f2expr\fP
        !           259:        ( \f2expr\fP )
        !           260:        variable
        !           261:        number
        !           262:        \f2place\fP .x  \f2place\fP .y  \f2place\fP .ht  \f2place\fP .wid  \f2place\fP .rad
        !           263:        sin(\f2expr\fP)  cos(\f2expr\fP)  atan2(\f2expr,expr\fP)  log(\f2expr\fP)  exp(\f2expr\fP)
        !           264:        sqrt(\f2expr\fP)  max(\f2expr,expr\fP)  min(\f2expr,expr\fP)  int(\f2expr\fP)  rand()
        !           265: \f2  op\fP:
        !           266:        +  -  *  /  %  <  <=  >  >=  ==  !=  &&  ||
        !           267: .EE
        !           268: .PP
        !           269: The
        !           270: .B define
        !           271: and
        !           272: .B undef
        !           273: statements are not part of the grammar.
        !           274: .EX
        !           275:        define \f2name\fP { \f2replacement text\fP }
        !           276:        undef \f2name\fP
        !           277: .EE
        !           278: Occurrences of
        !           279: .BR $1 ,
        !           280: .BR $2 ,
        !           281: etc.,
        !           282: in the replacement text
        !           283: will be replaced by the corresponding arguments if
        !           284: .I name
        !           285: is invoked as
        !           286: .EX
        !           287:        \f2name\fP(\f2arg1\fP, \f2arg2\fP, ...)
        !           288: .EE
        !           289: Non-existent arguments are replaced by null strings.
        !           290: Replacement text
        !           291: may contain newlines.
        !           292: The
        !           293: .B undef
        !           294: statement removes the definition of a macro.
        !           295: .PP
        !           296: .I Tpic
        !           297: is a
        !           298: .IR tex (1)
        !           299: preprocessor that accepts
        !           300: .IR pic
        !           301: language.
        !           302: It produces Tex commands that define a box called
        !           303: .BR \egraph ,
        !           304: which contains the picture.
        !           305: The box may be output this way:
        !           306: .IP
        !           307: .L
        !           308: \ecenterline{\ebox\egraph}
        !           309: .SH EXAMPLES
        !           310: .EX
        !           311: arrow "input" above; box "process"; arrow "output" above
        !           312: move
        !           313: A: ellipse 
        !           314:    circle rad .1 with .w at A.e
        !           315:    circle rad .05 at 0.5 <A.c, A.ne>
        !           316:    arc from A.c to A.se rad 0.5
        !           317: .EE
        !           318: .PP
        !           319: .PS
        !           320: arrow "input" above; box "process"; arrow "output" above
        !           321: move
        !           322: A: ellipse 
        !           323:    circle rad .1 with .w at A.e
        !           324:    circle rad .05 at 0.5 <A.c, A.ne>
        !           325:    arc from A.c to A.se rad 0.5
        !           326: .PE
        !           327: .SH "SEE ALSO"
        !           328: .IR cip (9.1),
        !           329: .IR ideal (1), 
        !           330: .IR ped (9.1),
        !           331: .IR grap (1), 
        !           332: .IR dag (1),
        !           333: .IR doctype (1),
        !           334: .IR troff (1)
        !           335: .br
        !           336: B. W. Kernighan,
        !           337: `PIC\(ema Graphics Language for Typesetting',
        !           338: this manual, Volume 2

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.