diff options
Diffstat (limited to 'share/doc/usd/22.trofftut/tt06')
-rw-r--r-- | share/doc/usd/22.trofftut/tt06 | 348 |
1 files changed, 348 insertions, 0 deletions
diff --git a/share/doc/usd/22.trofftut/tt06 b/share/doc/usd/22.trofftut/tt06 new file mode 100644 index 000000000000..e252e5bd6d4f --- /dev/null +++ b/share/doc/usd/22.trofftut/tt06 @@ -0,0 +1,348 @@ +.\" This module is believed to contain source code proprietary to AT&T. +.\" Use and redistribution is subject to the Berkeley Software License +.\" Agreement and your Software Agreement with AT&T (Western Electric). +.\" Copyright (C) Caldera International Inc. 2001-2002. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions are +.\" met: +.\" +.\" Redistributions of source code and documentation must retain the above +.\" copyright notice, this list of conditions and the following +.\" disclaimer. +.\" +.\" Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" +.\" This product includes software developed or owned by Caldera +.\" International, Inc. Neither the name of Caldera International, Inc. +.\" nor the names of other contributors may be used to endorse or promote +.\" products derived from this software without specific prior written +.\" permission. +.\" +.\" USE OF THE SOFTWARE PROVIDED FOR UNDER THIS LICENSE BY CALDERA +.\" INTERNATIONAL, INC. AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR +.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +.\" DISCLAIMED. IN NO EVENT SHALL CALDERA INTERNATIONAL, INC. BE LIABLE +.\" FOR ANY DIRECT, INDIRECT INCIDENTAL, SPECIAL, EXEMPLARY, OR +.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR +.\" BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +.\" WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE +.\" OR OTHERWISE) RISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN +.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +.\" +.\" +.NH +Local Motions: Drawing lines and characters +.PP +Remember `Area = \(*pr\u2\d' and the big `P' +in the Paternoster. +How are they done? +.UL troff +provides a host of commands for placing characters of any size +at any place. +You can use them to draw special characters +or to tune your output for a particular appearance. +Most of these commands are straightforward, but messy to read +and tough to type correctly. +.PP +If you won't use +.UL eqn , +subscripts and superscripts are most easily done with +the half-line local motions +.BD \eu +and +.BD \ed . +To go back up the page half a point-size, insert a +.BD \eu +at the desired place; +to go down, insert a +.BD \ed . +.BD \eu \& ( +and +.BD \ed +should always +be used in pairs, as explained below.) +Thus +.P1 +Area = \e(*pr\eu2\ed +.P2 +produces +.P1 +Area = \(*pr\u2\d +.P2 +To make the `2' smaller, bracket it with +.BD \es\-2...\es0 . +Since +.BD \eu +and +.BD \ed +refer to the current point size, +be sure to put them either both inside or both outside +the size changes, +or you will get an unbalanced vertical motion. +.PP +Sometimes the space given by +.BD \eu +and +.BD \ed +isn't the right amount. +The +.BD \ev +command can be used to request an arbitrary amount of vertical motion. +The in-line command +.P1 +\ev'(amount)' +.P2 +causes motion up or down the page by the amount specified in +`(amount)'. +For example, to move the `P' down, we used +.P1 2 +.ta 1i +^in +0.6i (move paragraph in) +^ll \-0.3i (shorten lines) +^ti \-0.3i (move P back) +\ev'2'\es36P\es0\ev'\-2'ater noster qui est +in caelis ... +.P2 +A minus sign causes upward motion, while +no sign or a plus sign means down the page. +Thus +.BD \ev\(fm\-2\(fm +causes an upward vertical motion +of two line spaces. +.PP +There are many other ways to specify the amount of motion _ +.P1 +\ev'0.1i' +\ev'3p' +\ev'\-0.5m' +.P2 +and so on are all legal. +Notice that the scale specifier +.BD i +or +.BD p +or +.BD m +goes inside the quotes. +Any character can be used in place of the quotes; +this is also true of all other +.UL troff +commands described in this section. +.PP +Since +.UL troff +does not take within-the-line vertical motions into account +when figuring out where it is on the page, +output lines can have unexpected positions +if the left and right ends aren't at the same +vertical position. +Thus +.BD \ev , +like +.BD \eu +and +.BD \ed , +should always balance upward vertical motion in a line with +the same amount in the downward direction. +.PP +Arbitrary horizontal motions are also available _ +.BD \eh +is quite analogous to +.BD \ev , +except that the default scale factor is ems instead of line spaces. +As an example, +.P1 +\eh'\-0.1i' +.P2 +causes a backwards motion of a tenth of an inch. +As a practical matter, consider printing the mathematical symbol +`>>'. +The default spacing is too wide, so +.UL eqn +replaces this by +.P1 +>\eh'\-0.3m'> +.P2 +to produce >\h'-.3m'>. +.PP +Frequently +.BD \eh +is used with the `width function' +.BD \ew +to generate motions equal to the width +of some character string. +The construction +.P1 +\ew'thing' +.P2 +is a number equal to the width of `thing' in machine units +(1/432 inch). +All +.UL troff +computations are ultimately done in these units. +To move horizontally the width of an `x', +we can say +.P1 +\eh'\ew'x'u' +.P2 +As we mentioned above, +the default scale factor for +all horizontal dimensions is +.BD m , +ems, so here we must have the +.BD u +for machine units, +or the motion produced will be far too large. +.UL troff +is quite happy with the nested quotes, by the way, +so long as you don't leave any out. +.PP +As a live example of this kind of construction, +all of the command names in the text, like +.BD .sp , +were done by overstriking with a slight offset. +The commands for +.BD .sp +are +.P1 +^sp\eh'\-\ew'.sp'u'\eh'1u'.sp +.P2 +That is, put out `.sp', move left by the width of `.sp', +move right 1 unit, and print +`.sp' again. +(Of course there is a way to avoid typing that much input +for each command name, which we will discuss in Section 11.) +.WS +.PP +There are also several special-purpose +.UL troff +commands for local motion. +We have already seen +.BD \e0 , +which is an unpaddable white space +of the same width as a digit. +`Unpaddable' means that it will never be widened +or split across a line by line justification and filling. +There is also +.BD \e (blank), +.tr ^^ +which is an unpaddable character the width of a space, +.BD \e| , +which is half that width, +.BD \e^ , +which is one quarter of the width of a space, +and +.BD \e& , +which has zero width. +.tr ^. +(This last one is useful, for example, in entering +a text line which would otherwise begin with a `.'.) +.PP +The command +.BD \eo , +used like +.P1 +\eo'set of characters' +.P2 +causes (up to 9) +characters to be overstruck, +centered on the widest. +This is nice for accents, as in +.P1 2 +syst\eo"e\e(ga"me t\eo"e\e(aa"l\eo"e\e(aa"phonique +.P2 +which makes +.P1 +syst\o"e\(ga"me t\o"e\(aa"l\o"e\(aa"phonique +.P2 +The accents are +.BD \e(ga +and +.BD \e(aa , +or +.BD \e\` +and +.BD \e\' ; +remember that each is just one character to +.UL troff . +.PP +You can make your own overstrikes with another special convention, +.BD \ez , +the zero-motion command. +.BD \ezx +suppresses the normal horizontal motion +after printing the single character +.BD x , +so another character can be laid on top of it. +Although sizes can be changed within +.BD \eo , +it centers the characters on the widest, +and +there can be no horizontal or vertical motions, +so +.BD \ez +may be the only way to get what you want: +.P1 +.sp 2 +\s8\z\(sq\s14\z\(sq\s22\z\(sq\s36\(sq +.P2 +is produced by +.P1 +^sp 2 +\es8\ez\e(sq\es14\ez\e(sq\es22\ez\e(sq\es36\e(sq +.P2 +The +.BD .sp +is needed to leave room for the result. +.PP +As another example, an extra-heavy semicolon +that looks like +.P1 +\s+6\z,\v'-0.25m'.\v'0.25m'\s0 instead of ; or \s+6;\s0 +.P2 +can be constructed with a big comma and a big period above it: +.P1 +\es+6\ez,\ev'\(mi0.25m'.\ev'0.25m'\es0 +.P2 +`0.25m' is an experimentally-derived constant. +.PP +A more ornate overstrike is given by the bracketing function +.BD \eb , +which piles up characters vertically, +centered on the current baseline. +Thus we can get big brackets, +constructing them with piled-up smaller pieces: +.P1 +.sp +.ne 3 +\b'\(lt\(lk\(lb' \b'\(lc\(lf' x \b'\(rc\(rf' \b'\(rt\(rk\(rb' +.sp +.P2 +by typing in only this: +.P1 0 +\&^sp +\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 +.P2 +.PP +.UL troff +also provides a convenient facility for drawing horizontal and vertical +lines of arbitrary length with arbitrary characters. +.BD \el\(fm1i\(fm +draws a line one inch long, like this: +\l'1i'\|. +The length can be followed by +the character to use if the \(ru isn't appropriate; +.BD \el\(fm0.5i.\(fm +draws a half-inch line of dots: \l'.5i.'. +The construction +.BD \eL +is entirely analogous, +except that it draws a vertical line instead of horizontal. |