Annotation of researchv10dc/man/manb/prtx.5g, revision 1.1.1.1

1.1       root        1: .TH prtx 5G "WH" MARX
                      2: .SH NAME
                      3: prtx \- format of prtx commands
                      4: .SH DESCRIPTION
                      5: .P
                      6: Commands are in ascii characters and
                      7: are terminated by either a ";" or a newline character.
                      8: Besides commands there are "prefixes" that modify the 
                      9: following a command.
                     10: .P
                     11: Most commands and prefixes take arguments.  
                     12: These are often numbers or
                     13: point positions. 
                     14: The latter being a pair of numbers.
                     15: Numbers can be arbitrary
                     16: arithmetic expressions involving "+", "-", "*" or "/", numeric
                     17: constants, and parenthesis.  
                     18: A numeric constant is a decimal number (optionally  
                     19: including a decimal point and fraction) followed by a scale.  
                     20: A scale is "i", for inches,
                     21: "c" for characters, or "d" for dots.  (A dot is the smallest resolution
                     22: on the printer.) If the scale is omitted "c" is assumed.  Constants
                     23: used in multiplication or division should omit the scale.
                     24: .PP
                     25: Point positions are specified by a row position and a column position, 
                     26: separated by white space (blanks or tabs).  
                     27: The upper left hand corner of the
                     28: page is 0 0.  Positions increase to the right and downward.
                     29: If a page contains 60 characters vertically and 80 horizontally.
                     30: the last horizontal dot is at 80c-1d and the last
                     31: vertical dot is at 60c-1d.
                     32: .PP
                     33: The commands are:
                     34: .TP 10
                     35: # comment
                     36: This command has no effect.  Note that it is terminated by a ";"
                     37: just like any other command.
                     38: .TP 10
                     39: line  point1 point2 ... 
                     40: Line Command: 
                     41: Straight lines are drawn starting at 
                     42: .I point1 
                     43: going to 
                     44: .I point2 
                     45: and then to further points.
                     46: At least two points must be given but there is no maximum.
                     47: Points may be separated by a "," for readability.
                     48: .TP 10
                     49: interp point1 point2 ...
                     50: Interpolate command:  
                     51: A curved line is drawn determined by the points. 
                     52: A point may be surrounded by curly braces ( '{' and '}' )
                     53: in which case it is a "guide" point.
                     54: The curve is a second degree spline that 
                     55: satisfies the following constraints:
                     56: .RS 10 
                     57: .IP
                     58: It passes through all normal points.
                     59: .IP
                     60: If two guide points are adjacent in the list it passes through
                     61: the point midway between them and is tangent to the line connecting
                     62: them.
                     63: .IP 
                     64: If a normal point is adjacent in the list to a guide point the
                     65: curve as it passes through the normal point is tangent to
                     66: the line connecting it to the guide. 
                     67: .IP 
                     68: If a normal point is not adjacent on the list to a guide point
                     69: the curve, as it passes through the normal point, has the same tangent
                     70: as the circle that goes through that point and two neighboring points
                     71: on the list. This will be the preceding and the following
                     72: points for a point in the middle of the list. 
                     73: .P
                     74: Unfortunately these rules can result in cusps.  They seem to
                     75: work best in the cases where there are three normal points
                     76: (an approximation to a circular segment) or in 
                     77: the case where guide points are used to connect two normal
                     78: points.
                     79: .RE
                     80: .TP 10
                     81: ellipse center radius
                     82: Ellipse Command: An ellipse is drawn centered at
                     83: .I center,
                     84: with its shape determined by 
                     85: .I radius.
                     86: The ellipse's axes are parallel to the picture's.
                     87: .I radius
                     88: is two expressions.  The first determines the "vertical radius"
                     89: (i.e. half the length  of the ellipse's vertical axis) and the
                     90: second determines the "horizontal radius".  If they are equal
                     91: (as distances, not as number of dots or characters) the ellipse
                     92: is a circle.
                     93: 
                     94: 
                     95: .TP 10
                     96: text point text
                     97: Text Command:
                     98: Characters specified by 
                     99: .I text 
                    100: are placed on the output starting at 
                    101: .I point.
                    102: (The position is the upper left hand corner of the first character.)
                    103: .I  text 
                    104: begins at the first non blank character following the point
                    105: and continues to the end of the line. Embedded ";" are allowed,
                    106: and "C" type escapes are processed.  
                    107: An escaped newline (i.e. one immediately preceded by a backslash)
                    108: is treated as text and does not end the command.
                    109: A leading ":" is stripped off.
                    110: This is necessary if the first character desired is a space or 
                    111: arithmetic operator. 
                    112: .TP 10
                    113: stext point point text
                    114: Slanted text command: 
                    115: Text is placed in the output as with the simple text command except
                    116: the base line (the line running across the top of the characters)
                    117: is the line through the two points.
                    118: The text starts at the first point and may proceed any 
                    119: distance towards or beyond the second point.  
                    120: The second point provides a direction only, the characters are 
                    121: not stretched or compressed.
                    122: .TP 10
                    123: mtext point terminator
                    124: Multi line text command:
                    125: Lines following the one containing the command upto (but not including)
                    126: the first line that begins with the terminator character (default '.') 
                    127: are put in the output, with the first line positioned at \fIpoint\fR
                    128: and the following lines positioned vertically below the first.
                    129: .TP 10
                    130: smtext point [point] [ terminator ] [text ]
                    131: General form of the text command: 
                    132: The modifiers "s", "m", and "N" may be combined.  
                    133: If both "s" and "m" are present "s" must come first.
                    134: The second point is required present if "s" is present and "terminator"
                    135: is required if "m" is present. Otherwise they must be omitted.
                    136: If "m" is omitted then text must be present.
                    137: .TP 10
                    138: $X [ point ]
                    139: Macro Command: Invoke macro 
                    140: .I X. 
                    141: The the body of macro
                    142: .I X
                    143: is executed with an offset of
                    144: .I point. 
                    145: That is, positions in the body of the macro are taken as relative
                    146: to 
                    147: .I point. 
                    148: If 
                    149: .I point
                    150: is omitted it is take to be the origin.
                    151: The color and solidity in effect at the point invocation are
                    152: used in drawing unless they are explicitly overridden by a prefix
                    153: within the macro body.
                    154: An invoke command is legal within a macro body but care should be
                    155: taken to avoid a macro invoking itself.
                    156: .PP
                    157: Prefixes modify the following command, which is separated
                    158: from the prefix by white space only. 
                    159: However, commands can be grouped with braces 
                    160: (i.e the characters '{' and '}').
                    161: If the opening brace is in the same line as the prefix, 
                    162: commands my be on different lines, and the prefix applies to
                    163: all commands within the braces ;
                    164: Braces can be nested.
                    165: More than one prefix can modify a single command
                    166: The following prefixes are defined:
                    167: .TP 10
                    168: at point
                    169: Translation Prefixes:
                    170: Locations in the prefixed command are 
                    171: taken as relative to the argument of 
                    172: .I at.
                    173: .TP 10
                    174: expand factor
                    175: Expand Prefix:
                    176: The prefix command is expanded about the origin by 
                    177: .I factor, 
                    178: which is an unscaled numeric expression.  
                    179: That is, all positions and shapes are multiplied by 
                    180: .I factor.
                    181: .TP 10
                    182: rotate angle
                    183: Rotation Prefix:  
                    184: Locations in the prefixed command are rotated about the origin by 
                    185: .I angle
                    186: degrees.  
                    187: Text will still be horizontal, unless created with an \fIstext\fR 
                    188: command.
                    189: .TP 10
                    190: size N
                    191: Character Size Prefix: 
                    192: Characters in the prefixed command have their size multiplied
                    193: by N.  N must be and integer.
                    194: .TP 10
                    195: style solidity
                    196: Line Style Prefix:
                    197: The line drawing commands (line, ellipse, interp) will normally
                    198: draw solid lines but this can be changed by a \fIstyle\fR prefix.
                    199: Solidity is one of the following literals: solid, longdashed, dashed, 
                    200: dotdashed, dotted, invisible. 
                    201: Invisible lines are not drawn at all, so this style is useful in
                    202: taking up space in connection with the stack and shelf prefixes.
                    203: .TP 10
                    204: color colorname
                    205: Color prefix:
                    206: Every thing drawn by the following command will be in the named color.
                    207: Legal colors are: yellow, orange, red, green, blue, violet.
                    208: If the output device does not have colors this prefix is ignored.
                    209: .TP 10
                    210: boxit space 
                    211: Boxit Prefix:
                    212: Space consists of two numeric expressions, a row and a column spacing.
                    213: Boxit draws the prefixed command and an enclosing box.  The box is
                    214: drawn to leave the specified spaces at the top and bottom (row space),
                    215: and sides (column space) around the prefixed command.
                    216: .TP 10 ;
                    217: define X 
                    218: Define macro:
                    219: .I X
                    220: is any alphabetic character (lower and upper case are considered
                    221: identical) and the macro is defined as equivalent to the following
                    222: command.
                    223: The prefixed command, which must be a block 
                    224: (i.e. surrounded by braces),
                    225: becomes the body of the macro
                    226: and is not executed until the macro is invoked.
                    227: Once defined a macro character may not be redefined.
                    228: More elaborate macros can be obtained using a general 
                    229: macro processor such as 
                    230: .I m4
                    231: and the general arithmetic expressions provided by
                    232: .I prtx.
                    233: .TP 10 
                    234: stack
                    235: Stack commands:
                    236: The prefixed command must be a block.  Each command of the 
                    237: block is interpreted as if the origin had been moved to below
                    238: the earlier commands.  The effect is what would be achieved
                    239: if each command were prefixed by "at max 0", where max is the
                    240: maximum row contained in previous commands.  A row is contained
                    241: in a command if the command puts a dot in the row.  Text
                    242: commands also contain some blank space below the characters.
                    243: (In some circumstances, e.g. slanted text, 
                    244: \fIprtx\fR cannot easily compute the contained rows and
                    245: makes a guess.
                    246: But, arbitrary lines, and horizontal text work 
                    247: properly.)
                    248: .TP 10
                    249: shelf
                    250: Lay commands left to right.  This is like the
                    251: stack prefix except cammands are moved to the right rather than down.
                    252: .SH HISTORY
                    253: The current version of prtx also accepts an old form of the
                    254: command language.  It is compatibility with this old form
                    255: that makes the macro prefix require the prefixed command to
                    256: be a block.  In the future this restriction will disappear.
                    257: .SH FUTURE PLANS
                    258: .SH SEE ALSO
                    259: .I prtx(1)
                    260: .SH AUTHOR
                    261: Jerry Schwarz (harpo!jerry)
                    262: 

unix.superglobalmegacorp.com

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