Annotation of researchv10dc/cmd/ideal/manpage, revision 1.1

1.1     ! root        1: .EQ
        !             2: delim $$
        !             3: .EN
        !             4: .TH IDEAL 1 
        !             5: .SH NAME
        !             6: ideal \- troff preprocessor for drawing pictures
        !             7: .SH SYNOPSIS
        !             8: .B ideal
        !             9: [
        !            10: .BI \-p
        !            11: ]
        !            12: [
        !            13: .BI \-4
        !            14: ]
        !            15: [
        !            16: .BI \-n
        !            17: ]
        !            18: [
        !            19: .BI \-a
        !            20: ]
        !            21: [
        !            22: .BI \-s
        !            23: ]
        !            24: [ files ]
        !            25: .SH DESCRIPTION
        !            26: .I Ideal
        !            27: is yet another
        !            28: .IR troff (1)
        !            29: preprocessor for drawing figures on a typesetter.
        !            30: When invoked with the
        !            31: .I \-s
        !            32: option,
        !            33: it tries to decompose the figure into sorted short
        !            34: straight lines for fast typesetting.
        !            35: A line beginning `.IS' marks the start of an
        !            36: .I ideal
        !            37: program.
        !            38: An
        !            39: .I ideal
        !            40: program ends with `.IE' or `.IF';
        !            41: `.IE' leaves you below the bottom of the picture,
        !            42: while `.IF' (flyback)
        !            43: leaves you at the same place you were when you said `.IS'.
        !            44: .PP
        !            45: When invoked
        !            46: with the
        !            47: .I \-p
        !            48: option,
        !            49: .I ideal
        !            50: produces 
        !            51: .IR plot (1)
        !            52: instructions.
        !            53: The erases come at every `.IS', and they come fast and
        !            54: furious, so you might prefer using the
        !            55: .I \-4
        !            56: option, which produces instructions for a Tektronix
        !            57: 4014, and waits at each `.IE' for an input character
        !            58: before erasing and starting the next picture.
        !            59: The
        !            60: .I \-n
        !            61: option produces raw
        !            62: .IR ideal
        !            63: output, which passes unharmed through
        !            64: .IR nroff (1).
        !            65: The
        !            66: .I \-a
        !            67: option produces output suitable for processing on the Autologic APS-5,
        !            68: instead of the Mergenthaler Linotron 202.
        !            69: .PP
        !            70: The building block for
        !            71: .I ideal
        !            72: programs is a ``box'';
        !            73: boxes look like C functions,
        !            74: in that they are named, and delimited by braces.
        !            75: They may include the following kinds of statements,
        !            76: each terminated by a semicolon:
        !            77: .TP
        !            78: .I var
        !            79: declares one or more complex variables local to the box.
        !            80: Variable names are made up of letters and digits, and
        !            81: start with a letter; do not use any of the following
        !            82: keywords as variable names:
        !            83: at,
        !            84: bdlist,
        !            85: boundary,
        !            86: box,
        !            87: conn,
        !            88: construct,
        !            89: draw,
        !            90: exterior,
        !            91: interior,
        !            92: left,
        !            93: opaque,
        !            94: put,
        !            95: right,
        !            96: spline,
        !            97: text,
        !            98: to,
        !            99: using,
        !           100: var
        !           101: .TP
        !           102: .I equation
        !           103: declares relative positions of significant points of the box
        !           104: .TP
        !           105: .I conn
        !           106: asks for a straight-line path through named points
        !           107: .TP
        !           108: .I pen
        !           109: asks for a box to be replicated along a line between two points
        !           110: .TP
        !           111: .I left
        !           112: left-justifies text with respect to a point
        !           113: .TP
        !           114: .I text
        !           115: centers text with respect to a point
        !           116: .TP
        !           117: .I right
        !           118: right-justifies text with respect to a point
        !           119: .TP
        !           120: .I spline
        !           121: draws a spline guided by the named points
        !           122: .TP
        !           123: .I put
        !           124: asks for an instance of a box to be drawn
        !           125: .TP
        !           126: .I opaque
        !           127: asks for a box to erase lines already in the picture that
        !           128: are covered by its bounding polygon
        !           129: .TP
        !           130: .I boundary
        !           131: specifies the bounding polygon for an opaque box
        !           132: .TP
        !           133: .I construct
        !           134: builds a partial picture on a separate ``sheet of paper''
        !           135: .TP
        !           136: .I draw
        !           137: adds the contents of the named constructed box to the current picture
        !           138: .PP
        !           139: .I Ideal
        !           140: expects all components of a picture to be specified as boxes;
        !           141: instructions to draw the entire picture should comprise a box called ``main.''
        !           142: Boxes are remembered across .IS-.IE boundaries;
        !           143: if you won't need a box again, you can reclaim the
        !           144: space it requires by including the command
        !           145: `...forget boxname' on a line between any .IS-.IE
        !           146: pair after the last use of boxname.
        !           147: Box
        !           148: .I main
        !           149: is an exception to this rule:
        !           150: it is always forgotten when the .IE is processed.
        !           151: .PP
        !           152: During its first pass,
        !           153: .I ideal
        !           154: solves all the equations to determine the locations of all points
        !           155: it needs to know.
        !           156: These equations must be linear equations in complex variables,
        !           157: although they may include non-linear operators:
        !           158: .I ideal
        !           159: plugs in for as many variables, and does as much function evaluation,
        !           160: as it can before solving the linear equation.
        !           161: It waits until it has absolutely no hope of reducing an equation
        !           162: to a linear equation before complaining.
        !           163: .I Ideal
        !           164: knows about the following functions:
        !           165: .TP
        !           166: $ alpha [ z , w ] $
        !           167: $ ~ == z + alpha ( w - z )$, $alpha$ of the way from $z$ to $w$
        !           168: .TP
        !           169: .I re (z)
        !           170: real part of complex number
        !           171: $z$
        !           172: .TP
        !           173: .I im (z)
        !           174: imaginary part of complex number
        !           175: $z$
        !           176: .TP
        !           177: .I conj (z)
        !           178: complex conjugate of complex number
        !           179: $z$
        !           180: .TP
        !           181: .I abs (z)
        !           182: absolute value (modulus) of complex number
        !           183: $z$
        !           184: .TP
        !           185: .I cis (x)
        !           186: a unit vector in the direction of the real part of its argument $x$,
        !           187: which is an angle in degrees
        !           188: (radians if the line `...radians' appeared more
        !           189: recently in the file than the line
        !           190: `...degrees')
        !           191: .TP
        !           192: .I E (x)
        !           193: $== cis ( 360 x )$
        !           194: if $x$ is measured in degrees
        !           195: .TP
        !           196: .I int (x)
        !           197: integer part of the real part of its argument $x$
        !           198: .TP
        !           199: .I angle (z)
        !           200: arctangent of $im ( z ) / re ( z )$
        !           201: .PP
        !           202: During the second pass,
        !           203: .I ideal
        !           204: draws the picture.
        !           205: .PP
        !           206: To draw a circle,
        !           207: include the line `...libfile circle' between the .IS and .IE lines,
        !           208: and
        !           209: .I put
        !           210: the box named
        !           211: .I circle,
        !           212: giving enough information that
        !           213: the circle can be determined;
        !           214: for instance, give the center and the radius,
        !           215: or give three points through which the circle passes,
        !           216: or give the center and a point on the circle.
        !           217: The circle has center $center$, radius $radius$, and passes
        !           218: through $z1$, $z2$, and $z3$.
        !           219: .PP
        !           220: To draw an arc,
        !           221: include the line `...libfile arc'  between the .IS and .IE lines,
        !           222: and
        !           223: .I put
        !           224: the box named
        !           225: .I arc,
        !           226: again giving enough information to determine the arc;
        !           227: for instance, give the center, radius, and starting and ending angles,
        !           228: or give three points on the arc--where to start, where to end, and somewhere
        !           229: in between.
        !           230: The arc has center $center$, radius $radius$,
        !           231: starts at point $start$ at angle $startang$,
        !           232: passes through point $midway$ at angle $midang$,
        !           233: and ends at point $end$ at angle $endang$.
        !           234: If no $midway$ is specified, the arc is drawn counterclockwise
        !           235: from $start$ to $end$.
        !           236: .PP
        !           237: The picture will be scaled to a default width of four inches
        !           238: and centered in a column of six inches.
        !           239: The default width can be changed by a `...width' command,
        !           240: which includes a number in inches.
        !           241: The default column width can be changed by a `...colwid' command.
        !           242: To defeat
        !           243: \f2ideal\fP's
        !           244: notion of the size of the picture, you can include lines of
        !           245: the form `...minx', `...miny', `...maxx', or `...maxy';
        !           246: these give the various coordinates of the bounding box of the
        !           247: picture in the coordinate system used by the picture.
        !           248: .PP
        !           249: .I Ideal
        !           250: supports both C-style comments (between /* and */ brackets, and they nest),
        !           251: and shell-style comments (between # and newline).
        !           252: .SH "SEE ALSO"
        !           253: C. J. Van Wyk,
        !           254: .I "A Graphics Language for Typesetting" (TM 79-1274-10),
        !           255: C. J. Van Wyk,
        !           256: .I "A Graphics Typesetting Language" (TM 80-1272-20),
        !           257: C. J. Van Wyk,
        !           258: .I "A Language for Typesetting Graphics" (Stanford Ph.D. Dissertation),
        !           259: .SH BUGS
        !           260: .I Ideal
        !           261: is relatively unforgiving about syntax errors.
        !           262: Bounding box computation is naive for arcs and text strings.

unix.superglobalmegacorp.com

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