home *** CD-ROM | disk | FTP | other *** search
Wrap
Text File | 1993-08-11 | 74.8 KB | 2,696 lines
Newsgroups: comp.sources.misc From: jeff@joyce.cs.su.oz.au (Jeff Kingston) Subject: v38i073: lout - Lout document formatting system, v2.05, Part05/35 Message-ID: <1993Aug8.180644.11335@sparky.sterling.com> X-Md4-Signature: 63ef2d6b909b44e01c450463f10b9122 Sender: kent@sparky.sterling.com (Kent Landfield) Organization: Sterling Software Date: Sun, 8 Aug 1993 18:06:44 GMT Approved: kent@sparky.sterling.com Submitted-by: jeff@joyce.cs.su.oz.au (Jeff Kingston) Posting-number: Volume 38, Issue 73 Archive-name: lout/part05 Environment: UNIX Supersedes: lout: Volume 37, Issue 99-128 #! /bin/sh # This is a shell archive. Remove anything before this line, then feed it # into a shell via "sh file" or similar. To overwrite existing files, # type "sh file -c". # Contents: doc/tr.eq/outfile.ps.B doc/tr.impl/oldrefs.li z29.c # Wrapped by kent@sparky on Sun Aug 8 12:29:22 1993 PATH=/bin:/usr/bin:/usr/ucb:/usr/local/bin:/usr/lbin ; export PATH echo If this archive is complete, you will see the following message: echo ' "shar: End of archive 5 (of 35)."' if test -f 'doc/tr.eq/outfile.ps.B' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'doc/tr.eq/outfile.ps.B'\" else echo shar: Extracting \"'doc/tr.eq/outfile.ps.B'\" \(45806 characters\) sed "s/^X//" >'doc/tr.eq/outfile.ps.B' <<'END_OF_FILE' X1417 11118 moveto(As)s 1749 x(this)s 2160 x(last)s 2557 x(example)s 3433 x(shows,)s X4158 x(it)s 4356 x(is)s X220 fnt13 X4581 11114 moveto(nextcol)s X240 fnt34 X5342 11118 moveto(and)s 5754 x(the)s X6112 x(various)s X220 fnt13 X6882 11114 moveto(above)s X240 fnt34 X7546 11118 moveto(symbols)s 8410 x(that)s 8834 x(lay)s X9192 x(out)s 9564 x(the)s 9922 x(array;)s X220 fnt13 X1417 10826 moveto(matrix)s X240 fnt34 X2096 10830 moveto(attaches)s X2947 x(the)s X220 fnt13 X3321 10826 moveto(atleft)s X240 fnt34 X3878 10830 moveto(and)s X220 fnt13 X4306 10826 moveto(atright)s X240 fnt34 X4997 10830 moveto(options)s X5784 x(and)s 6212 x(makes)s 6905 x(sure)s 7385 x(the)s 7759 x(result)s X8371 x(appears)s 9183 x(in)s 9451 x(the)s 9825 x(correct)s 1417 10542 moveto(vertical)s X2185 x(position)s 3009 x(relative)s 3777 x(to)s 4016 x(the)s 4361 x(rest)s X4758 x(of)s 5010 x(the)s 5355 x(equation.)s 6352 x(So)s 6658 x(the)s X7003 x(right)s 7507 x(parameter)s 8514 x(of)s X220 fnt13 X8766 10538 moveto(matrix)s X240 fnt34 X9416 10542 moveto(may)s X9881 x(be)s 10160 x(any)s 1417 10254 moveto(object.)s 1897 9880 moveto(Each)s 2452 x(of)s X2728 x(the)s 3097 x(Eq)s 3440 x(symbols)s 4315 x(that)s 4750 x(takes)s X5318 x(parameters)s 6442 x(also)s 6904 x(has)s 7300 x(a)s X220 fnt13 X7483 9876 moveto(gap)s X X240 fnt34 X7926 9880 moveto(option,)s 8675 x(which)s 9337 x(controls)s 10184 x(the)s 1417 9592 moveto(amount)s X2195 x(of)s 2454 x(space)s 3045 x(inserted)s 3861 x(by)s 4161 x(the)s X4513 x(symbol:)s X220 fnt13 X1897 9039 moveto(x over y)s X240 fnt35 X5866 9146 moveto(x)s gsave X5866 9096 translate X106 0 0 0 240 288 0 LoutGraphic Xgsave X0 0 moveto xsize 0 lineto 0.05 ft setlinewidth stroke Xgrestore X Xgrestore X X240 fnt35 X5866 8942 moveto(y)s X220 fnt13 X1897 8379 moveto(x over gap { 3p } y)s X X240 fnt35 X5866 8498 moveto(x)s gsave X5866 8436 translate X106 0 0 0 240 288 0 LoutGraphic Xgsave X0 0 moveto xsize 0 lineto 0.05 ft setlinewidth stroke Xgrestore X Xgrestore X X240 fnt35 X5866 8270 moveto(y)s X240 fnt34 X1417 7770 moveto(Eq)s 1743 x(usually)s 2494 x(gets)s X2939 x(the)s 3291 x(spacing)s 4082 x(right)s 4593 x(without)s 5384 x(help.)s X X240 fnt36 X1417 6977 moveto(3.)s 1717 x(Spacing)s X240 fnt34 X1897 6500 moveto(There)s 2514 x(is)s 2733 x(a)s X2899 x(basic)s 3450 x(rule)s 3881 x(governing)s 4912 x(the)s 5264 x(use)s X5643 x(of)s 5902 x(white)s 6493 x(space)s 7084 x(characters)s 8111 x(\(space,)s X8841 x(tab,)s 9253 x(and)s 9659 x(newline\))s 1417 6212 moveto(in)s 1663 x(the)s X2015 x(input)s 2567 x(to)s 2813 x(Lout:)s 3451 x(white)s 4042 x(space)s X4633 x(between)s 5490 x(two)s 5909 x(objects)s 6646 x(affects)s 7341 x(the)s X7693 x(result;)s 8349 x(white)s 8940 x(space)s 9531 x(between)s 10388 x(a)s X1417 5924 moveto(symbol)s 2182 x(and)s 2588 x(its)s 2873 x(parameter)s 3887 x(does)s X4386 x(not.)s 1897 5550 moveto(Although)s 2862 x(this)s 3267 x(rule)s 3698 x(is)s X3917 x(just)s 4322 x(right)s 4833 x(most)s 5358 x(of)s 5617 x(the)s X5969 x(time,)s 6513 x(it)s 6705 x(is)s 6924 x(not)s 7290 x(adequate)s X8200 x(for)s 8538 x(equation)s 9422 x(formatting.)s 1417 5262 moveto(Getting)s 2239 x(the)s X2636 x(horizontal)s 3710 x(spacing)s 4546 x(right)s 5102 x(in)s 5393 x(equations)s X6415 x(is)s 6679 x(a)s 6890 x(very)s 7420 x(\207ddly)s 8084 x(business,)s X9060 x(involving)s 10083 x(four)s 1417 4974 moveto(different)s 2310 x(sizes)s 2846 x(of)s X3117 x(space)s 3720 x(\(zero,)s 4342 x(thin,)s 4846 x(medium,)s 5762 x(and)s X6180 x(thick\),)s 6869 x(and)s 7287 x(different)s 8180 x(rules)s 8716 x(for)s X9066 x(spacing)s 9869 x(within)s 1417 4686 moveto(superscripts)s 2626 x(and)s 3040 x(subscripts)s X4064 x(to)s 4318 x(those)s 4891 x(applying)s 5797 x(outside,)s 6616 x(according)s X7627 x(to)s 7881 x(a)s 8055 x(leading)s 8827 x(authority)s 9758 x([)s X9837 x(6)s 9957 x(].)s 10224 x(Eq)s 1417 4398 moveto(therefore)s 2344 x(takes)s X2901 x(the)s 3259 x(spacing)s 4056 x(decisions)s 5012 x(upon)s 5558 x(itself,)s X6160 x(and)s 6572 x(con)s 6918 x(sequently)s 7901 x(chooses)s 8725 x(to)s X8977 x(ignore)s 9654 x(all)s 9958 x(white)s 1417 4110 moveto(space)s 2008 x(in)s X2254 x(its)s 2539 x(input,)s 3151 x(even)s 3663 x(between)s 4520 x(two)s X4939 x(objects.)s X153 fnt34 X5676 4215 moveto(1)s X240 fnt34 X1897 3736 moveto(Every)s 2516 x(symbol)s 3269 x(provided)s X4168 x(by)s 4456 x(Eq)s 4770 x(has)s 5137 x(a)s X240 fnt35 X5291 x(full)s X5657 x(name)s X240 fnt34 X6176 x(,)s 6284 x(which)s 6917 x(denotes)s 7696 x(the)s X8036 x(symbol)s 8789 x(without)s 9568 x(any)s 9962 x(space)s 1417 3448 moveto(attached.)s X2389 x(Many)s 3004 x(symbols)s 3858 x(also)s 4299 x(have)s 4807 x(a)s X X240 fnt35 X4969 x(short)s 5517 x(name)s X240 fnt34 X6036 x(,)s 6152 x(which)s 6793 x(denotes)s X7580 x(the)s 7928 x(same)s 8475 x(symbol)s 9236 x(with)s 9717 x(what)s X10238 x(Eq)s 1417 3160 moveto(considers)s 2388 x(to)s 2642 x(be)s 2936 x(an)s X3230 x(appropriate)s 4386 x(amount)s 5172 x(of)s 5439 x(space)s 6038 x(for)s X6384 x(that)s 6810 x(symbol)s 7583 x(attached)s 8447 x(to)s 8701 x(it.)s X9021 x(For)s 9421 x(example,)s X240 fnt33 X10359 3153 moveto(\243)s gsave X1417 2442 translate X680 0 0 0 240 288 60 LoutGraphic Xgsave X0 0 moveto xsize 0 lineto stroke Xgrestore X Xgrestore X X153 fnt34 X1417 2226 moveto(1)s X192 fnt34 X1493 2148 moveto(This)s X1876 x(effect)s 2353 x(is)s 2523 x(produced)s 3279 x(by)s 3514 x(enclosing)s X4291 x(the)s 4568 x(entire)s 5046 x(equation)s 5749 x(in)s X172 fnt13 X5941 2146 moveto(0c @Space)s X X192 fnt34 X6828 2148 moveto(.)s 6967 x(The)s 7308 x(simplest)s 7988 x(way)s 8350 x(to)s X8542 x(restore)s 9104 x(the)s 9381 x(effect)s 1417 1918 moveto(of)s 1628 x(white)s X2105 x(space)s 2582 x(to)s 2783 x(part)s 3132 x(of)s 3343 x(an)s X3576 x(equation)s 4288 x(is)s 4467 x(to)s 4668 x(enclose)s 5294 x(that)s X5633 x(part)s 5982 x(in)s 6183 x(a)s X172 fnt13 X6320 1916 moveto(@Font)s X192 fnt34 X6888 1918 moveto(symbol.)s X7600 x(Eq)s 7865 x(also)s 8225 x(changes)s 8894 x(the)s 9180 x(value)s X9647 x(of)s 1417 1688 moveto(the)s X172 fnt13 X1706 1686 moveto(v)s X192 fnt34 X1847 1688 moveto(unit,)s 2248 x(so)s X2473 x(if)s 2644 x(a)s 2784 x(paragraph)s 3604 x(of)s 3818 x(\207lled)s X4266 x(text)s 4608 x(is)s 4790 x(desired)s 5397 x(within)s 5941 x(an)s X6177 x(equation,)s 6940 x(it)s 7101 x(may)s 7486 x(be)s 7722 x(necessary)s X8520 x(to)s 8724 x(enclose)s 9353 x(it)s 9514 x(in)s 9718 x(a)s X X172 fnt13 X1417 1456 moveto(@Break)s X192 fnt34 X2086 1458 moveto(symbol.)s Xpgsave restore Xshowpage X X%%Page: ? 6 X%%BeginPageSetup X/pgsave save def X0.0500 dup scale 10 setlinewidth X%%EndPageSetup X X240 fnt34 X5754 15258 moveto(-)s 5893 x(5)s 6073 x(-)s 1417 14667 moveto(has)s 1796 x(full)s X2187 x(name)s X220 fnt13 X2765 14663 moveto(lessequal)s X240 fnt34 X3751 14667 moveto(and)s 4157 x(short)s 4695 x(name)s X X220 fnt13 X5273 14663 moveto(<=)s X240 fnt34 X5529 14667 moveto(:)s X220 fnt13 X1897 14160 moveto(a lessequal b)s X240 fnt35 X5866 14164 moveto(a)s X240 fnt33 X5986 14157 moveto(\243)s X X240 fnt35 X6117 14164 moveto(b)s X220 fnt13 X1897 13657 moveto(a <= b)s X240 fnt35 X5866 13661 moveto(a)s X240 fnt33 X6058 13654 moveto(\243)s X240 fnt35 X6261 13661 moveto(b)s X X240 fnt34 X1417 13202 moveto(Eq)s 1745 x(puts)s 2206 x(a)s 2374 x(thick)s 2914 x(space)s X3507 x(around)s 4234 x(relation)s 5025 x(symbols)s 5885 x(like)s X220 fnt13 X6305 13198 moveto(<=)s X X240 fnt34 X6561 13202 moveto(,)s 6683 x(a)s 6851 x(medium)s 7697 x(space)s 8290 x(around)s X9017 x(binary)s 9690 x(operator)s 1417 12914 moveto(symbols)s 2272 x(like)s X220 fnt13 X2687 12910 moveto(+)s X X240 fnt34 X2815 12914 moveto(,)s 2932 x(and)s 3335 x(a)s 3498 x(thin)s 3927 x(space)s X4515 x(after)s 5008 x(punctuation)s 6195 x(symbols)s 7050 x(\()s X220 fnt13 X7129 12910 moveto(;)s X X240 fnt34 X7247 12914 moveto(and)s X220 fnt13 X7650 12910 moveto(,)s X240 fnt34 X7711 12914 moveto(\);)s 7913 x(except)s 8594 x(that)s X9009 x(in)s 9252 x(places)s 9906 x(where)s 1417 12626 moveto(the)s 1786 x(symbols)s X2661 x(appear)s 3375 x(in)s 3638 x(a)s 3821 x(smaller)s 4600 x(size)s X5048 x(\(superscripts,)s 6405 x(subscripts,)s 7498 x(etc.\),)s 8052 x(these)s 8620 x(spaces)s X9321 x(are)s 9689 x(omitted.)s 1417 12338 moveto(No)s 1770 x(other)s 2321 x(horizontal)s X3350 x(space)s 3941 x(is)s 4160 x(ever)s 4631 x(inserted.)s 1897 11964 moveto(The)s X2325 x(short)s 2859 x(names)s 3526 x(have)s 4034 x(been)s 4542 x(carefully)s X5446 x(designed)s 6353 x(to)s 6595 x(produce)s 7422 x(good-looking)s 8769 x(mathematics)s X10032 x(most)s 1417 11676 moveto(of)s 1689 x(the)s 2054 x(time.)s 2671 x(It)s X2889 x(is)s 3121 x(best)s 3579 x(to)s 3838 x(rely)s 4282 x(on)s X4595 x(them)s 5146 x(in)s 5405 x(the)s 5770 x(\207rst)s 6214 x(instance)s X7070 x(and)s 7489 x(only)s 7988 x(think)s 8553 x(about)s 9158 x(spacing)s X9962 x(when)s 1417 11388 moveto(the)s 1769 x(result)s 2359 x(is)s 2578 x(not)s X2944 x(pleasing.)s 3921 x(In)s 4180 x(that)s 4598 x(case,)s 5129 x(Eq's)s X5627 x(space)s 6218 x(can)s 6610 x(be)s 6896 x(removed)s 7793 x(by)s X8093 x(using)s 8672 x(the)s 9024 x(full)s 9415 x(names,)s 10146 x(and)s X1417 11100 moveto(thin,)s 1909 x(medium)s 2753 x(and)s 3159 x(thick)s 3697 x(space)s X4288 x(can)s 4680 x(be)s 4966 x(added)s 5598 x(using)s 6177 x(the)s X6529 x(following)s 7519 x(symbols:)s X220 fnt13 X1897 10559 moveto(`)s 2381 x(0.18f)s X240 fnt34 X2989 10563 moveto(\()s X X220 fnt13 X3068 10559 moveto(0.018f)s X240 fnt34 X3738 10563 moveto(in)s 3984 x(subscripts,)s 5060 x(etc.\))s X220 fnt13 X1897 10271 moveto(``)s X2381 x(0.24f)s X240 fnt34 X2989 10275 moveto(\()s X220 fnt13 X3068 10271 moveto(0.024f)s X240 fnt34 X3738 10275 moveto(in)s 3984 x(subscripts,)s X5060 x(etc.\))s X220 fnt13 X1897 9983 moveto(```)s 2381 x(0.30f)s X240 fnt34 X2989 9987 moveto(\()s X220 fnt13 X3068 9983 moveto(0.030f)s X X240 fnt34 X3738 9987 moveto(in)s 3984 x(subscripts,)s 5060 x(etc.\))s 1417 9446 moveto(where)s X220 fnt13 X2083 9442 moveto(1f)s X X240 fnt34 X2348 9446 moveto(is)s 2589 x(the)s 2963 x(current)s 3721 x(font)s 4188 x(size.)s X4761 x(These)s 5414 x(symbols)s 6294 x(have)s 6828 x(low)s 7269 x(precedence.)s X8546 x(The)s X220 fnt13 X9000 9442 moveto(&)s X240 fnt34 X9228 9446 moveto(symbol)s 10015 x(from)s 1417 9158 moveto(standard)s X2280 x(Lout)s 2785 x(is)s 2997 x(also)s 3435 x(available;)s 4416 x(the)s X X220 fnt13 X4761 9154 moveto(s)s X240 fnt34 X4924 9158 moveto(unit)s 5349 x(has)s 5721 x(value)s 6292 x(0)s X6465 x(and)s 6864 x(so)s 7130 x(is)s 7342 x(not)s 7701 x(very)s X8179 x(useful,)s 8876 x(but)s 9235 x(one)s 9634 x(can)s 10019 x(write)s X X220 fnt13 X1417 8866 moveto(&2m)s X240 fnt34 X1928 8870 moveto(for)s 2266 x(example)s 3136 x(for)s 3474 x(a)s X3640 x(two)s 4059 x(em)s 4411 x(space.)s 5122 x(The)s 5554 x(full)s X5945 x(names)s 6616 x(are)s 6967 x(tedious)s 7718 x(to)s 7964 x(remember,)s X9052 x(so)s 9325 x(Eq)s 9651 x(provides)s 1417 8582 moveto(a)s X220 fnt13 X1615 8578 moveto(non)s X X240 fnt34 X2073 8582 moveto(symbol)s 2870 x(which)s 3547 x(removes)s 4449 x(spaces)s 5165 x(from)s X5721 x(its)s 6038 x(right)s 6581 x(parameter;)s 7693 x(thus)s X220 fnt13 X8184 8578 moveto(non <=)s X X240 fnt34 X8959 8582 moveto(is)s 9210 x(equivalent)s 10298 x(to)s X220 fnt13 X1417 8290 moveto(lessequal)s X240 fnt34 X2343 8294 moveto(.)s X2512 x(There)s 3118 x(are)s 3458 x(also)s X220 fnt13 X3892 8290 moveto(rel)s X240 fnt34 X4135 8294 moveto(,)s X X220 fnt13 X4244 8290 moveto(bin)s X240 fnt34 X4536 8294 moveto(,)s 4645 x(and)s X220 fnt13 X5040 8290 moveto(punct)s X240 fnt34 X5626 8294 moveto(symbols)s X6473 x(for)s 6800 x(telling)s 7459 x(Eq)s 7774 x(to)s 8009 x(add)s X8404 x(space)s 8984 x(to)s 9219 x(the)s 9560 x(following)s 1417 8006 moveto(symbol)s X2182 x(as)s 2441 x(though)s 3167 x(it)s 3359 x(was)s 3791 x(a)s X3957 x(relation)s 4746 x(symbol,)s 5571 x(binary)s 6242 x(operator,)s 7158 x(or)s X7417 x(punctuation)s 8607 x(symbol.)s X240 fnt36 X1417 7213 moveto(4.)s 1717 x(Features)s 2666 x(from)s X3230 x(Standard)s 4247 x(Lout)s X240 fnt34 X1897 6782 moveto(In)s 2149 x(this)s 2547 x(section)s X3277 x(we)s 3609 x(summarize)s 4710 x(those)s 5268 x(features)s 6076 x(of)s X6328 x(standard)s 7191 x(Lout)s 7696 x(of)s 7948 x(most)s 8466 x(relevance)s X9434 x(to)s 9673 x(equation)s 1417 6494 moveto(formatting.)s 2627 x(All)s 3014 x(are)s X3387 x(freely)s 4025 x(available)s 4969 x(within)s 5662 x(equations.)s 6781 x(Full)s X7248 x(details)s 7953 x(may)s 8447 x(be)s 8755 x(found)s 9396 x(in)s X9664 x(the)s 10038 x(Lout)s 1417 6206 moveto(reference)s 2364 x(manual)s 3128 x([)s X3207 x(4)s 3327 x(].)s 1897 5832 moveto(Standard)s 2808 x(Lout)s 3321 x(uses)s X3794 x(the)s 4147 x(symbols)s X220 fnt13 X5006 5828 moveto(#)s X240 fnt34 X5128 5832 moveto(,)s X220 fnt13 X5249 5828 moveto({)s X X240 fnt34 X5322 5832 moveto(,)s X220 fnt13 X5443 5828 moveto(})s X240 fnt34 X5516 5832 moveto(,)s X220 fnt13 X5637 5828 moveto(&)s X240 fnt34 X5783 5832 moveto(,)s X X220 fnt13 X5904 5828 moveto(|)s X240 fnt34 X5961 5832 moveto(,)s 6082 x(and)s X220 fnt13 X6489 5828 moveto(/)s X240 fnt34 X6611 5832 moveto(for)s X6950 x(special)s 7674 x(purposes)s 8586 x(\(the)s 9018 x(braces)s 9689 x(are)s X10041 x(used)s 1417 5544 moveto(for)s 1738 x(grouping,)s 2706 x(for)s 3027 x(example\).)s X4079 x(To)s 4388 x(get)s 4723 x(these)s 5257 x(characters)s 6267 x(into)s X6682 x(equations)s 7642 x(without)s 8416 x(using)s 8978 x(their)s 9458 x(full)s X9832 x(names,)s 1417 5256 moveto(enclose)s 2186 x(them)s 2716 x(in)s 2954 x(double)s X3658 x(quotes:)s X220 fnt13 X4401 5252 moveto("{")s X240 fnt34 X4630 5256 moveto(,)s X220 fnt13 X4742 5252 moveto("}")s X240 fnt34 X4971 5256 moveto(,)s X5083 x(etc.)s 5533 x(Any)s 5998 x(sequence)s 6927 x(of)s 7178 x(characters)s X8197 x(including)s 9153 x(spaces)s 9829 x(but)s 10187 x(not)s 1417 4968 moveto(newlines)s X2327 x(may)s 2799 x(be)s 3085 x(so)s 3358 x(enclosed,)s 4315 x(and)s X4721 x(the)s 5073 x(effect)s 5675 x(is)s 5894 x(to)s 6140 x(turn)s X6585 x(off)s 6923 x(any)s 7329 x(special)s 8052 x(meaning)s 8936 x(that)s X9354 x(the)s 9706 x(symbols)s 1417 4680 moveto(within)s 2088 x(it)s 2280 x(might)s X2898 x(have.)s 1897 4306 moveto(Eq)s 2250 x(sets)s 2695 x(letters)s 3364 x(in)s X3637 x(Slope)s 4269 x(\(Lout's)s 5059 x(name)s 5664 x(for)s 6029 x(Italic\),)s X6744 x(digits)s 7362 x(in)s 7635 x(Base)s 8187 x(\(i.e.)s 8645 x(Roman\),)s X9563 x(and)s 9996 x(other)s 1417 4018 moveto(symbols)s 2275 x(in)s 2521 x(various)s X3285 x(fonts,)s 3883 x(mostly)s 4594 x(the)s 4946 x(Symbol)s 5751 x(font.)s X6316 x(To)s 6642 x(change)s 7380 x(fonts,)s 7978 x(use)s 8357 x(the)s X X220 fnt13 X8709 4014 moveto(@Font)s X240 fnt34 X9431 4018 moveto(symbol:)s X220 fnt13 X1897 3511 moveto(Slope @Font "2")s X240 fnt35 X5866 3515 moveto(2)s X240 fnt34 X1417 3013 moveto(In)s X1696 x(Eq)s 2042 x(it)s 2254 x(will)s 2705 x(often)s 3276 x(be)s X3582 x(necessary)s 4591 x(to)s 4857 x(enclose)s 5654 x(the)s 6026 x(right)s X6557 x(parameter)s 7591 x(in)s 7857 x(double)s 8589 x(quotes,)s 9354 x(because)s X10191 x(the)s 1417 2725 moveto(symbol)s 2212 x(2)s 2422 x(includes)s 3309 x(a)s X3505 x(built-in)s 4298 x(change)s 5066 x(back)s 5608 x(to)s 5884 x(Base)s X6439 x(font.)s 7034 x(Changing)s 8056 x(fonts)s 8624 x(makes)s 9325 x(white)s X9946 x(space)s 1417 2437 moveto(between)s 2275 x(objects)s 3013 x(in)s 3260 x(the)s X3613 x(right)s 4125 x(parameter)s 5140 x(appear)s 5838 x(in)s 6085 x(the)s X6438 x(result.)s 7149 x(The)s X220 fnt13 X7582 2433 moveto(@Font)s X240 fnt34 X8305 2437 moveto(operator)s 9162 x(also)s X9608 x(does)s 10108 x(size)s 1417 2149 moveto(changes:)s X220 fnt13 X1897 1632 moveto(sum)s X240 fnt33 X5866 1629 moveto(\345)s X Xpgsave restore Xshowpage X X%%Page: ? 7 X%%BeginPageSetup X/pgsave save def X0.0500 dup scale 10 setlinewidth X%%EndPageSetup X X240 fnt34 X5754 15260 moveto(-)s 5893 x(6)s 6073 x(-)s X220 fnt13 X1897 14634 moveto("+2p" @Font sum)s X280 fnt33 X5866 14621 moveto(\345)s X X220 fnt13 X1897 14001 moveto(2.0f @Font sum)s X480 fnt33 X5866 13938 moveto(\345)s X240 fnt34 X1417 13437 moveto(Here)s X220 fnt13 X1923 13433 moveto("+2p" @Font)s X240 fnt34 X3216 13437 moveto(sets)s X3616 x(its)s 3883 x(right)s 4376 x(parameter)s 5372 x(in)s 5600 x(a)s X5748 x(font)s 6175 x(two)s 6576 x(points)s 7203 x(larger)s 7801 x(than)s X8255 x(it)s 8429 x(would)s 9070 x(otherwise)s 10041 x(have)s 1417 13149 moveto(been;)s X X220 fnt13 X1998 13145 moveto(2.0f @Font)s X240 fnt34 X3150 13149 moveto(sets)s 3571 x(its)s 3859 x(right)s 4373 x(parameter)s X5390 x(in)s 5639 x(a)s 5808 x(font)s 6256 x(twice)s 6836 x(the)s X7191 x(original)s 7997 x(size.)s 8551 x(Sizes)s 9118 x(should)s 9820 x(always)s X1417 12861 moveto(be)s 1713 x(speci\207ed)s 2633 x(relative)s 3418 x(to)s 3674 x(the)s X4036 x(enclosing)s 5023 x(size)s 5464 x(as)s 5733 x(we)s 6082 x(have)s X6604 x(done)s 7140 x(here,)s 7681 x(since)s 8242 x(then)s 8724 x(they)s X9206 x(don't)s 9781 x(need)s 10303 x(to)s 1417 12573 moveto(be)s 1700 x(changed)s X2555 x(if)s 2757 x(a)s 2920 x(decision)s 3774 x(is)s 3990 x(made)s X4565 x(to)s 4808 x(set)s 5130 x(the)s 5479 x(entire)s 6079 x(document)s X7080 x(in)s 7323 x(a)s 7486 x(different)s 8364 x(size.)s 8912 x(It)s X9114 x(is)s 9330 x(necessary)s 10316 x(to)s 1417 12285 moveto(enclose)s X220 fnt13 X2187 12281 moveto(+2p)s X X240 fnt34 X2612 12285 moveto(in)s 2851 x(double)s 3556 x(quotes)s 4234 x(within)s 4898 x(Eq,)s X5277 x(because)s 6087 x(otherwise)s 7069 x(the)s X220 fnt13 X7414 12281 moveto(+)s X240 fnt34 X7595 12285 moveto(will)s X8019 x(be)s 8298 x(taken)s 8869 x(as)s 9121 x(the)s 9466 x(Eq)s X9785 x(symbol)s 1417 11997 moveto(for)s X240 fnt33 X1812 11990 moveto(+)s X240 fnt34 X2000 11997 moveto(.)s 2180 x(The)s X2612 x(right)s 3123 x(parameter)s 4137 x(may)s 4609 x(be)s 4895 x(any)s X5301 x(object.)s 1897 11623 moveto(Whenever)s 2956 x(similar)s 3694 x(equations)s 4687 x(or)s X4962 x(parts)s 5502 x(of)s 5777 x(equations)s 6770 x(are)s 7137 x(being)s X7745 x(typed)s 8353 x(repeatedly,)s X240 fnt35 X9484 x(de\207nitions)s X240 fnt34 X1417 11335 moveto(should)s 2116 x(be)s X2402 x(used)s 2901 x(to)s 3147 x(save)s 3632 x(time.)s 4236 x(Suppose)s X5108 x(for)s 5446 x(example)s 6316 x(that)s X240 fnt35 X6734 x(p)s X167 fnt35 X6854 11249 moveto(i)s X X240 fnt34 X6943 11335 moveto(log)s X167 fnt33 X7249 11242 moveto(2)s X240 fnt35 X7375 11335 moveto(p)s X167 fnt35 X7495 11249 moveto(i)s X240 fnt34 X7601 11335 moveto(occurs)s X8285 x(frequently.)s 9447 x(Then)s X220 fnt13 X1897 10794 moveto(def epi { p sub i ` log sub 2 ` p sub i })s X240 fnt34 X1417 10295 moveto(makes)s 2088 x(the)s X2440 x(symbol)s X220 fnt13 X3205 10291 moveto(epi)s X240 fnt34 X3557 10295 moveto(stand)s 4122 x(for)s 4460 x(the)s X4812 x(object)s 5456 x(between)s 6313 x(the)s 6665 x(braces:)s X220 fnt13 X1897 9624 moveto(big sum from i=1 to n ` epi)s X X167 fnt35 X5942 9881 moveto(n)s X311 fnt33 X5873 9604 moveto(\345)s X167 fnt35 X5866 9418 moveto(i)s X167 fnt33 X5920 9414 moveto(=)s 6019 x(1)s X X240 fnt35 X6145 9628 moveto(p)s X167 fnt35 X6265 9542 moveto(i)s X240 fnt34 X6354 9628 moveto(log)s X167 fnt33 X6660 9535 moveto(2)s X240 fnt35 X6786 9628 moveto(p)s X X167 fnt35 X6906 9542 moveto(i)s X240 fnt34 X1417 8964 moveto(Symbols)s 2315 x(may)s 2787 x(be)s 3073 x(given)s X3665 x(parameters:)s X220 fnt13 X1897 8464 moveto(def ep)s 1897 8176 moveto( right x)s 1897 7888 moveto({ p sub x ` log sub 2 ` p sub x)s 1897 7600 moveto(})s X X240 fnt34 X1417 7103 moveto(The)s 1849 x(parameter)s X220 fnt13 X2863 7099 moveto(x)s X240 fnt34 X3033 7103 moveto(will)s 3464 x(be)s X3750 x(replaced)s 4619 x(by)s 4919 x(the)s 5271 x(object)s 5915 x(just)s X6320 x(to)s 6566 x(the)s 6918 x(right)s 7429 x(of)s X220 fnt13 X7688 7099 moveto(ep)s X X240 fnt34 X7932 7103 moveto(:)s X220 fnt13 X1897 6603 moveto(big sum from j=1 to k ` ep i +)s 1897 6315 moveto(big sum from j=k+1 to n ep j)s X167 fnt35 X5947 6649 moveto(k)s X311 fnt33 X5873 6371 moveto(\345)s X X167 fnt35 X5866 6185 moveto(j)s X167 fnt33 X5920 6181 moveto(=)s 6019 x(1)s X240 fnt35 X6145 6395 moveto(p)s X167 fnt35 X6265 6309 moveto(i)s X X240 fnt34 X6354 6395 moveto(log)s X167 fnt33 X6660 6302 moveto(2)s X240 fnt35 X6786 6395 moveto(p)s X167 fnt35 X6906 6309 moveto(i)s X240 fnt33 X7009 6388 moveto(+)s X X167 fnt35 X7362 6648 moveto(n)s X311 fnt33 X7293 6371 moveto(\345)s X167 fnt35 X7197 6180 moveto(j)s X167 fnt33 X7251 6176 moveto(=)s X167 fnt35 X7350 6180 moveto(k)s X X167 fnt33 X7430 6176 moveto(+)s 7527 x(1)s X240 fnt35 X7610 6395 moveto(p)s X167 fnt35 X7730 6309 moveto(j)s X240 fnt34 X7819 6395 moveto(log)s X X167 fnt33 X8125 6302 moveto(2)s X240 fnt35 X8251 6395 moveto(p)s X167 fnt35 X8371 6309 moveto(j)s X240 fnt34 X1417 5696 moveto(The)s 1849 x(precedence)s X2984 x(of)s 3243 x(such)s 3742 x(symbols)s 4600 x(will)s 5031 x(be)s X5317 x(100)s 5737 x(by)s 6037 x(default.)s 1897 5322 moveto(To)s 2237 x(make)s X2829 x(the)s 3195 x(symbols)s 4067 x(of)s 4340 x(Eq)s 4680 x(available)s X5616 x(within)s 6301 x(such)s 6814 x(de\207nitions,)s 7958 x(each)s 8470 x(must)s X9009 x(be)s 9309 x(preceded)s 10246 x(by)s X220 fnt13 X1417 5030 moveto(import @Eq)s X240 fnt34 X2578 5034 moveto(.)s X2758 x(The)s 3190 x(best)s 3635 x(place)s 4199 x(to)s 4445 x(keep)s X4957 x(them)s 5495 x(is)s 5714 x(in)s 5960 x(the)s 6312 x(setup)s X6877 x(\207le,)s 7302 x(which)s 7947 x(might)s 8565 x(then)s 9037 x(look)s X9523 x(like)s 9941 x(this:)s X220 fnt13 X1897 4532 moveto(@SysInclude { ft })s 1897 4244 moveto(@SysInclude { dl })s 1897 3956 moveto(@SysInclude { eq })s X1897 3380 moveto(import @Eq)s 1897 3092 moveto(def epi { p sub i ` log sub 2 ` p sub i })s 1897 2516 moveto(import @Eq)s 1897 2228 moveto(def ep right x { p sub x ` log sub 2 ` p sub x })s 1897 1652 moveto(@Use { @DocumentLayout })s X Xpgsave restore Xshowpage X X%%Page: ? 8 X%%BeginPageSetup X/pgsave save def X0.0500 dup scale 10 setlinewidth X%%EndPageSetup X X240 fnt34 X5754 15264 moveto(-)s 5893 x(7)s 6073 x(-)s 1417 14673 moveto(Use)s 1849 x(of)s X X220 fnt13 X2108 14669 moveto(epi)s X240 fnt34 X2460 14673 moveto(and)s X220 fnt13 X2866 14669 moveto(ep)s X240 fnt34 X3170 14673 moveto(outside)s 3921 x(equations)s X4898 x(will)s 5329 x(cause)s 5920 x(an)s 6206 x(error.)s 1897 14299 moveto(Equations)s X2921 x(can)s 3320 x(appear)s 4024 x(within)s 4702 x(a)s 4875 x(paragraph)s X5898 x(of)s 6164 x(text,)s 6649 x(or)s 6915 x(they)s 7394 x(can)s X7793 x(be)s 8086 x(displayed.)s 9190 x(Eq's)s 9695 x(job)s 10068 x(is)s X10294 x(to)s 1417 14011 moveto(produce)s 2258 x(a)s 2434 x(Lout)s 2956 x(object)s X3610 x(containing)s 4690 x(the)s 5052 x(equation;)s 6012 x(it)s 6214 x(neither)s X6947 x(knows)s 7643 x(nor)s 8032 x(cares)s 8592 x(where)s 9246 x(this)s X9661 x(equation)s 1417 13723 moveto(goes.)s 2041 x(To)s 2372 x(get)s 2729 x(an)s X3020 x(equation)s 3909 x(within)s 4585 x(a)s 4756 x(paragraph,)s 5837 x(simply)s X6553 x(place)s X220 fnt13 X7122 13719 moveto(@Eq { ... })s X240 fnt34 X8190 13723 moveto(at)s 8427 x(the)s 8784 x(desired)s X9539 x(point.)s 10216 x(To)s 1417 13435 moveto(prevent)s 2213 x(it)s 2424 x(spreading)s X3433 x(over)s 3937 x(two)s 4375 x(lines,)s 4965 x(use)s X220 fnt13 X5363 13431 moveto(@OneCol @Eq { ... })s X X240 fnt34 X7393 13435 moveto(.)s 7592 x(To)s 7937 x(display)s 8707 x(an)s 9012 x(equation,)s X9975 x(use)s 10373 x(a)s 1417 13147 moveto(display)s 2190 x(symbol)s 2977 x(from)s X3523 x(some)s 4110 x(other)s 4683 x(Lout)s 5217 x(package.)s 6203 x(For)s X6617 x(example,)s 7569 x(the)s 7943 x(DocumentLayout)s 9700 x(package)s 1417 12859 moveto([)s X1496 x(5)s 1616 x(])s 1762 x(has)s X220 fnt13 X2148 12855 moveto(@IndentedDisplay)s X240 fnt34 X4010 12859 moveto(or)s X X220 fnt13 X4276 12855 moveto(@ID)s X240 fnt34 X4785 12859 moveto(for)s 5130 x(an)s 5423 x(indented)s 6314 x(display,)s X7132 x(and)s X220 fnt13 X7545 12855 moveto(@CentredDisplay)s X240 fnt34 X9333 12859 moveto(or)s X220 fnt13 X9599 12855 moveto(@CD)s X240 fnt34 X10205 12859 moveto(for)s X1417 12571 moveto(a)s 1583 x(centred)s 2346 x(display,)s 3157 x(so)s X220 fnt13 X1897 12069 moveto(@CD @Eq { int supp pi on 0 sin ` x = 0 })s X X240 fnt34 X1417 11571 moveto(produces)s gsave X5454 11033 translate X-180.0000 rotate Xgsave X0 -159 translate X180.0000 rotate X X311 fnt33 X0 -284 moveto(\362)s Xgrestore X Xgrestore X X311 fnt33 X5454 10908 moveto(\362)s X167 fnt33 X5539 11151 moveto(p)s 5539 10833 moveto(0)s X X240 fnt34 X5630 10980 moveto(sin)s X240 fnt35 X5952 x(x)s X240 fnt33 X6130 10973 moveto(=)s 6333 x(0)s X240 fnt34 X1417 10380 moveto(DocumentLayout)s X3197 x(also)s 3687 x(provides)s 4616 x(display)s 5412 x(symbols)s 6315 x(that)s X6778 x(make)s 7401 x(it)s 7638 x(easy)s 8168 x(to)s 8459 x(produce)s X9335 x(aligned)s 10144 x(and)s 1417 10092 moveto(numbered)s 2434 x(equations.)s X240 fnt36 X1417 9299 moveto(5.)s X1717 x(Summary)s X240 fnt34 X1897 8821 moveto(This)s 2422 x(section)s 3199 x(is)s 3458 x(a)s X3664 x(complete)s 4640 x(list)s 5031 x(of)s 5330 x(the)s 5722 x(symbols)s X6620 x(provided)s 7571 x(by)s 7911 x(Eq.)s 8397 x(We)s 8829 x(divide)s X9527 x(them)s 10105 x(into)s 1417 8533 moveto(auxiliary,)s 2431 x(parameterized,)s 3948 x(short)s X4531 x(names)s 5247 x(\(further)s 6080 x(divided)s 6903 x(into)s 7380 x(relations,)s X8367 x(binary)s 9083 x(operators,)s 10137 x(and)s 1417 8245 moveto(punctuation\),)s 2746 x(and)s X3152 x(full)s 3543 x(names.)s 4334 x(The)s 4766 x(auxiliary)s 5675 x(symbols)s X6533 x(are:)s X220 fnt13 X1897 7704 moveto(`)s X240 fnt34 X2945 7708 moveto(Thin)s 3457 x(space)s X220 fnt13 X1897 7416 moveto(``)s X X240 fnt34 X2945 7420 moveto(Medium)s 3816 x(space)s X220 fnt13 X1897 7128 moveto(```)s X240 fnt34 X2945 7132 moveto(Thick)s 3563 x(space)s X X220 fnt13 X1897 6840 moveto(bin x)s X240 fnt34 X2945 6844 moveto(Treat)s X220 fnt13 X3508 6840 moveto(x)s X240 fnt34 X3678 6844 moveto(as)s 3937 x(a)s X4103 x(binary)s 4774 x(operator)s X220 fnt13 X1897 6552 moveto(rel x)s X240 fnt34 X2945 6556 moveto(Treat)s X220 fnt13 X3508 6552 moveto(x)s X X240 fnt34 X3678 6556 moveto(as)s 3937 x(a)s 4103 x(relation)s X220 fnt13 X1897 6264 moveto(punct x)s X240 fnt34 X2945 6268 moveto(Treat)s X X220 fnt13 X3508 6264 moveto(x)s X240 fnt34 X3678 6268 moveto(as)s 3937 x(a)s 4103 x(punctuation)s 5293 x(symbol)s X X220 fnt13 X1897 5976 moveto(non x)s X240 fnt34 X2945 5980 moveto(Remove)s 3803 x(spaces)s 4487 x(normally)s 5410 x(put)s X5776 x(into)s X220 fnt13 X6208 5976 moveto(x)s 1897 5688 moveto(vctr x)s X240 fnt34 X2945 5692 moveto(Centre)s X220 fnt13 X3642 5688 moveto(x)s X X240 fnt34 X3812 5692 moveto(vertically)s X220 fnt13 X1897 5400 moveto(big x)s X240 fnt34 X2945 5404 moveto(Make)s X220 fnt13 X3550 5400 moveto(x)s X240 fnt34 X3720 5404 moveto(larger)s X1417 4863 moveto(Here)s 1999 x(are)s 2408 x(all)s 2764 x(the)s 3174 x(parameterized)s X4644 x(symbols,)s 5620 x(shown)s 6364 x(in)s 6668 x(groups)s 7438 x(of)s X7755 x(equal)s 8391 x(precedence,)s 9644 x(with)s 10187 x(the)s 1417 4575 moveto(precedence)s X2552 x(itself)s 3088 x(at)s 3320 x(right:)s X220 fnt13 X1897 4070 moveto(matrix not)s X240 fnt34 X2920 4074 moveto(\(100\))s X X220 fnt13 X1897 3782 moveto(dot dotdot hat tilde vec dyad overbar underbar)s X240 fnt34 X6445 3786 moveto(\(62\))s X220 fnt13 X1897 3494 moveto(sup sub supp)s X240 fnt34 X3263 3498 moveto(\(60\))s 3841 x(on)s X4141 x(\(61\))s X220 fnt13 X1897 3206 moveto(from to widefrom wideto)s X240 fnt34 X4284 3210 moveto(\(58\))s X220 fnt13 X1897 2918 moveto(sqrt root)s X240 fnt34 X2762 2922 moveto(\(56\))s X X220 fnt13 X1897 2630 moveto(over)s X240 fnt34 X2384 2634 moveto(frac)s 2814 x(\(54\))s X220 fnt13 X1897 2342 moveto(above labove cabove rabove mabove)s X240 fnt34 X5605 2346 moveto(\(52\))s X X220 fnt13 X1897 2054 moveto(nextcol)s X240 fnt34 X2652 2058 moveto(\(50\))s 1417 1565 moveto(See)s 1822 x(page)s 2334 x(3)s X2514 x(for)s 2852 x(examples)s 3815 x(of)s 4074 x(matrices.)s 5062 x(Here)s X5586 x(are)s 5937 x(some)s 6502 x(examples)s 7465 x(of)s 7724 x(the)s X8076 x(other)s 8627 x(symbols:)s Xpgsave restore Xshowpage X X%%Page: ? 9 X%%BeginPageSetup X/pgsave save def X0.0500 dup scale 10 setlinewidth X%%EndPageSetup X X240 fnt34 X5754 15261 moveto(-)s 5893 x(8)s 6073 x(-)s X220 fnt13 X1897 14641 moveto(x dot)s X167 fnt35 X5904 14795 moveto(.)s X X240 fnt35 X5866 14645 moveto(x)s X220 fnt13 X1897 14157 moveto(x dotdot)s X167 fnt35 X5884 14311 moveto(..)s X240 fnt35 X5866 14161 moveto(x)s X220 fnt13 X1897 13638 moveto(x hat)s X X167 fnt34 X5886 13754 moveto(^)s X240 fnt35 X5866 13642 moveto(x)s X220 fnt13 X1897 13164 moveto(x tilde)s X167 fnt34 X5880 13288 moveto(~)s X240 fnt35 X5866 13168 moveto(x)s X X220 fnt13 X1897 12631 moveto(x vec)s X167 fnt33 X5878 12787 moveto(\256)s X240 fnt35 X5901 12635 moveto(x)s X220 fnt13 X1897 12098 moveto(x dyad)s X167 fnt33 X5878 12254 moveto(\253)s X X240 fnt35 X5906 12102 moveto(x)s X220 fnt13 X1897 11582 moveto(x+y overbar)s gsave X5866 0 translate X3.4885 1.0000 scale X X240 fnt33 X0 11693 moveto(-)s Xgrestore X X240 fnt35 X5866 11586 moveto(x)s X240 fnt33 X6029 11579 moveto(+)s X X240 fnt35 X6217 11586 moveto(y)s X220 fnt13 X1897 11087 moveto(x+y underbar)s X240 fnt35 X5866 11091 moveto(x)s X240 fnt33 X6029 11084 moveto(+)s X240 fnt35 X6217 11091 moveto(y)s Xgsave X5866 0 translate X3.4885 1.0000 scale X X240 fnt33 X0 10929 moveto(-)s Xgrestore X X240 fnt34 X1417 10535 moveto(These)s 2053 x(marks)s 2702 x(are)s 3058 x(centred)s X3826 x(over)s 4316 x(the)s 4673 x(left)s 5055 x(parameter,)s 6134 x(except)s X6823 x(the)s 7180 x(last)s 7576 x(two)s 8000 x(which)s 8650 x(are)s X9006 x(extended)s 9935 x(to)s 10186 x(the)s 1417 10247 moveto(width)s 2022 x(of)s X2281 x(the)s 2633 x(object.)s X220 fnt13 X1897 9678 moveto(a sup b)s X167 fnt35 X5986 9794 moveto(b)s X240 fnt35 X5866 9682 moveto(a)s X X220 fnt13 X1897 9183 moveto(a sub b)s X240 fnt35 X5866 9187 moveto(a)s X167 fnt35 X5986 9107 moveto(b)s X220 fnt13 X1897 8588 moveto(a supp b on c)s X240 fnt35 X5866 8592 moveto(a)s X X167 fnt35 X5986 8704 moveto(b)s 5986 8512 moveto(c)s X240 fnt34 X1417 8060 moveto(Note)s 1942 x(that)s X220 fnt13 X2360 8056 moveto(supp)s X X240 fnt34 X2896 8060 moveto(and)s X220 fnt13 X3302 8056 moveto(on)s X240 fnt34 X3606 8060 moveto(must)s 4131 x(be)s 4417 x(used)s X4916 x(together)s 5759 x(as)s 6018 x(shown.)s X220 fnt13 X1897 7507 moveto(big sum from i)s X311 fnt33 X5866 7487 moveto(\345)s X X167 fnt35 X5953 7301 moveto(i)s X220 fnt13 X1897 6614 moveto(big prod to j)s X167 fnt35 X5970 6903 moveto(j)s X311 fnt33 X5866 6594 moveto(\325)s X220 fnt13 X1897 6114 moveto({a, ... , z} widefrom)s X1897 5826 moveto({90d @Rotate blbrace})s X240 fnt35 X5866 6118 moveto(a)s X240 fnt33 X5986 6111 moveto(,)s 6089 x(\274)s 6329 x(,)s X X240 fnt35 X6432 6118 moveto(z)s gsave X6235 0 translate X0.9140 1.0000 scale Xgsave X0 5914 translate X90.0000 rotate X X240 fnt33 X0 182 moveto(\354)s 0 -60 moveto(\355)s 0 -302 moveto(\356)s Xgrestore X Xgrestore X X220 fnt13 X1897 5325 moveto({a, ... , z} wideto minus)s Xgsave X5866 0 translate X5.0305 1.0000 scale X X240 fnt33 X0 5422 moveto(-)s Xgrestore X X240 fnt35 X5866 5329 moveto(a)s X240 fnt33 X5986 5322 moveto(,)s 6089 x(\274)s 6329 x(,)s X X240 fnt35 X6432 5329 moveto(z)s X220 fnt13 X1417 4824 moveto(widefrom)s X240 fnt34 X2364 4828 moveto(and)s X220 fnt13 X2768 4824 moveto(wideto)s X240 fnt34 X3459 4828 moveto(are)s X3808 x(like)s X220 fnt13 X4224 4824 moveto(from)s X240 fnt34 X4721 4828 moveto(and)s X220 fnt13 X5125 4824 moveto(to)s X240 fnt34 X5366 4828 moveto(except)s X6048 x(that)s 6464 x(they)s 6934 x(horizontally)s 8147 x(scale)s 8682 x(the)s X9032 x(right)s 9541 x(parameter)s 1417 4540 moveto(to)s 1663 x(the)s 2015 x(width)s X2620 x(of)s 2879 x(the)s 3231 x(left.)s X220 fnt13 X1897 3992 moveto(sqrt {x over y})s gsave X0 3937 translate X1.0000 1.9476 scale X X240 fnt33 X5866 -60 moveto(\326)s X Xgrestore Xgsave X5997 4248 translate X149 0 0 0 240 288 0 LoutGraphic Xgsave X0 0 moveto xsize 0 lineto 0.03 ft setlinewidth 2 setlinecap stroke Xgrestore X Xgrestore X X240 fnt35 X6040 4099 moveto(x)s gsave X6040 4049 translate X106 0 0 0 240 288 0 LoutGraphic Xgsave X0 0 moveto xsize 0 lineto 0.05 ft setlinewidth stroke Xgrestore X Xgrestore X X240 fnt35 X6040 3895 moveto(y)s X220 fnt13 X1897 3258 moveto(3 root {x over y})s X167 fnt33 X5866 3370 moveto(3)s gsave X0 3203 translate X1.0000 1.9476 scale X X240 fnt33 X5866 -60 moveto(\326)s X Xgrestore Xgsave X5997 3514 translate X149 0 0 0 240 288 0 LoutGraphic Xgsave X0 0 moveto xsize 0 lineto 0.03 ft setlinewidth 2 setlinecap stroke Xgrestore X Xgrestore X X240 fnt35 X6040 3365 moveto(x)s gsave X6040 3315 translate X106 0 0 0 240 288 0 LoutGraphic Xgsave X0 0 moveto xsize 0 lineto 0.05 ft setlinewidth stroke Xgrestore X Xgrestore X X240 fnt35 X6040 3161 moveto(y)s X240 fnt34 X1417 2618 moveto(The)s 1849 x(left)s 2226 x(parameter)s X3240 x(of)s X220 fnt13 X3499 2614 moveto(root)s X240 fnt34 X3937 2618 moveto(may)s 4409 x(be)s 4695 x(any)s X5101 x(object.)s X220 fnt13 X1897 2009 moveto(2 over 3)s X240 fnt33 X5866 2114 moveto(2)s gsave X5866 2066 translate X120 0 0 0 240 288 0 LoutGraphic Xgsave X0 0 moveto xsize 0 lineto 0.05 ft setlinewidth stroke Xgrestore X Xgrestore X X240 fnt33 X5866 1854 moveto(3)s Xpgsave restore Xshowpage X X%%Page: ? 10 X%%BeginPageSetup X/pgsave save def X0.0500 dup scale 10 setlinewidth X%%EndPageSetup X X240 fnt34 X5754 15261 moveto(-)s 5893 x(9)s 6073 x(-)s X220 fnt13 X1897 14630 moveto(2 frac 3)s X167 fnt33 X5866 14717 moveto(2)s X5949 14646 moveto(\244)s 5976 14574 moveto(3)s X240 fnt34 X1417 14121 moveto(The)s 1849 x(following)s 2839 x(short)s X3377 x(names)s 4048 x(de\207ne)s 4693 x(relations)s 5575 x(\(that)s 6072 x(is,)s X6351 x(they)s 6823 x(have)s 7335 x(a)s 7501 x(thick)s 8039 x(space)s X8630 x(on)s 8930 x(each)s 9428 x(side\):)s X220 fnt13 X3017 13659 moveto(<)s X240 fnt33 X3505 13656 moveto(<)s X X220 fnt13 X5885 13659 moveto(>)s X240 fnt33 X6373 13656 moveto(>)s X220 fnt13 X8753 13659 moveto(=)s X240 fnt33 X9241 13656 moveto(=)s X220 fnt13 X2889 13371 moveto(<=)s X X240 fnt33 X3505 13368 moveto(\243)s X220 fnt13 X5586 13371 moveto(prec)s gsave X6430 13428 translate X-90.0000 rotate X X107 fnt33 X-41 -26 moveto(\366)s 0 x(\346)s Xgrestore X X220 fnt13 X8210 13371 moveto(preceq)s Xgsave X9298 13428 translate X-90.0000 rotate X X107 fnt33 X-41 -26 moveto(\366)s 0 x(\346)s Xgrestore X X240 fnt33 X9241 13294 moveto(-)s X220 fnt13 X2889 13083 moveto(<<)s X240 fnt33 X3505 13080 moveto(<)s X3636 x(<)s X220 fnt13 X5366 13083 moveto(subset)s X240 fnt33 X6373 13080 moveto(\314)s X220 fnt13 X7990 13083 moveto(subseteq)s X240 fnt33 X9241 13080 moveto(\315)s X X220 fnt13 X2022 12795 moveto(sqsubseteq)s gsave X3505 12792 translate X131 120 0 60 240 288 0 LoutGraphic Xgsave Xxsize 0 moveto X0 0 lineto X0 ysize lineto Xxsize ysize lineto X0.04 ft setlinewidth stroke Xgrestore X Xgrestore X X240 fnt33 X3505 12699 moveto(-)s X220 fnt13 X5843 12795 moveto(in)s X240 fnt33 X6373 12792 moveto(\316)s X220 fnt13 X8295 12795 moveto(vdash)s Xgsave X9301 12852 translate X-180.0000 rotate Xgsave X0 -78 translate X180.0000 rotate Xgsave X0 0 translate X-90.0000 rotate X X240 fnt33 X0 -60 moveto(^)s Xgrestore X Xgrestore X Xgrestore Xgsave X9301 12931 translate X-90.0000 rotate X X240 fnt33 X0 -60 moveto(^)s Xgrestore X X220 fnt13 X2634 12507 moveto(smile)s gsave X3606 12564 translate X-180.0000 rotate Xgsave X0 -39 translate X180.0000 rotate Xgsave X0 -79 translate X90.0000 rotate X X240 fnt33 X0 -60 moveto(\()s Xgrestore X Xgrestore X Xgrestore Xgsave X3606 12525 translate X90.0000 rotate X X240 fnt33 X0 -60 moveto(\()s X Xgrestore X X220 fnt13 X5477 12507 moveto(frown)s gsave X6474 12564 translate X-180.0000 rotate Xgsave X0 -39 translate X180.0000 rotate Xgsave X0 -79 translate X90.0000 rotate X X240 fnt33 X0 -60 moveto(\))s Xgrestore X Xgrestore X Xgrestore Xgsave X6474 12525 translate X90.0000 rotate X X240 fnt33 X0 -60 moveto(\))s Xgrestore X X220 fnt13 X8625 12507 moveto(>=)s X240 fnt33 X9241 12504 moveto(\263)s X X220 fnt13 X2693 12219 moveto(succ)s gsave X3577 12276 translate X90.0000 rotate X X107 fnt33 X-41 -26 moveto(\366)s 0 x(\346)s Xgrestore X X220 fnt13 X5317 12219 moveto(succeq)s gsave X6445 12276 translate X90.0000 rotate X X107 fnt33 X-41 -26 moveto(\366)s X0 x(\346)s Xgrestore X X240 fnt33 X6373 12142 moveto(-)s X220 fnt13 X8625 12219 moveto(>>)s X240 fnt33 X9241 12216 moveto(>)s 9372 x(>)s X X220 fnt13 X2498 11931 moveto(supset)s X240 fnt33 X3505 11928 moveto(\311)s X220 fnt13 X5122 11931 moveto(supseteq)s X240 fnt33 X6373 11928 moveto(\312)s X220 fnt13 X7758 11931 moveto(sqsupseteq)s Xgsave X9241 11928 translate X131 120 0 60 240 288 0 LoutGraphic Xgsave X0 0 moveto xsize 0 lineto Xxsize ysize lineto X0 ysize lineto X0.04 ft setlinewidth stroke Xgrestore X Xgrestore X X240 fnt33 X9241 11835 moveto(-)s X220 fnt13 X2975 11643 moveto(ni)s gsave X3676 11700 translate X180.0000 rotate X X240 fnt33 X0 -60 moveto(\316)s Xgrestore X X220 fnt13 X5427 11643 moveto(dashv)s gsave X6474 11700 translate X-180.0000 rotate Xgsave X0 -78 translate X180.0000 rotate Xgsave X0 -157 translate X90.0000 rotate X X240 fnt33 X0 -60 moveto(^)s X Xgrestore X Xgrestore X Xgrestore Xgsave X6474 11622 translate X90.0000 rotate X X240 fnt33 X0 -60 moveto(^)s Xgrestore X X220 fnt13 X8528 11643 moveto(mid)s X240 fnt34 X9241 11647 moveto(|)s X220 fnt13 X2440 11355 moveto(parallel)s X240 fnt34 X3505 11359 moveto(||)s X X220 fnt13 X5757 11355 moveto(==)s X240 fnt33 X6373 11352 moveto(\272)s X220 fnt13 X8753 11355 moveto(~)s X240 fnt33 X9241 11352 moveto(~)s X220 fnt13 X2944 11067 moveto(-~)s X X240 fnt33 X3505 11091 moveto(~)s 3505 11039 moveto(-)s X220 fnt13 X5366 11067 moveto(asymp)s gsave X6443 11125 translate X90.0000 rotate X X167 fnt33 X0 -41 moveto(\()s Xgrestore Xgsave X6443 11068 translate X90.0000 rotate X X167 fnt33 X0 -41 moveto(\))s X Xgrestore X X220 fnt13 X8625 11067 moveto(~~)s X240 fnt33 X9241 11064 moveto(\273)s X220 fnt13 X2889 10779 moveto(=~)s X240 fnt33 X3505 10776 moveto(@)s X220 fnt13 X5380 10779 moveto(bowtie)s Xgsave X6430 10836 translate X-90.0000 rotate Xgsave X-57 -57 translate X114 114 57 57 192 0 48 LoutGraphic Xgsave X0 0 moveto xsize 0 lineto Xxsize 2 div ysize lineto closepath X0.04 ft setlinewidth stroke Xgrestore X Xgrestore X Xgrestore Xgsave X6544 10836 translate X90.0000 rotate Xgsave X-57 -57 translate X114 114 57 57 192 0 48 LoutGraphic Xgsave X0 0 moveto xsize 0 lineto Xxsize 2 div ysize lineto closepath X0.04 ft setlinewidth stroke Xgrestore X Xgrestore X Xgrestore X X220 fnt13 X8259 10779 moveto(propto)s X240 fnt33 X9241 10776 moveto(\265)s X220 fnt13 X2438 10491 moveto(models)s gsave X3505 10548 translate X-180.0000 rotate Xgsave X0 -81 translate X180.0000 rotate X X240 fnt34 X0 -162 moveto(|)s Xgrestore X Xgrestore X X240 fnt34 X3505 10467 moveto(|)s Xgsave X3517 10548 translate X-180.0000 rotate Xgsave X0 -29 translate X180.0000 rotate X X240 fnt33 X0 -93 moveto(=)s Xgrestore X Xgrestore X X240 fnt33 X3517 10485 moveto(=)s X220 fnt13 X5464 10491 moveto(doteq)s X240 fnt33 X6408 10566 moveto(\327)s 6373 10488 moveto(=)s X X220 fnt13 X8442 10491 moveto(perp)s X240 fnt33 X9241 10488 moveto(^)s X220 fnt13 X2486 10203 moveto(notsub)s X240 fnt33 X3505 10200 moveto(\313)s X220 fnt13 X5538 10203 moveto(notin)s X X240 fnt33 X6373 10200 moveto(\317)s X220 fnt13 X8692 10203 moveto(!=)s X240 fnt33 X9241 10200 moveto(\271)s X220 fnt13 X2816 9915 moveto(<->)s X240 fnt33 X3505 9912 moveto(\253)s X X220 fnt13 X5739 9915 moveto(<--)s X240 fnt33 X6373 9912 moveto(\254)s X220 fnt13 X8607 9915 moveto(-->)s X240 fnt33 X9241 9912 moveto(\256)s X220 fnt13 X2901 9627 moveto(up)s X X240 fnt33 X3505 9624 moveto(\255)s X220 fnt13 X5489 9627 moveto(down)s X240 fnt33 X6373 9624 moveto(\257)s X220 fnt13 X8497 9627 moveto(<=>)s X240 fnt33 X9241 9624 moveto(\333)s X X220 fnt13 X2761 9339 moveto(<==)s X240 fnt33 X3505 9336 moveto(\334)s X220 fnt13 X5629 9339 moveto(==>)s X240 fnt33 X6373 9336 moveto(\336)s X220 fnt13 X8345 9339 moveto(dblup)s X X240 fnt33 X9241 9336 moveto(\335)s X220 fnt13 X2329 9051 moveto(dbldown)s X240 fnt33 X3505 9048 moveto(\337)s X220 fnt13 X5952 9051 moveto(:)s X240 fnt33 X6373 9048 moveto(:)s X X220 fnt13 X8759 9051 moveto(::)s X240 fnt33 X9241 9048 moveto(:)s 9350 x(:)s X220 fnt13 X2956 8763 moveto(:=)s X240 fnt33 X3505 8760 moveto(:)s X3571 8748 moveto(=)s X240 fnt34 X1417 8306 moveto(These)s 2053 x(can)s 2450 x(be)s 2741 x(negated)s X3550 x(by)s 3855 x(preceding)s 4863 x(them)s 5406 x(with)s X220 fnt13 X5896 8302 moveto(not)s X X240 fnt34 X6201 8306 moveto(,)s 6326 x(as)s 6590 x(in)s X220 fnt13 X6841 8302 moveto(not ==)s X240 fnt34 X7463 8306 moveto(,)s X7588 x(for)s 7931 x(example,)s 8866 x(which)s 9516 x(yields)s X240 fnt33 X10224 8299 moveto(\272)s X10256 x(/)s X240 fnt34 X10427 8306 moveto(.)s 1417 8018 moveto(The)s 1849 x(following)s 2839 x(short)s X3377 x(names)s 4048 x(de\207ne)s 4693 x(binary)s 5364 x(operators)s 6313 x(\(medium)s X7236 x(space)s 7827 x(on)s 8127 x(each)s 8625 x(side\):)s X220 fnt13 X3017 7527 moveto(+)s X X240 fnt33 X3490 7524 moveto(+)s X220 fnt13 X5940 7527 moveto(-)s X240 fnt33 X6358 7524 moveto(-)s X220 fnt13 X8680 7527 moveto(+-)s X240 fnt33 X9226 7524 moveto(\261)s X X220 fnt13 X2944 7239 moveto(-+)s gsave X3621 7296 translate X180.0000 rotate X X240 fnt33 X0 -60 moveto(\261)s Xgrestore X X220 fnt13 X5135 7239 moveto(setminus)s X240 fnt35 X6358 7243 moveto(\\)s X220 fnt13 X8466 7239 moveto(cdot)s X X240 fnt33 X9226 7236 moveto(\327)s X220 fnt13 X2621 6951 moveto(times)s X240 fnt33 X3490 6948 moveto(\264)s X220 fnt13 X5928 6951 moveto(*)s X240 fnt33 X6358 6948 moveto(*)s X X220 fnt13 X8540 6951 moveto(circ)s gsave X9226 6936 translate X167 144 0 72 240 288 0 LoutGraphic Xgsave Xxsize ysize 2 div moveto Xxsize 2 div ysize 2 div xsize 2 div 0 360 arc X0.04 ft setlinewidth stroke Xgrestore X Xgrestore X X220 fnt13 X2865 6663 moveto(div)s X240 fnt33 X3490 6660 moveto(\270)s X220 fnt13 X5659 6663 moveto(cap)s X240 fnt33 X6358 6660 moveto(\307)s X X220 fnt13 X8527 6663 moveto(cup)s X240 fnt33 X9226 6660 moveto(\310)s X220 fnt13 X2621 6375 moveto(uplus)s X167 fnt33 X3536 6439 moveto(+)s X240 fnt33 X3490 6372 moveto(\310)s X X220 fnt13 X5427 6375 moveto(sqcap)s gsave X6358 6360 translate X144 144 72 72 240 288 0 LoutGraphic Xgsave X0 0 moveto 0 ysize lineto xsize ysize lineto Xxsize 0 lineto X0.04 ft setlinewidth stroke Xgrestore X Xgrestore X X220 fnt13 X8295 6375 moveto(sqcup)s gsave X9427 6432 translate X180.0000 rotate Xgsave X57 -72 translate X144 144 72 72 240 288 0 LoutGraphic Xgsave X0 0 moveto 0 ysize lineto xsize ysize lineto Xxsize 0 lineto X0.04 ft setlinewidth stroke Xgrestore X Xgrestore X Xgrestore X X220 fnt13 X2135 6087 moveto(triangleleft)s gsave X3547 6144 translate X90.0000 rotate Xgsave X-57 -57 translate X114 114 57 57 192 288 48 LoutGraphic Xgsave X0 0 moveto xsize 0 lineto Xxsize 2 div ysize lineto closepath X0.04 ft setlinewidth stroke Xgrestore X Xgrestore X Xgrestore X X220 fnt13 X4869 6087 moveto(triangleright)s gsave X6415 6144 translate X-90.0000 rotate Xgsave X-57 -57 translate X114 114 57 57 192 288 48 LoutGraphic Xgsave X0 0 moveto xsize 0 lineto Xxsize 2 div ysize lineto closepath X0.04 ft setlinewidth stroke Xgrestore X Xgrestore X Xgrestore X X220 fnt13 X8650 6087 moveto(wr)s Xgsave X9239 6144 translate X-180.0000 rotate Xgsave X0 -65 translate X180.0000 rotate Xgsave X0 -131 translate X90.0000 rotate X X240 fnt33 X0 -60 moveto(~)s Xgrestore X Xgrestore X Xgrestore Xgsave X9239 6079 translate X90.0000 rotate X X240 fnt33 X0 -60 moveto(~)s Xgrestore X X220 fnt13 X2512 5799 moveto(bigcirc)s gsave X3490 5770 translate X201 172 0 86 288 288 72 LoutGraphic Xgsave Xxsize ysize 2 div moveto Xxsize 2 div ysize 2 div xsize 2 div 0 360 arc X0.04 ft setlinewidth stroke Xgrestore X Xgrestore X X220 fnt13 X4759 5799 moveto(bigtriangleup)s gsave X6358 5770 translate X172 172 86 86 288 288 72 LoutGraphic Xgsave X0 0 moveto xsize 0 lineto Xxsize 2 div ysize lineto closepath X0.04 ft setlinewidth stroke Xgrestore X Xgrestore X X220 fnt13 X7347 5799 moveto(bigtriangledown)s Xgsave X9312 5856 translate X180.0000 rotate Xgsave X-86 -86 translate X172 172 86 86 288 288 72 LoutGraphic Xgsave X0 0 moveto xsize 0 lineto Xxsize 2 div ysize lineto closepath X0.04 ft setlinewidth stroke Xgrestore X Xgrestore X Xgrestore X X220 fnt13 X2791 5511 moveto(vee)s X240 fnt33 X3490 5508 moveto(\332)s X220 fnt13 X5367 5511 moveto(wedge)s X240 fnt33 X6358 5508 moveto(\331)s X220 fnt13 X8357 5511 moveto(oplus)s X X240 fnt33 X9226 5508 moveto(\305)s X220 fnt13 X2438 5223 moveto(ominus)s gsave X3490 5208 translate X167 144 0 72 240 288 0 LoutGraphic Xgsave Xxsize ysize 2 div moveto Xxsize 2 div ysize 2 div xsize 2 div 0 360 arc X0.04 ft setlinewidth stroke Xgrestore X Xgrestore X X240 fnt33 X3508 5220 moveto(-)s X220 fnt13 X5367 5223 moveto(otimes)s X240 fnt33 X6358 5220 moveto(\304)s X X220 fnt13 X8247 5223 moveto(oslash)s gsave X9274 5280 translate X-180.0000 rotate Xgsave X0 -94 translate X180.0000 rotate Xgsave X0 -186 translate X60.0000 rotate Xgsave X0 -72 translate X167 144 0 72 240 288 0 LoutGraphic Xgsave Xxsize ysize 2 div moveto Xxsize 2 div ysize 2 div xsize 2 div 0 360 arc X0.04 ft setlinewidth stroke Xgrestore X Xgrestore X X240 fnt33 X21 -60 moveto(-)s Xgrestore X Xgrestore X Xgrestore Xgsave X9274 5188 translate X60.0000 rotate Xgsave X0 -72 translate X167 144 0 72 240 288 0 LoutGraphic Xgsave Xxsize ysize 2 div moveto Xxsize 2 div ysize 2 div xsize 2 div 0 360 arc X0.04 ft setlinewidth stroke Xgrestore X Xgrestore X X240 fnt33 X21 -60 moveto(-)s Xgrestore X X220 fnt13 X2718 4935 moveto(odot)s gsave X3490 4920 translate X167 144 0 72 240 288 0 LoutGraphic Xgsave Xxsize ysize 2 div moveto Xxsize 2 div ysize 2 div xsize 2 div 0 360 arc X0.04 ft setlinewidth stroke Xgrestore X Xgrestore X X240 fnt33 X3543 4932 moveto(\327)s X X220 fnt13 X5330 4935 moveto(dagger)s X240 fnt34 X6358 4939 moveto(\214)s X220 fnt13 X7906 4935 moveto(daggerdbl)s X240 fnt34 X9226 4939 moveto(\215)s X220 fnt13 X2548 4647 moveto(amalg)s Xgsave X3687 4704 translate X180.0000 rotate Xgsave X0 0 translate X-180.0000 rotate Xgsave X0 -102 translate X180.0000 rotate X X240 fnt33 X0 -180 moveto(\325)s Xgrestore X Xgrestore X X240 fnt33 X0 -78 moveto(\325)s Xgrestore X X240 fnt34 X1417 4148 moveto(The)s 1849 x(following)s 2839 x(names)s X3510 x(de\207ne)s 4155 x(punctuation)s 5345 x(symbols)s 6203 x(\(thin)s 6714 x(space)s X7305 x(on)s 7605 x(the)s 7957 x(right-hand)s 9013 x(side\):)s X220 fnt13 X3084 3649 moveto(;)s X X240 fnt33 X3433 3646 moveto(;)s X220 fnt13 X5952 3649 moveto(,)s X240 fnt33 X6301 3646 moveto(,)s X220 fnt13 X8601 3649 moveto(col)s X240 fnt33 X9169 3646 moveto(:)s X X240 fnt34 X1417 3160 moveto(The)s 1871 x(following)s 2883 x(symbols)s 3763 x(are)s 4136 x(used)s X4657 x(in)s 4925 x(ways)s 5499 x(typi\207ed)s 6312 x(by)s 6634 x(the)s X7008 x(large)s 7567 x(sum)s 8048 x(and)s 8476 x(product)s 9289 x(symbols.)s X10289 x(In)s 1417 2872 moveto(display)s 2168 x(equations)s 3145 x(they)s 3617 x(should)s X4316 x(be)s 4602 x(preceded)s 5525 x(by)s 5825 x(the)s X220 fnt13 X6177 2868 moveto(big)s X X240 fnt34 X6529 2872 moveto(symbol:)s X220 fnt13 X2730 2354 moveto(sum)s X240 fnt33 X3433 2351 moveto(\345)s X220 fnt13 X5574 2354 moveto(prod)s X240 fnt33 X6301 2351 moveto(\325)s X X220 fnt13 X8210 2354 moveto(coprod)s gsave X9366 2411 translate X180.0000 rotate Xgsave X0 0 translate X-180.0000 rotate Xgsave X0 -102 translate X180.0000 rotate X X240 fnt33 X0 -180 moveto(\325)s Xgrestore END_OF_FILE if test 45806 -ne `wc -c <'doc/tr.eq/outfile.ps.B'`; then echo shar: \"'doc/tr.eq/outfile.ps.B'\" unpacked with wrong size! elif test -f 'doc/tr.eq/outfile.ps.A' && test -f 'doc/tr.eq/outfile.ps.C'; then echo shar: Combining \"'doc/tr.eq/outfile.ps'\" \(148033 characters\) cat 'doc/tr.eq/outfile.ps.A' 'doc/tr.eq/outfile.ps.B' 'doc/tr.eq/outfile.ps.C' > 'doc/tr.eq/outfile.ps' if test 148033 -ne `wc -c <'doc/tr.eq/outfile.ps'`; then echo shar: \"'doc/tr.eq/outfile.ps'\" combined with wrong size! else rm doc/tr.eq/outfile.ps.A doc/tr.eq/outfile.ps.B doc/tr.eq/outfile.ps.C fi fi # end of 'doc/tr.eq/outfile.ps.B' fi if test -f 'doc/tr.impl/oldrefs.li' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'doc/tr.impl/oldrefs.li'\" else echo shar: Extracting \"'doc/tr.impl/oldrefs.li'\" \(439 characters\) sed "s/^X//" >'doc/tr.impl/oldrefs.li' <<'END_OF_FILE' X#symbol 1 @Reference X1&adobe85 0 183 . X1&brooks91 0 5021 . X1&furuta82 0 5273 . X1&kernighan75 0 1178 . X1&kernighan82 0 1717 . X1&kingston91 0 1997 . X1&kingston91basser 0 2291 . X1&kingston91begin 0 2789 . X1&kingston91design 0 4404 . X1&kingston91eq 0 3085 . X1&kingston91fig 0 3478 . X1&kingston91over 0 3787 . X1&kingston91tab 0 4093 . X1&knuth84 0 0 . X1&lesk76 0 1472 . X1&ossanna76 0 930 . X1&reid80 0 386 . X1&strunk79 0 718 . X1&wirth71 0 4781 . END_OF_FILE if test 439 -ne `wc -c <'doc/tr.impl/oldrefs.li'`; then echo shar: \"'doc/tr.impl/oldrefs.li'\" unpacked with wrong size! fi # end of 'doc/tr.impl/oldrefs.li' fi if test -f 'z29.c' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'z29.c'\" else echo shar: Extracting \"'z29.c'\" \(24370 characters\) sed "s/^X//" >'z29.c' <<'END_OF_FILE' X/*@z29.c:Symbol Table:Declarations, hash()@***********************************/ X/* */ X/* LOUT: A HIGH-LEVEL LANGUAGE FOR DOCUMENT FORMATTING (VERSION 2.05) */ X/* COPYRIGHT (C) 1993 Jeffrey H. Kingston */ X/* */ X/* Jeffrey H. Kingston (jeff@cs.su.oz.au) */ X/* Basser Department of Computer Science */ X/* The University of Sydney 2006 */ X/* AUSTRALIA */ X/* */ X/* This program is free software; you can redistribute it and/or modify */ X/* it under the terms of the GNU General Public License as published by */ X/* the Free Software Foundation; either version 1, or (at your option) */ X/* any later version. */ X/* */ X/* This program is distributed in the hope that it will be useful, */ X/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ X/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ X/* GNU General Public License for more details. */ X/* */ X/* You should have received a copy of the GNU General Public License */ X/* along with this program; if not, write to the Free Software */ X/* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ X/* */ X/* FILE: z29.c */ X/* MODULE: Symbol Table */ X/* EXTERNS: InitSym(), PushScope(), PopScope(), SuppressVisible(), */ X/* UnSuppressVisible(), SuppressScope(), UnSuppressScope(), */ X/* SwitchScope(), UnSwitchScope(), BodyParAllowed(), */ X/* BodyParNotAllowed(), InsertSym(), SearchSym(), */ X/* SymName(), FullSymName(), ChildSym(), CheckSymSpread(), */ X/* DeleteEverySym() */ X/* */ X/*****************************************************************************/ X#include "externs" X X#define MAX_STACK 40 /* size of scope stack */ X#define MAX_TAB 1024 /* size of hash table */ X#define TAB_MASK 0x3FF /* i & TAB_MASK == i % MAX_TAB */ X X#define length(x) word_font(x) X Xstatic OBJECT scope[MAX_STACK]; /* the scope stack */ Xstatic BOOLEAN npars_only[MAX_STACK]; /* look for NPAR exc */ Xstatic BOOLEAN vis_only[MAX_STACK]; /* look for visibles */ Xstatic BOOLEAN body_ok[MAX_STACK]; /* look for body par */ Xstatic BOOLEAN suppress_scope; /* suppress scoping */ Xstatic BOOLEAN suppress_visible; /* suppress visible */ Xstatic int scope_top; /* scope stack top */ Xstatic struct { OBJECT f1, f2; } symtab[MAX_TAB]; /* the hash table */ X#if DEBUG_ON Xstatic int sym_spread[MAX_TAB] = { 0 }; /* hash table spread */ Xstatic int sym_count = 0; /* symbol count */ X#endif X X X/*****************************************************************************/ X/* */ X/* #define hash(str, len, val) */ X/* */ X/* Set val to the hash value of string str, which has length len. */ X/* The hash function is just the character sum mod MAX_TAB. */ X/* This definition assumes that working variables rlen and x exist. */ X/* */ X/*****************************************************************************/ X X#define hash(str, len, val) \ X{ rlen = len; \ X x = str; \ X val = *x++; \ X while( --rlen ) val += *x++; \ X val &= TAB_MASK; \ X} X X X/*@::InitSym(), PushScope(), PopScope(), SuppressVisible(), etc.@*************/ X/* */ X/* InitSym() */ X/* */ X/* Initialize the symbol table to empty. */ X/* */ X/*****************************************************************************/ X XInitSym() X{ int i; X scope_top = 0; X suppress_scope = FALSE; X suppress_visible = FALSE; X for( i = 0; i < MAX_TAB; i++ ) X symtab[i].f1 = symtab[i].f2 = (OBJECT) &symtab[i]; X} /* end InitSym */ X X X/*****************************************************************************/ X/* */ X/* PushScope(x, npars, vis) */ X/* PopScope() */ X/* */ X/* Add or remove an OBJECT x (which must be in the symbol table) to or from */ X/* the scope stack. If npars is TRUE, only the named parameters of x are */ X/* added to scope. If vis is TRUE, only visible locals and parameters are */ X/* added. */ X/* */ X/*****************************************************************************/ X XPushScope(x, npars, vis) XOBJECT x; BOOLEAN npars, vis; X{ debug2(DST, DD, "[ PushScope( %s, %s )", SymName(x), bool(npars)); X assert( suppress_scope == FALSE, "PushScope: suppress_scope!" ); X if( scope_top >= MAX_STACK ) X { int i; X for( i = 0; i < scope_top; i++ ) X debug2(DST, D, " scope[%2d] = %s", i, SymName(scope[i])); X Error(INTERN, &fpos(x), "scope depth limit exceeded"); X } X scope[scope_top] = x; X npars_only[scope_top] = npars; X vis_only[scope_top] = vis; X body_ok[scope_top] = FALSE; X scope_top++; X} /* end PushScope */ X XPopScope() X{ debug0(DST, DD, "] PopScope()"); X assert( scope_top > 0, "tried to pop empty scope stack"); X assert( suppress_scope == FALSE, "PopScope: suppress_scope!" ); X scope_top--; X} /* end PopScope */ X X X/*****************************************************************************/ X/* */ X/* SuppressVisible() */ X/* UnSuppressVisible() */ X/* */ X/* Suppress all scopes (so that all calls to SearchSym fail); and undo it. */ X/* */ X/*****************************************************************************/ X XSuppressVisible() X{ debug0(DST, DD, "[ SuppressVisible()"); X suppress_visible = TRUE; X} /* end SuppressVisible */ X XUnSuppressVisible() X{ debug0(DST, DD, "] UnSuppressVisible()"); X suppress_visible = FALSE; X} /* end UnSuppressVisible */ X X X/*@::SuppressScope(), UnSuppressScope(), SwitchScope(), UnswitchScope()@******/ X/* */ X/* SuppressScope() */ X/* UnSuppressScope() */ X/* */ X/* Suppress all scopes (so that all calls to SearchSym fail); and undo it. */ X/* */ X/*****************************************************************************/ X X XSuppressScope() X{ debug0(DST, DD, "[ SuppressScope()"); X suppress_scope = TRUE; X} /* end SuppressScope */ X XUnSuppressScope() X{ debug0(DST, DD, "] UnSuppressScope()"); X suppress_scope = FALSE; X} /* end UnSuppressScope */ X X X/*****************************************************************************/ X/* */ X/* SwitchScope(sym) */ X/* UnSwitchScope(sym) */ X/* */ X/* Switch to the scope of sym (if nil, StartSym); and switch back again. */ X/* */ X/*****************************************************************************/ X XSwitchScope(sym) XOBJECT sym; X{ int i; X OBJECT new_scopes[MAX_STACK]; X if( sym == nil ) PushScope(StartSym, FALSE, FALSE); X else X { i = 0; X while( sym != StartSym ) X { new_scopes[i++] = enclosing(sym); X sym = enclosing(sym); X } X while( i > 0 ) PushScope(new_scopes[--i], FALSE, FALSE); X } X} X XUnSwitchScope(sym) XOBJECT sym; X{ if( sym == nil ) PopScope(); X else X { while( sym != StartSym ) X { PopScope(); X sym = enclosing(sym); X } X } X} X X X/*****************************************************************************/ X/* */ X/* BodyParAllowed() */ X/* BodyParNotAllowed() */ X/* */ X/* Allow or disallow invokations of the body parameter of the current tos. */ X/* */ X/*****************************************************************************/ X XBodyParAllowed() X{ debug0(DST, DD, "BodyParAllowed()"); X body_ok[scope_top-1] = TRUE; X} /* end BodyParAllowed */ X XBodyParNotAllowed() X{ debug0(DST, DD, "BodyParNotAllowed()"); X body_ok[scope_top-1] = FALSE; X} /* end BodyParNotAllowed */ X X X/*@::InsertSym()@*************************************************************/ X/* */ X/* OBJECT InsertSym(str, xtype, xfpos, xprecedence, indefinite, xrecursive, */ X/* xpredefined, xenclosing, xbody) */ X/* */ X/* Insert a new symbol into the table. Its string value is str. */ X/* Initialise the symbol as the parameters indicate. */ X/* Return a pointer to the new symbol. */ X/* If str is not a valid symbol name, InsertSym prints an error */ X/* message and does not insert the symbol. */ X/* */ X/*****************************************************************************/ X XOBJECT InsertSym(str, xtype, xfpos, xprecedence, xindefinite, xrecursive, X xpredefined, xenclosing, xbody) XFULL_CHAR *str; unsigned char xtype; XFILE_POS *xfpos; unsigned char xprecedence; XBOOLEAN xindefinite, xrecursive; unsigned xpredefined; XOBJECT xenclosing, xbody; X{ register int sum, rlen; X register unsigned char *x; X OBJECT p, q, s, link, entry, plink; int len; X X debug3(DST, DD, "InsertSym( %s, %s, in %s )", X Image(xtype), str, SymName(xenclosing)); X if( !LexLegalName(str) ) Error(WARN, xfpos, "invalid symbol name %s", str); X X s = New(xtype); X FposCopy(fpos(s), *xfpos); X has_body(s) = FALSE; X right_assoc(s) = TRUE; X precedence(s) = xprecedence; X indefinite(s) = xindefinite; X recursive(s) = xrecursive; X predefined(s) = xpredefined; X enclosing(s) = xenclosing; X sym_body(s) = xbody; X base_uses(s) = nil; X uses(s) = nil; X marker(s) = nil; X cross_sym(s) = nil; X is_extern_target(s) = FALSE; X uses_extern_target(s) = FALSE; X visible(s) = FALSE; X uses_galley(s) = FALSE; X X uses_count(s) = 0; X dirty(s) = FALSE; X if( enclosing(s) != nil && type(enclosing(s)) == NPAR ) X dirty(enclosing(s)) = TRUE; X X has_par(s) = FALSE; X has_lpar(s) = FALSE; X has_rpar(s) = FALSE; X if( is_par(type(s)) ) has_par(enclosing(s)) = TRUE; X if( type(s) == LPAR ) has_lpar(enclosing(s)) = TRUE; X if( type(s) == RPAR ) has_rpar(enclosing(s)) = TRUE; X X has_target(s) = FALSE; X force_target(s) = FALSE; X if( !StringEqual(str, KW_TARGET) ) is_target(s) = FALSE; X else X { is_target(s) = has_target(enclosing(s)) = TRUE; X if( has_key(enclosing(s)) && xbody != nil && type(xbody) == CROSS ) X { if( LastDown(xbody) != Down(xbody) ) X { OBJECT sym; X Child(sym, Down(xbody)); X if( type(sym) == CLOSURE ) X { is_extern_target(actual(sym)) = TRUE; X uses_extern_target(actual(sym)) = TRUE; X } X } X } X } X X has_tag(s) = FALSE; X if( !StringEqual(str, KW_TAG) ) is_tag(s) = FALSE; X else is_tag(s) = has_tag(enclosing(s)) = dirty(enclosing(s)) = TRUE; X X has_key(s) = FALSE; X if( !StringEqual(str, KW_KEY) ) is_key(s) = FALSE; X else is_key(s) = has_key(enclosing(s)) = TRUE; X X if( type(s) == RPAR && has_body(enclosing(s)) && (is_tag(s) || is_key(s)) ) X Error(WARN, &fpos(s), "a body parameter may not be named %s", str); X X if( type(s) == RPAR && has_target(enclosing(s)) && (is_tag(s) || is_key(s)) ) X Error(WARN,&fpos(s), "the right parameter of a galley may not be %s", str); X X len = StringLength(str); X hash(str, len, sum); X X ifdebug(DST, D, sym_spread[sum]++; sym_count++); X entry = (OBJECT) &symtab[sum]; X for( plink = Down(entry); plink != entry; plink = NextDown(plink) ) X { Child(p, plink); X if( length(p) == len && StringEqual(str, string(p)) ) X { for( link = Down(p); link != p; link = NextDown(link) ) X { Child(q, link); X if( enclosing(s) == enclosing(q) ) X { Error(WARN, &fpos(s), "symbol %s previously defined at%s", X str, EchoFilePos(&fpos(q)) ); X break; X } X } X goto wrapup; X } X } X X /* need a new OBJECT as well as s */ X p = NewWord(WORD, len, xfpos); X length(p) = len; X StringCopy(string(p), str); X Link(entry, p); X X wrapup: X Link(p, s); X if( enclosing(s) != nil ) Link(enclosing(s), s); X debug2(DST, DD, "InsertSym Link(%s, %s) and returning.", X SymName(enclosing(s)), SymName(s)); X return s; X} /* end InsertSym */ X X X/*@::SearchSym(), SymName()@**************************************************/ X/* */ X/* OBJECT SearchSym(str, len) */ X/* */ X/* Search the symbol table for str, with length len, and return an */ X/* OBJECT referencing the entry if found. Otherwise return nil. */ X/* */ X/*****************************************************************************/ X XOBJECT SearchSym(str, len) XFULL_CHAR *str; int len; X{ register int rlen, sum; X register FULL_CHAR *x, *y; X OBJECT p, q, link, plink, entry; X int s; X X debug2(DST, DDD, "SearchSym( %c..., %d )", str[0], len); X X hash(str, len, sum); X rlen = len; X entry = (OBJECT) &symtab[sum]; X for( plink = Down(entry); plink != entry; plink = NextDown(plink) ) X { Child(p, plink); X if( rlen == length(p) ) X { x = str; y = string(p); X do; while( *x++ == *y++ && --rlen ); X if( rlen == 0 ) X { s = scope_top; X do X { s--; X for( link = Down(p); link != p; link = NextDown(link) ) X { Child(q, link); X if( enclosing(q) == scope[s] X && (!npars_only[s] || type(q) == NPAR) X && (!vis_only[s] || visible(q) || suppress_visible ) X && (body_ok[s] || type(q)!=RPAR || !has_body(enclosing(q)) ) X && !suppress_scope ) X { debug1(DST, DDD, "SearchSym returning %s", Image(type(q))); X return q; X } X } X } while( scope[s] != StartSym ); X } X } X rlen = len; X } X debug0(DST, DDD, "SearchSym returning <nil>"); X return nil; X} /* end SearchSym */ X X X/*****************************************************************************/ X/* */ X/* FULL_CHAR *SymName(s) */ X/* */ X/* Return the string value of the name of symbol s. */ X/* */ X/*****************************************************************************/ X XFULL_CHAR *SymName(s) XOBJECT s; X{ OBJECT p; X if( s == nil ) return AsciiToFull("<nil>"); X Parent(p, Up(s)); X assert( is_word(type(p)), "SymName: !is_word(type(p))!" ); X return string(p); X} /* end SymName */ X X X/*@::FullSymName(), ChildSym()@***********************************************/ X/* */ X/* FULL_CHAR *FullSymName(x, str) */ X/* */ X/* Return the path name of symbol x. with str separating each entry. */ X/* */ X/*****************************************************************************/ X XFULL_CHAR *FullSymName(x, str) XOBJECT x; FULL_CHAR *str; X{ OBJECT stack[20]; int i; X static FULL_CHAR buff[MAX_LINE], *sname; X if( x == nil ) return AsciiToFull("<nil>"); X assert( enclosing(x) != nil, "FullSymName: enclosing(x) == nil!" ); X for( i = 0; enclosing(x) != nil && i < 20; i++ ) X { stack[i] = x; X x = enclosing(x); X } X StringCopy(buff, STR_EMPTY); X for( i--; i > 0; i-- ) X { sname = SymName(stack[i]); X if( StringLength(sname)+StringLength(str)+StringLength(buff) >= MAX_LINE ) X Error(FATAL, &fpos(x), "full name of symbol is too long"); X StringCat(buff, sname); X StringCat(buff, str); X } X sname = SymName(stack[0]); X if( StringLength(sname) + StringLength(buff) >= MAX_LINE ) X Error(FATAL, &fpos(x), "full name of symbol is too long"); X StringCat(buff, sname); X return buff; X} /* end FullSymName */ X X X/*****************************************************************************/ X/* */ X/* OBJECT ChildSym(s, typ) */ X/* */ X/* Find the child of symbol s of type typ, either LPAR or RPAR. */ X/* */ X/*****************************************************************************/ X XOBJECT ChildSym(s, typ) XOBJECT s; unsigned typ; X{ OBJECT link, y; X for( link = Down(s); link != s; link = NextDown(link) ) X { Child(y, link); X if( type(y) == typ && enclosing(y) == s ) return y; X } X Error(INTERN, &fpos(s), "Symbol %s has missing %s", SymName(s), Image(typ)); X return nil; X} /* end ChildSym */ X X X/*@::CheckSymSpread(), DeleteSymBody()@***************************************/ X/* */ X/* CheckSymSpread() */ X/* */ X/* Check the spread of symbols through the hash table. */ X/* */ X/*****************************************************************************/ X#if DEBUG_ON X XCheckSymSpread() X{ int i, j, sum, usum; OBJECT entry, plink; X debug2(DST, D, "Symbol table spread (table size = %d, symbols = %d):", X MAX_TAB, sym_count); X usum = sum = 0; X for( i = 0; i < MAX_TAB; i++ ) X { fprintf(stderr, "%4d: ", i); X for( j = 1; j <= sym_spread[i]; j++ ) X { fprintf(stderr, "."); X sum += j; X } X entry = (OBJECT) &symtab[i]; X for( plink=Down(entry), j=1; plink != entry; plink=NextDown(plink), j++ ) X { fprintf(stderr, "+"); X usum += j; X } X fprintf(stderr, "\n"); X } X fprintf(stderr, "average length counting duplicate names = %.1f\n", X (float) sum / sym_count); X fprintf(stderr, "average length not counting duplicate names = %.1f\n", X (float) usum / sym_count); X} /* end CheckSymSpread */ X X X/*****************************************************************************/ X/* */ X/* static DeleteSymBody(s) */ X/* */ X/* Delete the body of symbol s. */ X/* */ X/*****************************************************************************/ X Xstatic DeleteSymBody(s) XOBJECT s; X{ debug1(DST, DDD, "DeleteSymBody( %s )", SymName(s)); X switch( type(s) ) X { X case MACRO: while( sym_body(s) != nil ) X sym_body(s) = DeleteAndDispose(sym_body(s), PARENT); X break; X X case LPAR: X case NPAR: X case RPAR: X case LOCAL: if( sym_body(s) != nil ) DisposeObject(sym_body(s)); X break; X X default: Error(INTERN,no_fpos, "unknown symbol type %s",Image(type(s))); X break; X } X debug0(DST, DDD, "DeleteSymBody returning."); X} /* end DeleteSymBody */ X X X/*@::DeleteEverySym()@********************************************************/ X/* */ X/* DeleteEverySym() */ X/* */ X/* Delete every symbol in the symbol table. */ X/* Note that we first delete all bodies, then the symbols themselves. */ X/* This is so that the closures within the bodies have well-defined */ X/* actual() pointers, even while the symbol table is being disposed. */ X/* If this is not done, debug output during the disposal gets confused. */ X/* */ X/*****************************************************************************/ X XDeleteEverySym() X{ int i, j, load, cost; OBJECT p, plink, link, x, entry; X debug0(DST, D, "DeleteEverySym()"); X X /* dispose the bodies of all symbols */ X for( i = 0; i < MAX_TAB; i++ ) X { entry = (OBJECT) &symtab[i]; X for( plink = Down(entry); plink != entry; plink = NextDown(plink) ) X { Child(p, plink); X for( link = Down(p); link != p; link = NextDown(link) ) X { Child(x, link); DeleteSymBody(x); X /* *** will not work now X while( base_uses(x) != nil ) X { tmp = base_uses(x); base_uses(x) = next(tmp); X PutMem(tmp, USES_SIZE); X } X while( uses(x) != nil ) X { tmp = uses(x); uses(x) = next(tmp); X PutMem(tmp, USES_SIZE); X } X *** */ X } X } X } X X /* dispose the symbol name strings, gather statistics, and print them */ X load = cost = 0; X for( i = 0; i < MAX_TAB; i++ ) X { j = 1; entry = (OBJECT) &symtab[i]; X while( Down(entry) != entry ) X { load += 1; cost += j; j += 1; X DisposeChild(Down(entry)); X } X } X if( load > 0 ) debug4(DST, D, "size = %d, items = %d (%d%%), probes = %.1f", X MAX_TAB, load, (100*load)/MAX_TAB, (float) cost/load); X else debug1(DST, D, "table size = %d, no entries in table", MAX_TAB); X debug0(DST, D, "DeleteEverySym returning."); X} /* end DeleteEverySym */ X#endif END_OF_FILE if test 24370 -ne `wc -c <'z29.c'`; then echo shar: \"'z29.c'\" unpacked with wrong size! fi # end of 'z29.c' fi echo shar: End of archive 5 \(of 35\). cp /dev/null ark5isdone MISSING="" for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 ; do if test ! -f ark${I}isdone ; then MISSING="${MISSING} ${I}" fi done if test "${MISSING}" = "" ; then echo You have unpacked all 35 archives. rm -f ark[1-9]isdone ark[1-9][0-9]isdone else echo You still must unpack the following archives: echo " " ${MISSING} fi exit 0 exit 0 # Just in case...