home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1994 March / Source_Code_CD-ROM_Walnut_Creek_March_1994.iso / compsrcs / misc / volume37 / lout / part06 < prev    next >
Encoding:
Text File  |  1993-06-19  |  83.6 KB  |  2,800 lines

  1. Newsgroups: comp.sources.misc
  2. From: jeff@joyce.cs.su.oz.au (Jeff Kingston)
  3. Subject: v37i104:  lout - Lout document formatting system, v2, Part06/30
  4. Message-ID: <1993Jun1.051713.25389@sparky.imd.sterling.com>
  5. X-Md4-Signature: 01941562b58effe0e6aec7b5f3fdb1be
  6. Sender: kent@sparky.imd.sterling.com (Kent Landfield)
  7. Organization: Sterling Software
  8. Date: Tue, 1 Jun 1993 05:17:13 GMT
  9. Approved: kent@sparky.imd.sterling.com
  10.  
  11. Submitted-by: jeff@joyce.cs.su.oz.au (Jeff Kingston)
  12. Posting-number: Volume 37, Issue 104
  13. Archive-name: lout/part06
  14. Environment: UNIX
  15.  
  16. #! /bin/sh
  17. # This is a shell archive.  Remove anything before this line, then feed it
  18. # into a shell via "sh file" or similar.  To overwrite existing files,
  19. # type "sh file -c".
  20. # Contents:  lout/doc/tr.eq/outfile.ps.B lout/doc/tr.over/s2 lout/z22.c
  21. # Wrapped by kent@sparky on Sun May 30 19:43:54 1993
  22. PATH=/bin:/usr/bin:/usr/ucb:/usr/local/bin:/usr/lbin ; export PATH
  23. echo If this archive is complete, you will see the following message:
  24. echo '          "shar: End of archive 6 (of 30)."'
  25. if test -f 'lout/doc/tr.eq/outfile.ps.B' -a "${1}" != "-c" ; then 
  26.   echo shar: Will not clobber existing file \"'lout/doc/tr.eq/outfile.ps.B'\"
  27. else
  28.   echo shar: Extracting \"'lout/doc/tr.eq/outfile.ps.B'\" \(49055 characters\)
  29.   sed "s/^X//" >'lout/doc/tr.eq/outfile.ps.B' <<'END_OF_FILE'
  30. X/Symbol 240 fnt
  31. X3708 12411 moveto(\075)s
  32. X
  33. X/Times-Italic 240 fnt
  34. X3931 12569 moveto(df)s gsave
  35. X3911 12471 translate
  36. X226 0 0 0 240 288 0 loutgr
  37. Xgsave
  38. X0 0 moveto xsize 0 lineto 0.05 ft setlinewidth stroke
  39. Xgrestore
  40. X
  41. Xgrestore
  42. X
  43. X/Times-Italic 240 fnt
  44. X3911 12260 moveto(dy)s 
  45. X/Symbol 240 fnt
  46. X4194 12411 moveto(\327)s 
  47. X/Times-Italic 240 fnt
  48. X4311 12569 moveto(dy)s gsave
  49. X4311 12471 translate
  50. X226 0 0 0 240 288 0 loutgr
  51. Xgsave
  52. X0 0 moveto xsize 0 lineto 0.05 ft setlinewidth stroke
  53. Xgrestore
  54. X
  55. Xgrestore
  56. X
  57. X/Times-Italic 240 fnt
  58. X4311 12260 moveto(dx)s
  59. X3330 11927 moveto(dfg)s gsave
  60. X3330 11829 translate
  61. X306 0 0 0 240 288 0 loutgr
  62. Xgsave
  63. X0 0 moveto xsize 0 lineto 0.05 ft setlinewidth stroke
  64. Xgrestore
  65. X
  66. Xgrestore
  67. X
  68. X/Times-Italic 240 fnt
  69. X3370 11618 moveto(dy)s 
  70. X/Symbol 240 fnt
  71. X3708 11769 moveto(\075)s 
  72. X/Times-Italic 240 fnt
  73. X3911 11776 moveto(f)s 4020 11927 moveto(dg)s
  74. Xgsave
  75. X4020 11829 translate
  76. X240 0 0 0 240 288 0 loutgr
  77. Xgsave
  78. X0 0 moveto xsize 0 lineto 0.05 ft setlinewidth stroke
  79. Xgrestore
  80. X
  81. Xgrestore
  82. X
  83. X/Times-Italic 240 fnt
  84. X4027 11618 moveto(dx)s 
  85. X/Symbol 240 fnt
  86. X4317 11769 moveto(+)s 
  87. X/Times-Italic 240 fnt
  88. X4505 11776 moveto(g)s 4645 11927 moveto(df)s gsave
  89. X4625 11829 translate
  90. X226 0 0 0 240 288 0 loutgr
  91. Xgsave
  92. X0 0 moveto xsize 0 lineto 0.05 ft setlinewidth stroke
  93. Xgrestore
  94. X
  95. Xgrestore
  96. X
  97. X/Times-Italic 240 fnt
  98. X4625 11618 moveto(dx)s
  99. X
  100. X/Times-Roman 240 fnt
  101. X1417 11118 moveto(As)s 1749 x(this)s 2160 x(last)s 2557 x(example)s 3433 x(shows,)s
  102. X4158 x(it)s 4356 x(is)s 
  103. X/Helvetica 220 fnt
  104. X4581 11114 moveto(nextcol)s 
  105. X/Times-Roman 240 fnt
  106. X5342 11118 moveto(and)s 5754 x(the)s
  107. X6112 x(various)s 
  108. X/Helvetica 220 fnt
  109. X6882 11114 moveto(above)s 
  110. X/Times-Roman 240 fnt
  111. X7546 11118 moveto(symbols)s 8410 x(that)s 8834 x(lay)s
  112. X9192 x(out)s 9564 x(the)s 9922 x(array;)s 
  113. X/Helvetica 220 fnt
  114. X1417 10826 moveto(matrix)s 
  115. X/Times-Roman 240 fnt
  116. X2096 10830 moveto(attaches)s
  117. X2947 x(the)s 
  118. X/Helvetica 220 fnt
  119. X3321 10826 moveto(atleft)s 
  120. X/Times-Roman 240 fnt
  121. X3878 10830 moveto(and)s 
  122. X/Helvetica 220 fnt
  123. X4306 10826 moveto(atright)s 
  124. X/Times-Roman 240 fnt
  125. X4997 10830 moveto(options)s
  126. X5784 x(and)s 6212 x(makes)s 6905 x(sure)s 7385 x(the)s 7759 x(result)s
  127. X8371 x(appears)s 9183 x(in)s 9451 x(the)s 9825 x(correct)s 1417 10542 moveto(vertical)s
  128. X2185 x(position)s 3009 x(relative)s 3777 x(to)s 4016 x(the)s 4361 x(rest)s
  129. X4758 x(of)s 5010 x(the)s 5355 x(equation.)s 6352 x(So)s 6658 x(the)s
  130. X7003 x(right)s 7507 x(parameter)s 8514 x(of)s 
  131. X/Helvetica 220 fnt
  132. X8766 10538 moveto(matrix)s 
  133. X/Times-Roman 240 fnt
  134. X9416 10542 moveto(may)s
  135. X9881 x(be)s 10160 x(any)s 1417 10254 moveto(object.)s 1897 9880 moveto(Each)s 2452 x(of)s
  136. X2728 x(the)s 3097 x(Eq)s 3440 x(symbols)s 4315 x(that)s 4750 x(takes)s
  137. X5318 x(parameters)s 6442 x(also)s 6904 x(has)s 7300 x(a)s 
  138. X/Helvetica 220 fnt
  139. X7483 9876 moveto(gap)s
  140. X
  141. X/Times-Roman 240 fnt
  142. X7926 9880 moveto(option,)s 8675 x(which)s 9337 x(controls)s 10184 x(the)s 1417 9592 moveto(amount)s
  143. X2195 x(of)s 2454 x(space)s 3045 x(inserted)s 3861 x(by)s 4161 x(the)s
  144. X4513 x(symbol:)s 
  145. X/Helvetica 220 fnt
  146. X1897 9039 moveto(x over y)s 
  147. X/Times-Italic 240 fnt
  148. X5866 9146 moveto(x)s gsave
  149. X5866 9096 translate
  150. X106 0 0 0 240 288 0 loutgr
  151. Xgsave
  152. X0 0 moveto xsize 0 lineto 0.05 ft setlinewidth stroke
  153. Xgrestore
  154. X
  155. Xgrestore
  156. X
  157. X/Times-Italic 240 fnt
  158. X5866 8942 moveto(y)s 
  159. X/Helvetica 220 fnt
  160. X1897 8379 moveto(x over gap { 3p } y)s
  161. X
  162. X/Times-Italic 240 fnt
  163. X5866 8498 moveto(x)s gsave
  164. X5866 8436 translate
  165. X106 0 0 0 240 288 0 loutgr
  166. Xgsave
  167. X0 0 moveto xsize 0 lineto 0.05 ft setlinewidth stroke
  168. Xgrestore
  169. X
  170. Xgrestore
  171. X
  172. X/Times-Italic 240 fnt
  173. X5866 8270 moveto(y)s 
  174. X/Times-Roman 240 fnt
  175. X1417 7770 moveto(Eq)s 1743 x(usually)s 2494 x(gets)s
  176. X2939 x(the)s 3291 x(spacing)s 4082 x(right)s 4593 x(without)s 5384 x(help.)s
  177. X
  178. X/Times-Bold 240 fnt
  179. X1417 6977 moveto(3.)s 1717 x(Spacing)s 
  180. X/Times-Roman 240 fnt
  181. X1897 6605 moveto(There)s 2514 x(is)s 2733 x(a)s
  182. X2899 x(basic)s 3450 x(rule)s 3881 x(governing)s 4912 x(the)s 5264 x(use)s
  183. X5643 x(of)s 5902 x(white)s 6493 x(space)s 7084 x(characters)s 8111 x(\(space,)s
  184. X8841 x(tab,)s 9253 x(and)s 9659 x(newline\))s 1417 6317 moveto(in)s 1663 x(the)s
  185. X2015 x(input)s 2567 x(to)s 2813 x(Lout:)s 3451 x(white)s 4042 x(space)s
  186. X4633 x(between)s 5490 x(two)s 5909 x(objects)s 6646 x(affects)s 7341 x(the)s
  187. X7693 x(result;)s 8349 x(white)s 8940 x(space)s 9531 x(between)s 10388 x(a)s
  188. X1417 6029 moveto(symbol)s 2182 x(and)s 2588 x(its)s 2873 x(parameter)s 3887 x(does)s
  189. X4386 x(not.)s 1897 5655 moveto(Although)s 2862 x(this)s 3267 x(rule)s 3698 x(is)s
  190. X3917 x(just)s 4322 x(right)s 4833 x(most)s 5358 x(of)s 5617 x(the)s
  191. X5969 x(time,)s 6513 x(it)s 6705 x(is)s 6924 x(not)s 7290 x(adequate)s
  192. X8200 x(for)s 8538 x(equation)s 9422 x(formatting.)s 1417 5367 moveto(Getting)s 2239 x(the)s
  193. X2636 x(horizontal)s 3710 x(spacing)s 4546 x(right)s 5102 x(in)s 5393 x(equations)s
  194. X6415 x(is)s 6679 x(a)s 6890 x(very)s 7420 x(\256ddly)s 8084 x(business,)s
  195. X9060 x(involving)s 10083 x(four)s 1417 5079 moveto(different)s 2310 x(sizes)s 2846 x(of)s
  196. X3117 x(space)s 3720 x(\(zero,)s 4342 x(thin,)s 4846 x(medium,)s 5762 x(and)s
  197. X6180 x(thick\),)s 6869 x(and)s 7287 x(different)s 8180 x(rules)s 8716 x(for)s
  198. X9066 x(spacing)s 9869 x(within)s 1417 4791 moveto(superscripts)s 2626 x(and)s 3040 x(subscripts)s
  199. X4064 x(to)s 4318 x(those)s 4891 x(applying)s 5797 x(outside,)s 6616 x(according)s
  200. X7627 x(to)s 7881 x(a)s 8055 x(leading)s 8827 x(authority)s 9758 x([)s
  201. X9837 x(6)s 9957 x(].)s 10224 x(Eq)s 1417 4503 moveto(therefore)s 2344 x(takes)s
  202. X2901 x(the)s 3259 x(spacing)s 4056 x(decisions)s 5012 x(upon)s 5558 x(itself,)s
  203. X6160 x(and)s 6572 x(con)s 6918 x(sequently)s 7901 x(chooses)s 8725 x(to)s
  204. X8977 x(ignore)s 9654 x(all)s 9958 x(white)s 1417 4215 moveto(space)s 2008 x(in)s
  205. X2254 x(its)s 2539 x(input,)s 3151 x(even)s 3663 x(between)s 4520 x(two)s
  206. X4939 x(objects.)s 
  207. X/Times-Roman 153 fnt
  208. X5676 4320 moveto(1)s 
  209. X/Times-Roman 240 fnt
  210. X1897 3841 moveto(Every)s 2516 x(symbol)s 3269 x(provided)s
  211. X4168 x(by)s 4456 x(Eq)s 4770 x(has)s 5137 x(a)s 
  212. X/Times-Italic 240 fnt
  213. X5291 x(full)s
  214. X5657 x(name)s 
  215. X/Times-Roman 240 fnt
  216. X6176 x(,)s 6284 x(which)s 6917 x(denotes)s 7696 x(the)s
  217. X8036 x(symbol)s 8789 x(without)s 9568 x(any)s 9962 x(space)s 1417 3553 moveto(attached.)s
  218. X2389 x(Many)s 3004 x(symbols)s 3858 x(also)s 4299 x(have)s 4807 x(a)s
  219. X
  220. X/Times-Italic 240 fnt
  221. X4969 x(short)s 5517 x(name)s 
  222. X/Times-Roman 240 fnt
  223. X6036 x(,)s 6152 x(which)s 6793 x(denotes)s
  224. X7580 x(the)s 7928 x(same)s 8475 x(symbol)s 9236 x(with)s 9717 x(what)s
  225. X10238 x(Eq)s 1417 3265 moveto(considers)s 2388 x(to)s 2642 x(be)s 2936 x(an)s
  226. X3230 x(appropriate)s 4386 x(amount)s 5172 x(of)s 5439 x(space)s 6038 x(for)s
  227. X6384 x(that)s 6810 x(symbol)s 7583 x(attached)s 8447 x(to)s 8701 x(it.)s
  228. X9021 x(For)s 9421 x(example,)s 
  229. X/Symbol 240 fnt
  230. X10359 3258 moveto(\243)s 
  231. X/Times-Roman 240 fnt
  232. X1417 2977 moveto(has)s 1796 x(full)s
  233. X2187 x(name)s 
  234. X/Helvetica 220 fnt
  235. X2765 2973 moveto(lessequal)s 
  236. X/Times-Roman 240 fnt
  237. X3751 2977 moveto(and)s 4157 x(short)s 4695 x(name)s
  238. X
  239. X/Helvetica 220 fnt
  240. X5273 2973 moveto(<=)s 
  241. X/Times-Roman 240 fnt
  242. X5529 2977 moveto(:)s gsave
  243. X1417 2442 translate
  244. X680 0 0 0 240 288 60 loutgr
  245. Xgsave
  246. X0 0 moveto xsize 0 lineto stroke
  247. Xgrestore
  248. X
  249. Xgrestore
  250. X
  251. X/Times-Roman 153 fnt
  252. X1417 2226 moveto(1)s 
  253. X/Times-Roman 192 fnt
  254. X1493 2148 moveto(This)s 1876 x(effect)s
  255. X2353 x(is)s 2523 x(produced)s 3279 x(by)s 3514 x(enclosing)s 4291 x(the)s
  256. X4568 x(entire)s 5046 x(equation)s 5749 x(in)s 
  257. X/Helvetica 172 fnt
  258. X5941 2146 moveto(0c @Space)s 
  259. X/Times-Roman 192 fnt
  260. X6828 2148 moveto(.)s
  261. X6967 x(The)s 7308 x(simplest)s 7988 x(way)s 8350 x(to)s 8542 x(restore)s
  262. X9104 x(the)s 9381 x(effect)s 1417 1918 moveto(of)s 1628 x(white)s 2105 x(space)s
  263. X2582 x(to)s 2783 x(part)s 3132 x(of)s 3343 x(an)s 3576 x(equation)s
  264. X4288 x(is)s 4467 x(to)s 4668 x(enclose)s 5294 x(that)s 5633 x(part)s
  265. X5982 x(in)s 6183 x(a)s 
  266. X/Helvetica 172 fnt
  267. X6320 1916 moveto(@Font)s 
  268. X/Times-Roman 192 fnt
  269. X6888 1918 moveto(symbol.)s 7600 x(Eq)s
  270. X7865 x(also)s 8225 x(changes)s 8894 x(the)s 9180 x(value)s 9647 x(of)s
  271. X1417 1688 moveto(the)s 
  272. X/Helvetica 172 fnt
  273. X1706 1686 moveto(v)s 
  274. X/Times-Roman 192 fnt
  275. X1847 1688 moveto(unit,)s 2248 x(so)s 2473 x(if)s
  276. X2644 x(a)s 2784 x(paragraph)s 3604 x(of)s 3818 x(\256lled)s 4266 x(text)s
  277. X4608 x(is)s 4790 x(desired)s 5397 x(within)s 5941 x(an)s 6177 x(equation,)s
  278. X6940 x(it)s 7101 x(may)s 7486 x(be)s 7722 x(necessary)s 8520 x(to)s
  279. X8724 x(enclose)s 9353 x(it)s 9514 x(in)s 9718 x(a)s 
  280. X/Helvetica 172 fnt
  281. X1417 1456 moveto(@Break)s
  282. X
  283. X/Times-Roman 192 fnt
  284. X2086 1458 moveto(symbol.)s 
  285. Xpgsave restore
  286. Xshowpage
  287. X
  288. X%%Page: ? 6
  289. X%%BeginPageSetup
  290. X0.0500 dup scale 10 setlinewidth
  291. X/pgsave save def
  292. X%%EndPageSetup
  293. X
  294. X/Times-Roman 240 fnt
  295. X5754 15258 moveto(-)s 5893 x(5)s 6073 x(-)s 
  296. X/Helvetica 220 fnt
  297. X1897 14662 moveto(a lessequal b)s 
  298. X/Times-Italic 240 fnt
  299. X5866 14666 moveto(a)s
  300. X
  301. X/Symbol 240 fnt
  302. X5986 14659 moveto(\243)s 
  303. X/Times-Italic 240 fnt
  304. X6117 14666 moveto(b)s 
  305. X/Helvetica 220 fnt
  306. X1897 14159 moveto(a <= b)s 
  307. X/Times-Italic 240 fnt
  308. X5866 14163 moveto(a)s 
  309. X/Symbol 240 fnt
  310. X6058 14156 moveto(\243)s
  311. X
  312. X/Times-Italic 240 fnt
  313. X6261 14163 moveto(b)s 
  314. X/Times-Roman 240 fnt
  315. X1417 13704 moveto(Eq)s 1745 x(puts)s 2206 x(a)s 2374 x(thick)s
  316. X2914 x(space)s 3507 x(around)s 4234 x(relation)s 5025 x(symbols)s 5885 x(like)s
  317. X
  318. X/Helvetica 220 fnt
  319. X6305 13700 moveto(<=)s 
  320. X/Times-Roman 240 fnt
  321. X6561 13704 moveto(,)s 6683 x(a)s 6851 x(medium)s 7697 x(space)s
  322. X8290 x(around)s 9017 x(binary)s 9690 x(operator)s 1417 13416 moveto(symbols)s 2272 x(like)s
  323. X
  324. X/Helvetica 220 fnt
  325. X2687 13412 moveto(+)s 
  326. X/Times-Roman 240 fnt
  327. X2815 13416 moveto(,)s 2932 x(and)s 3335 x(a)s 3498 x(thin)s
  328. X3927 x(space)s 4515 x(after)s 5008 x(punctuation)s 6195 x(symbols)s 7050 x(\()s
  329. X
  330. X/Helvetica 220 fnt
  331. X7129 13412 moveto(;)s 
  332. X/Times-Roman 240 fnt
  333. X7247 13416 moveto(and)s 
  334. X/Helvetica 220 fnt
  335. X7650 13412 moveto(,)s 
  336. X/Times-Roman 240 fnt
  337. X7711 13416 moveto(\);)s 7913 x(except)s
  338. X8594 x(that)s 9009 x(in)s 9252 x(places)s 9906 x(where)s 1417 13128 moveto(the)s
  339. X1786 x(symbols)s 2661 x(appear)s 3375 x(in)s 3638 x(a)s 3821 x(smaller)s
  340. X4600 x(size)s 5048 x(\(superscripts,)s 6405 x(subscripts,)s 7498 x(etc.\),)s 8052 x(these)s
  341. X8620 x(spaces)s 9321 x(are)s 9689 x(omitted.)s 1417 12840 moveto(No)s 1770 x(other)s
  342. X2321 x(horizontal)s 3350 x(space)s 3941 x(is)s 4160 x(ever)s 4631 x(inserted.)s
  343. X1897 12466 moveto(The)s 2325 x(short)s 2859 x(names)s 3526 x(have)s 4034 x(been)s
  344. X4542 x(carefully)s 5446 x(designed)s 6353 x(to)s 6595 x(produce)s 7422 x(good-looking)s
  345. X8769 x(mathematics)s 10032 x(most)s 1417 12178 moveto(of)s 1689 x(the)s 2054 x(time.)s
  346. X2671 x(It)s 2889 x(is)s 3121 x(best)s 3579 x(to)s 3838 x(rely)s
  347. X4282 x(on)s 4595 x(them)s 5146 x(in)s 5405 x(the)s 5770 x(\256rst)s
  348. X6214 x(instance)s 7070 x(and)s 7489 x(only)s 7988 x(think)s 8553 x(about)s
  349. X9158 x(spacing)s 9962 x(when)s 1417 11890 moveto(the)s 1769 x(result)s 2359 x(is)s
  350. X2578 x(not)s 2944 x(pleasing.)s 3921 x(In)s 4180 x(that)s 4598 x(case,)s
  351. X5129 x(Eq's)s 5627 x(space)s 6218 x(can)s 6610 x(be)s 6896 x(removed)s
  352. X7793 x(by)s 8093 x(using)s 8672 x(the)s 9024 x(full)s 9415 x(names,)s
  353. X10146 x(and)s 1417 11602 moveto(thin,)s 1909 x(medium)s 2753 x(and)s 3159 x(thick)s
  354. X3697 x(space)s 4288 x(can)s 4680 x(be)s 4966 x(added)s 5598 x(using)s
  355. X6177 x(the)s 6529 x(following)s 7519 x(symbols:)s 
  356. X/Helvetica 220 fnt
  357. X1897 11061 moveto(`)s 2381 x(0.18f)s
  358. X
  359. X/Times-Roman 240 fnt
  360. X2989 11065 moveto(\()s 
  361. X/Helvetica 220 fnt
  362. X3068 11061 moveto(0.018f)s 
  363. X/Times-Roman 240 fnt
  364. X3738 11065 moveto(in)s 3984 x(subscripts,)s 5060 x(etc.\))s
  365. X
  366. X/Helvetica 220 fnt
  367. X1897 10773 moveto(``)s 2381 x(0.24f)s 
  368. X/Times-Roman 240 fnt
  369. X2989 10777 moveto(\()s 
  370. X/Helvetica 220 fnt
  371. X3068 10773 moveto(0.024f)s 
  372. X/Times-Roman 240 fnt
  373. X3738 10777 moveto(in)s
  374. X3984 x(subscripts,)s 5060 x(etc.\))s 
  375. X/Helvetica 220 fnt
  376. X1897 10485 moveto(```)s 2381 x(0.30f)s 
  377. X/Times-Roman 240 fnt
  378. X2989 10489 moveto(\()s
  379. X
  380. X/Helvetica 220 fnt
  381. X3068 10485 moveto(0.030f)s 
  382. X/Times-Roman 240 fnt
  383. X3738 10489 moveto(in)s 3984 x(subscripts,)s 5060 x(etc.\))s 1417 9948 moveto(where)s
  384. X
  385. X/Helvetica 220 fnt
  386. X2083 9944 moveto(1f)s 
  387. X/Times-Roman 240 fnt
  388. X2348 9948 moveto(is)s 2589 x(the)s 2963 x(current)s 3721 x(font)s
  389. X4188 x(size.)s 4761 x(These)s 5414 x(symbols)s 6294 x(have)s 6828 x(low)s
  390. X7269 x(precedence.)s 8546 x(The)s 
  391. X/Helvetica 220 fnt
  392. X9000 9944 moveto(&)s 
  393. X/Times-Roman 240 fnt
  394. X9228 9948 moveto(symbol)s 10015 x(from)s
  395. X1417 9660 moveto(standard)s 2307 x(Lout)s 2839 x(is)s 3078 x(also)s 3543 x(available;)s
  396. X4551 x(the)s 
  397. X/Helvetica 220 fnt
  398. X4923 9656 moveto(s)s 
  399. X/Times-Roman 240 fnt
  400. X5113 9660 moveto(unit)s 5565 x(has)s 5964 x(value)s
  401. X6562 x(0)s 6762 x(and)s 7188 x(so)s 7481 x(is)s 7720 x(not)s
  402. X8106 x(very)s 8611 x(useful,)s 9335 x(but)s 9721 x(one)s 10147 x(can)s
  403. X1417 9372 moveto(write)s 
  404. X/Helvetica 220 fnt
  405. X1973 9368 moveto(&2m)s 
  406. X/Times-Roman 240 fnt
  407. X2490 9372 moveto(for)s 2834 x(example)s 3710 x(for)s
  408. X4054 x(a)s 4226 x(two)s 4651 x(em)s 5009 x(space.)s 5726 x(Since)s
  409. X6323 x(the)s 6681 x(full)s 7078 x(names)s 7755 x(are)s 8112 x(tedious)s
  410. X8869 x(to)s 9121 x(remember,)s 10215 x(Eq)s 1417 9084 moveto(provides)s 2288 x(a)s
  411. X2441 x(symbol)s 
  412. X/Helvetica 220 fnt
  413. X3193 9080 moveto(non)s 
  414. X/Times-Roman 240 fnt
  415. X3606 9084 moveto(which)s 4238 x(removes)s 5095 x(spaces)s
  416. X5766 x(from)s 6277 x(its)s 6549 x(right)s 7047 x(parameter;)s 8114 x(thus)s
  417. X
  418. X/Helvetica 220 fnt
  419. X8560 9080 moveto(non <=)s 
  420. X/Times-Roman 240 fnt
  421. X9290 9084 moveto(is)s 9496 x(equivalent)s 1417 8796 moveto(to)s 
  422. X/Helvetica 220 fnt
  423. X1657 8792 moveto(lessequal)s
  424. X
  425. X/Times-Roman 240 fnt
  426. X2583 8796 moveto(,)s 2697 x(for)s 3029 x(example.)s 4013 x(There)s 4624 x(are)s
  427. X4969 x(also)s 5408 x(symbols)s 
  428. X/Helvetica 220 fnt
  429. X6260 8792 moveto(rel)s 
  430. X/Times-Roman 240 fnt
  431. X6503 8796 moveto(,)s 
  432. X/Helvetica 220 fnt
  433. X6617 8792 moveto(bin)s
  434. X
  435. X/Times-Roman 240 fnt
  436. X6909 8796 moveto(,)s 7023 x(and)s 
  437. X/Helvetica 220 fnt
  438. X7423 8792 moveto(punct)s 
  439. X/Times-Roman 240 fnt
  440. X8014 8796 moveto(for)s 8346 x(telling)s
  441. X9010 x(Eq)s 9330 x(to)s 9570 x(add)s 9970 x(space)s 1417 8508 moveto(to)s
  442. X1688 x(the)s 2065 x(following)s 3080 x(symbol)s 3870 x(as)s 4154 x(though)s
  443. X4905 x(it)s 5122 x(was)s 5579 x(a)s 5770 x(relation)s 6584 x(symbol,)s
  444. X7434 x(binary)s 8130 x(operator,)s 9071 x(or)s 9355 x(punctuation)s 1417 8220 moveto(symbol.)s
  445. X
  446. X/Times-Bold 240 fnt
  447. X1417 7427 moveto(4.)s 1717 x(Features)s 2666 x(from)s 3230 x(Standard)s 4247 x(Lout)s
  448. X
  449. X/Times-Roman 240 fnt
  450. X1897 7055 moveto(In)s 2149 x(this)s 2547 x(section)s 3277 x(we)s 3609 x(summarize)s
  451. X4710 x(those)s 5268 x(features)s 6076 x(of)s 6328 x(standard)s 7191 x(Lout)s
  452. X7696 x(of)s 7948 x(most)s 8466 x(relevance)s 9434 x(to)s 9673 x(equation)s
  453. X1417 6767 moveto(formatting.)s 2627 x(All)s 3014 x(are)s 3387 x(freely)s 4025 x(available)s
  454. X4969 x(within)s 5662 x(equations.)s 6781 x(Full)s 7248 x(details)s 7953 x(may)s
  455. X8447 x(be)s 8755 x(found)s 9396 x(in)s 9664 x(the)s 10038 x(Lout)s
  456. X1417 6479 moveto(reference)s 2364 x(manual)s 3128 x([)s 3207 x(4)s 3327 x(].)s
  457. X1897 6105 moveto(Standard)s 2808 x(Lout)s 3321 x(uses)s 3794 x(the)s 4147 x(symbols)s
  458. X
  459. X/Helvetica 220 fnt
  460. X5006 6101 moveto(#)s 
  461. X/Times-Roman 240 fnt
  462. X5128 6105 moveto(,)s 
  463. X/Helvetica 220 fnt
  464. X5249 6101 moveto({)s 
  465. X/Times-Roman 240 fnt
  466. X5322 6105 moveto(,)s 
  467. X/Helvetica 220 fnt
  468. X5443 6101 moveto(})s
  469. X
  470. X/Times-Roman 240 fnt
  471. X5516 6105 moveto(,)s 
  472. X/Helvetica 220 fnt
  473. X5637 6101 moveto(&)s 
  474. X/Times-Roman 240 fnt
  475. X5783 6105 moveto(,)s 
  476. X/Helvetica 220 fnt
  477. X5904 6101 moveto(|)s 
  478. X/Times-Roman 240 fnt
  479. X5961 6105 moveto(,)s
  480. X6082 x(and)s 
  481. X/Helvetica 220 fnt
  482. X6489 6101 moveto(/)s 
  483. X/Times-Roman 240 fnt
  484. X6611 6105 moveto(for)s 6950 x(special)s 7674 x(purposes)s
  485. X8586 x(\(the)s 9018 x(braces)s 9689 x(are)s 10041 x(used)s 1417 5817 moveto(for)s
  486. X1738 x(grouping,)s 2706 x(for)s 3027 x(example\).)s 4079 x(To)s 4388 x(get)s
  487. X4723 x(these)s 5257 x(characters)s 6267 x(into)s 6682 x(equations)s 7642 x(without)s
  488. X8416 x(using)s 8978 x(their)s 9458 x(full)s 9832 x(names,)s 1417 5529 moveto(enclose)s
  489. X2186 x(them)s 2716 x(in)s 2954 x(double)s 3658 x(quotes:)s 
  490. X/Helvetica 220 fnt
  491. X4401 5525 moveto("{")s
  492. X
  493. X/Times-Roman 240 fnt
  494. X4630 5529 moveto(,)s 
  495. X/Helvetica 220 fnt
  496. X4742 5525 moveto("}")s 
  497. X/Times-Roman 240 fnt
  498. X4971 5529 moveto(,)s 5083 x(etc.)s 5533 x(Any)s
  499. X5998 x(sequence)s 6927 x(of)s 7178 x(characters)s 8197 x(including)s 9153 x(spaces)s
  500. X9829 x(but)s 10187 x(not)s 1417 5241 moveto(newlines)s 2327 x(may)s 2799 x(be)s
  501. X3085 x(so)s 3358 x(enclosed,)s 4315 x(and)s 4721 x(the)s 5073 x(effect)s
  502. X5675 x(is)s 5894 x(to)s 6140 x(turn)s 6585 x(off)s 6923 x(any)s
  503. X7329 x(special)s 8052 x(meaning)s 8936 x(that)s 9354 x(the)s 9706 x(symbols)s
  504. X1417 4953 moveto(within)s 2088 x(it)s 2280 x(might)s 2898 x(have.)s 1897 4579 moveto(Eq)s
  505. X2250 x(sets)s 2695 x(letters)s 3364 x(in)s 3637 x(Slope)s 4269 x(\(Lout's)s
  506. X5059 x(name)s 5664 x(for)s 6029 x(Italic\),)s 6744 x(digits)s 7362 x(in)s
  507. X7635 x(Base)s 8187 x(\(i.e.)s 8645 x(Roman\),)s 9563 x(and)s 9996 x(other)s
  508. X1417 4291 moveto(symbols)s 2275 x(in)s 2521 x(various)s 3285 x(fonts,)s 3883 x(mostly)s
  509. X4594 x(the)s 4946 x(Symbol)s 5751 x(font.)s 6316 x(To)s 6642 x(change)s
  510. X7380 x(fonts,)s 7978 x(use)s 8357 x(the)s 
  511. X/Helvetica 220 fnt
  512. X8709 4287 moveto(@Font)s 
  513. X/Times-Roman 240 fnt
  514. X9431 4291 moveto(symbol:)s
  515. X
  516. X/Helvetica 220 fnt
  517. X1897 3784 moveto(Slope @Font "2")s 
  518. X/Times-Italic 240 fnt
  519. X5866 3788 moveto(2)s 
  520. X/Times-Roman 240 fnt
  521. X1417 3286 moveto(In)s 1696 x(Eq)s 2042 x(it)s
  522. X2254 x(will)s 2705 x(often)s 3276 x(be)s 3582 x(necessary)s 4591 x(to)s
  523. X4857 x(enclose)s 5654 x(the)s 6026 x(right)s 6557 x(parameter)s 7591 x(in)s
  524. X7857 x(double)s 8589 x(quotes,)s 9354 x(because)s 10191 x(the)s 1417 2998 moveto(symbol)s
  525. X2212 x(2)s 2422 x(includes)s 3309 x(a)s 3505 x(built-in)s 4298 x(change)s
  526. X5066 x(back)s 5608 x(to)s 5884 x(Base)s 6439 x(font.)s 7034 x(Changing)s
  527. X8056 x(fonts)s 8624 x(makes)s 9325 x(white)s 9946 x(space)s 1417 2710 moveto(between)s
  528. X2275 x(objects)s 3013 x(in)s 3260 x(the)s 3613 x(right)s 4125 x(parameter)s
  529. X5140 x(appear)s 5838 x(in)s 6085 x(the)s 6438 x(result.)s 7149 x(The)s
  530. X
  531. X/Helvetica 220 fnt
  532. X7582 2706 moveto(@Font)s 
  533. X/Times-Roman 240 fnt
  534. X8305 2710 moveto(operator)s 9162 x(also)s 9608 x(does)s 10108 x(size)s
  535. X1417 2422 moveto(changes:)s 
  536. X/Helvetica 220 fnt
  537. X1897 1905 moveto(sum)s 
  538. X/Symbol 240 fnt
  539. X5866 1902 moveto(\345)s 
  540. Xpgsave restore
  541. Xshowpage
  542. X
  543. X%%Page: ? 7
  544. X%%BeginPageSetup
  545. X0.0500 dup scale 10 setlinewidth
  546. X/pgsave save def
  547. X%%EndPageSetup
  548. X
  549. X/Times-Roman 240 fnt
  550. X5754 15260 moveto(-)s 5893 x(6)s 6073 x(-)s 
  551. X/Helvetica 220 fnt
  552. X1897 14634 moveto("+2p" @Font sum)s 
  553. X/Symbol 280 fnt
  554. X5866 14621 moveto(\345)s
  555. X
  556. X/Helvetica 220 fnt
  557. X1897 14001 moveto(2.0f @Font sum)s 
  558. X/Symbol 480 fnt
  559. X5866 13938 moveto(\345)s 
  560. X/Times-Roman 240 fnt
  561. X1417 13437 moveto(Here)s 
  562. X/Helvetica 220 fnt
  563. X1923 13433 moveto("+2p" @Font)s 
  564. X/Times-Roman 240 fnt
  565. X3216 13437 moveto(sets)s
  566. X3616 x(its)s 3883 x(right)s 4376 x(parameter)s 5372 x(in)s 5600 x(a)s
  567. X5748 x(font)s 6175 x(two)s 6576 x(points)s 7203 x(larger)s 7801 x(than)s
  568. X8255 x(it)s 8429 x(would)s 9070 x(otherwise)s 10041 x(have)s 1417 13149 moveto(been;)s
  569. X
  570. X/Helvetica 220 fnt
  571. X1998 13145 moveto(2.0f @Font)s 
  572. X/Times-Roman 240 fnt
  573. X3150 13149 moveto(sets)s 3571 x(its)s 3859 x(right)s 4373 x(parameter)s
  574. X5390 x(in)s 5639 x(a)s 5808 x(font)s 6256 x(twice)s 6836 x(the)s
  575. X7191 x(original)s 7997 x(size.)s 8551 x(Sizes)s 9118 x(should)s 9820 x(always)s
  576. X1417 12861 moveto(be)s 1713 x(speci\256ed)s 2633 x(relative)s 3418 x(to)s 3674 x(the)s
  577. X4036 x(enclosing)s 5023 x(size)s 5464 x(as)s 5733 x(we)s 6082 x(have)s
  578. X6604 x(done)s 7140 x(here,)s 7681 x(since)s 8242 x(then)s 8724 x(they)s
  579. X9206 x(don't)s 9781 x(need)s 10303 x(to)s 1417 12573 moveto(be)s 1700 x(changed)s
  580. X2555 x(if)s 2757 x(a)s 2920 x(decision)s 3774 x(is)s 3990 x(made)s
  581. X4565 x(to)s 4808 x(set)s 5130 x(the)s 5479 x(entire)s 6079 x(document)s
  582. X7080 x(in)s 7323 x(a)s 7486 x(different)s 8364 x(size.)s 8912 x(It)s
  583. X9114 x(is)s 9330 x(necessary)s 10316 x(to)s 1417 12285 moveto(enclose)s 
  584. X/Helvetica 220 fnt
  585. X2187 12281 moveto(+2p)s
  586. X
  587. X/Times-Roman 240 fnt
  588. X2612 12285 moveto(in)s 2851 x(double)s 3556 x(quotes)s 4234 x(within)s 4898 x(Eq,)s
  589. X5277 x(because)s 6087 x(otherwise)s 7069 x(the)s 
  590. X/Helvetica 220 fnt
  591. X7414 12281 moveto(+)s 
  592. X/Times-Roman 240 fnt
  593. X7595 12285 moveto(will)s
  594. X8019 x(be)s 8298 x(taken)s 8869 x(as)s 9121 x(the)s 9466 x(Eq)s
  595. X9785 x(symbol)s 1417 11997 moveto(for)s 
  596. X/Symbol 240 fnt
  597. X1812 11990 moveto(+)s 
  598. X/Times-Roman 240 fnt
  599. X2000 11997 moveto(.)s 2180 x(The)s
  600. X2612 x(right)s 3123 x(parameter)s 4137 x(may)s 4609 x(be)s 4895 x(any)s
  601. X5301 x(object.)s 1897 11623 moveto(Whenever)s 2956 x(similar)s 3694 x(equations)s 4687 x(or)s
  602. X4962 x(parts)s 5502 x(of)s 5777 x(equations)s 6770 x(are)s 7137 x(being)s
  603. X7745 x(typed)s 8353 x(repeatedly,)s 
  604. X/Times-Italic 240 fnt
  605. X9484 x(de\256nitions)s 
  606. X/Times-Roman 240 fnt
  607. X1417 11335 moveto(should)s 2116 x(be)s
  608. X2402 x(used)s 2901 x(to)s 3147 x(save)s 3632 x(time.)s 4236 x(Suppose)s
  609. X5108 x(for)s 5446 x(example)s 6316 x(that)s 
  610. X/Times-Italic 240 fnt
  611. X6734 x(p)s 
  612. X/Times-Italic 168 fnt
  613. X6854 11249 moveto(i)s
  614. X
  615. X/Times-Roman 240 fnt
  616. X6943 11335 moveto(log)s 
  617. X/Symbol 168 fnt
  618. X7249 11241 moveto(\062)s 
  619. X/Times-Italic 240 fnt
  620. X7376 11335 moveto(p)s 
  621. X/Times-Italic 168 fnt
  622. X7496 11249 moveto(i)s 
  623. X/Times-Roman 240 fnt
  624. X7602 11335 moveto(occurs)s
  625. X8286 x(frequently.)s 9448 x(Then)s 
  626. X/Helvetica 220 fnt
  627. X1897 10793 moveto(def epi { p sub i ` log sub 2 ` p sub i })s 
  628. X/Times-Roman 240 fnt
  629. X1417 10294 moveto(makes)s 2088 x(the)s
  630. X2440 x(symbol)s 
  631. X/Helvetica 220 fnt
  632. X3205 10290 moveto(epi)s 
  633. X/Times-Roman 240 fnt
  634. X3557 10294 moveto(stand)s 4122 x(for)s 4460 x(the)s
  635. X4812 x(object)s 5456 x(between)s 6313 x(the)s 6665 x(braces:)s 
  636. X/Helvetica 220 fnt
  637. X1897 9622 moveto(big sum from i=1 to n ` epi)s
  638. X
  639. X/Times-Italic 168 fnt
  640. X5943 9880 moveto(n)s 
  641. X/Symbol 312 fnt
  642. X5874 9601 moveto(\345)s 
  643. X/Times-Italic 168 fnt
  644. X5866 9415 moveto(i)s 
  645. X/Symbol 168 fnt
  646. X5920 9410 moveto(\075)s 6020 x(\061)s
  647. X
  648. X/Times-Italic 240 fnt
  649. X6147 9626 moveto(p)s 
  650. X/Times-Italic 168 fnt
  651. X6267 9540 moveto(i)s 
  652. X/Times-Roman 240 fnt
  653. X6356 9626 moveto(log)s 
  654. X/Symbol 168 fnt
  655. X6662 9532 moveto(\062)s 
  656. X/Times-Italic 240 fnt
  657. X6789 9626 moveto(p)s
  658. X
  659. X/Times-Italic 168 fnt
  660. X6909 9540 moveto(i)s 
  661. X/Times-Roman 240 fnt
  662. X1417 8960 moveto(Symbols)s 2315 x(may)s 2787 x(be)s 3073 x(given)s
  663. X3665 x(parameters:)s 
  664. X/Helvetica 220 fnt
  665. X1897 8460 moveto(def ep)s 1897 8172 moveto(   right x)s 1897 7884 moveto({ p sub x ` log sub 2 ` p sub x)s 1897 7596 moveto(})s
  666. X
  667. X/Times-Roman 240 fnt
  668. X1417 7099 moveto(The)s 1849 x(parameter)s 
  669. X/Helvetica 220 fnt
  670. X2863 7095 moveto(x)s 
  671. X/Times-Roman 240 fnt
  672. X3033 7099 moveto(will)s 3464 x(be)s
  673. X3750 x(replaced)s 4619 x(by)s 4919 x(the)s 5271 x(object)s 5915 x(just)s
  674. X6320 x(to)s 6566 x(the)s 6918 x(right)s 7429 x(of)s 
  675. X/Helvetica 220 fnt
  676. X7688 7095 moveto(ep)s
  677. X
  678. X/Times-Roman 240 fnt
  679. X7932 7099 moveto(:)s 
  680. X/Helvetica 220 fnt
  681. X1897 6599 moveto(big sum from j=1 to k ` ep i +)s 1897 6311 moveto(big sum from j=k+1 to n ep j)s 
  682. X/Times-Italic 168 fnt
  683. X5948 6645 moveto(k)s 
  684. X/Symbol 312 fnt
  685. X5874 6366 moveto(\345)s
  686. X
  687. X/Times-Italic 168 fnt
  688. X5866 6180 moveto(j)s 
  689. X/Symbol 168 fnt
  690. X5920 6175 moveto(\075)s 6020 x(\061)s 
  691. X/Times-Italic 240 fnt
  692. X6147 6391 moveto(p)s 
  693. X/Times-Italic 168 fnt
  694. X6267 6305 moveto(i)s
  695. X
  696. X/Times-Roman 240 fnt
  697. X6356 6391 moveto(log)s 
  698. X/Symbol 168 fnt
  699. X6662 6297 moveto(\062)s 
  700. X/Times-Italic 240 fnt
  701. X6789 6391 moveto(p)s 
  702. X/Times-Italic 168 fnt
  703. X6909 6305 moveto(i)s 
  704. X/Symbol 240 fnt
  705. X7012 6384 moveto(+)s
  706. X
  707. X/Times-Italic 168 fnt
  708. X7366 6645 moveto(n)s 
  709. X/Symbol 312 fnt
  710. X7297 6366 moveto(\345)s 
  711. X/Times-Italic 168 fnt
  712. X7200 6176 moveto(j)s 
  713. X/Symbol 168 fnt
  714. X7254 6171 moveto(\075)s 
  715. X/Times-Italic 168 fnt
  716. X7354 6176 moveto(k)s
  717. X
  718. X/Symbol 168 fnt
  719. X7434 6171 moveto(+)s 7532 x(\061)s 
  720. X/Times-Italic 240 fnt
  721. X7616 6391 moveto(p)s 
  722. X/Times-Italic 168 fnt
  723. X7736 6305 moveto(j)s 
  724. X/Times-Roman 240 fnt
  725. X7825 6391 moveto(log)s
  726. X
  727. X/Symbol 168 fnt
  728. X8131 6297 moveto(\062)s 
  729. X/Times-Italic 240 fnt
  730. X8258 6391 moveto(p)s 
  731. X/Times-Italic 168 fnt
  732. X8378 6305 moveto(j)s 
  733. X/Times-Roman 240 fnt
  734. X1417 5691 moveto(The)s 1849 x(precedence)s
  735. X2984 x(of)s 3243 x(such)s 3742 x(symbols)s 4600 x(will)s 5031 x(be)s
  736. X5317 x(100)s 5737 x(by)s 6037 x(default.)s 1897 5317 moveto(To)s 2237 x(make)s
  737. X2829 x(the)s 3195 x(symbols)s 4067 x(of)s 4340 x(Eq)s 4680 x(available)s
  738. X5616 x(within)s 6301 x(such)s 6814 x(de\256nitions,)s 7958 x(each)s 8470 x(must)s
  739. X9009 x(be)s 9309 x(preceded)s 10246 x(by)s 
  740. X/Helvetica 220 fnt
  741. X1417 5025 moveto(import @Eq)s 
  742. X/Times-Roman 240 fnt
  743. X2578 5029 moveto(.)s
  744. X2758 x(The)s 3190 x(best)s 3635 x(place)s 4199 x(to)s 4445 x(keep)s
  745. X4957 x(them)s 5495 x(is)s 5714 x(in)s 5960 x(the)s 6312 x(setup)s
  746. X6877 x(\256le,)s 7302 x(which)s 7947 x(might)s 8565 x(then)s 9037 x(look)s
  747. X9523 x(like)s 9941 x(this:)s 
  748. X/Helvetica 220 fnt
  749. X1897 4527 moveto(@SysInclude { ft  })s 1897 4239 moveto(@SysInclude { dl  })s 1897 3951 moveto(@SysInclude { eq  })s
  750. X1897 3663 moveto()s 1897 3375 moveto(import @Eq)s 1897 3087 moveto(def epi { p sub i ` log sub 2 ` p sub i })s 1897 2799 moveto()s 1897 2511 moveto(import @Eq)s
  751. X1897 2223 moveto(def ep right x { p sub x ` log sub 2 ` p sub x })s 1897 1935 moveto()s 1897 1647 moveto(@Use { @DocumentLayout })s 
  752. Xpgsave restore
  753. Xshowpage
  754. X
  755. X%%Page: ? 8
  756. X%%BeginPageSetup
  757. X0.0500 dup scale 10 setlinewidth
  758. X/pgsave save def
  759. X%%EndPageSetup
  760. X
  761. X/Times-Roman 240 fnt
  762. X5754 15264 moveto(-)s 5893 x(7)s 6073 x(-)s 1417 14673 moveto(Use)s 1849 x(of)s
  763. X
  764. X/Helvetica 220 fnt
  765. X2108 14669 moveto(epi)s 
  766. X/Times-Roman 240 fnt
  767. X2460 14673 moveto(and)s 
  768. X/Helvetica 220 fnt
  769. X2866 14669 moveto(ep)s 
  770. X/Times-Roman 240 fnt
  771. X3170 14673 moveto(outside)s 3921 x(equations)s
  772. X4898 x(will)s 5329 x(cause)s 5920 x(an)s 6206 x(error.)s 1897 14299 moveto(Equations)s
  773. X2921 x(can)s 3320 x(appear)s 4024 x(within)s 4702 x(a)s 4875 x(paragraph)s
  774. X5898 x(of)s 6164 x(text,)s 6649 x(or)s 6915 x(they)s 7394 x(can)s
  775. X7793 x(be)s 8086 x(displayed.)s 9190 x(Eq's)s 9695 x(job)s 10068 x(is)s
  776. X10294 x(to)s 1417 14011 moveto(produce)s 2258 x(a)s 2434 x(Lout)s 2956 x(object)s
  777. X3610 x(containing)s 4690 x(the)s 5052 x(equation;)s 6012 x(it)s 6214 x(neither)s
  778. X6947 x(knows)s 7643 x(nor)s 8032 x(cares)s 8592 x(where)s 9246 x(this)s
  779. X9661 x(equation)s 1417 13723 moveto(goes.)s 2041 x(To)s 2372 x(get)s 2729 x(an)s
  780. X3020 x(equation)s 3909 x(within)s 4585 x(a)s 4756 x(paragraph,)s 5837 x(simply)s
  781. X6553 x(place)s 
  782. X/Helvetica 220 fnt
  783. X7122 13719 moveto(@Eq { ... })s 
  784. X/Times-Roman 240 fnt
  785. X8190 13723 moveto(at)s 8427 x(the)s 8784 x(desired)s
  786. X9539 x(point.)s 10216 x(To)s 1417 13435 moveto(prevent)s 2213 x(it)s 2424 x(spreading)s
  787. X3433 x(over)s 3937 x(two)s 4375 x(lines,)s 4965 x(use)s 
  788. X/Helvetica 220 fnt
  789. X5363 13431 moveto(@OneCol @Eq { ... })s
  790. X
  791. X/Times-Roman 240 fnt
  792. X7393 13435 moveto(.)s 7592 x(To)s 7937 x(display)s 8707 x(an)s 9012 x(equation,)s
  793. X9975 x(use)s 10373 x(a)s 1417 13147 moveto(display)s 2190 x(symbol)s 2977 x(from)s
  794. X3523 x(some)s 4110 x(other)s 4683 x(Lout)s 5217 x(package.)s 6203 x(For)s
  795. X6617 x(example,)s 7569 x(the)s 7943 x(DocumentLayout)s 9700 x(package)s 1417 12859 moveto([)s
  796. X1496 x(5)s 1616 x(])s 1762 x(has)s 
  797. X/Helvetica 220 fnt
  798. X2148 12855 moveto(@IndentedDisplay)s 
  799. X/Times-Roman 240 fnt
  800. X4010 12859 moveto(or)s
  801. X
  802. X/Helvetica 220 fnt
  803. X4276 12855 moveto(@ID)s 
  804. X/Times-Roman 240 fnt
  805. X4785 12859 moveto(for)s 5130 x(an)s 5423 x(indented)s 6314 x(display,)s
  806. X7132 x(and)s 
  807. X/Helvetica 220 fnt
  808. X7545 12855 moveto(@CentredDisplay)s 
  809. X/Times-Roman 240 fnt
  810. X9333 12859 moveto(or)s 
  811. X/Helvetica 220 fnt
  812. X9599 12855 moveto(@CD)s 
  813. X/Times-Roman 240 fnt
  814. X10205 12859 moveto(for)s
  815. X1417 12571 moveto(a)s 1583 x(centred)s 2346 x(display,)s 3157 x(so)s 
  816. X/Helvetica 220 fnt
  817. X1897 12069 moveto(@CD @Eq { int supp pi on 0 sin ` x = 0 })s
  818. X
  819. X/Times-Roman 240 fnt
  820. X1417 11571 moveto(produces)s gsave
  821. X5453 11033 translate
  822. X-180.0000 rotate
  823. Xgsave
  824. X0 -159 translate
  825. X180.0000 rotate
  826. X
  827. X/Symbol 312 fnt
  828. X0 -285 moveto(\362)s 
  829. Xgrestore
  830. X
  831. Xgrestore
  832. X
  833. X/Symbol 312 fnt
  834. X5453 10907 moveto(\362)s 
  835. X/Symbol 168 fnt
  836. X5538 11150 moveto(\160)s 5538 10832 moveto(\060)s
  837. X
  838. X/Times-Roman 240 fnt
  839. X5630 10980 moveto(sin)s 
  840. X/Times-Italic 240 fnt
  841. X5952 x(x)s 
  842. X/Symbol 240 fnt
  843. X6130 10973 moveto(\075)s 6333 x(\060)s 
  844. X/Times-Roman 240 fnt
  845. X1417 10380 moveto(DocumentLayout)s
  846. X3197 x(also)s 3687 x(provides)s 4616 x(display)s 5412 x(symbols)s 6315 x(that)s
  847. X6778 x(make)s 7401 x(it)s 7638 x(easy)s 8168 x(to)s 8459 x(produce)s
  848. X9335 x(aligned)s 10144 x(and)s 1417 10092 moveto(numbered)s 2434 x(equations.)s 
  849. X/Times-Bold 240 fnt
  850. X1417 9299 moveto(5.)s
  851. X1717 x(Summary)s 
  852. X/Times-Roman 240 fnt
  853. X1897 8927 moveto(This)s 2422 x(section)s 3199 x(is)s 3458 x(a)s
  854. X3664 x(complete)s 4640 x(list)s 5031 x(of)s 5330 x(the)s 5722 x(symbols)s
  855. X6620 x(provided)s 7571 x(by)s 7911 x(Eq.)s 8397 x(We)s 8829 x(divide)s
  856. X9527 x(them)s 10105 x(into)s 1417 8639 moveto(auxiliary,)s 2431 x(parameterized,)s 3948 x(short)s
  857. X4531 x(names)s 5247 x(\(further)s 6080 x(divided)s 6903 x(into)s 7380 x(relations,)s
  858. X8367 x(binary)s 9083 x(operators,)s 10137 x(and)s 1417 8351 moveto(punctuation\),)s 2746 x(and)s
  859. X3152 x(full)s 3543 x(names.)s 4334 x(The)s 4766 x(auxiliary)s 5675 x(symbols)s
  860. X6533 x(are:)s 
  861. X/Helvetica 220 fnt
  862. X1897 7810 moveto(`)s 
  863. X/Times-Roman 240 fnt
  864. X2945 7814 moveto(Thin)s 3457 x(space)s 
  865. X/Helvetica 220 fnt
  866. X1897 7522 moveto(``)s
  867. X
  868. X/Times-Roman 240 fnt
  869. X2945 7526 moveto(Medium)s 3816 x(space)s 
  870. X/Helvetica 220 fnt
  871. X1897 7234 moveto(```)s 
  872. X/Times-Roman 240 fnt
  873. X2945 7238 moveto(Thick)s 3563 x(space)s
  874. X
  875. X/Helvetica 220 fnt
  876. X1897 6946 moveto(bin x)s 
  877. X/Times-Roman 240 fnt
  878. X2945 6950 moveto(Treat)s 
  879. X/Helvetica 220 fnt
  880. X3508 6946 moveto(x)s 
  881. X/Times-Roman 240 fnt
  882. X3678 6950 moveto(as)s 3937 x(a)s
  883. X4103 x(binary)s 4774 x(operator)s 
  884. X/Helvetica 220 fnt
  885. X1897 6658 moveto(rel x)s 
  886. X/Times-Roman 240 fnt
  887. X2945 6662 moveto(Treat)s 
  888. X/Helvetica 220 fnt
  889. X3508 6658 moveto(x)s
  890. X
  891. X/Times-Roman 240 fnt
  892. X3678 6662 moveto(as)s 3937 x(a)s 4103 x(relation)s 
  893. X/Helvetica 220 fnt
  894. X1897 6370 moveto(punct x)s 
  895. X/Times-Roman 240 fnt
  896. X2945 6374 moveto(Treat)s
  897. X
  898. X/Helvetica 220 fnt
  899. X3508 6370 moveto(x)s 
  900. X/Times-Roman 240 fnt
  901. X3678 6374 moveto(as)s 3937 x(a)s 4103 x(punctuation)s 5293 x(symbol)s
  902. X
  903. X/Helvetica 220 fnt
  904. X1897 6082 moveto(non x)s 
  905. X/Times-Roman 240 fnt
  906. X2945 6086 moveto(Remove)s 3803 x(spaces)s 4487 x(normally)s 5410 x(put)s
  907. X5776 x(into)s 
  908. X/Helvetica 220 fnt
  909. X6208 6082 moveto(x)s 1897 5794 moveto(vctr x)s 
  910. X/Times-Roman 240 fnt
  911. X2945 5798 moveto(Centre)s 
  912. X/Helvetica 220 fnt
  913. X3642 5794 moveto(x)s
  914. X
  915. X/Times-Roman 240 fnt
  916. X3812 5798 moveto(vertically)s 
  917. X/Helvetica 220 fnt
  918. X1897 5506 moveto(big x)s 
  919. X/Times-Roman 240 fnt
  920. X2945 5510 moveto(Make)s 
  921. X/Helvetica 220 fnt
  922. X3550 5506 moveto(x)s 
  923. X/Times-Roman 240 fnt
  924. X3720 5510 moveto(larger)s
  925. X1417 4969 moveto(Here)s 1999 x(are)s 2408 x(all)s 2764 x(the)s 3174 x(parameterized)s
  926. X4644 x(symbols,)s 5620 x(shown)s 6364 x(in)s 6668 x(groups)s 7438 x(of)s
  927. X7755 x(equal)s 8391 x(precedence,)s 9644 x(with)s 10187 x(the)s 1417 4681 moveto(precedence)s
  928. X2552 x(itself)s 3088 x(at)s 3320 x(right:)s 
  929. X/Helvetica 220 fnt
  930. X1897 4176 moveto(matrix not)s 
  931. X/Times-Roman 240 fnt
  932. X2920 4180 moveto(\(100\))s
  933. X
  934. X/Helvetica 220 fnt
  935. X1897 3888 moveto(dot dotdot hat tilde vec dyad overbar underbar)s 
  936. X/Times-Roman 240 fnt
  937. X6445 3892 moveto(\(62\))s 
  938. X/Helvetica 220 fnt
  939. X1897 3600 moveto(sup sub supp)s 
  940. X/Times-Roman 240 fnt
  941. X3263 3604 moveto(\(60\))s 3841 x(on)s
  942. X4141 x(\(61\))s 
  943. X/Helvetica 220 fnt
  944. X1897 3312 moveto(from to widefrom wideto)s 
  945. X/Times-Roman 240 fnt
  946. X4284 3316 moveto(\(58\))s 
  947. X/Helvetica 220 fnt
  948. X1897 3024 moveto(sqrt root)s 
  949. X/Times-Roman 240 fnt
  950. X2762 3028 moveto(\(56\))s
  951. X
  952. X/Helvetica 220 fnt
  953. X1897 2736 moveto(over)s 
  954. X/Times-Roman 240 fnt
  955. X2384 2740 moveto(frac)s 2814 x(\(54\))s 
  956. X/Helvetica 220 fnt
  957. X1897 2448 moveto(above labove cabove rabove mabove)s 
  958. X/Times-Roman 240 fnt
  959. X5605 2452 moveto(\(52\))s
  960. X
  961. X/Helvetica 220 fnt
  962. X1897 2160 moveto(nextcol)s 
  963. X/Times-Roman 240 fnt
  964. X2652 2164 moveto(\(50\))s 1417 1671 moveto(See)s 1822 x(page)s 2334 x(3)s
  965. X2514 x(for)s 2852 x(examples)s 3815 x(of)s 4074 x(matrices.)s 5062 x(Here)s
  966. X5586 x(are)s 5937 x(some)s 6502 x(examples)s 7465 x(of)s 7724 x(the)s
  967. X8076 x(other)s 8627 x(symbols:)s 
  968. Xpgsave restore
  969. Xshowpage
  970. X
  971. X%%Page: ? 9
  972. X%%BeginPageSetup
  973. X0.0500 dup scale 10 setlinewidth
  974. X/pgsave save def
  975. X%%EndPageSetup
  976. X
  977. X/Times-Roman 240 fnt
  978. X5754 15261 moveto(-)s 5893 x(8)s 6073 x(-)s 
  979. X/Helvetica 220 fnt
  980. X1897 14640 moveto(x dot)s 
  981. X/Times-Italic 168 fnt
  982. X5904 14795 moveto(.)s
  983. X
  984. X/Times-Italic 240 fnt
  985. X5866 14644 moveto(x)s 
  986. X/Helvetica 220 fnt
  987. X1897 14155 moveto(x dotdot)s 
  988. X/Times-Italic 168 fnt
  989. X5883 14310 moveto(..)s 
  990. X/Times-Italic 240 fnt
  991. X5866 14159 moveto(x)s 
  992. X/Helvetica 220 fnt
  993. X1897 13636 moveto(x hat)s
  994. X
  995. X/Times-Roman 168 fnt
  996. X5886 13752 moveto(^)s 
  997. X/Times-Italic 240 fnt
  998. X5866 13640 moveto(x)s 
  999. X/Helvetica 220 fnt
  1000. X1897 13162 moveto(x tilde)s 
  1001. X/Times-Roman 168 fnt
  1002. X5880 13286 moveto(~)s 
  1003. X/Times-Italic 240 fnt
  1004. X5866 13166 moveto(x)s
  1005. X
  1006. X/Helvetica 220 fnt
  1007. X1897 12629 moveto(x vec)s 
  1008. X/Symbol 168 fnt
  1009. X5878 12784 moveto(\256)s 
  1010. X/Times-Italic 240 fnt
  1011. X5901 12633 moveto(x)s 
  1012. X/Helvetica 220 fnt
  1013. X1897 12096 moveto(x dyad)s 
  1014. X/Symbol 168 fnt
  1015. X5878 12251 moveto(\253)s
  1016. X
  1017. X/Times-Italic 240 fnt
  1018. X5906 12100 moveto(x)s 
  1019. X/Helvetica 220 fnt
  1020. X1897 11580 moveto(x+y overbar)s gsave
  1021. X5866 0 translate
  1022. X3.4885 1.0000 scale
  1023. X
  1024. X/Symbol 240 fnt
  1025. X0 11691 moveto(-)s 
  1026. Xgrestore
  1027. X
  1028. X/Times-Italic 240 fnt
  1029. X5866 11584 moveto(x)s 
  1030. X/Symbol 240 fnt
  1031. X6029 11577 moveto(+)s
  1032. X
  1033. X/Times-Italic 240 fnt
  1034. X6217 11584 moveto(y)s 
  1035. X/Helvetica 220 fnt
  1036. X1897 11085 moveto(x+y underbar)s 
  1037. X/Times-Italic 240 fnt
  1038. X5866 11089 moveto(x)s 
  1039. X/Symbol 240 fnt
  1040. X6029 11082 moveto(+)s 
  1041. X/Times-Italic 240 fnt
  1042. X6217 11089 moveto(y)s
  1043. Xgsave
  1044. X5866 0 translate
  1045. X3.4885 1.0000 scale
  1046. X
  1047. X/Symbol 240 fnt
  1048. X0 10927 moveto(-)s 
  1049. Xgrestore
  1050. X
  1051. X/Times-Roman 240 fnt
  1052. X1417 10533 moveto(These)s 2053 x(marks)s 2702 x(are)s 3058 x(centred)s
  1053. X3826 x(over)s 4316 x(the)s 4673 x(left)s 5055 x(parameter,)s 6134 x(except)s
  1054. X6823 x(the)s 7180 x(last)s 7576 x(two)s 8000 x(which)s 8650 x(are)s
  1055. X9006 x(extended)s 9935 x(to)s 10186 x(the)s 1417 10245 moveto(width)s 2022 x(of)s
  1056. X2281 x(the)s 2633 x(object.)s 
  1057. X/Helvetica 220 fnt
  1058. X1897 9675 moveto(a sup b)s 
  1059. X/Times-Italic 168 fnt
  1060. X5986 9791 moveto(b)s 
  1061. X/Times-Italic 240 fnt
  1062. X5866 9679 moveto(a)s
  1063. X
  1064. X/Helvetica 220 fnt
  1065. X1897 9180 moveto(a sub b)s 
  1066. X/Times-Italic 240 fnt
  1067. X5866 9184 moveto(a)s 
  1068. X/Times-Italic 168 fnt
  1069. X5986 9104 moveto(b)s 
  1070. X/Helvetica 220 fnt
  1071. X1897 8584 moveto(a supp b on c)s 
  1072. X/Times-Italic 240 fnt
  1073. X5866 8588 moveto(a)s
  1074. X
  1075. X/Times-Italic 168 fnt
  1076. X5986 8700 moveto(b)s 5986 8508 moveto(c)s 
  1077. X/Times-Roman 240 fnt
  1078. X1417 8056 moveto(Note)s 1942 x(that)s 
  1079. X/Helvetica 220 fnt
  1080. X2360 8052 moveto(supp)s
  1081. X
  1082. X/Times-Roman 240 fnt
  1083. X2896 8056 moveto(and)s 
  1084. X/Helvetica 220 fnt
  1085. X3302 8052 moveto(on)s 
  1086. X/Times-Roman 240 fnt
  1087. X3606 8056 moveto(must)s 4131 x(be)s 4417 x(used)s
  1088. X4916 x(together)s 5759 x(as)s 6018 x(shown.)s 
  1089. X/Helvetica 220 fnt
  1090. X1897 7503 moveto(big sum from i)s 
  1091. X/Symbol 312 fnt
  1092. X5866 7482 moveto(\345)s
  1093. X
  1094. X/Times-Italic 168 fnt
  1095. X5954 7296 moveto(i)s 
  1096. X/Helvetica 220 fnt
  1097. X1897 6605 moveto(big prod to j)s 
  1098. X/Times-Italic 168 fnt
  1099. X5971 6896 moveto(j)s 
  1100. X/Symbol 312 fnt
  1101. X5866 6584 moveto(\325)s 
  1102. X/Helvetica 220 fnt
  1103. X1897 6105 moveto({a, ... , z} widefrom)s
  1104. X1897 5817 moveto({90d @Rotate blbrace})s 
  1105. X/Times-Italic 240 fnt
  1106. X5866 6109 moveto(a)s 
  1107. X/Symbol 240 fnt
  1108. X5986 6102 moveto(\054)s 6089 x(\274)s 6329 x(\054)s
  1109. X
  1110. X/Times-Italic 240 fnt
  1111. X6432 6109 moveto(z)s gsave
  1112. X6235 0 translate
  1113. X0.9140 1.0000 scale
  1114. Xgsave
  1115. X0 5905 translate
  1116. X90.0000 rotate
  1117. X
  1118. X/Symbol 240 fnt
  1119. X0 182 moveto(\354)s 0 -60 moveto(\355)s 0 -302 moveto(\356)s 
  1120. Xgrestore
  1121. X
  1122. Xgrestore
  1123. X
  1124. X/Helvetica 220 fnt
  1125. X1897 5316 moveto({a, ... , z} wideto minus)s
  1126. Xgsave
  1127. X5866 0 translate
  1128. X5.0305 1.0000 scale
  1129. X
  1130. X/Symbol 240 fnt
  1131. X0 5413 moveto(-)s 
  1132. Xgrestore
  1133. X
  1134. X/Times-Italic 240 fnt
  1135. X5866 5320 moveto(a)s 
  1136. X/Symbol 240 fnt
  1137. X5986 5313 moveto(\054)s 6089 x(\274)s 6329 x(\054)s
  1138. X
  1139. X/Times-Italic 240 fnt
  1140. X6432 5320 moveto(z)s 
  1141. X/Helvetica 220 fnt
  1142. X1417 4815 moveto(widefrom)s 
  1143. X/Times-Roman 240 fnt
  1144. X2364 4819 moveto(and)s 
  1145. X/Helvetica 220 fnt
  1146. X2768 4815 moveto(wideto)s 
  1147. X/Times-Roman 240 fnt
  1148. X3459 4819 moveto(are)s
  1149. X3808 x(like)s 
  1150. X/Helvetica 220 fnt
  1151. X4224 4815 moveto(from)s 
  1152. X/Times-Roman 240 fnt
  1153. X4721 4819 moveto(and)s 
  1154. X/Helvetica 220 fnt
  1155. X5125 4815 moveto(to)s 
  1156. X/Times-Roman 240 fnt
  1157. X5366 4819 moveto(except)s
  1158. X6048 x(that)s 6464 x(they)s 6934 x(horizontally)s 8147 x(scale)s 8682 x(the)s
  1159. X9032 x(right)s 9541 x(parameter)s 1417 4531 moveto(to)s 1663 x(the)s 2015 x(width)s
  1160. X2620 x(of)s 2879 x(the)s 3231 x(left.)s 
  1161. X/Helvetica 220 fnt
  1162. X1897 3983 moveto(sqrt {x over y})s gsave
  1163. X0 3928 translate
  1164. X1.0000 1.9476 scale
  1165. X
  1166. X/Symbol 240 fnt
  1167. X5866 -60 moveto(\326)s
  1168. X
  1169. Xgrestore
  1170. Xgsave
  1171. X5997 4239 translate
  1172. X149 0 0 0 240 288 0 loutgr
  1173. Xgsave
  1174. X0 0 moveto xsize 0 lineto 0.03 ft setlinewidth 2 setlinecap stroke
  1175. Xgrestore
  1176. X
  1177. Xgrestore
  1178. X
  1179. X/Times-Italic 240 fnt
  1180. X6040 4090 moveto(x)s gsave
  1181. X6040 4040 translate
  1182. X106 0 0 0 240 288 0 loutgr
  1183. Xgsave
  1184. X0 0 moveto xsize 0 lineto 0.05 ft setlinewidth stroke
  1185. Xgrestore
  1186. X
  1187. Xgrestore
  1188. X
  1189. X/Times-Italic 240 fnt
  1190. X6040 3886 moveto(y)s 
  1191. X/Helvetica 220 fnt
  1192. X1897 3249 moveto(3 root {x over y})s 
  1193. X/Symbol 168 fnt
  1194. X5866 3360 moveto(\063)s 
  1195. X/Times-Italic 240 fnt
  1196. X5866 3253 moveto()s
  1197. Xgsave
  1198. X0 3194 translate
  1199. X1.0000 1.9476 scale
  1200. X
  1201. X/Symbol 240 fnt
  1202. X5866 -60 moveto(\326)s 
  1203. Xgrestore
  1204. Xgsave
  1205. X5997 3505 translate
  1206. X149 0 0 0 240 288 0 loutgr
  1207. Xgsave
  1208. X0 0 moveto xsize 0 lineto 0.03 ft setlinewidth 2 setlinecap stroke
  1209. Xgrestore
  1210. X
  1211. Xgrestore
  1212. X
  1213. X/Times-Italic 240 fnt
  1214. X6040 3356 moveto(x)s gsave
  1215. X6040 3306 translate
  1216. X106 0 0 0 240 288 0 loutgr
  1217. Xgsave
  1218. X0 0 moveto xsize 0 lineto 0.05 ft setlinewidth stroke
  1219. Xgrestore
  1220. X
  1221. Xgrestore
  1222. X
  1223. X/Times-Italic 240 fnt
  1224. X6040 3152 moveto(y)s 
  1225. X/Times-Roman 240 fnt
  1226. X1417 2609 moveto(The)s 1849 x(left)s
  1227. X2226 x(parameter)s 3240 x(of)s 
  1228. X/Helvetica 220 fnt
  1229. X3499 2605 moveto(root)s 
  1230. X/Times-Roman 240 fnt
  1231. X3937 2609 moveto(may)s 4409 x(be)s
  1232. X4695 x(any)s 5101 x(object.)s 
  1233. X/Helvetica 220 fnt
  1234. X1897 2000 moveto(2 over 3)s 
  1235. X/Symbol 240 fnt
  1236. X5866 2105 moveto(\062)s gsave
  1237. X5866 2057 translate
  1238. X120 0 0 0 240 288 0 loutgr
  1239. Xgsave
  1240. X0 0 moveto xsize 0 lineto 0.05 ft setlinewidth stroke
  1241. Xgrestore
  1242. X
  1243. Xgrestore
  1244. X
  1245. X/Symbol 240 fnt
  1246. X5866 1845 moveto(\063)s
  1247. X
  1248. Xpgsave restore
  1249. Xshowpage
  1250. X
  1251. X%%Page: ? 10
  1252. X%%BeginPageSetup
  1253. X0.0500 dup scale 10 setlinewidth
  1254. X/pgsave save def
  1255. X%%EndPageSetup
  1256. X
  1257. X/Times-Roman 240 fnt
  1258. X5754 15261 moveto(-)s 5893 x(9)s 6073 x(-)s 
  1259. X/Helvetica 220 fnt
  1260. X1897 14629 moveto(2 frac 3)s 
  1261. X/Symbol 168 fnt
  1262. X5866 14715 moveto(\062)s
  1263. X5950 14644 moveto(\244)s 5978 14571 moveto(\063)s 
  1264. X/Times-Roman 240 fnt
  1265. X1417 14119 moveto(The)s 1849 x(following)s 2839 x(short)s
  1266. X3377 x(names)s 4048 x(de\256ne)s 4693 x(relations)s 5575 x(\(that)s 6072 x(is,)s
  1267. X6351 x(they)s 6823 x(have)s 7335 x(a)s 7501 x(thick)s 8039 x(space)s
  1268. X8630 x(on)s 8930 x(each)s 9428 x(side\):)s 
  1269. X/Helvetica 220 fnt
  1270. X3017 13657 moveto(<)s 
  1271. X/Symbol 240 fnt
  1272. X3505 13654 moveto(\074)s
  1273. X
  1274. X/Helvetica 220 fnt
  1275. X5885 13657 moveto(>)s 
  1276. X/Symbol 240 fnt
  1277. X6373 13654 moveto(\076)s 
  1278. X/Helvetica 220 fnt
  1279. X8753 13657 moveto(=)s 
  1280. X/Symbol 240 fnt
  1281. X9241 13654 moveto(\075)s 
  1282. X/Helvetica 220 fnt
  1283. X2889 13369 moveto(<=)s
  1284. X
  1285. X/Symbol 240 fnt
  1286. X3505 13366 moveto(\243)s 
  1287. X/Helvetica 220 fnt
  1288. X5586 13369 moveto(prec)s gsave
  1289. X6430 13426 translate
  1290. X-90.0000 rotate
  1291. X
  1292. X/Symbol 108 fnt
  1293. X-41 -27 moveto(\366)s 0 x(\346)s 
  1294. Xgrestore
  1295. X
  1296. X/Helvetica 220 fnt
  1297. X8210 13369 moveto(preceq)s
  1298. Xgsave
  1299. X9298 13426 translate
  1300. X-90.0000 rotate
  1301. X
  1302. X/Symbol 108 fnt
  1303. X-41 -27 moveto(\366)s 0 x(\346)s 
  1304. Xgrestore
  1305. X
  1306. X/Symbol 240 fnt
  1307. X9241 13292 moveto(-)s 
  1308. X/Helvetica 220 fnt
  1309. X2889 13081 moveto(<<)s 
  1310. X/Symbol 240 fnt
  1311. X3505 13078 moveto(\074)s
  1312. X3636 x(\074)s 
  1313. X/Helvetica 220 fnt
  1314. X5366 13081 moveto(subset)s 
  1315. X/Symbol 240 fnt
  1316. X6373 13078 moveto(\314)s 
  1317. X/Helvetica 220 fnt
  1318. X7990 13081 moveto(subseteq)s 
  1319. X/Symbol 240 fnt
  1320. X9241 13078 moveto(\315)s
  1321. X
  1322. X/Helvetica 220 fnt
  1323. X2022 12793 moveto(sqsubseteq)s gsave
  1324. X3505 12790 translate
  1325. X131 120 0 60 240 288 0 loutgr
  1326. Xgsave
  1327. Xxsize 0 moveto
  1328. X0 0 lineto
  1329. X0 ysize lineto
  1330. Xxsize ysize lineto
  1331. X0.04 ft setlinewidth stroke
  1332. Xgrestore
  1333. X
  1334. Xgrestore
  1335. X
  1336. X/Symbol 240 fnt
  1337. X3505 12697 moveto(-)s 
  1338. X/Helvetica 220 fnt
  1339. X5843 12793 moveto(in)s 
  1340. X/Symbol 240 fnt
  1341. X6373 12790 moveto(\316)s 
  1342. X/Helvetica 220 fnt
  1343. X8295 12793 moveto(vdash)s
  1344. Xgsave
  1345. X9301 12850 translate
  1346. X-180.0000 rotate
  1347. Xgsave
  1348. X0 -78 translate
  1349. X180.0000 rotate
  1350. Xgsave
  1351. X0 0 translate
  1352. X-90.0000 rotate
  1353. X
  1354. X/Symbol 240 fnt
  1355. X0 -60 moveto(\136)s 
  1356. Xgrestore
  1357. X
  1358. Xgrestore
  1359. X
  1360. Xgrestore
  1361. Xgsave
  1362. X9301 12929 translate
  1363. X-90.0000 rotate
  1364. X
  1365. X/Symbol 240 fnt
  1366. X0 -60 moveto(\136)s 
  1367. Xgrestore
  1368. X
  1369. X/Helvetica 220 fnt
  1370. X2634 12505 moveto(smile)s gsave
  1371. X3606 12562 translate
  1372. X-180.0000 rotate
  1373. Xgsave
  1374. X0 -39 translate
  1375. X180.0000 rotate
  1376. Xgsave
  1377. X0 -79 translate
  1378. X90.0000 rotate
  1379. X
  1380. X/Symbol 240 fnt
  1381. X0 -60 moveto(\050)s 
  1382. Xgrestore
  1383. X
  1384. Xgrestore
  1385. X
  1386. Xgrestore
  1387. Xgsave
  1388. X3606 12523 translate
  1389. X90.0000 rotate
  1390. X
  1391. X/Symbol 240 fnt
  1392. X0 -60 moveto(\050)s
  1393. X
  1394. Xgrestore
  1395. X
  1396. X/Helvetica 220 fnt
  1397. X5477 12505 moveto(frown)s gsave
  1398. X6474 12562 translate
  1399. X-180.0000 rotate
  1400. Xgsave
  1401. X0 -39 translate
  1402. X180.0000 rotate
  1403. Xgsave
  1404. X0 -79 translate
  1405. X90.0000 rotate
  1406. X
  1407. X/Symbol 240 fnt
  1408. X0 -60 moveto(\051)s 
  1409. Xgrestore
  1410. X
  1411. Xgrestore
  1412. X
  1413. Xgrestore
  1414. Xgsave
  1415. X6474 12523 translate
  1416. X90.0000 rotate
  1417. X
  1418. X/Symbol 240 fnt
  1419. X0 -60 moveto(\051)s 
  1420. Xgrestore
  1421. X
  1422. X/Helvetica 220 fnt
  1423. X8625 12505 moveto(>=)s 
  1424. X/Symbol 240 fnt
  1425. X9241 12502 moveto(\263)s
  1426. X
  1427. X/Helvetica 220 fnt
  1428. X2693 12217 moveto(succ)s gsave
  1429. X3577 12274 translate
  1430. X90.0000 rotate
  1431. X
  1432. X/Symbol 108 fnt
  1433. X-41 -27 moveto(\366)s 0 x(\346)s 
  1434. Xgrestore
  1435. X
  1436. X/Helvetica 220 fnt
  1437. X5317 12217 moveto(succeq)s gsave
  1438. X6445 12274 translate
  1439. X90.0000 rotate
  1440. X
  1441. X/Symbol 108 fnt
  1442. X-41 -27 moveto(\366)s
  1443. X0 x(\346)s 
  1444. Xgrestore
  1445. X
  1446. X/Symbol 240 fnt
  1447. X6373 12140 moveto(-)s 
  1448. X/Helvetica 220 fnt
  1449. X8625 12217 moveto(>>)s 
  1450. X/Symbol 240 fnt
  1451. X9241 12214 moveto(\076)s 9372 x(\076)s
  1452. X
  1453. X/Helvetica 220 fnt
  1454. X2498 11929 moveto(supset)s 
  1455. X/Symbol 240 fnt
  1456. X3505 11926 moveto(\311)s 
  1457. X/Helvetica 220 fnt
  1458. X5122 11929 moveto(supseteq)s 
  1459. X/Symbol 240 fnt
  1460. X6373 11926 moveto(\312)s 
  1461. X/Helvetica 220 fnt
  1462. X7758 11929 moveto(sqsupseteq)s
  1463. Xgsave
  1464. X9241 11926 translate
  1465. X131 120 0 60 240 288 0 loutgr
  1466. Xgsave
  1467. X0 0 moveto xsize 0 lineto
  1468. Xxsize ysize lineto
  1469. X0 ysize lineto
  1470. X0.04 ft setlinewidth stroke
  1471. Xgrestore
  1472. X
  1473. Xgrestore
  1474. X
  1475. X/Symbol 240 fnt
  1476. X9241 11833 moveto(-)s 
  1477. X/Helvetica 220 fnt
  1478. X2975 11641 moveto(ni)s gsave
  1479. X3676 11698 translate
  1480. X180.0000 rotate
  1481. X
  1482. X/Symbol 240 fnt
  1483. X0 -60 moveto(\316)s 
  1484. Xgrestore
  1485. X
  1486. X/Helvetica 220 fnt
  1487. X5427 11641 moveto(dashv)s gsave
  1488. X6474 11698 translate
  1489. X-180.0000 rotate
  1490. Xgsave
  1491. X0 -78 translate
  1492. X180.0000 rotate
  1493. Xgsave
  1494. X0 -157 translate
  1495. X90.0000 rotate
  1496. X
  1497. X/Symbol 240 fnt
  1498. X0 -60 moveto(\136)s
  1499. X
  1500. Xgrestore
  1501. X
  1502. Xgrestore
  1503. X
  1504. Xgrestore
  1505. Xgsave
  1506. X6474 11620 translate
  1507. X90.0000 rotate
  1508. X
  1509. X/Symbol 240 fnt
  1510. X0 -60 moveto(\136)s 
  1511. Xgrestore
  1512. X
  1513. X/Helvetica 220 fnt
  1514. X8528 11641 moveto(mid)s 
  1515. X/Times-Roman 240 fnt
  1516. X9241 11645 moveto(|)s 
  1517. X/Helvetica 220 fnt
  1518. X2440 11353 moveto(parallel)s 
  1519. X/Times-Roman 240 fnt
  1520. X3505 11357 moveto(||)s
  1521. X
  1522. X/Helvetica 220 fnt
  1523. X5757 11353 moveto(==)s 
  1524. X/Symbol 240 fnt
  1525. X6373 11350 moveto(\272)s 
  1526. X/Helvetica 220 fnt
  1527. X8753 11353 moveto(~)s 
  1528. X/Symbol 240 fnt
  1529. X9241 11350 moveto(\176)s 
  1530. X/Helvetica 220 fnt
  1531. X2944 11065 moveto(-~)s
  1532. X
  1533. X/Symbol 240 fnt
  1534. X3505 11089 moveto(\176)s 3505 11037 moveto(-)s 
  1535. X/Helvetica 220 fnt
  1536. X5366 11065 moveto(asymp)s gsave
  1537. X6444 11123 translate
  1538. X90.0000 rotate
  1539. X
  1540. X/Symbol 168 fnt
  1541. X0 -42 moveto(\050)s 
  1542. Xgrestore
  1543. Xgsave
  1544. X6444 11066 translate
  1545. X90.0000 rotate
  1546. X
  1547. X/Symbol 168 fnt
  1548. X0 -42 moveto(\051)s
  1549. X
  1550. Xgrestore
  1551. X
  1552. X/Helvetica 220 fnt
  1553. X8625 11065 moveto(~~)s 
  1554. X/Symbol 240 fnt
  1555. X9241 11062 moveto(\273)s 
  1556. X/Helvetica 220 fnt
  1557. X2889 10777 moveto(=~)s 
  1558. X/Symbol 240 fnt
  1559. X3505 10774 moveto(\100)s 
  1560. X/Helvetica 220 fnt
  1561. X5380 10777 moveto(bowtie)s
  1562. Xgsave
  1563. X6430 10834 translate
  1564. X-90.0000 rotate
  1565. Xgsave
  1566. X-57 -57 translate
  1567. X114 114 57 57 192 0 48 loutgr
  1568. Xgsave
  1569. X0 0 moveto xsize 0 lineto
  1570. Xxsize 2 div ysize lineto closepath
  1571. X0.04 ft setlinewidth stroke
  1572. Xgrestore
  1573. X
  1574. Xgrestore
  1575. X
  1576. Xgrestore
  1577. Xgsave
  1578. X6544 10834 translate
  1579. X90.0000 rotate
  1580. Xgsave
  1581. X-57 -57 translate
  1582. X114 114 57 57 192 0 48 loutgr
  1583. Xgsave
  1584. X0 0 moveto xsize 0 lineto
  1585. Xxsize 2 div ysize lineto closepath
  1586. X0.04 ft setlinewidth stroke
  1587. Xgrestore
  1588. X
  1589. Xgrestore
  1590. X
  1591. Xgrestore
  1592. X
  1593. X/Helvetica 220 fnt
  1594. X8259 10777 moveto(propto)s 
  1595. X/Symbol 240 fnt
  1596. X9241 10774 moveto(\265)s 
  1597. X/Helvetica 220 fnt
  1598. X2438 10489 moveto(models)s gsave
  1599. X3505 10546 translate
  1600. X-180.0000 rotate
  1601. Xgsave
  1602. X0 -81 translate
  1603. X180.0000 rotate
  1604. X
  1605. X/Times-Roman 240 fnt
  1606. X0 -162 moveto(|)s 
  1607. Xgrestore
  1608. X
  1609. Xgrestore
  1610. X
  1611. X/Times-Roman 240 fnt
  1612. X3505 10465 moveto(|)s
  1613. Xgsave
  1614. X3517 10546 translate
  1615. X-180.0000 rotate
  1616. Xgsave
  1617. X0 -29 translate
  1618. X180.0000 rotate
  1619. X
  1620. X/Symbol 240 fnt
  1621. X0 -93 moveto(\075)s 
  1622. Xgrestore
  1623. X
  1624. Xgrestore
  1625. X
  1626. X/Symbol 240 fnt
  1627. X3517 10483 moveto(\075)s 
  1628. X/Helvetica 220 fnt
  1629. X5464 10489 moveto(doteq)s 
  1630. X/Symbol 240 fnt
  1631. X6408 10564 moveto(\327)s 6373 10486 moveto(\075)s
  1632. X
  1633. X/Helvetica 220 fnt
  1634. X8442 10489 moveto(perp)s 
  1635. X/Symbol 240 fnt
  1636. X9241 10486 moveto(\136)s 
  1637. X/Helvetica 220 fnt
  1638. X2486 10201 moveto(notsub)s 
  1639. X/Symbol 240 fnt
  1640. X3505 10198 moveto(\313)s 
  1641. X/Helvetica 220 fnt
  1642. X5538 10201 moveto(notin)s
  1643. X
  1644. X/Symbol 240 fnt
  1645. X6373 10198 moveto(\317)s 
  1646. X/Helvetica 220 fnt
  1647. X8692 10201 moveto(!=)s 
  1648. X/Symbol 240 fnt
  1649. X9241 10198 moveto(\271)s 
  1650. X/Helvetica 220 fnt
  1651. X2816 9913 moveto(<->)s 
  1652. X/Symbol 240 fnt
  1653. X3505 9910 moveto(\253)s
  1654. X
  1655. X/Helvetica 220 fnt
  1656. X5739 9913 moveto(<--)s 
  1657. X/Symbol 240 fnt
  1658. X6373 9910 moveto(\254)s 
  1659. X/Helvetica 220 fnt
  1660. X8607 9913 moveto(-->)s 
  1661. X/Symbol 240 fnt
  1662. X9241 9910 moveto(\256)s 
  1663. X/Helvetica 220 fnt
  1664. X2901 9625 moveto(up)s
  1665. X
  1666. X/Symbol 240 fnt
  1667. X3505 9622 moveto(\255)s 
  1668. X/Helvetica 220 fnt
  1669. X5489 9625 moveto(down)s 
  1670. X/Symbol 240 fnt
  1671. X6373 9622 moveto(\257)s 
  1672. X/Helvetica 220 fnt
  1673. X8497 9625 moveto(<=>)s 
  1674. X/Symbol 240 fnt
  1675. X9241 9622 moveto(\333)s
  1676. X
  1677. X/Helvetica 220 fnt
  1678. X2761 9337 moveto(<==)s 
  1679. X/Symbol 240 fnt
  1680. X3505 9334 moveto(\334)s 
  1681. X/Helvetica 220 fnt
  1682. X5629 9337 moveto(==>)s 
  1683. X/Symbol 240 fnt
  1684. X6373 9334 moveto(\336)s 
  1685. X/Helvetica 220 fnt
  1686. X8345 9337 moveto(dblup)s
  1687. X
  1688. X/Symbol 240 fnt
  1689. X9241 9334 moveto(\335)s 
  1690. X/Helvetica 220 fnt
  1691. X2329 9049 moveto(dbldown)s 
  1692. X/Symbol 240 fnt
  1693. X3505 9046 moveto(\337)s 
  1694. X/Helvetica 220 fnt
  1695. X5952 9049 moveto(:)s 
  1696. X/Symbol 240 fnt
  1697. X6373 9046 moveto(\072)s
  1698. X
  1699. X/Helvetica 220 fnt
  1700. X8759 9049 moveto(::)s 
  1701. X/Symbol 240 fnt
  1702. X9241 9046 moveto(\072)s 9350 x(\072)s 
  1703. X/Helvetica 220 fnt
  1704. X2956 8761 moveto(:=)s 
  1705. X/Symbol 240 fnt
  1706. X3505 8758 moveto(\072)s
  1707. X3571 8746 moveto(\075)s 
  1708. X/Times-Roman 240 fnt
  1709. X1417 8304 moveto(These)s 2053 x(can)s 2450 x(be)s 2741 x(negated)s
  1710. X3550 x(by)s 3855 x(preceding)s 4863 x(them)s 5406 x(with)s 
  1711. X/Helvetica 220 fnt
  1712. X5896 8300 moveto(not)s
  1713. X
  1714. X/Times-Roman 240 fnt
  1715. X6201 8304 moveto(,)s 6326 x(as)s 6590 x(in)s 
  1716. X/Helvetica 220 fnt
  1717. X6841 8300 moveto(not ==)s 
  1718. X/Times-Roman 240 fnt
  1719. X7463 8304 moveto(,)s
  1720. X7588 x(for)s 7931 x(example,)s 8866 x(which)s 9516 x(yields)s 
  1721. X/Symbol 240 fnt
  1722. X10224 8297 moveto(\272)s
  1723. X10256 x(\057)s 
  1724. X/Times-Roman 240 fnt
  1725. X10427 8304 moveto(.)s 1417 8016 moveto(The)s 1849 x(following)s 2839 x(short)s
  1726. X3377 x(names)s 4048 x(de\256ne)s 4693 x(binary)s 5364 x(operators)s 6313 x(\(medium)s
  1727. X7236 x(space)s 7827 x(on)s 8127 x(each)s 8625 x(side\):)s 
  1728. X/Helvetica 220 fnt
  1729. X3017 7525 moveto(+)s
  1730. X
  1731. X/Symbol 240 fnt
  1732. X3490 7522 moveto(+)s 
  1733. X/Helvetica 220 fnt
  1734. X5940 7525 moveto(-)s 
  1735. X/Symbol 240 fnt
  1736. X6358 7522 moveto(-)s 
  1737. X/Helvetica 220 fnt
  1738. X8680 7525 moveto(+-)s 
  1739. X/Symbol 240 fnt
  1740. X9226 7522 moveto(\261)s
  1741. X
  1742. X/Helvetica 220 fnt
  1743. X2944 7237 moveto(-+)s gsave
  1744. X3621 7294 translate
  1745. X180.0000 rotate
  1746. X
  1747. X/Symbol 240 fnt
  1748. X0 -60 moveto(\261)s 
  1749. Xgrestore
  1750. X
  1751. X/Helvetica 220 fnt
  1752. X5135 7237 moveto(setminus)s 
  1753. X/Times-Italic 240 fnt
  1754. X6358 7241 moveto(\\)s 
  1755. X/Helvetica 220 fnt
  1756. X8466 7237 moveto(cdot)s
  1757. X
  1758. X/Symbol 240 fnt
  1759. X9226 7234 moveto(\327)s 
  1760. X/Helvetica 220 fnt
  1761. X2621 6949 moveto(times)s 
  1762. X/Symbol 240 fnt
  1763. X3490 6946 moveto(\264)s 
  1764. X/Helvetica 220 fnt
  1765. X5928 6949 moveto(*)s 
  1766. X/Symbol 240 fnt
  1767. X6358 6946 moveto(\052)s
  1768. X
  1769. X/Helvetica 220 fnt
  1770. X8540 6949 moveto(circ)s gsave
  1771. X9226 6934 translate
  1772. X168 144 0 72 240 288 0 loutgr
  1773. Xgsave
  1774. Xxsize ysize 2 div moveto
  1775. Xxsize 2 div ysize 2 div xsize 2 div 0 360 arc
  1776. X0.04 ft setlinewidth stroke
  1777. Xgrestore
  1778. X
  1779. Xgrestore
  1780. X
  1781. X/Helvetica 220 fnt
  1782. X2865 6661 moveto(div)s 
  1783. X/Symbol 240 fnt
  1784. X3490 6658 moveto(\270)s 
  1785. X/Helvetica 220 fnt
  1786. X5659 6661 moveto(cap)s 
  1787. X/Symbol 240 fnt
  1788. X6358 6658 moveto(\307)s
  1789. X
  1790. X/Helvetica 220 fnt
  1791. X8527 6661 moveto(cup)s 
  1792. X/Symbol 240 fnt
  1793. X9226 6658 moveto(\310)s 
  1794. X/Helvetica 220 fnt
  1795. X2621 6373 moveto(uplus)s 
  1796. X/Symbol 168 fnt
  1797. X3536 6436 moveto(+)s 
  1798. X/Symbol 240 fnt
  1799. X3490 6370 moveto(\310)s
  1800. X
  1801. X/Helvetica 220 fnt
  1802. X5427 6373 moveto(sqcap)s gsave
  1803. X6358 6358 translate
  1804. X144 144 72 72 240 288 0 loutgr
  1805. Xgsave
  1806. X0 0 moveto 0 ysize lineto xsize ysize lineto
  1807. Xxsize 0 lineto
  1808. X0.04 ft setlinewidth stroke
  1809. Xgrestore
  1810. X
  1811. Xgrestore
  1812. X
  1813. X/Helvetica 220 fnt
  1814. X8295 6373 moveto(sqcup)s gsave
  1815. X9427 6430 translate
  1816. X180.0000 rotate
  1817. Xgsave
  1818. X57 -72 translate
  1819. X144 144 72 72 240 288 0 loutgr
  1820. Xgsave
  1821. X0 0 moveto 0 ysize lineto xsize ysize lineto
  1822. Xxsize 0 lineto
  1823. X0.04 ft setlinewidth stroke
  1824. Xgrestore
  1825. X
  1826. Xgrestore
  1827. X
  1828. Xgrestore
  1829. X
  1830. X/Helvetica 220 fnt
  1831. X2135 6085 moveto(triangleleft)s gsave
  1832. X3547 6142 translate
  1833. X90.0000 rotate
  1834. Xgsave
  1835. X-57 -57 translate
  1836. X114 114 57 57 192 288 48 loutgr
  1837. Xgsave
  1838. X0 0 moveto xsize 0 lineto
  1839. Xxsize 2 div ysize lineto closepath
  1840. X0.04 ft setlinewidth stroke
  1841. Xgrestore
  1842. X
  1843. Xgrestore
  1844. X
  1845. Xgrestore
  1846. X
  1847. X/Helvetica 220 fnt
  1848. X4869 6085 moveto(triangleright)s gsave
  1849. X6415 6142 translate
  1850. X-90.0000 rotate
  1851. Xgsave
  1852. X-57 -57 translate
  1853. X114 114 57 57 192 288 48 loutgr
  1854. Xgsave
  1855. X0 0 moveto xsize 0 lineto
  1856. Xxsize 2 div ysize lineto closepath
  1857. X0.04 ft setlinewidth stroke
  1858. Xgrestore
  1859. X
  1860. Xgrestore
  1861. X
  1862. Xgrestore
  1863. X
  1864. X/Helvetica 220 fnt
  1865. X8650 6085 moveto(wr)s
  1866. Xgsave
  1867. X9239 6142 translate
  1868. X-180.0000 rotate
  1869. Xgsave
  1870. X0 -65 translate
  1871. X180.0000 rotate
  1872. Xgsave
  1873. X0 -131 translate
  1874. X90.0000 rotate
  1875. X
  1876. X/Symbol 240 fnt
  1877. X0 -60 moveto(\176)s 
  1878. Xgrestore
  1879. X
  1880. Xgrestore
  1881. X
  1882. Xgrestore
  1883. Xgsave
  1884. X9239 6077 translate
  1885. X90.0000 rotate
  1886. X
  1887. X/Symbol 240 fnt
  1888. X0 -60 moveto(\176)s 
  1889. Xgrestore
  1890. X
  1891. X/Helvetica 220 fnt
  1892. X2512 5797 moveto(bigcirc)s gsave
  1893. X3490 5768 translate
  1894. X201 172 0 86 288 288 72 loutgr
  1895. Xgsave
  1896. Xxsize ysize 2 div moveto
  1897. Xxsize 2 div ysize 2 div xsize 2 div 0 360 arc
  1898. X0.04 ft setlinewidth stroke
  1899. Xgrestore
  1900. X
  1901. Xgrestore
  1902. X
  1903. X/Helvetica 220 fnt
  1904. X4759 5797 moveto(bigtriangleup)s gsave
  1905. X6358 5768 translate
  1906. X172 172 86 86 288 288 72 loutgr
  1907. Xgsave
  1908. X0 0 moveto xsize 0 lineto
  1909. Xxsize 2 div ysize lineto closepath
  1910. X0.04 ft setlinewidth stroke
  1911. Xgrestore
  1912. X
  1913. Xgrestore
  1914. X
  1915. X/Helvetica 220 fnt
  1916. X7347 5797 moveto(bigtriangledown)s
  1917. Xgsave
  1918. X9312 5854 translate
  1919. X180.0000 rotate
  1920. Xgsave
  1921. X-86 -86 translate
  1922. X172 172 86 86 288 288 72 loutgr
  1923. Xgsave
  1924. X0 0 moveto xsize 0 lineto
  1925. Xxsize 2 div ysize lineto closepath
  1926. X0.04 ft setlinewidth stroke
  1927. Xgrestore
  1928. X
  1929. Xgrestore
  1930. END_OF_FILE
  1931.   if test 49055 -ne `wc -c <'lout/doc/tr.eq/outfile.ps.B'`; then
  1932.     echo shar: \"'lout/doc/tr.eq/outfile.ps.B'\" unpacked with wrong size!
  1933.   elif test -f 'lout/doc/tr.eq/outfile.ps.A' && test -f 'lout/doc/tr.eq/outfile.ps.C'; then
  1934.     echo shar: Combining  \"'lout/doc/tr.eq/outfile.ps'\" \(157394 characters\)
  1935.     cat 'lout/doc/tr.eq/outfile.ps.A' 'lout/doc/tr.eq/outfile.ps.B' 'lout/doc/tr.eq/outfile.ps.C' > 'lout/doc/tr.eq/outfile.ps'
  1936.     if test 157394 -ne `wc -c <'lout/doc/tr.eq/outfile.ps'`; then
  1937.       echo shar: \"'lout/doc/tr.eq/outfile.ps'\" combined with wrong size!
  1938.     else
  1939.       rm lout/doc/tr.eq/outfile.ps.A lout/doc/tr.eq/outfile.ps.B 
  1940.       rm lout/doc/tr.eq/outfile.ps.C
  1941.     fi
  1942.   fi
  1943.   # end of 'lout/doc/tr.eq/outfile.ps.B'
  1944. fi
  1945. if test -f 'lout/doc/tr.over/s2' -a "${1}" != "-c" ; then 
  1946.   echo shar: Will not clobber existing file \"'lout/doc/tr.over/s2'\"
  1947. else
  1948.   echo shar: Extracting \"'lout/doc/tr.over/s2'\" \(1739 characters\)
  1949.   sed "s/^X//" >'lout/doc/tr.over/s2' <<'END_OF_FILE'
  1950. X@Section
  1951. X   @Title { The non-expert's view }
  1952. X@Begin
  1953. X@PP
  1954. XThe non-expert user perceives Lout as text interspersed with special
  1955. Xsymbols, in a style reminiscent of many other batch formatters:
  1956. X@ID @Code {
  1957. X"@Doc @Text @Begin"
  1958. X"@Heading { Standard Integrals }"
  1959. X"@PP"
  1960. X"The following list of standard"
  1961. X"integrals should be memorized:"
  1962. X"@NumberList"
  1963. X"@Item @Eq {int e sup x dx = e sup x}"
  1964. X"@Item @Eq {int dx over"
  1965. X"   sqrt { 1 - x sup 2 } = arc sin x}"
  1966. X"@EndList"
  1967. X"@End @Text"
  1968. X}
  1969. XBraces are used for grouping parameters to the features.  The symbols
  1970. Xare all taken from two of the standard packages:  DocumentLayout, which
  1971. Xprovides headings, paragraphs, lists, footnotes, sections, and so on,
  1972. Xand Eq, which provides mathematical typesetting in a style copied from
  1973. Xthe eqn language of Kernighan and Cherry [{@Ref kernighan75}].
  1974. X@PP
  1975. XAt the time of writing, packages exist for formatting general documents,
  1976. Xtechnical reports, and books, the latter providing an automatic table of
  1977. Xcontents, running page headers and footers, access to bibliographic
  1978. Xdatabases, and a sorted index, among many other features.  Specialized
  1979. Xpackages exist for mathematical typesetting, drawing figures, and
  1980. Xformatting Pascal programs.
  1981. X@PP
  1982. XThe advanced features maintain the simple style established above.  To
  1983. Xproduce a footnote, for example, one simply types
  1984. X@ID @Code "@FootNote { ... }"
  1985. Xat the appropriate point, and it will be numbered and placed at the
  1986. Xbottom of the page; to add an item to the index,
  1987. X@ID @Code "expert @Index { Expert user }"
  1988. Xis typed, and the right parameter will appear in the index, with a page
  1989. Xnumber, at a place determined by the alphabetical ranking of the left
  1990. Xparameter.  No technical knowledge is required to use these features.
  1991. X@End @Section
  1992. END_OF_FILE
  1993.   if test 1739 -ne `wc -c <'lout/doc/tr.over/s2'`; then
  1994.     echo shar: \"'lout/doc/tr.over/s2'\" unpacked with wrong size!
  1995.   fi
  1996.   # end of 'lout/doc/tr.over/s2'
  1997. fi
  1998. if test -f 'lout/z22.c' -a "${1}" != "-c" ; then 
  1999.   echo shar: Will not clobber existing file \"'lout/z22.c'\"
  2000. else
  2001.   echo shar: Extracting \"'lout/z22.c'\" \(28732 characters\)
  2002.   sed "s/^X//" >'lout/z22.c' <<'END_OF_FILE'
  2003. X/*@z22.c:Galley Service:FlushInners(), Promote(), KillGalley()@***************/
  2004. X/*                                                                           */
  2005. X/*  LOUT: A HIGH-LEVEL LANGUAGE FOR DOCUMENT FORMATTING (VERSION 2.03)       */
  2006. X/*  COPYRIGHT (C) 1993 Jeffrey H. Kingston                                   */
  2007. X/*                                                                           */
  2008. X/*  Jeffrey H. Kingston (jeff@cs.su.oz.au)                                   */
  2009. X/*  Basser Department of Computer Science                                    */
  2010. X/*  The University of Sydney 2006                                            */
  2011. X/*  AUSTRALIA                                                                */
  2012. X/*                                                                           */
  2013. X/*  This program is free software; you can redistribute it and/or modify     */
  2014. X/*  it under the terms of the GNU General Public License as published by     */
  2015. X/*  the Free Software Foundation; either version 1, or (at your option)      */
  2016. X/*  any later version.                                                       */
  2017. X/*                                                                           */
  2018. X/*  This program is distributed in the hope that it will be useful,          */
  2019. X/*  but WITHOUT ANY WARRANTY; without even the implied warranty of           */
  2020. X/*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the            */
  2021. X/*  GNU General Public License for more details.                             */
  2022. X/*                                                                           */
  2023. X/*  You should have received a copy of the GNU General Public License        */
  2024. X/*  along with this program; if not, write to the Free Software              */
  2025. X/*  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.                */
  2026. X/*                                                                           */
  2027. X/*  FILE:         z22.c                                                      */
  2028. X/*  MODULE:       Galley Service                                             */
  2029. X/*  EXTERNS:      FlushInners(), ExpandRecursives(), Promote(),              */
  2030. X/*                KillGalley(), FreeGalley(), Interpose(),                   */
  2031. X/*                TargetSymbol(), CheckConstraint()                          */
  2032. X/*                                                                           */
  2033. X/*****************************************************************************/
  2034. X#include "externs"
  2035. X#define    LAST_ADJUST    1
  2036. X#define    ALL_ADJUST    2
  2037. X
  2038. X
  2039. X/*****************************************************************************/
  2040. X/*                                                                           */
  2041. X/*  static MakeDead(y)                                                       */
  2042. X/*                                                                           */
  2043. X/*  Convert object y into a DEAD object and remove it to the dead store.     */
  2044. X/*                                                                           */
  2045. X/*****************************************************************************/
  2046. X
  2047. Xstatic MakeDead(y)
  2048. XOBJECT y;
  2049. X{ static int    dead_count = 0;        /* number of DEAD objects seen       */
  2050. X  static OBJECT    dead_store = nil;    /* where DEAD objects are kept       */
  2051. X
  2052. X  debug1(DGS, DDD, "MakeDead( %s )", Image(type(y)));
  2053. X  if( dead_store == nil )  dead_store = New(ACAT);
  2054. X  type(y) = DEAD;
  2055. X  MoveLink(Up(y), dead_store, PARENT);
  2056. X  if( dead_count >= 100 )  DisposeChild(Down(dead_store));
  2057. X  else dead_count++;
  2058. X  debug1(DGS, DDD, "MakeDead returning (dead_count = %d).", dead_count);
  2059. X} /* end MakeDead */
  2060. X
  2061. X/*****************************************************************************/
  2062. X/*                                                                           */
  2063. X/*  FlushInners(inners, hd)                                                  */
  2064. X/*                                                                           */
  2065. X/*  Flush each galley on the list inners.  These have become flushable       */
  2066. X/*  by being promoted off the top of galley hd; if hd is the root galley,    */
  2067. X/*  identifiable by having PrintSym as target, don't flush inners at all.    */
  2068. X/*                                                                           */
  2069. X/*****************************************************************************/
  2070. X
  2071. XFlushInners(inners, hd)
  2072. XOBJECT inners, hd;
  2073. X{ OBJECT y, z, tmp, dest_index;
  2074. X
  2075. X  /* check for root galley case */
  2076. X  if( hd != nil )
  2077. X  { assert( Up(hd) != hd, "FlushInners: Up(hd)!" );
  2078. X    Parent(dest_index, Up(hd));
  2079. X    if( actual(actual(dest_index)) == PrintSym )
  2080. X    { DisposeObject(inners);
  2081. X      return;
  2082. X    }
  2083. X  }
  2084. X
  2085. X  while( Down(inners) != inners )
  2086. X  { Child(y, Down(inners));
  2087. X    DeleteLink(Down(inners));
  2088. X    switch( type(y) )
  2089. X    {
  2090. X
  2091. X      case DEAD:
  2092. X      
  2093. X    break;
  2094. X
  2095. X
  2096. X      case RECEIVING:
  2097. X      case UNATTACHED:
  2098. X      
  2099. X    assert( Down(y) != y, "FlushInners: UNATTACHED!");
  2100. X    Child(z, Down(y));
  2101. X    debug0(DGF, D, "  calling FlushGalley from FlushInners (a)");
  2102. X    FlushGalley(z);
  2103. X    break;
  2104. X
  2105. X
  2106. X      case PRECEDES:
  2107. X      
  2108. X    Child(tmp, Down(y));
  2109. X    if( Up(tmp) != LastUp(tmp) )
  2110. X    { Parent(tmp, LastUp(tmp));
  2111. X      assert(type(tmp)==FOLLOWS, "FlushInners: FOLLOWS!");
  2112. X      if( blocked(tmp) )
  2113. X      { blocked(tmp) = FALSE;
  2114. X        Parent(z, Up(tmp));
  2115. X        debug0(DGF, D, "  calling FlushGalley from FlushInners (b)");
  2116. X        FlushGalley(z);
  2117. X      }
  2118. X    }
  2119. X    break;
  2120. X
  2121. X
  2122. X      default:
  2123. X      
  2124. X    Error(INTERN,&fpos(y),"FlushInners %s", Image(type(y)));
  2125. X    break;
  2126. X    }
  2127. X  }
  2128. X  Dispose(inners);
  2129. X} /* end FlushInners */
  2130. X
  2131. X
  2132. X/*@@**************************************************************************/
  2133. X/*                                                                           */
  2134. X/*  ExpandRecursives(recs)                                                   */
  2135. X/*                                                                           */
  2136. X/*  Expand each of the recursive definite objects in the list recs.          */
  2137. X/*                                                                           */
  2138. X/*****************************************************************************/
  2139. X
  2140. XExpandRecursives(recs)
  2141. XOBJECT recs;
  2142. X{ CONSTRAINT non_c, hc, vc;
  2143. X  OBJECT target_index, target, z, n1, inners, newrecs, hd, tmp, env;
  2144. X  debug0(DCR, D, "ExpandRecursives(recs)");
  2145. X  SetConstraint(non_c, MAX_LEN, MAX_LEN, MAX_LEN);  n1 = nil;
  2146. X  assert(recs != nil, "ExpandRecursives: recs == nil!");
  2147. X  while( Down(recs) != recs )
  2148. X  { Child(target_index, Down(recs));
  2149. X    DeleteLink( Down(recs) );
  2150. X    assert( type(target_index) == RECURSIVE, "ExpandRecursives: index!" );
  2151. X    target = actual(target_index);
  2152. X    debug2(DCR, DD, "  expanding %s %s", Image(type(target_index)),
  2153. X      EchoObject(null, target));
  2154. X
  2155. X    /* expand body of target, convert to galley, and check size */
  2156. X    hd = New(HEAD);  actual(hd) = actual(target);
  2157. X    whereto(hd) = ready_galls(hd) = nil;  must_expand(hd) = TRUE;
  2158. X    backward(hd) = sized(hd) = FALSE;
  2159. X    tmp =  CopyObject(target, &fpos(target));
  2160. X    env = DetachEnv(tmp);
  2161. X    Link(hd, tmp);  Link(target_index, hd);
  2162. X    SizeGalley(hd, env, external(target), threaded(target), FALSE, FALSE,
  2163. X      &save_style(target), &non_c, nil, &n1, &newrecs, &inners);
  2164. X    debug0(DCR, DDD, "    as galley:");
  2165. X    ifdebug(DCR, DDD, EchoObject(stderr, hd));
  2166. X    Constrained(target, &hc, COL);
  2167. X    debug2(DSC, D, "Constrained( %s, COL ) = %s",
  2168. X      EchoObject(null, target), EchoConstraint(&hc));
  2169. X    debug3(DCR, DD, "    horizontal size: (%s, %s); constraint: %s",
  2170. X      EchoLength(back(hd, COL)), EchoLength(fwd(hd, COL)), EchoConstraint(&hc));
  2171. X    if( !FitsConstraint(back(hd, COL), fwd(hd, COL), hc) )
  2172. X    { DisposeChild(Up(hd));
  2173. X      if( inners != nil ) DisposeObject(inners);
  2174. X      if( newrecs != nil ) DisposeObject(newrecs);
  2175. X      DeleteNode(target_index);
  2176. X      debug0(DCR, DD, "    rejecting (too wide)");
  2177. X      continue;
  2178. X    }
  2179. X    if( !external(target) )
  2180. X    { Constrained(target, &vc, ROW);
  2181. X      debug2(DSC, D, "Constrained( %s, ROW ) = %s",
  2182. X            EchoObject(null, target), EchoConstraint(&vc));
  2183. X      Child(z, LastDown(hd));
  2184. X      debug3(DCR, DD, "    vsize: (%s, %s); constraint: %s",
  2185. X    EchoLength(back(z, ROW)), EchoLength(fwd(z, ROW)), EchoConstraint(&vc));
  2186. X      if( !FitsConstraint(back(z, ROW), fwd(z, ROW), vc) )
  2187. X      {    DisposeChild(Up(hd));
  2188. X    if( inners != nil ) DisposeObject(inners);
  2189. X    if( newrecs != nil ) DisposeObject(newrecs);
  2190. X    DeleteNode(target_index);
  2191. X    debug0(DCR, DD, "    rejecting (too high)");
  2192. X    continue;
  2193. X      }
  2194. X    }
  2195. X
  2196. X    /* object fits; adjust sizes and promote */
  2197. X    debug0(DSA, D, "calling AdjustSize from ExpandRecursives (a)");
  2198. X    AdjustSize(target, back(hd, COL), fwd(hd, COL), COL);
  2199. X    if( !external(target) )
  2200. X    { debug0(DSA, D, "calling AdjustSize from ExpandRecursives (b)");
  2201. X      AdjustSize(target, back(z, ROW), fwd(z, ROW), ROW);
  2202. X      Interpose(target, VCAT, z, z);
  2203. X    }
  2204. X    Promote(hd, hd, target_index);  DeleteNode(hd);
  2205. X    DeleteNode(target_index);
  2206. X    if( inners != nil )  FlushInners(inners, nil);
  2207. X    if( newrecs != nil )  MergeNode(recs, newrecs);
  2208. X  } /* end while */
  2209. X  Dispose(recs);
  2210. X  debug0(DCR, D, "ExpandRecursives returning.");
  2211. X} /* end ExpandRecursives */
  2212. X
  2213. X
  2214. X/*****************************************************************************/
  2215. X/*                                                                           */
  2216. X/*  OBJECT FindSplitInGalley(hd)                                             */
  2217. X/*                                                                           */
  2218. X/*  Search simply joined galley hd for a SPLIT object, which must be there.  */
  2219. X/*                                                                           */
  2220. X/*****************************************************************************/
  2221. X
  2222. Xstatic OBJECT FindSplitInGalley(hd)
  2223. XOBJECT hd;
  2224. X{ OBJECT link, y;
  2225. X  debug0(DGF, D, "FindSplitInGalley(hd)");
  2226. X  for( link = Down(hd);  link != hd;  link = NextDown(link) )
  2227. X  { Child(y, link);
  2228. X    if( is_definite(type(y)) )  break;
  2229. X  }
  2230. X  if( link == hd )
  2231. X  { debug0(DGF, D, "FindSplitInGalley failing, no definite component; hd =");
  2232. X    ifdebug(DGF, D, EchoObject(stderr, hd));
  2233. X    Error(INTERN, &fpos(hd), "missing galley component");
  2234. X  }
  2235. X  while( type(y) != SPLIT )  switch( type(y) )
  2236. X  {
  2237. X    case VCAT:
  2238. X    case ONE_ROW:
  2239. X    case WIDE:
  2240. X    case HIGH:
  2241. X    case VCONTRACT:
  2242. X    case VEXPAND:
  2243. X    case PADJUST:
  2244. X    case VADJUST:
  2245. X
  2246. X      Child(y, Down(y));
  2247. X      break;
  2248. X
  2249. X
  2250. X    case CLOSURE:
  2251. X    case NULL_CLOS:
  2252. X    case HCAT:
  2253. X    case WORD:
  2254. X    case ACAT:
  2255. X    case ROW_THR:
  2256. X    case COL_THR:
  2257. X    case ONE_COL:
  2258. X    case SCALE:
  2259. X    case HSCALE:
  2260. X    case VSCALE:
  2261. X    case HCONTRACT:
  2262. X    case HEXPAND:
  2263. X    case HADJUST:
  2264. X    case ROTATE:
  2265. X    case INCGRAPHIC:
  2266. X    case SINCGRAPHIC:
  2267. X    case GRAPHIC:
  2268. X
  2269. X      debug0(DGF, D, "FindSplitInGalley(hd) failing, hd =");
  2270. X      ifdebug(DGF, D, EchoObject(stderr, hd));
  2271. X      Error(INTERN, &fpos(y), "FindSplitInGalley failed", Image(type(y)));
  2272. X      break;
  2273. X
  2274. X
  2275. X    default:
  2276. X    
  2277. X      Error(INTERN, &fpos(y), "FindSplitInGalley found %s", Image(type(y)));
  2278. X      break;
  2279. X
  2280. X  }
  2281. X  debug0(DGF, D, "FindSplitInGalley returning.");
  2282. X  return y;
  2283. X} /* end FindSplitInGalley */
  2284. X
  2285. X/*@@**************************************************************************/
  2286. X/*                                                                           */
  2287. X/*  Promote(x, stop_link, dest_index)                                        */
  2288. X/*                                                                           */
  2289. X/*  Promote components of galley x into its destination (dest), up to but    */
  2290. X/*  not including the one linked to x by link stop_link, which always        */
  2291. X/*  follows a component.  No size adjustments are made, except that when     */
  2292. X/*  two col_thr nodes are merged, a COL adjustment is made to the result.    */
  2293. X/*                                                                           */
  2294. X/*****************************************************************************/
  2295. X
  2296. XPromote(x, stop_link, dest_index)
  2297. XOBJECT x, stop_link, dest_index;
  2298. X{
  2299. X  /* these four variables refer to the root galley only */
  2300. X  static BOOLEAN first = TRUE;    /* TRUE when the first component not written */
  2301. X  static int    prec_back;    /* back value of preceding component         */
  2302. X  static int    prec_fwd;    /* fwd value of preceding component          */
  2303. X  static GAP    prec_gap;    /* preceding gap                             */
  2304. X
  2305. X  OBJECT dest, link, y, z, tmp1, tmp2;
  2306. X  int dim;  CONSTRAINT c;
  2307. X  debug1(DGS, D, "Promote(%s, stop_link)", SymName(actual(x)));
  2308. X
  2309. X  assert( type(x) == HEAD, "Promote: x!" );
  2310. X  assert( type(stop_link) == LINK || stop_link == x, "Promote: stop_link!" );
  2311. X  assert( stop_link != Down(x), "Promote: stop_link == Down(x)!" );
  2312. X  type(dest_index) = RECEIVING;
  2313. X  dest = actual(dest_index);
  2314. X
  2315. X  /* insert final gap if galley is ending */
  2316. X  if( stop_link != x )
  2317. X  { Child(y, stop_link);
  2318. X    assert( type(y) == GAP_OBJ, "Promote: missing GAP_OBJ!" );
  2319. X    stop_link = NextDown(stop_link);
  2320. X  }
  2321. X  else
  2322. X  { y = New(GAP_OBJ);
  2323. X    FposCopy(fpos(y), fpos(x));
  2324. X    hspace(y) = 0;  vspace(y) = 1;
  2325. X    ClearGap(gap(y));
  2326. X    Link(stop_link, y);
  2327. X  }
  2328. X
  2329. X  /* error if promoting a seen_nojoin galley into a threaded destination */
  2330. X  if( seen_nojoin(x) && threaded(dest) )
  2331. X    Error(FATAL, &fpos(x), "galley %s must have a single column mark",
  2332. X    SymName(actual(x)));
  2333. X  if( seen_nojoin(x) )  join(gap(y)) = FALSE; /* to make nojoin status clear */
  2334. X
  2335. X  /* if promoting out of root galley, do special things */
  2336. X  if( actual(dest) == PrintSym )
  2337. X  { CONSTRAINT c;
  2338. X    link = x;
  2339. X    while( NextDown(link) != stop_link )
  2340. X    { Child(y, NextDown(link));
  2341. X      debug1(DGS, D, "root promote %s", EchoObject(null, y));
  2342. X      if( type(y) == SPLIT )  Child(y, DownDim(y, ROW));
  2343. X      switch( type(y) )
  2344. X      {
  2345. X
  2346. X    case PRECEDES:
  2347. X      
  2348. X      DisposeChild(NextDown(link));
  2349. X      break;
  2350. X    
  2351. X
  2352. X    case UNATTACHED:
  2353. X      
  2354. X      assert( Down(y) != y, "FlushRootGalley: UNATTACHED!" );
  2355. X      Child(z, Down(y));
  2356. X      assert( type(z) == HEAD, "FlushRootGalley: unattached HEAD!" );
  2357. X      if( sized(z) )
  2358. X      {
  2359. X        /* galley is part flushed, leave it here */
  2360. X        link = NextDown(link);
  2361. X      }
  2362. X      else if( backward(z) )
  2363. X      {
  2364. X        /* galley is preceding, send to CrossSequence */
  2365. X        OBJECT t;
  2366. X        type(y) = GALL_PREC;
  2367. X        Child(t, Down(z));
  2368. X        actual(y) = CrossMake(whereto(z), t, GALL_PREC);
  2369. X        DisposeChild(Down(y));
  2370. X        CrossSequence(actual(y));
  2371. X        DisposeChild(NextDown(link));
  2372. X      }
  2373. X      else
  2374. X      {
  2375. X        /* galley was never attached, print message and kill it */
  2376. X        Error(WARN, &fpos(z), "Galley %s deleted - never attached",
  2377. X            SymName(actual(z)));
  2378. X        KillGalley(z);
  2379. X      }
  2380. X      break;
  2381. X
  2382. X
  2383. X    case EXPAND_IND:
  2384. X      
  2385. X      /* expand @HExpand or @VExpand to occupy everything possible */
  2386. X      dim = type(actual(y)) == HEXPAND ? COL : ROW;
  2387. X          debug1(DGP, D, " flushing %s", EchoObject(null, y));
  2388. X      Constrained(actual(y), &c, dim);
  2389. X      if( constrained(c) )
  2390. X      { LENGTH b = back(actual(y), dim);
  2391. X        LENGTH f = fwd(actual(y), dim);
  2392. X        EnlargeToConstraint(&b, &f, &c);
  2393. X        debug2(DGP, D, "FlushRoot call AdjustSize(x, %s,%s, dim)",
  2394. X            EchoLength(b), EchoLength(f));
  2395. X        debug1(DSA, D, "Promote %s AdjustSize", Image(type(actual(y))));
  2396. X        AdjustSize(actual(y), b, f, dim);
  2397. X      }
  2398. X      DisposeChild(NextDown(link));
  2399. X      break;
  2400. X
  2401. X
  2402. X    case GALL_PREC:
  2403. X    case GALL_FOLL:
  2404. X    case GALL_TARG:
  2405. X    case CROSS_PREC:
  2406. X    case CROSS_FOLL:
  2407. X    case CROSS_TARG:
  2408. X          
  2409. X      CrossSequence(actual(y));
  2410. X      DisposeChild(NextDown(link));
  2411. X      break;
  2412. X
  2413. X
  2414. X    case WORD:
  2415. X    case ONE_COL:
  2416. X    case ONE_ROW:
  2417. X    case WIDE:
  2418. X    case HIGH:
  2419. X    case HSCALE:
  2420. X    case VSCALE:
  2421. X    case HCONTRACT:
  2422. X    case VCONTRACT:
  2423. X    case HEXPAND:
  2424. X    case VEXPAND:
  2425. X    case PADJUST:
  2426. X    case HADJUST:
  2427. X    case VADJUST:
  2428. X    case ROTATE:
  2429. X    case SCALE:
  2430. X    case INCGRAPHIC:
  2431. X    case SINCGRAPHIC:
  2432. X    case GRAPHIC:
  2433. X    case ACAT:
  2434. X    case HCAT:
  2435. X    case ROW_THR:
  2436. X
  2437. X    case CLOSURE:
  2438. X    case NULL_CLOS:
  2439. X    case CROSS:
  2440. X
  2441. X      /* print this component */
  2442. X      debug0(DCR, D, "Promote --");
  2443. X      if( !is_indefinite(type(y)) && size(y, ROW) != 0 )
  2444. X      {
  2445. X        /* move down as specified by the gap */
  2446. X        if( first )
  2447. X        { PrintPrologue(size(x, COL), size(y, ROW));
  2448. X          first = FALSE;
  2449. X        }
  2450. X        else PrintOriginIncrement(prec_back - back(y, ROW)
  2451. X              + MinGap(prec_fwd, back(y, ROW), fwd(y, ROW), &prec_gap));
  2452. X        debug1(DGF,D, "  Promote calling FixAndPrint %s", Image(type(y)));
  2453. X        /* old interface ***
  2454. X        SetConstraint(c, back(x, COL), size(x, COL), fwd(x, COL));
  2455. X        FixAndPrintObject(y, back(x, COL), &c, COL, FALSE, 0, 0);
  2456. X        SetConstraint(c, back(y, ROW), size(y, ROW), fwd(y, ROW));
  2457. X        FixAndPrintObject(y, back(y,ROW), &c, ROW, FALSE, size(y,ROW), 0);
  2458. X        *** */
  2459. X        FixAndPrintObject(y, back(x, COL), back(x, COL), fwd(x, COL),
  2460. X          COL, LAST_ADJUST, FALSE, LAST_ADJUST, 0, 0);
  2461. X        FixAndPrintObject(y, back(y,ROW), back(y, ROW), fwd(y, ROW),
  2462. X          ROW, LAST_ADJUST, FALSE, LAST_ADJUST, size(y,ROW), 0);
  2463. X        prec_back = back(y, ROW);  prec_fwd = fwd(y, ROW);
  2464. X      }
  2465. X      DisposeChild(NextDown(link));
  2466. X      break;
  2467. X
  2468. X
  2469. X    case GAP_OBJ:
  2470. X
  2471. X      GapCopy(prec_gap, gap(y));
  2472. X      DisposeChild(NextDown(link));
  2473. X      break;
  2474. X
  2475. X
  2476. X    default:
  2477. X      
  2478. X      Error(INTERN, &fpos(y), "Promote (root): %s", Image(type(y)));
  2479. X      break;
  2480. X    
  2481. X      }
  2482. X    }
  2483. X    debug0(DGS, D, "Promote returning (root galley).");
  2484. X    return;
  2485. X  }
  2486. X
  2487. X  /* prepare the promotion */
  2488. X  if( external(dest) )
  2489. X  { if( threaded(dest) )
  2490. X    { Parent(tmp1, UpDim(dest, COL));
  2491. X      assert( type(tmp1) == COL_THR, "Promote: tmp1 not COL_THR!" );
  2492. X      y = FindSplitInGalley(x);
  2493. X      assert( type(y) == SPLIT, "Promote: FindSplitInGalley!" );
  2494. X      Child(tmp2, DownDim(y, COL));
  2495. X      assert( type(tmp2) == COL_THR, "Promote: tmp2 not COL_THR!" );
  2496. X      if( tmp1 != tmp2 )
  2497. X      { LENGTH b = max(back(tmp1, COL), back(tmp2, COL));
  2498. X    LENGTH f = max(fwd(tmp1, COL),  fwd(tmp2, COL));
  2499. X    debug0(DSA, D, "calling AdjustSize(tmp1) from Promote (node merging)");
  2500. X    AdjustSize(tmp1, b, f, COL);
  2501. X    debug0(DSA, D, "calling AdjustSize(tmp2) from Promote (node merging)");
  2502. X    AdjustSize(tmp2, b, f, COL);
  2503. X    MergeNode(tmp1, tmp2);
  2504. X      }
  2505. X    }
  2506. X    link = Up(dest_index);
  2507. X  }
  2508. X  else
  2509. X  { for( link = x;  NextDown(link) != stop_link;  )
  2510. X    { Child(y, NextDown(link));
  2511. X      if( is_index(type(y)) )  MoveLink(NextDown(link), Up(dest_index), PARENT);
  2512. X      else link = NextDown(link);
  2513. X    }
  2514. X    assert( Down(x) != stop_link, "Promote: Down(x) == stop_link!" );
  2515. X    assert( UpDim(dest, ROW) == UpDim(dest, COL), "Promote: dims!" );
  2516. X    link = Up(dest);
  2517. X  }
  2518. X  
  2519. X  /* promote components */
  2520. X  TransferLinks(Down(x), stop_link, link);
  2521. X
  2522. X  debug0(DGS, D, "Promote returning.");
  2523. X} /* end Promote */
  2524. X
  2525. X
  2526. X/*@@**************************************************************************/
  2527. X/*                                                                           */
  2528. X/*  KillGalley(hd)                                                           */
  2529. X/*                                                                           */
  2530. X/*  Kill galley hd, which may be sized or unsized.  The galley's index must  */
  2531. X/*  be UNATTACHED; it is moved out of its present location to a secret spot. */
  2532. X/*                                                                           */
  2533. X/*****************************************************************************/
  2534. X
  2535. XKillGalley(hd)
  2536. XOBJECT hd;
  2537. X{ OBJECT prnt, link, y, z;
  2538. X  debug2(DGA, D, "[ KillGalley(Galley %s into %s)",
  2539. X    SymName(actual(hd)), SymName(whereto(hd)));
  2540. X  assert( type(hd) == HEAD && Up(hd) != hd, "KillGalley: precondition!" );
  2541. X  Parent(prnt, Up(hd));
  2542. X  assert( type(prnt) == UNATTACHED, "KillGalley: UNATTACHED precondition!" );
  2543. X  assert( Up(prnt) != prnt, "KillGalley: prnt!" );
  2544. X
  2545. X  if( ready_galls(hd) != nil )
  2546. X  { DisposeObject(ready_galls(hd));
  2547. X    ready_galls(hd) = nil;
  2548. X  }
  2549. X  link = hd;
  2550. X  while( NextDown(link) != hd )
  2551. X  { Child(y, NextDown(link));
  2552. X    switch( type(y) )
  2553. X    {
  2554. X      case RECEIVING:    while( Down(y) != y )
  2555. X            { Child(z, Down(y));
  2556. X              DetachGalley(z);
  2557. X            }
  2558. X            DeleteNode(y);
  2559. X            break;
  2560. X        
  2561. X      case RECEPTIVE:    assert( Down(y) == y, "KillGalley: RECEPTIVE!" );
  2562. X            DeleteNode(y);
  2563. X            break;
  2564. X
  2565. X      case UNATTACHED:    assert( Down(y) != y, "KillGalley: UNATTACHED!" );
  2566. X            Child(z, Down(y));
  2567. X            KillGalley(z);
  2568. X            break;
  2569. X
  2570. X      case HEAD:    Error(INTERN, &fpos(y), "KillGalley: HEAD!");
  2571. X            break;
  2572. X
  2573. X      default:        DisposeChild(NextDown(link));
  2574. X            break;
  2575. X    }
  2576. X  }
  2577. X
  2578. X  /* move index into dead_store */
  2579. X  MakeDead(prnt);
  2580. X  debug0(DGA, D, "] KillGalley returning.");
  2581. X} /* end KillGalley */
  2582. X
  2583. X
  2584. X/*@@**************************************************************************/
  2585. X/*                                                                           */
  2586. X/*  FreeGalley(hd, stop_link, inners, relocate_link, sym)                    */
  2587. X/*                                                                           */
  2588. X/*  Free galley hd up to but not including stop_link.  *Inners is well-      */
  2589. X/*  defined, either nil or an ACAT of galleys to be flushed.                 */
  2590. X/*                                                                           */
  2591. X/*  Relocate_link defines what to do any galley attached to one of the       */
  2592. X/*  freed targets.  If it is non-nil, galley hd is searched onwards from     */
  2593. X/*  it to see if a target can be found there.  If so, the galley is          */
  2594. X/*  relocated to just before that point.  If not, or if relocate_link is     */
  2595. X/*  nil, the galley is freed and added to *inners for flushing.  If such     */
  2596. X/*  galley's whereto() is sym, it is freed, not relocated, because the       */
  2597. X/*  cause of this call to FreeGalley is also targeted to sym, and it will    */
  2598. X/*  consume all possible targets of sym.                                     */
  2599. X/*                                                                           */
  2600. X/*****************************************************************************/
  2601. X
  2602. XFreeGalley(hd, stop_link, inners, relocate_link, sym)
  2603. XOBJECT hd, stop_link, *inners, relocate_link, sym;
  2604. X{ OBJECT link, y, z, zlink, srch, index;
  2605. X  assert( type(hd) == HEAD && sized(hd), "FreeGalley: pre!");
  2606. X  assert( Up(hd) != hd, "FreeGalley: Up(hd)!" );
  2607. X  assert( *inners == nil || type(*inners) == ACAT, "FreeGalley: ACAT!" );
  2608. X  debug3(DGA, D, "[ FreeGalley(Galley %s into %s); rl %s nil",
  2609. X    SymName(actual(hd)), SymName(whereto(hd)), relocate_link==nil ? "==":"!=");
  2610. X
  2611. X  /* close targets and move or flush any inner galleys */
  2612. X  for( link = Down(hd);  link != stop_link;  link = NextDown(link) )
  2613. X  { Child(y, link);
  2614. X    if( type(y) == RECEIVING && actual(actual(y)) == InputSym )
  2615. X      Error(WARN, &fpos(actual(y)), "forcing galley past input point");
  2616. X    else if( type(y) == RECEIVING )
  2617. X    {
  2618. X      /* either relocate or free each galley */
  2619. X      for( zlink = Down(y);  zlink != y; )
  2620. X      {    Child(z, zlink);
  2621. X    zlink = NextDown(zlink);
  2622. X    assert( type(z) == HEAD, "FreeGalley/RECEIVING: type(z) != HEAD!" );
  2623. X    debug1(DGA, D, "FreeGalley examining galley %s", SymName(actual(z)));
  2624. X    if( relocate_link != nil && whereto(z) != sym &&
  2625. X        (srch = SearchGalley(relocate_link, whereto(z), TRUE,
  2626. X        FALSE, TRUE, FALSE)) != nil )
  2627. X    { DetachGalley(z);
  2628. X      Parent(index, Up(z));
  2629. X      MoveLink(Up(index), Up(srch), PARENT);  /* just before new dest */
  2630. X    }
  2631. X    else
  2632. X    { debug0(DGA, D, "  calling FreeGalley from FreeGalley");
  2633. X      FreeGalley(z, z, inners, nil, sym);
  2634. X      if( *inners == nil )  *inners = New(ACAT);
  2635. X      Link(*inners, y);
  2636. X    }
  2637. X      }
  2638. X      non_blocking(y) = TRUE;
  2639. X    }
  2640. X    else if( type(y) == RECEPTIVE )  non_blocking(y) = TRUE;
  2641. X  }
  2642. X  debug0(DGA, D, "] FreeGalley returning.");
  2643. X} /* end FreeGalley */
  2644. X
  2645. X
  2646. X/*****************************************************************************/
  2647. X/*                                                                           */
  2648. X/*  Interpose(z, typ, x, y)                                                  */
  2649. X/*                                                                           */
  2650. X/*  Insert a new typ object above z.  Its sizes are to be taken from x       */
  2651. X/*  (column) and y (row).                                                    */
  2652. X/*                                                                           */
  2653. X/*****************************************************************************/
  2654. X
  2655. XInterpose(z, typ, x, y)
  2656. XOBJECT z;  int typ;  OBJECT x, y;
  2657. X{ OBJECT encl = New(typ);
  2658. X  FposCopy(fpos(encl), fpos(y));
  2659. X  ReplaceNode(encl, z);  Link(encl, z);
  2660. X  back(encl, COL) = back(x, COL);
  2661. X  fwd(encl, COL) = fwd(x, COL);
  2662. X  back(encl, ROW) = back(y, ROW);
  2663. X  fwd(encl, ROW) = fwd(y, ROW);
  2664. X} /* end Interpose */
  2665. X
  2666. X/*@@**************************************************************************/
  2667. X/*                                                                           */
  2668. X/*  BOOLEAN TargetSymbol(x, sym)                                             */
  2669. X/*                                                                           */
  2670. X/*  Examine the parameters of closure x, which is known to have a @Target.   */
  2671. X/*  Return TRUE if the target is preceding, and set sym to the symbol value. */
  2672. X/*                                                                           */
  2673. X/*****************************************************************************/
  2674. X
  2675. XBOOLEAN TargetSymbol(x, sym)
  2676. XOBJECT x, *sym;
  2677. X{ OBJECT y, link, cr, lpar, rpar;
  2678. X  debug1(DGS, D, "TargetSymbol( %s )", EchoObject(null, x));
  2679. X  assert( type(x) == CLOSURE, "TargetSymbol: type(x) != CLOSURE!" );
  2680. X  assert( has_target(actual(x)), "TargetSymbol: x has no target!" );
  2681. X
  2682. X  /* search the free variable list of x for @Target */
  2683. X  cr = nil;
  2684. X  for( link = Down(x);  link != x;  link = NextDown(link) )
  2685. X  { Child(y, link);
  2686. X    if( type(y) == PAR && is_target(actual(y)) )
  2687. X    { assert( Down(y) != y, "TargetSymbol: Down(PAR)!" );
  2688. X      Child(cr, Down(y));
  2689. X      break;
  2690. X    }
  2691. X  }
  2692. X
  2693. X  /* search the children list of actual(x) for a default value of @Target */
  2694. X  if( cr == nil )
  2695. X  for( link = Down(actual(x));  link != actual(x);  link = NextDown(link) )
  2696. X  { Child(y, link);
  2697. X    if( is_target(y) )
  2698. X    { cr = sym_body(y);
  2699. X      break;
  2700. X    }
  2701. X  }
  2702. X  
  2703. X  if( cr != nil )
  2704. X  {
  2705. X    /* check that cr is indeed a cross-reference object */
  2706. X    debug1(DGS, DD, "TargetSymbol examining %s", EchoObject(null, cr));
  2707. X    debug1(DGS, DD, "  type(cr) = %s", Image( (int) type(cr)) );
  2708. X    if( type(cr) != CROSS )
  2709. X      Error(FATAL, &fpos(cr), "target of %s is not a cross-reference",
  2710. X    SymName(actual(x)));
  2711. X
  2712. X    /* extract *sym from the left parameter */
  2713. X    Child(lpar, Down(cr));
  2714. X    if( type(lpar) != CLOSURE )
  2715. X      Error(FATAL,&fpos(lpar),"left parameter of %s is not a symbol",KW_CROSS);
  2716. X    *sym = actual(lpar);
  2717. X
  2718. X    /* extract direction from the right parameter */
  2719. X    Child(rpar, NextDown(Down(cr)));
  2720. X    if( type(rpar) != WORD || (strcmp(string(rpar), KW_PRECEDING) != 0 &&
  2721. X    strcmp(string(rpar), KW_FOLLOWING) != 0) )
  2722. X      Error(WARN, &fpos(rpar), "replacing %s%s? by %s%s%s",
  2723. X    SymName(actual(lpar)), KW_CROSS, SymName(actual(lpar)),
  2724. X    KW_CROSS, KW_FOLLOWING);
  2725. X    return type(rpar) == WORD && strcmp(string(rpar), KW_PRECEDING) == 0;
  2726. X  }
  2727. X  else
  2728. X  { Error(INTERN, &fpos(x), "TargetSymbol: couldn't find x's @Target");
  2729. X    return FALSE;
  2730. X  }
  2731. X} /* end TargetSymbol */
  2732. X
  2733. X
  2734. X/*@@**************************************************************************/
  2735. X/*                                                                           */
  2736. X/*  int CheckConstraint(preceder, follower)                                  */
  2737. X/*                                                                           */
  2738. X/*  Check the ordering relation between components preceder and follower,    */
  2739. X/*  and return its current status:                                           */
  2740. X/*                                                                           */
  2741. X/*      CLEAR     follower definitely follows preceder, and always will;     */
  2742. X/*      PROMOTE   follower is not prevented from following preceder;         */
  2743. X/*      CLOSE     follower must move down its galley to follow preceder;     */
  2744. X/*      BLOCK     follower cannot be guaranteed to follow preceder.          */
  2745. X/*                                                                           */
  2746. X/*****************************************************************************/
  2747. X
  2748. Xint CheckConstraint(preceder, follower)
  2749. XOBJECT preceder, follower;
  2750. X{ OBJECT prec_galley, foll_galley, z;  int res;
  2751. X  debug2(DGS, D, "CheckConstraint( %s, %s )",
  2752. X    EchoObject(null, preceder), EchoObject(null, follower));
  2753. X  Parent(prec_galley, Up(preceder));
  2754. X  Parent(foll_galley, Up(follower));
  2755. X  if( prec_galley == foll_galley )
  2756. X  { res = CLOSE;
  2757. X    for( z = Up(follower);  z != foll_galley;  z = pred(z, CHILD) )
  2758. X    if( z == Up(preceder) )
  2759. X    { res = CLEAR;
  2760. X      break;
  2761. X    }
  2762. X  }
  2763. X  else
  2764. X  { res = PROMOTE;
  2765. X    while( Up(prec_galley) != prec_galley )
  2766. X    { Parent(z, Up(prec_galley));    /* index of galley */
  2767. X      Parent(prec_galley, Up(z));    /* enclosing galley */
  2768. X      if( prec_galley == foll_galley )
  2769. X      {    res = BLOCK;
  2770. X    break;
  2771. X      }
  2772. X    }
  2773. X  }
  2774. X  debug1(DGS, D, "CheckConstraint returning %s", Image(res));
  2775. X  return res;
  2776. X} /* end CheckConstraint */
  2777. END_OF_FILE
  2778.   if test 28732 -ne `wc -c <'lout/z22.c'`; then
  2779.     echo shar: \"'lout/z22.c'\" unpacked with wrong size!
  2780.   fi
  2781.   # end of 'lout/z22.c'
  2782. fi
  2783. echo shar: End of archive 6 \(of 30\).
  2784. cp /dev/null ark6isdone
  2785. MISSING=""
  2786. 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 ; do
  2787.     if test ! -f ark${I}isdone ; then
  2788.     MISSING="${MISSING} ${I}"
  2789.     fi
  2790. done
  2791. if test "${MISSING}" = "" ; then
  2792.     echo You have unpacked all 30 archives.
  2793.     rm -f ark[1-9]isdone ark[1-9][0-9]isdone
  2794. else
  2795.     echo You still must unpack the following archives:
  2796.     echo "        " ${MISSING}
  2797. fi
  2798. exit 0
  2799. exit 0 # Just in case...
  2800.