Annotation of 43BSDReno/share/doc/usd/25.trofftut/tt06, revision 1.1

1.1     ! root        1: .\"    @(#)tt06        6.1 (Berkeley) 5/23/86
        !             2: .\"
        !             3: .NH
        !             4: Local Motions: Drawing lines and characters
        !             5: .PP
        !             6: Remember `Area = \(*pr\u2\d' and the big `P'
        !             7: in the Paternoster.
        !             8: How are they done?
        !             9: .UL troff
        !            10: provides a host of commands for placing characters of any size
        !            11: at any place.
        !            12: You can use them to draw special characters 
        !            13: or to tune your output for a particular appearance.
        !            14: Most of these commands are straightforward, but messy to read
        !            15: and tough to type correctly.
        !            16: .PP
        !            17: If you won't use 
        !            18: .UL eqn ,
        !            19: subscripts and superscripts are most easily done with
        !            20: the half-line local motions
        !            21: .BD \eu
        !            22: and
        !            23: .BD \ed .
        !            24: To go back up the page half a point-size, insert a
        !            25: .BD \eu
        !            26: at the desired place;
        !            27: to go down, insert a
        !            28: .BD \ed .
        !            29: .BD \eu \& (
        !            30: and
        !            31: .BD \ed
        !            32: should always
        !            33: be used in pairs, as explained below.)
        !            34: Thus
        !            35: .P1
        !            36: Area = \e(*pr\eu2\ed
        !            37: .P2
        !            38: produces
        !            39: .P1
        !            40: Area = \(*pr\u2\d
        !            41: .P2
        !            42: To make the `2' smaller, bracket it with
        !            43: .BD \es\-2...\es0 .
        !            44: Since
        !            45: .BD \eu
        !            46: and
        !            47: .BD \ed
        !            48: refer to the current point size,
        !            49: be sure to put them either both inside or both outside
        !            50: the size changes,
        !            51: or you will get an unbalanced vertical motion.
        !            52: .PP
        !            53: Sometimes the space given by
        !            54: .BD \eu
        !            55: and
        !            56: .BD \ed
        !            57: isn't the right amount.
        !            58: The 
        !            59: .BD \ev
        !            60: command can be used to request an arbitrary amount of vertical motion.
        !            61: The in-line command
        !            62: .P1
        !            63: \ev'(amount)'
        !            64: .P2
        !            65: causes motion up or down the page by the amount specified in
        !            66: `(amount)'.
        !            67: For example, to move the `P' down, we used
        !            68: .P1 2
        !            69: .ta 1i
        !            70: ^in +0.6i      (move paragraph in)
        !            71: ^ll \-0.3i     (shorten lines)
        !            72: ^ti \-0.3i     (move P back)
        !            73: \ev'2'\es36P\es0\ev'\-2'ater noster qui est
        !            74: in caelis ...
        !            75: .P2
        !            76: A minus sign causes upward motion, while
        !            77: no sign or a plus sign means down the page.
        !            78: Thus
        !            79: .BD \ev\(fm\-2\(fm
        !            80: causes an upward vertical motion 
        !            81: of two line spaces.
        !            82: .PP
        !            83: There are many other ways to specify the amount of motion _
        !            84: .P1
        !            85: \ev'0.1i'
        !            86: \ev'3p'
        !            87: \ev'\-0.5m'
        !            88: .P2
        !            89: and so on are all legal.
        !            90: Notice that the scale specifier
        !            91: .BD i
        !            92: or
        !            93: .BD p
        !            94: or
        !            95: .BD m
        !            96: goes inside the quotes.
        !            97: Any character can be used in place of the quotes;
        !            98: this is also true of all other
        !            99: .UL troff
        !           100: commands described in this section.
        !           101: .PP
        !           102: Since
        !           103: .UL troff
        !           104: does not take within-the-line vertical motions into account
        !           105: when figuring out where it is on the page,
        !           106: output lines can have unexpected positions
        !           107: if the left and right ends aren't at the same
        !           108: vertical position.
        !           109: Thus
        !           110: .BD \ev ,
        !           111: like
        !           112: .BD \eu
        !           113: and
        !           114: .BD \ed ,
        !           115: should always balance upward vertical motion in a line with
        !           116: the same amount in the downward direction.
        !           117: .PP
        !           118: Arbitrary horizontal motions are also available _
        !           119: .BD \eh
        !           120: is quite analogous to
        !           121: .BD \ev ,
        !           122: except that the default scale factor is ems instead of line spaces.
        !           123: As an example,
        !           124: .P1
        !           125: \eh'\-0.1i'
        !           126: .P2
        !           127: causes a backwards motion of a tenth of an inch.
        !           128: As a practical matter, consider printing the mathematical symbol
        !           129: `>>'.
        !           130: The default spacing is too wide, so
        !           131: .UL eqn
        !           132: replaces this by
        !           133: .P1
        !           134: >\eh'\-0.3m'>
        !           135: .P2
        !           136: to produce >\h'-.3m'>.
        !           137: .PP
        !           138: Frequently
        !           139: .BD \eh
        !           140: is used with the `width function'
        !           141: .BD \ew
        !           142: to generate motions equal to the width
        !           143: of some character string.
        !           144: The construction
        !           145: .P1
        !           146: \ew'thing'
        !           147: .P2
        !           148: is a number equal to the width of `thing' in machine units
        !           149: (1/432 inch).
        !           150: All
        !           151: .UL troff
        !           152: computations are ultimately done in these units.
        !           153: To move horizontally the width of an `x',
        !           154: we can say
        !           155: .P1
        !           156: \eh'\ew'x'u'
        !           157: .P2
        !           158: As we mentioned above,
        !           159: the default scale factor for
        !           160: all horizontal dimensions is
        !           161: .BD m ,
        !           162: ems, so here we must have the
        !           163: .BD u
        !           164: for machine units,
        !           165: or the motion produced will be far too large.
        !           166: .UL troff
        !           167: is quite happy with the nested quotes, by the way,
        !           168: so long as you don't leave any out.
        !           169: .PP
        !           170: As a live example of this kind of construction,
        !           171: all of the command names in the text, like
        !           172: .BD .sp ,
        !           173: were done by overstriking with a slight offset.
        !           174: The commands for
        !           175: .BD .sp
        !           176: are
        !           177: .P1
        !           178: ^sp\eh'\-\ew'.sp'u'\eh'1u'.sp
        !           179: .P2
        !           180: That is, put out `.sp', move left by the width of `.sp',
        !           181: move right 1 unit, and print
        !           182: `.sp' again.
        !           183: (Of course there is a way to avoid typing that much input
        !           184: for each command name, which we will discuss in Section 11.)
        !           185: .WS
        !           186: .PP
        !           187: There are also several special-purpose
        !           188: .UL troff
        !           189: commands for local motion.
        !           190: We have already seen
        !           191: .BD \e0 ,
        !           192: which is an unpaddable white space
        !           193: of the same width as a digit.
        !           194: `Unpaddable' means that it will never be widened
        !           195: or split across a line by line justification and filling.
        !           196: There is also
        !           197: .BD \e (blank),
        !           198: .tr ^^
        !           199: which is an unpaddable character the width of a space,
        !           200: .BD \e| ,
        !           201: which is half that width,
        !           202: .BD \e^ ,
        !           203: which is one quarter of the width of a space,
        !           204: and
        !           205: .BD \e& ,
        !           206: which has zero width.
        !           207: .tr ^.
        !           208: (This last one is useful, for example, in entering
        !           209: a text line which would otherwise begin with a `.'.)
        !           210: .PP
        !           211: The command
        !           212: .BD \eo ,
        !           213: used like
        !           214: .P1
        !           215: \eo'set of characters'
        !           216: .P2
        !           217: causes (up to 9)
        !           218: characters to be overstruck,
        !           219: centered on the widest.
        !           220: This is nice for accents, as in
        !           221: .P1 2
        !           222: syst\eo"e\e(ga"me t\eo"e\e(aa"l\eo"e\e(aa"phonique
        !           223: .P2
        !           224: which makes
        !           225: .P1
        !           226: syst\o"e\(ga"me t\o"e\(aa"l\o"e\(aa"phonique
        !           227: .P2
        !           228: The accents are
        !           229: .BD \e(ga
        !           230: and
        !           231: .BD \e(aa ,
        !           232: or
        !           233: .BD \e\` 
        !           234: and
        !           235: .BD \e\' ;
        !           236: remember that each is just one character to
        !           237: .UL troff .
        !           238: .PP
        !           239: You can make your own overstrikes with another special convention,
        !           240: .BD \ez ,
        !           241: the zero-motion command.
        !           242: .BD \ezx
        !           243: suppresses the normal horizontal motion
        !           244: after printing the single character
        !           245: .BD x ,
        !           246: so another character can be laid on top of it.
        !           247: Although sizes can be changed within
        !           248: .BD \eo ,
        !           249: it centers the characters on the widest,
        !           250: and
        !           251: there can be no horizontal or vertical motions,
        !           252: so
        !           253: .BD \ez
        !           254: may be the only way to get what you want:
        !           255: .P1
        !           256: .sp 2
        !           257: \s8\z\(sq\s14\z\(sq\s22\z\(sq\s36\(sq
        !           258: .P2
        !           259: is produced by
        !           260: .P1
        !           261: ^sp 2
        !           262: \es8\ez\e(sq\es14\ez\e(sq\es22\ez\e(sq\es36\e(sq
        !           263: .P2
        !           264: The
        !           265: .BD .sp
        !           266: is needed to leave room for the result.
        !           267: .PP
        !           268: As another example, an extra-heavy semicolon
        !           269: that looks like
        !           270: .P1
        !           271: \s+6\z,\v'-0.25m'.\v'0.25m'\s0  instead of  ;  or  \s+6;\s0
        !           272: .P2
        !           273: can be constructed with a big comma and a big period above it:
        !           274: .P1
        !           275: \es+6\ez,\ev'\(mi0.25m'.\ev'0.25m'\es0 
        !           276: .P2
        !           277: `0.25m' is an experimentally-derived constant.
        !           278: .PP
        !           279: A more ornate overstrike is given by the bracketing function
        !           280: .BD \eb ,
        !           281: which piles up characters vertically,
        !           282: centered on the current baseline.
        !           283: Thus we can get big brackets,
        !           284: constructing them with piled-up smaller pieces:
        !           285: .P1
        !           286: .sp
        !           287: .ne 3
        !           288: \b'\(lt\(lk\(lb' \b'\(lc\(lf' x \b'\(rc\(rf' \b'\(rt\(rk\(rb'
        !           289: .sp
        !           290: .P2
        !           291: by typing in only this:
        !           292: .P1 0
        !           293: \&^sp
        !           294: \eb\(fm\e(lt\e(lk\e(lb\(fm \eb\(fm\e(lc\e(lf\(fm x \eb\(fm\e(rc\e(rf\(fm \eb\(fm\e(rt\e(rk\e(rb\(fm
        !           295: .P2
        !           296: .PP
        !           297: .UL troff
        !           298: also provides a convenient facility for drawing horizontal and vertical
        !           299: lines of arbitrary length with arbitrary characters.
        !           300: .BD \el\(fm1i\(fm
        !           301: draws a line one inch long, like this:
        !           302: \l'1i'\|.
        !           303: The length can be followed by
        !           304: the character to use if the \(ru isn't appropriate;
        !           305: .BD \el\(fm0.5i.\(fm
        !           306: draws a half-inch line of dots: \l'.5i.'.
        !           307: The construction
        !           308: .BD \eL
        !           309: is entirely analogous,
        !           310: except that it draws a vertical line instead of horizontal.

unix.superglobalmegacorp.com

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