Annotation of researchv10dc/vol2/eqn/guide.ms, revision 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.