Annotation of researchv10dc/vol2/eqn/guide.ms, revision 1.1.1.1

1.1       root        1: .so ../ADM/mac
                      2: .XX eqn 25 "Typesetting Mathematics \(em User's Guide"
                      3: .nr PI .2i
                      4: .nr PD .1v
                      5: .EQ
                      6: delim $$
                      7: .EN
                      8: .TL
                      9: Typesetting Mathematics \(em User's Guide\(dg
                     10: .AU 2C-518 6021
                     11: Brian W. Kernighan
                     12: Lorinda L. Cherry
                     13: .AI
                     14: .MH
                     15: .AB
                     16: .PP
                     17: This is the user's guide for
                     18: .IT eqn ,
                     19: a system for typesetting
                     20: mathematics.
                     21: Mathematical expressions are described in a language
                     22: designed to be easy to use
                     23: by people who know neither mathematics nor typesetting.
                     24: Enough of the language to set in-line expressions like
                     25: $lim from {x-> pi /2} ( tan~x) sup{sin~2x}~=~1$
                     26: or display equations like
                     27: .EQ I
                     28: G(z)~mark =~ e sup { ln ~ G(z) }
                     29: ~=~ exp left (
                     30: sum from k>=1 {S sub k z sup k} over k right )
                     31: ~=~  prod from k>=1 e sup {S sub k z sup k /k}
                     32: .EN
                     33: .EQ I
                     34: lineup = left ( 1 + S sub 1 z +
                     35: { S sub 1 sup 2 z sup 2 } over 2! + ".\^.\^." right )
                     36: left ( 1+ { S sub 2 z sup 2 } over 2
                     37: + { S sub 2 sup 2 z sup 4 } over { 2 sup 2 cdot 2! }
                     38: + ".\^.\^." right ) ".\^.\^."
                     39: .EN
                     40: .EQ I
                     41: lineup =  sum from m>=0 left (
                     42: sum from
                     43: pile { k sub 1 ,k sub 2 ",\^.\^.\^.\^," k sub m  >=0
                     44: above
                     45: k sub 1 +2k sub 2 + ".\^.\^." +mk sub m =m}
                     46: { S sub 1 sup {k sub 1} } over {1 sup k sub 1 k sub 1 ! } ~
                     47: { S sub 2 sup {k sub 2} } over {2 sup k sub 2 k sub 2 ! } ~
                     48: ".\^.\^."
                     49: { S sub m sup {k sub m} } over {m sup k sub m k sub m ! }
                     50: right ) z sup m
                     51: .EN
                     52: can be learned in an hour or so.
                     53: .PP
                     54: The language interfaces directly with
                     55: the formatting language
                     56: .IT troff ,
                     57: so mathematical expressions can be embedded in the running
                     58: text
                     59: of a manuscript,
                     60: and the entire document produced in one process.
                     61: This user's guide is an example of its output.
                     62: .AE
                     63: .2C
                     64: .FS
                     65: \(dg This is a revised version of |reference(eqn cstr).
                     66: .FE
                     67: .NH
                     68: Introduction
                     69: .PP
                     70: .IT Eqn
                     71: is a
                     72: program and a language for typesetting mathematics.
                     73: The
                     74: .IT eqn
                     75: language was designed to be easy to use
                     76: by people who know neither mathematics
                     77: nor typesetting.
                     78: Thus
                     79: .IT eqn
                     80: knows relatively little about mathematics.
                     81: In particular, mathematical symbols like
                     82: +, \(mi, \(mu, parentheses, and so on have no special meanings.
                     83: .IT Eqn
                     84: is quite happy to set garbage (but it will look good).
                     85: .PP
                     86: .IT Eqn
                     87: is a preprocessor for the typesetter formatter
                     88: .IT troff ,
                     89: so the normal mode of operation is to prepare
                     90: a document with both mathematics and ordinary text
                     91: interspersed,
                     92: and let
                     93: .IT eqn
                     94: set the mathematics while
                     95: .IT troff
                     96: does the body of the text.
                     97: .PP
                     98: To use
                     99: .IT eqn
                    100: on
                    101: .UX ,
                    102: .P1
                    103: eqn files | troff
                    104: .P2
                    105: .PP
                    106: The design and implementation of 
                    107: .I eqn
                    108: is discussed in |reference(kernighan cherry cacm).
                    109: .NH
                    110: Display Equations
                    111: .PP
                    112: To tell
                    113: .IT eqn
                    114: where a mathematical expression begins and ends,
                    115: one marks it with lines beginning
                    116: .CW .EQ
                    117: and
                    118: .CW .EN .
                    119: Thus
                    120: if you type the lines
                    121: .P1
                    122: \&.EQ
                    123: x=y+z
                    124: \&.EN
                    125: .P2
                    126: your output will look like
                    127: .EQ
                    128: x=y+z
                    129: .EN
                    130: The
                    131: .CW .EQ
                    132: and
                    133: .CW .EN
                    134: are copied through untouched;
                    135: they
                    136: are not otherwise processed
                    137: by
                    138: .IT eqn .
                    139: This means that you have to take care
                    140: of things like centering, numbering, and so on
                    141: yourself.
                    142: The most common way is to use a
                    143: .IT troff
                    144: macro package like
                    145: .CW -ms
                    146: or
                    147: .CW -mm ,
                    148: which allow you to center, indent, left-justify, and number equations.
                    149: .PP
                    150: With the
                    151: .CW -ms
                    152: package,
                    153: equations are centered by default.
                    154: To left-justify an equation, use
                    155: .CW \&.EQ\ L
                    156: instead of
                    157: .CW .EQ .
                    158: To indent it, use
                    159: .CW .EQ\ I .
                    160: Any of these can be followed by an arbitrary `equation number'
                    161: which will be placed at the right margin.
                    162: For example, the input
                    163: .P1
                    164: \&.EQ I (3.1a)
                    165: x = f(y/2) + y/2
                    166: \&.EN
                    167: .P2
                    168: produces the output
                    169: .EQ I (3.1a)
                    170: x = f(y/2) + y/2
                    171: .EN
                    172: .PP
                    173: For stupid historical reasons, the
                    174: .CW -mm
                    175: macros package requires you to surround
                    176: .CW .EQ
                    177: and
                    178: .CW .EN
                    179: with a pair of totally unnecessary commands,
                    180: .CW .DS
                    181: and
                    182: .CW .DE :
                    183: .P1
                    184: \&.DS  \f2for \fP-mm\f2 only\fP
                    185: \&.EQ
                    186: \f2your equation\fP
                    187: \&.EN
                    188: \&.DE
                    189: .P2
                    190: .PP
                    191: There is also a shorthand notation so
                    192: in-line expressions
                    193: like
                    194: $pi sub i sup 2$
                    195: can be entered without
                    196: .CW .EQ
                    197: and
                    198: .CW .EN .
                    199: We will talk about it in section 9.
                    200: .NH
                    201: Input spaces
                    202: .PP
                    203: Spaces, tabs, and newlines within an expression are thrown away by
                    204: .IT eqn .
                    205: (Normal text is left absolutely alone.)
                    206: Thus
                    207: between
                    208: .CW .EQ
                    209: and
                    210: .CW .EN ,
                    211: .P1
                    212: x=y+z
                    213: .P2
                    214: and
                    215: .P1
                    216: x = y + z
                    217: .P2
                    218: and
                    219: .P1
                    220: x   =   y
                    221:    + z
                    222: .P2
                    223: and so on
                    224: all produce the same
                    225: output:
                    226: .EQ
                    227: x=y+z
                    228: .EN
                    229: You should use spaces and newlines freely to make your input equations
                    230: readable and easy to edit.
                    231: In particular, very long lines are a bad idea,
                    232: since they are often hard to fix if you make a mistake.
                    233: .NH
                    234: Output spaces
                    235: .PP
                    236: To force extra spaces into the
                    237: .IT output,
                    238: use a tilde
                    239: .CW ~ '' ``
                    240: for each space you want:
                    241: .P1
                    242: x~=~y~+~z
                    243: .P2
                    244: gives
                    245: .EQ
                    246: x~=~y~+~z
                    247: .EN
                    248: You can also use a circumflex
                    249: .CW ^ '', ``
                    250: which gives a space half the width of a tilde.
                    251: It is mainly useful for fine-tuning.
                    252: .NH
                    253: Symbols, Special Names, Greek
                    254: .PP
                    255: .IT Eqn
                    256: knows some mathematical symbols,
                    257: some mathematical names, and the Greek alphabet.
                    258: For example,
                    259: .P1
                    260: x=2 pi int sin ( omega t)dt
                    261: .P2
                    262: produces
                    263: .EQ
                    264: x = 2 pi int sin ( omega t)dt
                    265: .EN
                    266: Here the spaces in the input are
                    267: necessary
                    268: to tell
                    269: .IT eqn
                    270: that
                    271: .CW int ,
                    272: .CW pi ,
                    273: .CW sin ,
                    274: and
                    275: .CW omega
                    276: are separate entities that should get special treatment.
                    277: The
                    278: .CW sin ,
                    279: digit 2, and parentheses are set in roman type instead of italic;
                    280: .CW pi
                    281: and
                    282: .CW omega
                    283: are made Greek;
                    284: and
                    285: .CW int
                    286: becomes the integral sign.
                    287: .PP
                    288: When in doubt, leave spaces around separate parts of the input.
                    289: A
                    290: common error is to type
                    291: .CW f(pi)
                    292: without leaving spaces on both sides of the
                    293: .CW pi .
                    294: As a result,
                    295: .IT eqn
                    296: does not recognize
                    297: .CW pi
                    298: as a special word, and you get
                    299: $f(pi)$
                    300: instead of
                    301: $f( pi )$.
                    302: .PP
                    303: A list of
                    304: .IT eqn
                    305: names appears in section 24.
                    306: Knowledgeable users can also use
                    307: .IT troff
                    308: four-character names
                    309: for anything
                    310: .IT eqn
                    311: doesn't know about,
                    312: like
                    313: .CW \e(L1
                    314: for the AT&T death-star \(L1.
                    315: .NH
                    316: Spaces, Again
                    317: .PP
                    318: The only way
                    319: .IT eqn
                    320: can deduce that some sequence
                    321: of letters might be special
                    322: is if that sequence is separated from the letters
                    323: on either side of it.
                    324: This can be done by surrounding a special word by spaces,
                    325: tabs, or newlines,
                    326: as we did in the previous section.
                    327: .PP
                    328: You can also make special words stand out by surrounding them
                    329: with tildes or circumflexes:
                    330: .P1
                    331: x~=~2~pi~int~sin~(~omega~t~)~dt
                    332: .P2
                    333: is much the same as the last example,
                    334: except that the tildes
                    335: not only
                    336: separate the magic words
                    337: like
                    338: .CW sin ,
                    339: .CW omega ,
                    340: and so on,
                    341: but also add extra spaces,
                    342: one space per tilde:
                    343: .EQ
                    344: x~=~2~pi~int~sin~(~omega~t~)~dt
                    345: .EN
                    346: .PP
                    347: Special words can also be separated by braces
                    348: .CW {}
                    349: and double quotes
                    350: .CW \&"" ,
                    351: which have special meanings that we will
                    352: see soon.
                    353: .......
                    354: .NH
                    355: Subscripts and Superscripts
                    356: .PP
                    357: Subscripts and superscripts are
                    358: obtained with the words
                    359: .CW sub
                    360: and
                    361: .CW sup .
                    362: .P1
                    363: x sup 2 + y sub k
                    364: .P2
                    365: gives
                    366: .EQ
                    367: x sup 2 + y sub k
                    368: .EN
                    369: .IT Eqn
                    370: takes care of all the size changes and vertical motions
                    371: needed to make the output look right.
                    372: The words
                    373: .CW sub
                    374: and
                    375: .CW sup
                    376: must be surrounded by spaces;
                    377: .CW "x sub2"
                    378: will give you
                    379: $x sub2$ instead of $x sub 2$.
                    380: Furthermore, don't forget to leave a space
                    381: (or a tilde, etc.)\&
                    382: to mark the end of a subscript or superscript.
                    383: A common error is to say
                    384: something like
                    385: .P1
                    386: y = (x sup 2)+1
                    387: .P2
                    388: which causes
                    389: .EQ
                    390: y = (x sup 2)+1
                    391: .EN
                    392: instead of
                    393: the intended
                    394: .EQ
                    395: y = (x sup 2 )+1
                    396: .EN
                    397: .PP
                    398: Subscripted subscripts and superscripted superscripts
                    399: also work:
                    400: .P1
                    401: x sub i sub 1
                    402: .P2
                    403: is
                    404: .EQ
                    405: x sub i sub 1
                    406: .EN
                    407: A subscript and superscript on the same thing
                    408: are printed one above the other
                    409: if the subscript comes
                    410: .IT first :
                    411: .P1
                    412: x sub i sup 2
                    413: .P2
                    414: is
                    415: .EQ
                    416: x sub i sup 2
                    417: .EN
                    418: .PP
                    419: Other than this special case,
                    420: .CW sub
                    421: and
                    422: .CW sup
                    423: group to the right, so
                    424: .IT "x\ sup\ y\ sub\ z
                    425: means
                    426: $x sup {y sub z}$, not ${x sup y} sub z$.
                    427: .NH
                    428: Braces for Grouping
                    429: .PP
                    430: Normally, the end of a subscript or superscript is marked
                    431: simply by a blank (or tab or tilde, etc.)
                    432: What if the subscript or superscript is something that has to be typed
                    433: with blanks in it?
                    434: In that case, you can use the braces
                    435: { and } to mark the
                    436: beginning and end of the subscript or superscript:
                    437: .P1
                    438: e sup {i omega t}
                    439: .P2
                    440: is
                    441: .EQ
                    442: e sup {i omega t}
                    443: .EN
                    444: .sp
                    445: Rule:  Braces can
                    446: always
                    447: be used to force
                    448: .IT eqn
                    449: to treat something as a unit,
                    450: or just to make your intent perfectly clear.
                    451: Thus:
                    452: .P1
                    453: x sub {i sub 1} sup 2
                    454: .P2
                    455: is
                    456: .EQ
                    457: x sub {i sub 1} sup 2
                    458: .EN
                    459: with braces, but
                    460: .P1
                    461: x sub i sub 1 sup 2
                    462: .P2
                    463: is
                    464: .EQ
                    465: x sub i sub 1 sup 2
                    466: .EN
                    467: which is rather different.
                    468: .PP
                    469: Braces can occur within braces:
                    470: .P1
                    471: e sup {i pi sup {rho +1}}
                    472: .P2
                    473: is
                    474: .EQ
                    475: e sup {i pi sup {rho +1}}
                    476: .EN
                    477: The general rule is that anywhere you could use some single
                    478: thing like
                    479: .CW x ,
                    480: you can use an arbitrarily complicated thing if you enclose
                    481: it in braces.
                    482: .IT Eqn
                    483: will look after all the details of positioning it and making
                    484: it the right size.
                    485: .PP
                    486: In all cases, make sure you have the
                    487: right number of braces.
                    488: Leaving one out or adding an extra will cause
                    489: .IT eqn
                    490: to complain bitterly.
                    491: .PP
                    492: Occasionally you will have to
                    493: print braces.
                    494: To do this,
                    495: enclose them in double quotes,
                    496: like
                    497: .CW \&"{" .
                    498: Quoting is discussed in more detail in section 15.
                    499: .NH
                    500: Shorthand for In-line Equations
                    501: .PP
                    502: With the
                    503: .CW -ms
                    504: and
                    505: .CW -mm
                    506: macro packages,
                    507: .CW .EQ
                    508: and
                    509: .CW .EN
                    510: imply a displayed equation.
                    511: But in most documents,
                    512: it is necessary to follow mathematical conventions
                    513: not just in display equations,
                    514: but also in the body of the text,
                    515: for example by making variable names like $x$ italic.
                    516: .PP
                    517: .IT Eqn
                    518: provides a shorthand for short in-line expressions.
                    519: You can define two characters to mark the left and right ends
                    520: of an in-line equation, and then type expressions right in the middle of text
                    521: lines.
                    522: To set both the left and right characters to dollar signs, for example,
                    523: add to the beginning of your document the three lines
                    524: .EQ
                    525: delim off
                    526: .EN
                    527: .P1
                    528: \&.EQ
                    529: delim $$
                    530: \&.EN
                    531: .P2
                    532: Having done this, you can then say things like
                    533: .P1
                    534: .fi
                    535: Let $alpha sub i$ be positive,
                    536: and let $beta$ be zero.
                    537: Then we can show that $alpha sub 1$ is $>=0$.
                    538: .P2
                    539: .EQ
                    540: delim $$
                    541: .EN
                    542: This works as
                    543: you might expect\(emspaces, newlines, and so on are significant
                    544: in the text, but not in the equation part itself.
                    545: Multiple equations can occur in a single input line.
                    546: .PP
                    547: Enough room is left before and after a line that contains
                    548: in-line expressions
                    549: that something tall like
                    550: $sum from i=1 to n x sub i$
                    551: does not interfere with the lines surrounding it.
                    552: .PP
                    553: To turn off the delimiters,
                    554: .P1
                    555: \&.EQ
                    556: delim off
                    557: \&.EN
                    558: .P2
                    559: Warning: don't use braces, tildes, circumflexes,
                    560: or double quotes as delimiters\(emchaos will result.
                    561: .NH
                    562: Fractions
                    563: .PP
                    564: To make a fraction,
                    565: use the word
                    566: .CW over :
                    567: .P1
                    568: a+b over 2c = 1
                    569: .P2
                    570: gives
                    571: .EQ
                    572: a+b over 2c = 1
                    573: .EN
                    574: The line is made the right length and positioned automatically.
                    575: Braces can be used to make clear what goes over what:
                    576: .P1
                    577: {alpha + beta} over {sin (x)}
                    578: .P2
                    579: is
                    580: .EQ
                    581: {alpha + beta} over {sin (x)}
                    582: .EN
                    583: What happens when there is both an
                    584: .CW over
                    585: and a
                    586: .CW sup
                    587: in the same expression?
                    588: In such an apparently ambiguous case,
                    589: .IT eqn
                    590: does the
                    591: .CW sup
                    592: before the
                    593: .CW over ,
                    594: so
                    595: .P1
                    596: -b sup 2 over pi
                    597: .P2
                    598: is
                    599: $-b sup 2 over pi$
                    600: instead of
                    601: $-b sup {2 over pi}$.
                    602: The rules
                    603: that decide which operation is done first in cases like this
                    604: are summarized in section 24.
                    605: When in doubt, however,
                    606: use braces
                    607: to make clear what goes with what.
                    608: .NH
                    609: Square Roots
                    610: .PP
                    611: To draw a square root, use
                    612: .CW sqrt :
                    613: .P1 2
                    614: sqrt a+b + 1 over sqrt {ax sup 2 +bx+c}
                    615: .P2
                    616: is
                    617: .EQ
                    618: sqrt a+b + 1 over sqrt {ax sup 2 +bx+c}
                    619: .EN
                    620: Warning\(emsquare roots of tall quantities look bad,
                    621: because a root-sign
                    622: big enough to cover the quantity is
                    623: too dark and heavy:
                    624: .P1
                    625: sqrt {a sup 2 over b sub 2}
                    626: .P2
                    627: is
                    628: .EQ
                    629: sqrt {a sup 2 over b sub 2}
                    630: .EN
                    631: Big square roots are generally better written as something
                    632: to the power \(12:
                    633: .EQ
                    634: (a sup 2 /b sub 2 ) sup half
                    635: .EN
                    636: which is
                    637: .P1
                    638: (a sup 2 /b sub 2 ) sup half
                    639: .P2
                    640: .NH
                    641: Summation, Integral, Etc.
                    642: .PP
                    643: Summations, integrals, and similar constructions
                    644: are easy:
                    645: .P1
                    646: sum from i=0 to {i= inf} x sup i
                    647: .P2
                    648: produces
                    649: .EQ
                    650: sum from i=0 to {i= inf} x sup i
                    651: .EN
                    652: Notice that we used
                    653: braces to indicate where the upper
                    654: part
                    655: $i= inf$
                    656: begins and ends.
                    657: No braces were necessary for the lower part $i=0$,
                    658: because it contained no blanks.
                    659: The braces will never hurt,
                    660: and if the
                    661: .CW from
                    662: and
                    663: .CW to
                    664: parts contain any blanks, you must use braces around them.
                    665: .PP
                    666: The
                    667: .CW from
                    668: and
                    669: .CW to
                    670: parts are both optional,
                    671: but if both are used,
                    672: they have to occur in that order.
                    673: .PP
                    674: Other useful characters can replace the
                    675: .CW sum
                    676: in our example:
                    677: .P1
                    678: int   prod   union   inter
                    679: .P2
                    680: become, respectively,
                    681: .EQ
                    682: int ~~~~~~ prod ~~~~~~ union ~~~~~~ inter
                    683: .EN
                    684: Since the thing before the
                    685: .CW from
                    686: can be anything,
                    687: even something in braces,
                    688: .CW from\f2-\fPto
                    689: can often be used in unexpected ways:
                    690: .P1
                    691: lim from {n \(mi> inf} x sub n =0
                    692: .P2
                    693: is
                    694: .EQ
                    695: lim from {n-> inf} x sub n =0
                    696: .EN
                    697: .PP
                    698: Notice the difference between
                    699: .CW from\f2-\fPto
                    700: and
                    701: .CW sub\f2-\fPsup :
                    702: .P1
                    703: int from a to b ~~~ int sub a sup b
                    704: .P2
                    705: is
                    706: .EQ
                    707: int from a to b ~~~ int sub a sup b
                    708: .EN
                    709: .NH
                    710: Size and Font Changes
                    711: .PP
                    712: By default, equations are set in 
                    713: the current point size (this text is 10-point type),
                    714: with standard mathematical conventions
                    715: to determine what characters are in roman and what in italic.
                    716: Although
                    717: .IT eqn
                    718: makes a valiant attempt to use
                    719: aesthetically pleasing sizes and fonts,
                    720: it is not perfect.
                    721: To change sizes and fonts, use
                    722: .CW size 
                    723: .IT n
                    724: and
                    725: .CW roman ,
                    726: .CW italic ,
                    727: .CW bold
                    728: and
                    729: .CW fat .
                    730: Like
                    731: .CW sub
                    732: and
                    733: .CW sup ,
                    734: size
                    735: and font changes affect only the thing that follows
                    736: them, and revert to the normal situation
                    737: at the end of it. Thus
                    738: .P1
                    739: bold x y
                    740: .P2
                    741: is
                    742: .EQ
                    743: bold x y
                    744: .EN
                    745: and
                    746: .P1
                    747: size 12 bold x = y +
                    748:    size 12 {alpha + beta}
                    749: .P2
                    750: gives
                    751: .EQ
                    752: size 12 bold x = y +
                    753:    size 12 {alpha + beta}
                    754: .EN
                    755: As always, you can use braces if you want to affect something
                    756: more complicated than a single letter.
                    757: For example, you can change the size of an entire equation by
                    758: .P1
                    759: size 8 { ... }
                    760: .P2
                    761: You can also change the size
                    762: by
                    763: a given amount;
                    764: for example, you can say
                    765: .CW size\ +2
                    766: to make the size two points bigger,
                    767: or
                    768: .CW size\ -3
                    769: to make it three points smaller.
                    770: This has the advantage that you don't have
                    771: to know what the current size is.
                    772: .PP
                    773: If you are using fonts other than roman, italic and bold,
                    774: you can say
                    775: .CW font
                    776: .IT X
                    777: where
                    778: .IT X
                    779: is a
                    780: .IT troff
                    781: name or number for the font,
                    782: one or two characters long.
                    783: Since
                    784: .IT eqn
                    785: is tuned for roman, italic and bold,
                    786: other fonts may not give quite as good an appearance.
                    787: .PP
                    788: The
                    789: .CW fat
                    790: operation takes the current font and widens it by overstriking:
                    791: .CW fat\ grad
                    792: is
                    793: $fat grad$ and
                    794: .CW fat
                    795: .CW "{x sub i}
                    796: is
                    797: $fat {x sub i}$.
                    798: .PP
                    799: If an entire document is to be in a non-standard size
                    800: or font, it is a severe nuisance
                    801: to have to write out a size and font change for each
                    802: equation.
                    803: Accordingly, you can set a ``global'' size or font
                    804: which thereafter affects all equations.
                    805: At the beginning of any equation, you might say, for instance,
                    806: .P1
                    807: \&.EQ
                    808: gsize 16
                    809: gfont R
                    810: \&...
                    811: \&.EN
                    812: .P2
                    813: to set the size to 16 and the font to roman thereafter.
                    814: In place of R, you can use any of the
                    815: .IT troff
                    816: font names.
                    817: The size after
                    818: .CW gsize
                    819: can be a relative change with
                    820: .CW +
                    821: or
                    822: .CW - .
                    823: .PP
                    824: Generally,
                    825: .CW gsize
                    826: and
                    827: .CW gfont
                    828: will appear at the beginning of a document
                    829: but they can also appear
                    830: throughout a document: the global font and size
                    831: can be changed as often as needed.\(dd
                    832: .FS
                    833: \l'1i'
                    834: .br
                    835: \(ddIn a footnote like this one, in which we have a
                    836: few random
                    837: expressions like $x sub i$ and $pi sup 2$,
                    838: .IT eqn
                    839: handles the size change automatically.
                    840: .FE
                    841: .PP
                    842: Since
                    843: .IT eqn
                    844: manages most size changes automatically,
                    845: .CW gsize
                    846: is rarely necessary.
                    847: .NH
                    848: Diacritical Marks
                    849: .PP
                    850: To get diacritical marks on top of letters,
                    851: there are several words:
                    852: .P1
                    853: .ta 1i
                    854: .vs +3
                    855: x dot  $x dot$
                    856: x dotdot       $x dotdot$
                    857: x hat  $x hat$
                    858: x tilde        $x tilde$
                    859: x vec  $x vec$
                    860: x dyad $x dyad$
                    861: x bar  $x bar$
                    862: x under        $x under$
                    863: x utilde       $x utilde$
                    864: .vs -3
                    865: .P2
                    866: The diacritical mark is placed at the right height.
                    867: The
                    868: .CW bar
                    869: and
                    870: .CW under
                    871: are made the right length for the entire construct,
                    872: as in $x+y+z bar$;
                    873: other marks are centered.
                    874: .PP
                    875: Sometimes
                    876: .IT eqn
                    877: guesses wrong on the height for bars.
                    878: As an interim fix, the words
                    879: .CW highbar
                    880: and
                    881: .CW lowbar
                    882: are synonymous with
                    883: .CW bar,
                    884: but force the bar to be either high
                    885: (as with $X bar$)
                    886: or low (as with $x bar$) regardless of the apparent height of the object.
                    887: This is useful for constructions like
                    888: ${x sub 1} lowbar$, which is
                    889: .CW "{x sub 1} lowbar" .
                    890: .......
                    891: .NH
                    892: Quoted Text
                    893: .PP
                    894: Any input entirely within quotes
                    895: .CW \&"\f2...\fP"
                    896: is not subject to any of the normal font changes and spacing
                    897: adjustments.
                    898: This provides a way to do your own spacing and adjusting if needed:
                    899: .P1
                    900: italic "sin(x)" + sin (x)
                    901: .P2
                    902: is
                    903: .EQ
                    904: italic "sin(x)" + sin (x)
                    905: .EN
                    906: .PP
                    907: Quotes are also used to get braces and other
                    908: .IT eqn
                    909: keywords printed:
                    910: .P1
                    911: "{ size alpha }"
                    912: .P2
                    913: is
                    914: .EQ
                    915: "{ size alpha }"
                    916: .EN
                    917: and
                    918: .P1
                    919: roman "{ size alpha }"
                    920: .P2
                    921: is
                    922: .EQ
                    923: roman "{ size alpha }"
                    924: .EN
                    925: .PP
                    926: The construction
                    927: .CW \&""
                    928: is often used as a place-holder
                    929: when grammatically
                    930: .IT eqn
                    931: needs something, but you don't actually want anything in your output.
                    932: For example, to make
                    933: $"" sup 2 roman He$,
                    934: you can't just type
                    935: .CW "sup 2 roman He
                    936: because a
                    937: .CW sup
                    938: has to be a superscript
                    939: .IT on
                    940: something.
                    941: Thus you must say
                    942: .P1
                    943: "" sup 2 roman He
                    944: .P2
                    945: .PP
                    946: To get a literal quote
                    947: use
                    948: .CW \&"\e"" .
                    949: If delimiters are set with
                    950: .CW delim ,
                    951: you can include them in a quoted string too.
                    952: .IT Troff
                    953: special-character names like
                    954: .CW \e(bs
                    955: can appear unquoted, but all other
                    956: .IT troff
                    957: constructions
                    958: should
                    959: always
                    960: be quoted.
                    961: .NH
                    962: Lining up Equations
                    963: .PP
                    964: Sometimes it's necessary to line up a series of equations
                    965: at some horizontal position, often at an equals sign.
                    966: This is done with two operations called
                    967: .CW mark
                    968: and
                    969: .CW lineup .
                    970: .PP
                    971: The word
                    972: .CW mark
                    973: may appear once at any place in an equation.
                    974: It remembers the horizontal position where it appeared.
                    975: Successive equations can contain one occurrence of the word
                    976: .CW lineup .
                    977: The place where
                    978: .CW lineup
                    979: appears is made to line up
                    980: with the place marked by the previous
                    981: .CW mark
                    982: if possible.
                    983: Thus, for example,
                    984: you can say
                    985: .P1
                    986: \&.EQ I
                    987: x+y mark = z
                    988: \&.EN
                    989: \&.EQ I
                    990: x lineup = 1
                    991: \&.EN
                    992: .P2
                    993: to produce
                    994: .EQ I
                    995: x+y mark = z
                    996: .EN
                    997: .EQ I
                    998: x lineup = 1
                    999: .EN
                   1000: For reasons too complicated to talk about,
                   1001: when you use
                   1002: .IT eqn
                   1003: and
                   1004: .CW -ms ,
                   1005: use either
                   1006: .CW .EQ\ I
                   1007: or
                   1008: .CW .EQ\ L ;
                   1009: .CW mark
                   1010: and
                   1011: .CW lineup
                   1012: don't work with centered equations.
                   1013: Also bear in mind that
                   1014: .CW mark
                   1015: doesn't look ahead;
                   1016: .P1
                   1017: x mark =1
                   1018: \&...
                   1019: x+y lineup =z
                   1020: .P2
                   1021: will not work if there isn't room
                   1022: for the
                   1023: .CW x+y
                   1024: part after the
                   1025: .CW mark
                   1026: remembers where the
                   1027: .CW x
                   1028: is.
                   1029: If you use
                   1030: .CW .EQ
                   1031: .CW I ,
                   1032: that may suffice;
                   1033: if not, use tildes to move the first equation to the right.
                   1034: .NH
                   1035: Big Brackets, Etc.
                   1036: .PP
                   1037: To get big brackets,
                   1038: braces, parentheses, and bars
                   1039: around things, use the
                   1040: .CW left
                   1041: and
                   1042: .CW right
                   1043: commands:
                   1044: .P1
                   1045: left { a over b + 1 right }
                   1046:  ~=~ left ( c over d right )
                   1047:  + left [ e right ]
                   1048: .P2
                   1049: is
                   1050: .EQ
                   1051: left { a over b + 1 right } ~=~ left ( c over d right ) + left [ e right ]
                   1052: .EN
                   1053: The resulting brackets are made big enough to cover whatever they enclose.
                   1054: Other characters can be used besides these,
                   1055: but are not likely to look very good.
                   1056: The
                   1057: .CW floor
                   1058: and
                   1059: .CW ceiling
                   1060: characters are exceptions:
                   1061: .P1 .2i
                   1062: left floor x over y right floor <= 
                   1063: left ceiling a over b right ceiling
                   1064: .P2
                   1065: produces
                   1066: .EQ
                   1067: left floor x over y right floor
                   1068: <= left ceiling a over b right ceiling
                   1069: .EN
                   1070: .PP
                   1071: Several warnings about brackets are in order.
                   1072: First, braces are typically bigger than brackets and parentheses,
                   1073: because they are made up of three, five, seven, etc., pieces,
                   1074: while brackets can be made up of two, three, etc.
                   1075: Second, big left and right parentheses often look poor,
                   1076: because the character set is poorly designed.
                   1077: .PP
                   1078: The
                   1079: .CW right
                   1080: part may be omitted:
                   1081: a ``left something'' need not have a
                   1082: corresponding
                   1083: ``right
                   1084: something''.
                   1085: If the
                   1086: .CW right
                   1087: part is omitted,
                   1088: put braces around the thing you want the left bracket
                   1089: to encompass.
                   1090: Otherwise, the resulting brackets may be too large.
                   1091: .PP
                   1092: If you want to omit the
                   1093: .CW left
                   1094: part, things are more complicated,
                   1095: because technically you can't have a
                   1096: .CW right
                   1097: without a corresponding
                   1098: .CW left .
                   1099: Instead you have to say
                   1100: .P1
                   1101: left "" ... right )
                   1102: .P2
                   1103: for example.
                   1104: The
                   1105: .CW
                   1106: left ""
                   1107: .R
                   1108: means a ``left nothing''.
                   1109: This satisfies the rules without hurting your output.
                   1110: .NH
                   1111: Piles
                   1112: .PP
                   1113: There is a general facility for making vertical piles
                   1114: of things; it comes in several flavors.
                   1115: For example:
                   1116: .P1
                   1117: A ~=~ left [
                   1118:   pile { a above b above c }
                   1119:   ~~ pile { x above y above z }
                   1120: right ]
                   1121: .P2
                   1122: will make
                   1123: .EQ
                   1124: A ~=~ left [
                   1125: pile { a above b above c } ~~ pile { x above y above z }
                   1126: right ]
                   1127: .EN
                   1128: The elements of the pile (there can be as many as you want)
                   1129: are centered one above another, at the right height for
                   1130: most purposes.
                   1131: The keyword
                   1132: .CW above
                   1133: is used to separate the pieces;
                   1134: braces are used around the entire list.
                   1135: The elements of a pile can be as complicated as needed, even containing more piles.
                   1136: .PP
                   1137: Three other forms of pile exist:
                   1138: .CW lpile
                   1139: makes a pile with the elements left-justified;
                   1140: .CW rpile
                   1141: makes a right-justified pile;
                   1142: and
                   1143: .CW cpile
                   1144: makes a centered pile, just like
                   1145: .CW pile.
                   1146: The vertical spacing between the pieces
                   1147: is somewhat larger for
                   1148: .CW l ,
                   1149: .CW r ,
                   1150: and
                   1151: .CW cpiles
                   1152: than it is for ordinary piles.
                   1153: .P1 .1i
                   1154: roman sign (x)~=~
                   1155: left {
                   1156:    lpile {1 above 0 above -1}
                   1157:    ~~ lpile
                   1158:     {if~x>0 above if~x=0 above if~x<0}
                   1159: .P2
                   1160: makes
                   1161: .EQ
                   1162: roman sign (x)~=~
                   1163: left {
                   1164:    lpile {1 above 0 above -1}
                   1165:    ~~ lpile
                   1166:     {if~x>0 above if~x=0 above if~x<0}
                   1167: .EN
                   1168: Notice the left brace
                   1169: without a matching right one.
                   1170: .PP
                   1171: It is possible to change the default vertical separation
                   1172: between elements of a pile,
                   1173: by adding a number immediately after the word
                   1174: .CW lpile ,
                   1175: etc.  The number is in units of 1/100's of an em
                   1176: (an em is about the width of the letter `m');
                   1177: .CW "lpile 33
                   1178: makes the spacing 1/3 of an em.
                   1179: .NH
                   1180: Matrices
                   1181: .PP
                   1182: It is also possible to make matrices.
                   1183: For example, to make
                   1184: a neat array like
                   1185: .EQ
                   1186: matrix {
                   1187:   ccol { x sub i above y sub i }
                   1188:   ccol { x sup 2 above y sup 2 }
                   1189: }
                   1190: .EN
                   1191: you have to type
                   1192: .P1
                   1193: matrix {
                   1194:   ccol { x sub i above y sub i }
                   1195:   ccol { x sup 2 above y sup 2 }
                   1196: }
                   1197: .P2
                   1198: This produces a matrix with
                   1199: two centered columns.
                   1200: The elements of the columns are then listed just as for a pile,
                   1201: each element separated by the word
                   1202: .CW above.
                   1203: You can also use
                   1204: .CW lcol
                   1205: or
                   1206: .CW rcol
                   1207: to left or right adjust columns.
                   1208: Each column can be separately adjusted,
                   1209: and there can be as many columns as you like.
                   1210: .PP
                   1211: The words
                   1212: .CW pile
                   1213: and
                   1214: .CW col ,
                   1215: .CW lpile
                   1216: and
                   1217: .CW lcol ,
                   1218: etc., are synonyms.
                   1219: .PP
                   1220: The reason for using a matrix instead of two adjacent piles, by the way,
                   1221: is that if the elements of the piles don't all have the same height,
                   1222: they won't line up properly.
                   1223: A matrix forces them to line up,
                   1224: because it looks at the entire structure before deciding what
                   1225: spacing to use.
                   1226: .PP
                   1227: A word of warning about matrices\(emeach column must have the same number of elements in it.
                   1228: The world will end if you get this wrong.
                   1229: .NH
                   1230: Local Motions
                   1231: .EQ
                   1232: delim $$
                   1233: .EN
                   1234: .PP
                   1235: Although
                   1236: .IT eqn
                   1237: tries to print things at the right place,
                   1238: it isn't perfect, and occasionally you will need to tune
                   1239: the output to make it just right.
                   1240: Small extra horizontal spaces can be obtained with
                   1241: tilde and circumflex.
                   1242: You can also say
                   1243: .CW back
                   1244: .IT n
                   1245: and
                   1246: .CW fwd
                   1247: .IT n
                   1248: to move small amounts horizontally.
                   1249: .IT n
                   1250: is how far to move in 1/100's of an em.
                   1251: Thus
                   1252: .CW back
                   1253: .CW 50
                   1254: moves back about half the width of an m.
                   1255: For example,
                   1256: .CW <<
                   1257: produces
                   1258: $<<$, while
                   1259: .CW "< back 50 <
                   1260: produces $< back 50 <$.
                   1261: .PP
                   1262: Similarly you can move things up or down with
                   1263: .CW up
                   1264: .IT n
                   1265: and
                   1266: .CW down
                   1267: .IT n .
                   1268: .P1
                   1269: x sub down 20 i sup up 20 j
                   1270: .P2
                   1271: produces $x sub down 20 i sup up 20 j$ instead of the usual $x sub i sup j$.
                   1272: .PP
                   1273: As with
                   1274: .CW sub
                   1275: or
                   1276: .CW sup ,
                   1277: the local motions affect the next thing in the input,
                   1278: and this can be something arbitrarily complicated if it is enclosed
                   1279: in braces.
                   1280: .NH
                   1281: Definitions
                   1282: .PP
                   1283: .IT Eqn
                   1284: provides a facility so you can give
                   1285: a frequently-used string of characters a name,
                   1286: and thereafter just type the name instead of the
                   1287: whole string.
                   1288: For example, if the sequence
                   1289: .P1
                   1290: x sub i + y sub i
                   1291: .P2
                   1292: appears repeatedly throughout a paper,
                   1293: you can save re-typing it each time by defining it like this:
                   1294: .P1 2
                   1295: define xy 'x sub i + y sub i'
                   1296: .P2
                   1297: This makes
                   1298: .CW xy
                   1299: a shorthand for whatever characters occur between the single quotes
                   1300: in the definition.
                   1301: You can use any character instead of quote to mark the ends of the definition,
                   1302: so long as it doesn't appear inside the definition.
                   1303: .PP
                   1304: Now you can use
                   1305: .CW xy
                   1306: like this:
                   1307: .P1
                   1308: \&.EQ
                   1309: f(x) = xy ...
                   1310: \&.EN
                   1311: .P2
                   1312: and so on.
                   1313: Each occurrence of
                   1314: .CW xy
                   1315: will expand into what it was defined as.
                   1316: Be careful to leave spaces or their equivalent
                   1317: around the name
                   1318: when you actually use it, so
                   1319: .IT eqn
                   1320: will be able to identify it as special.
                   1321: .PP
                   1322: There are several things to watch out for.
                   1323: First, although definitions can use previous definitions,
                   1324: as in
                   1325: .P1
                   1326: \&.EQ
                   1327: define xi ' x sub i '
                   1328: define xi1 ' xi sub 1 '
                   1329: \&.EN
                   1330: .P2
                   1331: .ul
                   1332: Don't define something in terms of itself!
                   1333: A favorite error is to say
                   1334: .P1
                   1335: define X ' roman X '
                   1336: .P2
                   1337: This is a guaranteed disaster,
                   1338: since
                   1339: .CW X
                   1340: is
                   1341: now defined in terms of itself.
                   1342: If you say
                   1343: .P1
                   1344: define X ' roman "X" '
                   1345: .P2
                   1346: however, the quotes
                   1347: protect the second 
                   1348: .CW X ,
                   1349: and everything works fine.
                   1350: .PP
                   1351: .IT Eqn
                   1352: keywords can be redefined.
                   1353: You can make
                   1354: .CW /
                   1355: mean
                   1356: .CW over
                   1357: by saying
                   1358: .P1
                   1359: define / ' over '
                   1360: .P2
                   1361: or redefine
                   1362: .CW over
                   1363: as
                   1364: .CW /
                   1365: with
                   1366: .P1
                   1367: define over ' / '
                   1368: .P2
                   1369: .PP
                   1370: .EQ
                   1371: delim off
                   1372: .EN
                   1373: It is possible to create a parameterized definition, which will
                   1374: expand into something different each time it is used.
                   1375: If a definition contains occurrences of
                   1376: .CW $1 ,
                   1377: .CW $2 ,
                   1378: etc., as in
                   1379: .P1
                   1380: define f 'font $1 {"$2"}'
                   1381: .P2
                   1382: then subsequent uses of that name that are followed by a parenthesized
                   1383: list of values will have the values substituted for the
                   1384: .CW $\f2n\fP\f1's:\fP
                   1385: .P1
                   1386: f(CW, a phrase)
                   1387: .P2
                   1388: will print
                   1389: .CW "a phrase
                   1390: in the constant-width font
                   1391: .CW CW .
                   1392: .PP
                   1393: You can test whether something is defined with
                   1394: .CW ifdef :
                   1395: .P1
                   1396: ifdef f / \f2anything at all\fP /
                   1397: .P2
                   1398: is replaced by
                   1399: .IT "anything at all
                   1400: if
                   1401: .CW f
                   1402: is defined.
                   1403: .NH
                   1404: File Inclusion
                   1405: .PP
                   1406: You can include a file of
                   1407: .IT eqn
                   1408: input as part of an equation by the construction
                   1409: .P1
                   1410: include "\f2filename\fP"
                   1411: .P2
                   1412: For historical reasons, 
                   1413: .CW copy
                   1414: is a synonym for
                   1415: .CW include .
                   1416: .NH
                   1417: A Large Example
                   1418: .PP
                   1419: Here is the complete source for the three display equations
                   1420: in the abstract of this guide.
                   1421: .br
                   1422: .ps -3
                   1423: .vs -3
                   1424: .P1 0
                   1425: \&.EQ I
                   1426: G(z)~mark =~ e sup { ln ~ G(z) }
                   1427: ~=~ exp left (
                   1428: sum from k>=1 {S sub k z sup k} over k right )
                   1429: ~=~  prod from k>=1 e sup {S sub k z sup k /k}
                   1430: \&.EN
                   1431: \&.EQ I
                   1432: lineup = left ( 1 + S sub 1 z +
                   1433: { S sub 1 sup 2 z sup 2 } over 2! + .\^.\^. right )
                   1434: left ( 1+ { S sub 2 z sup 2 } over 2
                   1435: + { S sub 2 sup 2 z sup 4 } over { 2 sup 2 cdot 2! }
                   1436: + .\^.\^. right ) .\^.\^.
                   1437: \&.EN
                   1438: \&.EQ I
                   1439: lineup =  sum from m>=0 left (
                   1440: sum from
                   1441: pile { k sub 1 ,k sub 2 ,\^.\^.\^.\^, k sub m  >=0
                   1442: above
                   1443: k sub 1 +2k sub 2 + .\^.\^. +mk sub m =m}
                   1444: { S sub 1 sup {k sub 1} } over {1 sup k sub 1 k sub 1 ! } ~
                   1445: { S sub 2 sup {k sub 2} } over {2 sup k sub 2 k sub 2 ! } ~
                   1446: \&.\^.\^.
                   1447: { S sub m sup {k sub m} } over {m sup k sub m k sub m ! }
                   1448: right ) z sup m
                   1449: \&.EN
                   1450: .P2
                   1451: .ps +3
                   1452: .vs +3
                   1453: ......
                   1454: .NH
                   1455: Keywords, Precedences, Etc.
                   1456: .PP
                   1457: Here are the keywords of
                   1458: .IT eqn
                   1459: in order of decreasing precedence:
                   1460: .P1 .1i
                   1461: dyad vec under utilde bar tilde
                   1462:          hat dot dotdot
                   1463: left  right
                   1464: fwd   back   down  up
                   1465: fat   roman  italic  bold  size
                   1466: sub   sup
                   1467: sqrt  over
                   1468: from  to
                   1469: .P2
                   1470: These operations group to the left:
                   1471: .P1 .1i
                   1472: over  sqrt  left  right
                   1473: .P2
                   1474: All others group to the right.
                   1475: .PP
                   1476: Digits, parentheses, brackets, punctuation marks, and these mathematical words
                   1477: are converted
                   1478: to Roman font when encountered:
                   1479: .P1 .1i
                   1480: sin  cos  tan  sinh  cosh  tanh  arc
                   1481: max  min  lim  log   ln    exp
                   1482: Re   Im   and  if    for   det
                   1483: .P2
                   1484: These character sequences are recognized and translated as shown.
                   1485: .EQ
                   1486: delim $$
                   1487: .EN
                   1488: .P1
                   1489: >=     $>=$    nothing $nothing$
                   1490: <=     $<=$    cdot    $cdot$
                   1491: ==     $==$    times   $times$
                   1492: !=     $!=$    del     $del$
                   1493: +-     $+-$    grad    $grad$
                   1494: ->     $->$    \&...   $"..."$
                   1495: <-     $<-$    ,...,   $",...,"$
                   1496: <<     $<<$    sum     $sum$
                   1497: .sp 3p
                   1498: >>     $>>$    int     $int$
                   1499: inf    $inf$   prod    $prod$
                   1500: partial        $partial$       union   $union$
                   1501: half   $half$  inter   $inter$
                   1502: prime  $prime$ dollar  $dollar$
                   1503: approx $approx$
                   1504: .P2
                   1505: .PP
                   1506: To obtain Greek letters,
                   1507: simply spell them out in whatever case you want:
                   1508: .P1
                   1509: .ta .7i 1.4i 2.1i
                   1510: DELTA  $DELTA$ iota    $iota$
                   1511: GAMMA  $GAMMA$ kappa   $kappa$
                   1512: LAMBDA $LAMBDA$        lambda  $lambda$
                   1513: OMEGA  $OMEGA$ mu      $mu$
                   1514: PHI    $PHI$   nu      $nu$
                   1515: PI     $PI$    omega   $omega$
                   1516: PSI    $PSI$   omicron $omicron$
                   1517: SIGMA  $SIGMA$ phi     $phi$
                   1518: THETA  $THETA$ pi      $pi$
                   1519: UPSILON        $UPSILON$       psi     $psi$
                   1520: XI     $XI$    rho     $rho$
                   1521: alpha  $alpha$ sigma   $sigma$
                   1522: beta   $beta$  tau     $tau$
                   1523: chi    $chi$   theta   $theta$
                   1524: delta  $delta$ upsilon $upsilon$
                   1525: epsilon        $epsilon$       xi      $xi$
                   1526: eta    $eta$   zeta    $zeta$
                   1527: gamma  $gamma$
                   1528: .P2
                   1529: .IT Eqn
                   1530: really ought to know the whole Greek alphabet,
                   1531: but the missing upper-case characters are identical to Roman ones.
                   1532: .PP
                   1533: These are all the words known to
                   1534: .IT eqn ,
                   1535: except for characters with names.
                   1536: .P1
                   1537: above  fat     lcol    size
                   1538: back   font    left    space
                   1539: bar    from    lineup  sqrt
                   1540: bold   fwd     lowbar  sub
                   1541: ccol   gfont   lpile   sum
                   1542: col    gsize   mark    sup
                   1543: copy   hat     matrix  tilde
                   1544: cpile  highbar over    to
                   1545: define ifdef   pile    under
                   1546: delim  include prod    union
                   1547: dot    int     rcol    up
                   1548: dotdot integral right  utilde
                   1549: down   inter   roman   vec
                   1550: dyad   italic  rpile
                   1551: .P2
                   1552: .NH
                   1553: Troubleshooting
                   1554: .PP
                   1555: If you make a mistake in an equation,
                   1556: like leaving out a brace (very common)
                   1557: or having one too many (very common)
                   1558: or having a
                   1559: .CW sup
                   1560: with nothing before it (common),
                   1561: .IT eqn
                   1562: will tell you with the message
                   1563: .P1 2
                   1564: syntax error near line \f2n\fP, file \f2f\fP,
                   1565:   context is >>> \f2something\fP <<<
                   1566: .P2
                   1567: where
                   1568: .IT n
                   1569: is approximately the line
                   1570: where the trouble occurred,
                   1571: .IT f
                   1572: is the name
                   1573: of the input file, and
                   1574: .IT something
                   1575: is a guess about what input was in error.
                   1576: The line number and context is approximate\(emlook nearby as well.
                   1577: There are also self-explanatory messages that arise if you leave out a quote
                   1578: or try to run
                   1579: .IT eqn
                   1580: on a non-existent file.
                   1581: .PP
                   1582: If you want to check a document before actually printing it,
                   1583: .P1
                   1584: eqn files >/dev/null
                   1585: .P2
                   1586: will
                   1587: throw away the output but print the messages.
                   1588: .PP
                   1589: If you use something like dollar signs as delimiters,
                   1590: it is easy to leave one out.
                   1591: This causes very strange troubles.
                   1592: The program
                   1593: .CW checkeq
                   1594: checks for misplaced or missing delimiters
                   1595: and similar troubles.
                   1596: .PP
                   1597: In-line equations can only be so big
                   1598: because of an internal limit in
                   1599: .IT troff .
                   1600: If you get the message
                   1601: ``word overflow,''
                   1602: you have exceeded this limit.
                   1603: If you print the equation as a displayed equation
                   1604: this message will usually go away.
                   1605: The message
                   1606: ``line overflow''
                   1607: indicates you have exceeded a different, bigger internal limit.
                   1608: The only cure for this is to break the equation into two separate ones.
                   1609: .PP
                   1610: On a related topic,
                   1611: .IT eqn
                   1612: does not break equations by itself\(emyou must split long equations up across multiple lines
                   1613: by yourself,
                   1614: marking each by a separate
                   1615: .CW .EQ
                   1616: \&...\&
                   1617: .CW .EN
                   1618: sequence.
                   1619: .NH
                   1620: Use on UNIX
                   1621: .PP
                   1622: To print a document that contains mathematics,
                   1623: .P1
                   1624: eqn files | troff
                   1625: .P2
                   1626: If
                   1627: there are any
                   1628: .IT troff
                   1629: options, they go after the
                   1630: .IT troff
                   1631: part of the command. For example,
                   1632: .P1
                   1633: eqn files | troff -ms
                   1634: .P2
                   1635: .IT Eqn
                   1636: assumes the output is aimed at a Postscript device.
                   1637: If you are using some other typesetter or printer,
                   1638: you have to tell 
                   1639: .IT eqn
                   1640: with the same
                   1641: .CW -T
                   1642: argument that you use with
                   1643: .IT troff :
                   1644: .P1
                   1645: eqn -Taps files | troff -Taps ...
                   1646: .P2
                   1647: .IT Eqn
                   1648: also uses the environment variable
                   1649: .CW TYPESETTER ;
                   1650: the default is
                   1651: .CW post ,
                   1652: as it is for
                   1653: .IT troff .
                   1654: .PP
                   1655: .IT Eqn
                   1656: can be used with the
                   1657: .IT tbl
                   1658: program
                   1659: for setting tables that contain mathematics.
                   1660: Use
                   1661: .IT tbl
                   1662: before
                   1663: .IT eqn ,
                   1664: like this:
                   1665: .P1
                   1666: tbl files | eqn | troff
                   1667: .P2
                   1668: .PP
                   1669: When
                   1670: .IT eqn
                   1671: is used with
                   1672: .IT pic
                   1673: or
                   1674: .IT grap ,
                   1675: the additional vertical space
                   1676: that
                   1677: .IT eqn
                   1678: adds to a line to keep it from colliding
                   1679: with adjacent lines will conflict with
                   1680: .IT pic
                   1681: and
                   1682: .IT grap
                   1683: spacing.
                   1684: The phrase
                   1685: .CW "space 0
                   1686: at the beginning of an equation will turn off the extra space.
                   1687: .SH
                   1688: Acknowledgements
                   1689: .PP
                   1690: We are deeply indebted to the late J. F. Ossanna,
                   1691: the author of
                   1692: .IT troff ,
                   1693: for his willingness to extend
                   1694: .IT troff
                   1695: to make our task easier,
                   1696: and for his
                   1697: continuous assistance during the development
                   1698: and evolution
                   1699: of
                   1700: .IT eqn .
                   1701: We are also grateful to A. V. Aho
                   1702: for advice on language design,
                   1703: to S. C. Johnson for assistance with
                   1704: the
                   1705: .IT yacc
                   1706: compiler-compiler,
                   1707: and to all the
                   1708: .IT eqn
                   1709: users
                   1710: who have made helpful suggestions and criticisms.
                   1711: .SH
                   1712: References
                   1713: .LP
                   1714: |reference_placement
                   1715: .SH
                   1716: Appendix 1. Tuning \fIeqn\fP Output
                   1717: .PP
                   1718: There are numerous values that can be adjusted to tune the output
                   1719: of 
                   1720: .IT eqn
                   1721: for a particular output device.
                   1722: In general, it is necessary to have access to the source code
                   1723: to do this tuning.
                   1724: .PP
                   1725: Some values can be set without access to the source.
                   1726: The names shown below (together with their default values) control the positioning
                   1727: of diacritical marks and special characters.
                   1728: They can be defined with any string value,
                   1729: as in
                   1730: .P1 0
                   1731: define vec_def " \ev'-.5m'\es-3\e(->\es0\ev'.5m'
                   1732: .P2
                   1733: .1C
                   1734: .KF bottom
                   1735: .nr dP 1
                   1736: .nr dV 2p
                   1737: .SP
                   1738: .P1 20n
                   1739: vec_def                \ev'-.5m'\es-3\e(->\es0\ev'.5m'
                   1740: dyad_def       \ev'-.5m'\es-3\ez\e(<-\e|\e(->\es0\ev'.5m'
                   1741: hat_def                \ev'-.05m'\es+1^\es0\ev'.05m'
                   1742: tilde_def      \ev'-.05m'\es+1~\es0\ev'.05m'
                   1743: dot_def                \ev'-.67m'.\ev'.67m'
                   1744: dotdot_def     \ev'-.67m'..\ev'.67m'
                   1745: utilde_def     \ev'1.0m'\es+2~\es-2\ev'-1.0m'
                   1746: sum_def                \e|\ev'.3m'\es+5\e(*S\es-5\ev'-.3m'\e|
                   1747: union_def      \e|\ev'.3m'\es+5\e(cu\es-5\ev'-.3m'\e|
                   1748: inter_def      \e|\ev'.3m'\es+5\e(ca\es-5\ev'-.3m'\e|
                   1749: prod_def       \e|\ev'.3m'\es+5\e(*P\es-5\ev'-.3m'\e|
                   1750: int_def                \ev'.1m'\es+4\e(is\es-4\ev'-.1m'
                   1751: Subbase                0.2
                   1752: Supbase                0.4
                   1753: .P2
                   1754: .KE
                   1755: .2C
                   1756: The amount by which a subscript is shifted down
                   1757: and a superscript shifted up are controlled by
                   1758: .CW Subbase
                   1759: and
                   1760: .CW Supbase .

unix.superglobalmegacorp.com

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