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

  1. Newsgroups: comp.sources.misc
  2. From: jeff@joyce.cs.su.oz.au (Jeff Kingston)
  3. Subject: v37i112:  lout - Lout document formatting system, v2, Part14/30
  4. Message-ID: <1993Jun1.052003.26251@sparky.imd.sterling.com>
  5. X-Md4-Signature: 64e125788fab51979b5785ed675eaa4b
  6. Sender: kent@sparky.imd.sterling.com (Kent Landfield)
  7. Organization: Sterling Software
  8. Date: Tue, 1 Jun 1993 05:20:03 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 112
  13. Archive-name: lout/part14
  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/s5 lout/doc/tr.impl/setup
  21. #   lout/font0/NewCenSchBolIta.AFM lout/include/fig lout/z16.c
  22. # Wrapped by kent@sparky on Sun May 30 19:43:57 1993
  23. PATH=/bin:/usr/bin:/usr/ucb:/usr/local/bin:/usr/lbin ; export PATH
  24. echo If this archive is complete, you will see the following message:
  25. echo '          "shar: End of archive 14 (of 30)."'
  26. if test -f 'lout/doc/tr.eq/s5' -a "${1}" != "-c" ; then 
  27.   echo shar: Will not clobber existing file \"'lout/doc/tr.eq/s5'\"
  28. else
  29.   echo shar: Extracting \"'lout/doc/tr.eq/s5'\" \(16617 characters\)
  30.   sed "s/^X//" >'lout/doc/tr.eq/s5' <<'END_OF_FILE'
  31. X@Section
  32. X   @Title { Summary }
  33. X@Begin
  34. X@PP
  35. XThis section is a complete list of the symbols provided by Eq.  We
  36. Xdivide them into auxiliary, parameterized, short names (further divided
  37. Xinto relations, binary operators, and punctuation), and full names.  The
  38. Xauxiliary symbols are:
  39. X@ID @Tab
  40. X     vmargin { 0.5vx }
  41. X     @Fmta { @Col A ! @Col B }
  42. X{
  43. X@Rowa
  44. X    A { @Code "`" }
  45. X    B { Thin space }
  46. X@Rowa
  47. X    A { @Code "``" }
  48. X    B { Medium space }
  49. X@Rowa
  50. X    A { @Code "```" }
  51. X    B { Thick space }
  52. X@Rowa
  53. X    A { @Code "bin x" }
  54. X    B { Treat @Code x as a binary operator }
  55. X@Rowa
  56. X    A { @Code "rel x" }
  57. X    B { Treat @Code x as a relation }
  58. X@Rowa
  59. X    A { @Code "punct x" }
  60. X    B { Treat @Code x as a punctuation symbol }
  61. X@Rowa
  62. X    A { @Code "non x" }
  63. X    B { Remove spaces normally put into @Code x }
  64. X@Rowa
  65. X    A { @Code "vctr x" }
  66. X    B { Centre @Code x vertically }
  67. X@Rowa
  68. X    A { @Code "big x" }
  69. X    B { Make @Code x larger }
  70. X}
  71. XHere are all the parameterized symbols, shown in groups of equal
  72. Xprecedence, with the precedence itself at right:
  73. X@ID lines @Break {
  74. X@Code "matrix not" (100)
  75. X@Code "dot dotdot hat tilde vec dyad overbar underbar" (62)
  76. X@Code "sup sub supp" (60)   "on" (61)
  77. X@Code "from to widefrom wideto" (58)
  78. X@Code "sqrt root" (56)
  79. X@Code "over" "frac" (54)
  80. X@Code "above labove cabove rabove mabove" (52)
  81. X@Code "nextcol" (50)
  82. X}
  83. XSee page {@PageOf matrix} for examples of matrices.  Here are some
  84. Xexamples of the other symbols:
  85. X@IL
  86. X
  87. X@LI {
  88. X@Code "x dot"
  89. X|7ct
  90. X@Eq { x dot }
  91. X}
  92. X
  93. X@LI {
  94. X@Code "x dotdot"
  95. X|7ct
  96. X@Eq { x dotdot }
  97. X}
  98. X
  99. X@LI {
  100. X@Code "x hat"
  101. X|7ct
  102. X@Eq { x hat }
  103. X}
  104. X
  105. X@LI {
  106. X@Code "x tilde"
  107. X|7ct
  108. X@Eq { x tilde }
  109. X}
  110. X
  111. X@LI {
  112. X@Code "x vec"
  113. X|7ct
  114. X@Eq { x vec }
  115. X}
  116. X
  117. X@LI {
  118. X@Code "x dyad"
  119. X|7ct
  120. X@Eq { x dyad }
  121. X}
  122. X
  123. X@LI {
  124. X@Code "x+y overbar"
  125. X|7ct
  126. X@Eq { x+y overbar }
  127. X}
  128. X
  129. X@LI {
  130. X@Code "x+y underbar"
  131. X|7ct
  132. X@Eq { x+y underbar }
  133. X}
  134. X
  135. X@EL
  136. XThese marks are centred over the left parameter, except the last two which are
  137. Xextended to the width of the object.
  138. X@IL
  139. X
  140. X@LI {
  141. X@Code "a sup b"
  142. X|7ct
  143. X@Eq {a sup b}
  144. X}
  145. X
  146. X@LI {
  147. X@Code "a sub b"
  148. X|7ct
  149. X@Eq {a sub b}
  150. X}
  151. X
  152. X@LI {
  153. X@Code "a supp b on c"
  154. X|7ct
  155. X@Eq {a supp b on c}
  156. X}
  157. X
  158. X@EL
  159. XNote that @Code "supp" and @Code "on" must be used together as shown.
  160. X@IL
  161. X
  162. X@LI {
  163. X@Code "big sum from i"
  164. X|7ct
  165. X@Eq {big sum from i}
  166. X}
  167. X
  168. X@LI {
  169. X@Code "big prod to j"
  170. X|7ct
  171. X@Eq {big prod to j}
  172. X}
  173. X
  174. X@LI {
  175. X@Code { "{a, ... , z} widefrom"
  176. X"{90d @Rotate blbrace}" }
  177. X|7ct
  178. X@Eq { {a, ... , z} widefrom {90d @Rotate blbrace} }
  179. X}
  180. X
  181. X@LI {
  182. X@Code "{a, ... , z} wideto minus"
  183. X|7ct
  184. X@Eq { {a, ... , z} wideto minus }
  185. X}
  186. X
  187. X@EL
  188. X@Code "widefrom" and @Code "wideto" are like @Code "from" and
  189. X@Code "to" except that they horizontally scale the right parameter
  190. Xto the width of the left.
  191. X@IL
  192. X
  193. X@LI {
  194. X@Code "sqrt {x over y}"
  195. X|7ct
  196. X@Eq { sqrt {x over y} }
  197. X}
  198. X
  199. X@LI {
  200. X@Code "3 root {x over y}"
  201. X|7ct
  202. X@Eq { 3 root {x over y} }
  203. X}
  204. X
  205. X@EL
  206. XThe left parameter of @Code "root" may be any object.
  207. X@IL
  208. X
  209. X@LI {
  210. X@Code "2 over 3"
  211. X|7ct
  212. X@Eq { 2 over 3 }
  213. X}
  214. X
  215. X@LI {
  216. X@Code "2 frac 3"
  217. X|7ct
  218. X@Eq { 2 frac 3 }
  219. X}
  220. X
  221. X@EL
  222. XThe following short names define relations (that is, they have a thick
  223. Xspace on each side):
  224. X@DP
  225. Xragged @Break {
  226. X"<"        @Dbl @Eq {  <            }
  227. X">"        @Dbl @Eq {  >            }
  228. X"="        @Dbl @Eq {  =            }
  229. X"<="        @Dbl @Eq {  <=            }
  230. X"prec"        @Dbl @Eq {  prec        }
  231. X"preceq"    @Dbl @Eq {  preceq        }
  232. X"<<"        @Dbl @Eq {  <<            }
  233. X"subset"    @Dbl @Eq {  subset        }
  234. X"subseteq"    @Dbl @Eq {  subseteq        }
  235. X"sqsubseteq"    @Dbl @Eq {  sqsubseteq        }
  236. X"in"        @Dbl @Eq {  in            }
  237. X"vdash"        @Dbl @Eq {  vdash        }
  238. X"smile"        @Dbl @Eq {  smile        }
  239. X"frown"        @Dbl @Eq {  frown        }
  240. X">="        @Dbl @Eq {  >=            }
  241. X"succ"        @Dbl @Eq {  succ        }
  242. X"succeq"    @Dbl @Eq {  succeq        }
  243. X">>"        @Dbl @Eq {  >>            }
  244. X"supset"    @Dbl @Eq {  supset        }
  245. X"supseteq"    @Dbl @Eq {  supseteq        }
  246. X"sqsupseteq"    @Dbl @Eq {  sqsupseteq        }
  247. X"ni"        @Dbl @Eq {  ni            }
  248. X"dashv"        @Dbl @Eq {  dashv        }
  249. X"mid"        @Dbl @Eq {  mid            }
  250. X"parallel"    @Dbl @Eq {  parallel        }
  251. X"=="        @Dbl @Eq {  ==            }
  252. X"~"        @Dbl @Eq {  ~            }
  253. X"-~"        @Dbl @Eq {  -~            }
  254. X"asymp"        @Dbl @Eq {  asymp        }
  255. X"~~"        @Dbl @Eq {  ~~            }
  256. X"=~"        @Dbl @Eq {  =~            }
  257. X"bowtie"    @Dbl @Eq {  bowtie        }
  258. X"propto"    @Dbl @Eq {  propto        }
  259. X"models"    @Dbl @Eq {  models        }
  260. X"doteq"        @Dbl @Eq {  doteq        }
  261. X"perp"        @Dbl @Eq {  perp        }
  262. X"notsub"    @Dbl @Eq {  notsub        }
  263. X"notin"        @Dbl @Eq {  notin        }
  264. X"!="        @Dbl @Eq {  !=            }
  265. X"<->"        @Dbl @Eq {  <->            }
  266. X"<--"        @Dbl @Eq {  <--            }
  267. X"-->"        @Dbl @Eq {  -->            }
  268. X"up"        @Dbl @Eq {  up            }
  269. X"down"        @Dbl @Eq {  down        }
  270. X"<=>"        @Dbl @Eq {  <=>            }
  271. X"<=="        @Dbl @Eq {  <==            }
  272. X"==>"        @Dbl @Eq {  ==>            }
  273. X"dblup"        @Dbl @Eq {  dblup        }
  274. X"dbldown"    @Dbl @Eq {  dbldown        }
  275. X":"        @Dbl @Eq {  :            }
  276. X"::"        @Dbl @Eq {  ::            }
  277. X":="        @Dbl @Eq {  :=            }
  278. X}
  279. X@DP
  280. XThese can be negated by preceding them with {@Code "not"}, as in
  281. X{@Code "not =="}, for example, which yields {@Eq { not == }}.  The
  282. Xfollowing short names define binary operators (medium space on each side):
  283. X@DP
  284. Xragged @Break {
  285. X"+"        @Dbl @Eq {  +            }
  286. X"-"        @Dbl @Eq {  -            }
  287. X"+-"        @Dbl @Eq {  +-            }
  288. X"-+"        @Dbl @Eq {  -+            }
  289. X"setminus"    @Dbl @Eq {  setminus        }
  290. X"cdot"        @Dbl @Eq {  cdot        }
  291. X"times"        @Dbl @Eq {  times        }
  292. X"*"        @Dbl @Eq {  *            }
  293. X"circ"        @Dbl @Eq {  circ        }
  294. X"div"        @Dbl @Eq {  div            }
  295. X"cap"        @Dbl @Eq {  cap            }
  296. X"cup"        @Dbl @Eq {  cup            }
  297. X"uplus"        @Dbl @Eq {  uplus        }
  298. X"sqcap"        @Dbl @Eq {  sqcap        }
  299. X"sqcup"        @Dbl @Eq {  sqcup        }
  300. X"triangleleft"    @Dbl @Eq {  triangleleft    }
  301. X"triangleright"    @Dbl @Eq {  triangleright    }
  302. X"wr"        @Dbl @Eq {  wr            }
  303. X"bigcirc"    @Dbl @Eq {  bigcirc        }
  304. X"bigtriangleup"    @Dbl @Eq {  bigtriangleup    }
  305. X"bigtriangledown"@Dbl @Eq {  bigtriangledown    }
  306. X"vee"        @Dbl @Eq {  vee            }
  307. X"wedge"        @Dbl @Eq {  wedge        }
  308. X"oplus"        @Dbl @Eq {  oplus        }
  309. X"ominus"    @Dbl @Eq {  ominus        }
  310. X"otimes"    @Dbl @Eq {  otimes        }
  311. X"oslash"    @Dbl @Eq {  oslash        }
  312. X"odot"        @Dbl @Eq {  odot        }
  313. X"dagger"    @Dbl @Eq {  dagger        }
  314. X"daggerdbl"    @Dbl @Eq {  daggerdbl        }
  315. X"amalg"        @Dbl @Eq {  amalg        }
  316. X}
  317. X@DP
  318. XThe following names define punctuation symbols (thin space on the
  319. Xright-hand side):
  320. X@DP
  321. Xragged @Break {
  322. X";"        @Dbl @Eq {  ;            }
  323. X","        @Dbl @Eq {  ,            }
  324. X"col"        @Dbl @Eq {  col            }
  325. X}
  326. X@DP
  327. XThe following symbols are used in ways typified by the large sum and
  328. Xproduct symbols.  In display equations they should be preceded by the
  329. X@Code "big" symbol:
  330. X@DP
  331. Xragged @Break {
  332. X"sum"        @Dbl @Eq {  sum            }
  333. X"prod"        @Dbl @Eq {  prod        }
  334. X"coprod"    @Dbl @Eq {  coprod        }
  335. X@LP
  336. X"int"        @Dbl @Eq {  int            }
  337. X"oint"        @Dbl @Eq {  oint        }
  338. X"bcap"        @Dbl @Eq {  bcap        }
  339. X@LP
  340. X"bcup"        @Dbl @Eq {  bcup        }
  341. X"bvee"        @Dbl @Eq {  bvee        }
  342. X"bwedge"    @Dbl @Eq {  bwedge        }
  343. X@LP
  344. X"bodot"        @Dbl @Eq {  bodot        }
  345. X"botimes"    @Dbl @Eq {  botimes        }
  346. X"boplus"    @Dbl @Eq {  boplus        }
  347. X@LP
  348. X"buplus"    @Dbl @Eq {  buplus        }
  349. X}
  350. X@DP
  351. XThe following symbols are defined so that they will appear in Roman,
  352. Xas is con&-vent&-ional for them in equations:
  353. X@DP
  354. Xragged @Break {
  355. X"arccos"    @Dbl @Eq {  arccos        }
  356. X"arcsin"    @Dbl @Eq {  arcsin        }
  357. X"arctan"    @Dbl @Eq {  arctan        }
  358. X"arg"        @Dbl @Eq {  arg            }
  359. X"cos"        @Dbl @Eq {  cos            }
  360. X"cosh"        @Dbl @Eq {  cosh        }
  361. X"cot"        @Dbl @Eq {  cot            }
  362. X"coth"        @Dbl @Eq {  coth        }
  363. X"csc"        @Dbl @Eq {  csc            }
  364. X"deg"        @Dbl @Eq {  deg            }
  365. X"det"        @Dbl @Eq {  det            }
  366. X"dim"        @Dbl @Eq {  dim            }
  367. X"exp"        @Dbl @Eq {  exp            }
  368. X"gcd"        @Dbl @Eq {  gcd            }
  369. X"hom"        @Dbl @Eq {  hom            }
  370. X"inf"        @Dbl @Eq {  inf            }
  371. X"ker"        @Dbl @Eq {  ker            }
  372. X"lg"        @Dbl @Eq {  lg            }
  373. X"lim"        @Dbl @Eq {  lim            }
  374. X"liminf"    @Dbl @Eq {  liminf        }
  375. X"limsup"    @Dbl @Eq {  limsup        }
  376. X"ln"        @Dbl @Eq {  ln            }
  377. X"log"        @Dbl @Eq {  log            }
  378. X"max"        @Dbl @Eq {  max            }
  379. X"min"        @Dbl @Eq {  min            }
  380. X"Pr"        @Dbl @Eq {  Pr            }
  381. X"sec"        @Dbl @Eq {  sec            }
  382. X"sin"        @Dbl @Eq {  sin            }
  383. X"sinh"        @Dbl @Eq {  sinh        }
  384. X"supr"        @Dbl @Eq {  supr        }
  385. X"tan"        @Dbl @Eq {  tan            }
  386. X"tanh"        @Dbl @Eq {  tanh        }
  387. X"mod"        @Dbl @Eq {  mod            }
  388. X}
  389. X@DP
  390. XThe following symbols are also defined to ensure that they will appear
  391. Xin Roman:
  392. X@DP
  393. Xragged @Break {
  394. X"0"        @Dbl @Eq {  0            }
  395. X"1"        @Dbl @Eq {  1            }
  396. X"2"        @Dbl @Eq {  2            }
  397. X"3"        @Dbl @Eq {  3            }
  398. X"4"        @Dbl @Eq {  4            }
  399. X"5"        @Dbl @Eq {  5            }
  400. X"6"        @Dbl @Eq {  6            }
  401. X"7"        @Dbl @Eq {  7            }
  402. X"8"        @Dbl @Eq {  8            }
  403. X"9"        @Dbl @Eq {  9            }
  404. X"!"        @Dbl @Eq {  !            }
  405. X"?"        @Dbl @Eq {  ?            }
  406. X"%"        @Dbl @Eq {  %            }
  407. X"("        @Dbl @Eq {  (            }
  408. X")"        @Dbl @Eq {  )            }
  409. X"["        @Dbl @Eq {  [            }
  410. X"]"        @Dbl @Eq {  ]            }
  411. X}
  412. X@DP
  413. XThe following symbols make good @Code atleft and
  414. X@Code atright parameters of the @Code matrix symbol:
  415. X@LP
  416. X@LP
  417. Xragged @Break {
  418. X"lpar"        @Dbl @Eq {  lpar        }
  419. X"blpar"        @Dbl @Eq {  blpar        }
  420. X"rpar"        @Dbl @Eq {  rpar        }
  421. X"brpar"        @Dbl @Eq {  brpar        }
  422. X"lbrack"    @Dbl @Eq {  lbrack        }
  423. X"blbrack"    @Dbl @Eq {  blbrack        }
  424. X"rbrack"    @Dbl @Eq {  rbrack        }
  425. X"brbrack"    @Dbl @Eq {  brbrack        }
  426. X"lbrace"    @Dbl @Eq {  lbrace        }
  427. X"blbrace"    @Dbl @Eq {  blbrace        }
  428. X"rbrace"    @Dbl @Eq {  rbrace        }
  429. X"brbrace"    @Dbl @Eq {  brbrace        }
  430. X"lfloor"    @Dbl @Eq {  lfloor        }
  431. X"blfloor"    @Dbl @Eq {  blfloor        }
  432. X"rfloor"    @Dbl @Eq {  rfloor        }
  433. X"brfloor"    @Dbl @Eq {  brfloor        }
  434. X"lceil"        @Dbl @Eq {  lceil        }
  435. X"blceil"    @Dbl @Eq {  blceil        }
  436. X"rceil"        @Dbl @Eq {  rceil        }
  437. X"brceil"    @Dbl @Eq {  brceil        }
  438. X"langle"    @Dbl @Eq {  langle        }
  439. X"blangle"    @Dbl @Eq {  blangle        }
  440. X"rangle"    @Dbl @Eq {  rangle        }
  441. X"brangle"    @Dbl @Eq {  brangle        }
  442. X}
  443. X@LP
  444. X@LP
  445. XHere are some miscellaneous symbols:
  446. X@DP
  447. Xragged @Break {
  448. X"hbar"        @Dbl @Eq {  hbar        }
  449. X"Re"        @Dbl @Eq {  Re            }
  450. X"Im"        @Dbl @Eq {  Im            }
  451. X"partial"    @Dbl @Eq {  partial        }
  452. X"infty"        @Dbl @Eq {  infty        }
  453. X"prime"        @Dbl @Eq {  prime        }
  454. X"nabla"        @Dbl @Eq {  nabla        }
  455. X"surd"        @Dbl @Eq {  surd        }
  456. X"top"        @Dbl @Eq {  top            }
  457. X"bot"        @Dbl @Eq {  bot            }
  458. X"dbar"        @Dbl @Eq {  dbar        }
  459. X"triangle"    @Dbl @Eq {  triangle        }
  460. X"backslash"    @Dbl @Eq {  backslash        }
  461. X"forall"    @Dbl @Eq {  forall        }
  462. X"exists"    @Dbl @Eq {  exists        }
  463. X"neg"        @Dbl @Eq {  neg            }
  464. X"circle"    @Dbl @Eq {  circle        }
  465. X"square"    @Dbl @Eq {  square        }
  466. X"ldots"        @Dbl @Eq {  ldots        }
  467. X"cdots"        @Dbl @Eq {  cdots        }
  468. X"vdots"        @Dbl @Eq {  vdots        }
  469. X"ddots"        @Dbl @Eq {  ddots        }
  470. X"del"        @Dbl @Eq {  del            }
  471. X"grad"        @Dbl @Eq {  grad        }
  472. X"..."        @Dbl @Eq {  ...            }
  473. X",...,"        @Dbl @Eq {  ,...,        }
  474. X"half"        @Dbl @Eq {  half        }
  475. X"third"        @Dbl @Eq {  third        }
  476. X"'"        @Dbl @Eq {  '            }
  477. X"empty"        @Dbl @Eq {  empty        }
  478. X}
  479. X@DP
  480. XFinally, here is the long list of full names from the Adobe Symbol font:
  481. X@DP
  482. Xragged @Break {
  483. X"space"        @Dbl @Eq {  space        }
  484. X"exclam"    @Dbl @Eq {  exclam        }
  485. X"universal"    @Dbl @Eq {  universal        }
  486. X"numbersign"    @Dbl @Eq {  numbersign        }
  487. X"existential"    @Dbl @Eq {  existential        }
  488. X"percent"    @Dbl @Eq {  percent        }
  489. X"ampersand"    @Dbl @Eq {  ampersand        }
  490. X"suchthat"    @Dbl @Eq {  suchthat        }
  491. X"parenleft"    @Dbl @Eq {  parenleft        }
  492. X"parenright"    @Dbl @Eq {  parenright        }
  493. X"asteriskmath"    @Dbl @Eq {  asteriskmath    }
  494. X"plus"        @Dbl @Eq {  plus        }
  495. X"comma"        @Dbl @Eq {  comma        }
  496. X"minus"        @Dbl @Eq {  minus        }
  497. X"period"    @Dbl @Eq {  period        }
  498. X"slash"        @Dbl @Eq {  slash        }
  499. X"zero"        @Dbl @Eq {  zero        }
  500. X"one"        @Dbl @Eq {  one            }
  501. X"two"        @Dbl @Eq {  two            }
  502. X"three"        @Dbl @Eq {  three        }
  503. X"four"        @Dbl @Eq {  four        }
  504. X"five"        @Dbl @Eq {  five        }
  505. X"six"        @Dbl @Eq {  six            }
  506. X"seven"        @Dbl @Eq {  seven        }
  507. X"eight"        @Dbl @Eq {  eight        }
  508. X"nine"        @Dbl @Eq {  nine        }
  509. X"colon"        @Dbl @Eq {  colon        }
  510. X"semicolon"    @Dbl @Eq {  semicolon        }
  511. X"less"        @Dbl @Eq {  less        }
  512. X"equal"        @Dbl @Eq {  equal        }
  513. X"greater"    @Dbl @Eq {  greater        }
  514. X"question"    @Dbl @Eq {  question        }
  515. X"congruent"    @Dbl @Eq {  congruent        }
  516. X"Alpha"        @Dbl @Eq {  Alpha        }
  517. X"Beta"        @Dbl @Eq {  Beta        }
  518. X"Chi"        @Dbl @Eq {  Chi            }
  519. X"Delta"        @Dbl @Eq {  Delta        }
  520. X"Epsilon"    @Dbl @Eq {  Epsilon        }
  521. X"Phi"        @Dbl @Eq {  Phi            }
  522. X"Gamma"        @Dbl @Eq {  Gamma        }
  523. X"Eta"        @Dbl @Eq {  Eta            }
  524. X"Iota"        @Dbl @Eq {  Iota        }
  525. X"thetaone"    @Dbl @Eq {  thetaone        }
  526. X"Kappa"        @Dbl @Eq {  Kappa        }
  527. X"Lambda"    @Dbl @Eq {  Lambda        }
  528. X"Mu"        @Dbl @Eq {  Mu            }
  529. X"Nu"        @Dbl @Eq {  Nu            }
  530. X"Omicron"    @Dbl @Eq {  Omicron        }
  531. X"Pi"        @Dbl @Eq {  Pi            }
  532. X"Theta"        @Dbl @Eq {  Theta        }
  533. X"Rho"        @Dbl @Eq {  Rho            }
  534. X"Sigma"        @Dbl @Eq {  Sigma        }
  535. X"Tau"        @Dbl @Eq {  Tau            }
  536. X"Upsilon"    @Dbl @Eq {  Upsilon        }
  537. X"sigmaone"    @Dbl @Eq {  sigmaone        }
  538. X"Omega"        @Dbl @Eq {  Omega        }
  539. X"Xi"        @Dbl @Eq {  Xi            }
  540. X"Psi"        @Dbl @Eq {  Psi            }
  541. X"Zeta"        @Dbl @Eq {  Zeta        }
  542. X"bracketleft"    @Dbl @Eq {  bracketleft        }
  543. X"therefore"    @Dbl @Eq {  therefore        }
  544. X"bracketright"    @Dbl @Eq {  bracketright    }
  545. X"perpendicular"    @Dbl @Eq {  perpendicular    }
  546. X"underscore"    @Dbl @Eq {  underscore        }
  547. X"radicalex"    @Dbl @Eq {  radicalex        }
  548. X"alpha"        @Dbl @Eq {  alpha        }
  549. X"beta"        @Dbl @Eq {  beta        }
  550. X"chi"        @Dbl @Eq {  chi            }
  551. X"delta"        @Dbl @Eq {  delta        }
  552. X"epsilon"    @Dbl @Eq {  epsilon        }
  553. X"phi"        @Dbl @Eq {  phi            }
  554. X"gamma"        @Dbl @Eq {  gamma        }
  555. X"eta"        @Dbl @Eq {  eta            }
  556. X"iota"        @Dbl @Eq {  iota        }
  557. X"phione"    @Dbl @Eq {  phione        }
  558. X"kappa"        @Dbl @Eq {  kappa        }
  559. X"lambda"    @Dbl @Eq {  lambda        }
  560. X"mu"        @Dbl @Eq {  mu            }
  561. X"nu"        @Dbl @Eq {  nu            }
  562. X"omicron"    @Dbl @Eq {  omicron        }
  563. X"pi"        @Dbl @Eq {  pi            }
  564. X"theta"        @Dbl @Eq {  theta        }
  565. X"rho"        @Dbl @Eq {  rho            }
  566. X"sigma"        @Dbl @Eq {  sigma        }
  567. X"tau"        @Dbl @Eq {  tau            }
  568. X"upsilon"    @Dbl @Eq {  upsilon        }
  569. X"omegaone"    @Dbl @Eq {  omegaone        }
  570. X"omega"        @Dbl @Eq {  omega        }
  571. X"xi"        @Dbl @Eq {  xi            }
  572. X"psi"        @Dbl @Eq {  psi            }
  573. X"zeta"        @Dbl @Eq {  zeta        }
  574. X"braceleft"    @Dbl @Eq {  braceleft        }
  575. X"bar"        @Dbl @Eq {  bar            }
  576. X"braceright"    @Dbl @Eq {  braceright        }
  577. X"similar"    @Dbl @Eq {  similar        }
  578. X"Upsilonone"    @Dbl @Eq {  Upsilonone        }
  579. X"minute"    @Dbl @Eq {  minute        }
  580. X"lessequal"    @Dbl @Eq {  lessequal        }
  581. X"fraction"    @Dbl @Eq {  fraction        }
  582. X"infinity"    @Dbl @Eq {  infinity        }
  583. X"florin"    @Dbl @Eq {  florin        }
  584. X"club"        @Dbl @Eq {  club        }
  585. X"diamond"    @Dbl @Eq {  diamond        }
  586. X"heart"        @Dbl @Eq {  heart        }
  587. X"spade"        @Dbl @Eq {  spade        }
  588. X"arrowboth"    @Dbl @Eq {  arrowboth        }
  589. X"arrowleft"    @Dbl @Eq {  arrowleft        }
  590. X"arrowup"    @Dbl @Eq {  arrowup        }
  591. X"arrowright"    @Dbl @Eq {  arrowright        }
  592. X"arrowdown"    @Dbl @Eq {  arrowdown        }
  593. X"degree"    @Dbl @Eq {  degree        }
  594. X"plusminus"    @Dbl @Eq {  plusminus        }
  595. X"second"    @Dbl @Eq {  second        }
  596. X"greaterequal"    @Dbl @Eq {  greaterequal    }
  597. X"multiply"    @Dbl @Eq {  multiply        }
  598. X"proportional"    @Dbl @Eq {  proportional    }
  599. X"partialdiff"    @Dbl @Eq {  partialdiff        }
  600. X"bullet"    @Dbl @Eq {  bullet        }
  601. X"divide"    @Dbl @Eq {  divide        }
  602. X"notequal"    @Dbl @Eq {  notequal        }
  603. X"equivalence"    @Dbl @Eq {  equivalence        }
  604. X"approxequal"    @Dbl @Eq {  approxequal        }
  605. X"ellipsis"    @Dbl @Eq {  ellipsis        }
  606. X"arrowvertex"    @Dbl @Eq {  arrowvertex        }
  607. X"arrowhorizex"    @Dbl @Eq {  arrowhorizex    }
  608. X"carriagereturn"@Dbl @Eq {  carriagereturn    }
  609. X"aleph"        @Dbl @Eq {  aleph        }
  610. X"Ifraktur"    @Dbl @Eq {  Ifraktur        }
  611. X"Rfraktur"    @Dbl @Eq {  Rfraktur        }
  612. X"weierstrass"    @Dbl @Eq {  weierstrass        }
  613. X"circlemultiply"@Dbl @Eq {  circlemultiply    }
  614. X"circleplus"    @Dbl @Eq {  circleplus        }
  615. X"emptyset"    @Dbl @Eq {  emptyset        }
  616. X"intersection"    @Dbl @Eq {  intersection    }
  617. X"union"        @Dbl @Eq {  union        }
  618. X"propersuperset"@Dbl @Eq {  propersuperset    }
  619. X"reflexsuperset"@Dbl @Eq {  reflexsuperset    }
  620. X"notsubset"    @Dbl @Eq {  notsubset        }
  621. X"propersubset"    @Dbl @Eq {  propersubset    }
  622. X"reflexsubset"    @Dbl @Eq {  reflexsubset    }
  623. X"element"    @Dbl @Eq {  element        }
  624. X"notelement"    @Dbl @Eq {  notelement        }
  625. X"angle"        @Dbl @Eq {  angle        }
  626. X"gradient"    @Dbl @Eq {  gradient        }
  627. X"registerserif"    @Dbl @Eq {  registerserif    }
  628. X"copyrightserif"@Dbl @Eq {  copyrightserif    }
  629. X"trademarkserif"@Dbl @Eq {  trademarkserif    }
  630. X"product"    @Dbl @Eq {  product        }
  631. X"radical"    @Dbl @Eq {  radical        }
  632. X"dotmath"    @Dbl @Eq {  dotmath        }
  633. X"logicalnot"    @Dbl @Eq {  logicalnot        }
  634. X"logicaland"    @Dbl @Eq {  logicaland        }
  635. X"logicalor"    @Dbl @Eq {  logicalor        }
  636. X"arrowdblboth"    @Dbl @Eq {  arrowdblboth    }
  637. X"arrowdblleft"    @Dbl @Eq {  arrowdblleft    }
  638. X"arrowdblup"    @Dbl @Eq {  arrowdblup        }
  639. X"arrowdblright"    @Dbl @Eq {  arrowdblright    }
  640. X"arrowdbldown"    @Dbl @Eq {  arrowdbldown    }
  641. X"lozenge"    @Dbl @Eq {  lozenge        }
  642. X"angleleft"    @Dbl @Eq {  angleleft        }
  643. X"registersans"    @Dbl @Eq {  registersans    }
  644. X"copyrightsans"    @Dbl @Eq {  copyrightsans    }
  645. X"trademarksans"    @Dbl @Eq {  trademarksans    }
  646. X"summation"    @Dbl @Eq {  summation        }
  647. X"parenlefttp"    @Dbl @Eq {  parenlefttp        }
  648. X"parenleftex"    @Dbl @Eq {  parenleftex        }
  649. X"parenleftbt"    @Dbl @Eq {  parenleftbt        }
  650. X"bracketlefttp"    @Dbl @Eq {  bracketlefttp    }
  651. X"bracketleftex"    @Dbl @Eq {  bracketleftex    }
  652. X"bracketleftbt"    @Dbl @Eq {  bracketleftbt    }
  653. X"bracelefttp"    @Dbl @Eq {  bracelefttp        }
  654. X"braceleftmid"    @Dbl @Eq {  braceleftmid    }
  655. X"braceleftbt"    @Dbl @Eq {  braceleftbt        }
  656. X"braceex"    @Dbl @Eq {  braceex        }
  657. X"angleright"    @Dbl @Eq {  angleright        }
  658. X"integral"    @Dbl @Eq {  integral        }
  659. X"integraltp"    @Dbl @Eq {  integraltp        }
  660. X"integralex"    @Dbl @Eq {  integralex        }
  661. X"integralbt"    @Dbl @Eq {  integralbt        }
  662. X"parenrighttp"    @Dbl @Eq {  parenrighttp    }
  663. X"parenrightex"    @Dbl @Eq {  parenrightex    }
  664. X"parenrightbt"    @Dbl @Eq {  parenrightbt    }
  665. X"bracketrighttp"@Dbl @Eq {  bracketrighttp    }
  666. X"bracketrightex"@Dbl @Eq {  bracketrightex    }
  667. X"bracketrightbt"@Dbl @Eq {  bracketrightbt    }
  668. X"bracerighttp"    @Dbl @Eq {  bracerighttp    }
  669. X"bracerightmid"    @Dbl @Eq {  bracerightmid    }
  670. X"bracerightbt"    @Dbl @Eq {  bracerightbt    }
  671. X}
  672. X@DP
  673. XThe names given are the same as Adobe's except in a few places where
  674. Xthe Adobe name contains a digit, which is not possible in Lout.
  675. X@End @Section
  676. END_OF_FILE
  677.   if test 16617 -ne `wc -c <'lout/doc/tr.eq/s5'`; then
  678.     echo shar: \"'lout/doc/tr.eq/s5'\" unpacked with wrong size!
  679.   fi
  680.   # end of 'lout/doc/tr.eq/s5'
  681. fi
  682. if test -f 'lout/doc/tr.impl/setup' -a "${1}" != "-c" ; then 
  683.   echo shar: Will not clobber existing file \"'lout/doc/tr.impl/setup'\"
  684. else
  685.   echo shar: Extracting \"'lout/doc/tr.impl/setup'\" \(13292 characters\)
  686.   sed "s/^X//" >'lout/doc/tr.impl/setup' <<'END_OF_FILE'
  687. X
  688. X######################################################
  689. X#                                                    #
  690. X#  Lout setup file for design and imp. paper         #
  691. X#                                                    #
  692. X#  Jeffrey H. Kingston                               #
  693. X#  13 January 1992                                   #
  694. X#                                                    #
  695. X######################################################
  696. X
  697. X@SysInclude { ft  }
  698. X@SysInclude { dl  }
  699. X@SysInclude { tab }
  700. X@SysInclude { eq  }
  701. X@SysInclude { pas }
  702. X@SysInclude { fig }
  703. X
  704. Xdef @TeX { T{ /0.2fo E}X }
  705. X
  706. Xdef @Code
  707. X    right x
  708. X{   { Helvetica Base -1p } @Font lines @Break x
  709. X}
  710. X
  711. X######################################################
  712. X#                                                    #
  713. X#  Nodes and trees.                                  #
  714. X#                                                    #
  715. X######################################################
  716. X
  717. Ximport @Fig
  718. Xdef @FBox
  719. X    named width  { 0.6c }
  720. X    named height { 0.4c }
  721. X    named margin { 0.1c }
  722. X    right x
  723. X{
  724. X    @Box margin { margin }
  725. X    {    width @Wide height @High
  726. X    { /0.5rt |0.5rt @OneCol @OneRow 0.8f @Font x
  727. X    }
  728. X    }
  729. X}
  730. X
  731. Ximport @Fig
  732. Xdef @FEllipse
  733. X    named width  { 0.6c }
  734. X    named height { 0.4c }
  735. X    named margin { 0.1c }
  736. X    right x
  737. X{
  738. X    @Ellipse margin { margin }
  739. X    {    height @High
  740. X    { /0.5rt |0.5rt @OneCol @OneRow 0.8f @Font x
  741. X    }
  742. X    }
  743. X}
  744. X
  745. Ximport @Fig
  746. Xdef @FCircle
  747. X    named width  { 0.4c }
  748. X    named height { 0.4c }
  749. X    named margin { 0.1c }
  750. X    right x
  751. X{
  752. X    @Circle margin { margin }
  753. X    {    width @Wide height @High
  754. X    { /0.5rt |0.5rt @OneCol @OneRow 0.8f @Font x
  755. X    }
  756. X    }
  757. X}
  758. X
  759. Ximport @Fig
  760. Xdef @JoinFigures
  761. X    left A
  762. X    named linestyle  { solid   }
  763. X    named linewidth  { 0.5 pt  }
  764. X    named linecap    { round   }
  765. X    named dashlength { 0.15 cm }
  766. X    named arrow      { noarrow }
  767. X    named headstyle  { open    }
  768. X    named headwidth  { 0.05 cm }
  769. X    named headlength { 0.15 cm }
  770. X    right B
  771. X{
  772. X    @Line
  773. X    from       { {A"@CTR"} ++ {{A"@CTR"} @Angle {B"@CTR"} A"@CIRCUM"} }
  774. X    to         { {B"@CTR"} ++ {{B"@CTR"} @Angle {A"@CTR"} B"@CIRCUM"} }
  775. X    linestyle  { linestyle  }
  776. X    linewidth  { linewidth  }
  777. X    linecap    { linecap    }
  778. X    dashlength { dashlength }
  779. X    arrow      { arrow      }
  780. X    headstyle  { headstyle  }
  781. X    headwidth  { headwidth  }
  782. X    headlength { headlength }
  783. X    {}
  784. X}
  785. X
  786. Ximport @Fig
  787. Xexport @LeftSub @RightSub @FirstSub @NextSub @StubSub @Node
  788. Xdef @Tree
  789. X    named hmargin    { 0.2c    }
  790. X    named vmargin    { 0.3c    }
  791. X    named linestyle  { solid   }
  792. X    named linewidth  { 0.5 pt  }
  793. X    named linecap    { round   }
  794. X    named dashlength { 0.15 cm }
  795. X    named arrow      { noarrow }
  796. X    named headstyle  { open    }
  797. X    named headwidth  { 0.05 cm }
  798. X    named headlength { 0.15 cm }
  799. X    body x
  800. X@Begin
  801. X
  802. X    def @LeftSub
  803. X    precedence 90
  804. X    associativity left
  805. X    left root
  806. X    named hmargin    { hmargin    }
  807. X    named linestyle  { linestyle  }
  808. X    named linewidth  { linewidth  }
  809. X    named linecap    { linecap    }
  810. X    named dashlength { dashlength }
  811. X    named arrow      { arrow      }
  812. X    named headstyle  { headstyle  }
  813. X    named headwidth  { headwidth  }
  814. X    named headlength { headlength }
  815. X    right x
  816. X    {
  817. X    { /vmargin {L::x} } |hmargin  root |
  818. X    L@T @JoinFigures
  819. X            linestyle  { linestyle  }
  820. X            linewidth  { linewidth  }
  821. X            linecap    { linecap    }
  822. X            dashlength { dashlength }
  823. X            arrow      { arrow      }
  824. X            headstyle  { headstyle  }
  825. X            headwidth  { headwidth  }
  826. X            headlength { headlength }
  827. X    T
  828. X    }
  829. X
  830. X    def fixroot
  831. X    precedence 90
  832. X    left root
  833. X    {
  834. X    |0.5rt root
  835. X    }
  836. X
  837. X    def firstsub
  838. X    precedence 90
  839. X    associativity left
  840. X    named hmargin    { hmargin    }
  841. X    named linestyle  { linestyle  }
  842. X    named linewidth  { linewidth  }
  843. X    named linecap    { linecap    }
  844. X    named dashlength { dashlength }
  845. X    named arrow      { arrow      }
  846. X    named headstyle  { headstyle  }
  847. X    named headwidth  { headwidth  }
  848. X    named headlength { headlength }
  849. X    right x
  850. X    {
  851. X    S::x &
  852. X    S@T @JoinFigures
  853. X        linestyle  { linestyle  }
  854. X        linewidth  { linewidth  }
  855. X        linecap    { linecap    }
  856. X        dashlength { dashlength }
  857. X        arrow      { arrow      }
  858. X        headstyle  { headstyle  }
  859. X        headwidth  { headwidth  }
  860. X        headlength { headlength }
  861. X    T
  862. X    }
  863. X
  864. X    macro @FirstSub { fixroot //vmargin |0.5rt firstsub }
  865. X
  866. X    def @NextSub
  867. X    precedence 90
  868. X    associativity left
  869. X    left others
  870. X    named hmargin    { hmargin    }
  871. X    named linestyle  { linestyle  }
  872. X    named linewidth  { linewidth  }
  873. X    named linecap    { linecap    }
  874. X    named dashlength { dashlength }
  875. X    named arrow      { arrow      }
  876. X    named headstyle  { headstyle  }
  877. X    named headwidth  { headwidth  }
  878. X    named headlength { headlength }
  879. X    right x
  880. X    {
  881. X    others &hmargin S::x &
  882. X    S@T @JoinFigures
  883. X        linestyle  { linestyle  }
  884. X        linewidth  { linewidth  }
  885. X        linecap    { linecap    }
  886. X        dashlength { dashlength }
  887. X        arrow      { arrow      }
  888. X        headstyle  { headstyle  }
  889. X        headwidth  { headwidth  }
  890. X        headlength { headlength }
  891. X    T
  892. X    }
  893. X
  894. X    def @RightSub
  895. X    precedence 90
  896. X    associativity left
  897. X    left root
  898. X    named hmargin    { hmargin    }
  899. X    named linestyle  { linestyle  }
  900. X    named linewidth  { linewidth  }
  901. X    named linecap    { linecap    }
  902. X    named dashlength { dashlength }
  903. X    named arrow      { arrow      }
  904. X    named headstyle  { headstyle  }
  905. X    named headwidth  { headwidth  }
  906. X    named headlength { headlength }
  907. X    right x
  908. X    {
  909. X    root |hmargin  { /vmargin {R::x} } |
  910. X    R@T @JoinFigures
  911. X        linestyle  { linestyle  }
  912. X        linewidth  { linewidth  }
  913. X        linecap    { linecap    }
  914. X        dashlength { dashlength }
  915. X        arrow      { arrow      }
  916. X        headstyle  { headstyle  }
  917. X        headwidth  { headwidth  }
  918. X        headlength { headlength }
  919. X    T
  920. X    }
  921. X
  922. X    def @StubSub
  923. X    precedence 90
  924. X    associativity left
  925. X    left root
  926. X    named linestyle  { linestyle  }
  927. X    named linewidth  { linewidth  }
  928. X    named linecap    { linecap    }
  929. X    named dashlength { dashlength }
  930. X    {
  931. X    root |
  932. X    @Figure
  933. X        shape { T@SW
  934. X            T@W -- { 0.1 cm 0.7 cm }
  935. X            T@E -- {-0.1 cm 0.7 cm }
  936. X            T@SE
  937. X          }
  938. X        linestyle  { linestyle  }
  939. X        linewidth  { linewidth  }
  940. X        linecap    { linecap    }
  941. X        dashlength { dashlength }
  942. X    { @Null }
  943. X    }
  944. X
  945. X    def @Node
  946. X    # named mark {}
  947. X    right root
  948. X    {
  949. X    T:: root
  950. X    # & T@W ++ { -0.2 cm 0.1 cm } @BaseOf mark
  951. X    }
  952. X
  953. X    @OneCol @OneRow x
  954. X
  955. X@End @Tree
  956. X
  957. X
  958. Xdef @ShowMarks
  959. X    named linewidth  { 0.015 cm }
  960. X    named linestyle  { dashed   }
  961. X    named dashlength { 0.15 cm  }
  962. X    named paint      { light    }
  963. X    named marks      { both     } # none, horizontal, vertical, or both
  964. X    right x
  965. X{
  966. X    @Fig
  967. X    {    @Box margin { 0c } linewidth { linewidth } paint { paint }
  968. X    {   @Figure
  969. X        shape {
  970. X            marks @Case {
  971. X                { horizontal both } @Yield
  972. X                { -0.3 cm ymark {xsize ymark} ++ {0.3 cm 0} }
  973. X                else @Yield {}
  974. X            }
  975. X            marks @Case {
  976. X            both @Yield []
  977. X            else @Yield {}
  978. X            }
  979. X            marks @Case {
  980. X            { vertical both } @Yield
  981. X                { xmark -0.3 cm {xmark ysize} ++ {0 0.3 cm} }
  982. X            else @Yield {}
  983. X            }
  984. X        }
  985. X        linewidth { linewidth }
  986. X        linestyle { linestyle }
  987. X        dashlength { dashlength }
  988. X          x
  989. X    }
  990. X    }
  991. X}
  992. X
  993. X   import @Fig
  994. X   def @DagBox
  995. X      named top {}
  996. X      named mid {}
  997. X      named base {}
  998. X   {
  999. X      @OneRow {
  1000. X       TOP::  @FBox top
  1001. X    // MID::  @FBox mid
  1002. X    // BASE:: @FBox base
  1003. X      }
  1004. X   }
  1005. X
  1006. X   import @Fig
  1007. X   def @BlackDot
  1008. X      named diameter { 0.07c }
  1009. X   {
  1010. X      @Circle
  1011. X    margin { 0c }
  1012. X    paint { black }
  1013. X      { diameter @Wide diameter @High {}
  1014. X      }
  1015. X   }
  1016. X
  1017. X   import @Fig
  1018. X   def @TVShape   # television shape enclosing points ne, nw, se, sw
  1019. X       named nw {}
  1020. X       named ne {}
  1021. X       named sw {}
  1022. X       named se {}
  1023. X       named delta { 0.5 cm }
  1024. X   {
  1025. X       @Figure
  1026. X       shape {
  1027. X        { {nw @Min sw @Min ne @Min se} -- { delta 0 } } @Label BL
  1028. X        { {nw @Max sw @Max ne @Max se} ++ { delta 0 } } @Label TR
  1029. X        BL ++ { 0 BL @YDistance TR } @Label TL
  1030. X        BL ++ { BL @XDistance TR 0 } @Label BR
  1031. X        BL
  1032. X        BR            [ BR ++ {0 delta} ]
  1033. X        BR ++ {delta delta}
  1034. X        TR ++ {delta -delta}    [ TR -- {0 delta} ]
  1035. X        TR
  1036. X        TL            [ TL -- {0 delta} ]
  1037. X        TL -- {delta delta}
  1038. X        BL ++ {-delta delta}    [ BL ++ {0 delta} ]
  1039. X        BL
  1040. X       }
  1041. X       {}
  1042. X   }
  1043. X
  1044. X   import @Fig
  1045. X   def @FunnyArrow
  1046. X      named from {}
  1047. X      named to {}
  1048. X      named arrow { forward }
  1049. X   {
  1050. X      @Figure
  1051. X         shape {from from ++ {0 from @YDistance to} to}
  1052. X         arrow { arrow }
  1053. X      {}
  1054. X   }
  1055. X
  1056. X   def "->" { {Symbol Base} @Font "\256" } #174 decimal
  1057. X   def "=>" { {Symbol Base} @Font "\336" } #222 decimal
  1058. X   macro @JP    { /0.5v  }
  1059. X
  1060. X   ###################################################
  1061. X   #                                                 #
  1062. X   #  Lout keywords.                                 #
  1063. X   #                                                 #
  1064. X   ###################################################
  1065. X
  1066. X   def @@Begin         { @Code "@Begin"        }
  1067. X   def @@Break         { @Code "@Break"        }
  1068. X   def @@Case          { @Code "@Case"         }
  1069. X   def @@Database      { @Code "@Database"     }
  1070. X   def @@End           { @Code "@End"          }
  1071. X   def @@Font          { @Code "@Font"         }
  1072. X   def @@Galley        { @Code "@Galley"       }
  1073. X   def @@Graphic       { @Code "@Graphic"      }
  1074. X   def @@HExpand       { @Code "@HExpand"      }
  1075. X   def @@HScale        { @Code "@HScale"       }
  1076. X   def @@High          { @Code "@High"         }
  1077. X   def @@Include       { @Code "@Include"      }
  1078. X   def @@Key           { @Code "@Key"          }
  1079. X   def @@LClos         { @Code "@LClos"        }
  1080. X   def @@LEnv          { @Code "@LEnv"         }
  1081. X   def @@LInput        { @Code "@LInput"       }
  1082. X   def @@Moment        { @Code "@Moment"       }
  1083. X   def @@Next          { @Code "@Next"         }
  1084. X   def @@Null          { @Code "@Null"         }
  1085. X   def @@OneCol        { @Code "@OneCol"       }
  1086. X   def @@OneRow        { @Code "@OneRow"       }
  1087. X   def @@Open          { @Code "@Open"         }
  1088. X   def @@Prepend       { @Code "@Prepend"      }
  1089. X   def @@Rotate        { @Code "@Rotate"       }
  1090. X   def @@Space         { @Code "@Space"        }
  1091. X   def @@SysDatabase   { @Code "@SysDatabase"  }
  1092. X   def @@SysInclude    { @Code "@SysInclude"   }
  1093. X   def @@SysPrepend    { @Code "@SysPrepend"   }
  1094. X   def @@Tag           { @Code "@Tag"          }
  1095. X   def @@Tagged        { @Code "@Tagged"       }
  1096. X   def @@Use           { @Code "@Use"          }
  1097. X   def @@VExpand       { @Code "@VExpand"      }
  1098. X   def @@VScale        { @Code "@VScale"       }
  1099. X   def @@Yield         { @Code "@Yield"        }
  1100. X   def @@Wide          { @Code "@Wide"         }
  1101. X
  1102. X
  1103. X   ###################################################
  1104. X   #                                                 #
  1105. X   #  Miscellaneous, mostly graphical definitions.   #
  1106. X   #                                                 #
  1107. X   ###################################################
  1108. X
  1109. X   def @Leaders
  1110. X   { ..   @Leaders
  1111. X   }
  1112. X
  1113. X   def @HLine {
  1114. X     { 0 0 moveto xsize 0 lineto stroke }
  1115. X     @Graphic {}
  1116. X   }
  1117. X
  1118. X   def @VDashLine
  1119. X      right length
  1120. X   {
  1121. X      length @High
  1122. X      { 0 0 moveto 0 ysize lineto [ 3 pt ] 0 setdash stroke }
  1123. X      @Graphic {}
  1124. X   }
  1125. X
  1126. X   def @LBox
  1127. X      right offset
  1128. X   {  @OneCol @OneRow
  1129. X      {
  1130. X        {  //0.2c
  1131. X           0.6c @High 1.2c @Wide
  1132. X           { 0 0 moveto xsize 0 lineto
  1133. X         xsize ysize lineto 0 ysize lineto closepath
  1134. X         gsave 0.9 setgray fill grestore stroke }
  1135. X           @Graphic {}
  1136. X        }
  1137. X        ||offset @VDashLine 1c
  1138. X      }
  1139. X   }
  1140. X
  1141. X   def @Arrow
  1142. X      right length
  1143. X   {  @OneCol @OneRow
  1144. X      {
  1145. X       30d @Rotate {0.12c @Wide @HLine}
  1146. X       //
  1147. X       length @Wide @HLine
  1148. X       //
  1149. X       "-30d" @Rotate {0.12c @Wide @HLine}
  1150. X      }
  1151. X   }
  1152. X
  1153. X   def @DoubleArrow
  1154. X      right length
  1155. X   {  @OneCol @OneRow
  1156. X      { 
  1157. X         & 180d @Rotate @Arrow length
  1158. X         |0io @Arrow length
  1159. X      }
  1160. X   }
  1161. X
  1162. X   def @Put
  1163. X     left coord
  1164. X     right x
  1165. X   { @OneCol @OneRow
  1166. X     { coord / | @OneCol @OneRow x
  1167. X     }
  1168. X   }
  1169. X   
  1170. X   macro @At { //0io }
  1171. X
  1172. X
  1173. X   ###################################################
  1174. X   #                                                 #
  1175. X   #  Interpolated example documents.                #
  1176. X   #                                                 #
  1177. X   ###################################################
  1178. X
  1179. X   def @LittleEndRunPlace { @Galley }
  1180. X   def @LittleEndRun
  1181. X      force into { @LittleEndRunPlace&&preceding }
  1182. X   {}
  1183. X
  1184. X   def @LittleTextPlace { @Galley }
  1185. X   def @LittleText into { @LittleTextPlace&&preceding }
  1186. X      right x
  1187. X   { x
  1188. X   }
  1189. X
  1190. X   def @LittleFootPlace { @Galley }
  1191. X   def @LittleFootNote into { @LittleFootPlace&&following }
  1192. X      right x
  1193. X   { x
  1194. X   }
  1195. X
  1196. X   def @LittlePageColumn
  1197. X      right x
  1198. X   {
  1199. X        9px @Break 8p @Font
  1200. X        2.8c @Wide x
  1201. X   }
  1202. X
  1203. X   def @LittlePage
  1204. X      right x
  1205. X   {
  1206. X      @HContract @VContract
  1207. X      { 0 0 moveto xsize 0 lineto xsize ysize lineto
  1208. X    0 ysize lineto closepath stroke } @Graphic
  1209. X      {  //0.3c ||0.3c
  1210. X         9px @Break 8p @Font
  1211. X         2.8c @Wide 3.8c @High x
  1212. X         ||0.3c //0.3c
  1213. X      }
  1214. X   }
  1215. X
  1216. X   def @LittleFootSect
  1217. X   {  1c @Wide @HLine
  1218. X      //0.3v @LittleFootPlace ||0.5c
  1219. X   }
  1220. X
  1221. X   def @LittlePageList
  1222. X     right @PageNum
  1223. X   {
  1224. X      @LittlePage { # |0.5rt @PageNum //0.8v
  1225. X        //0.3v @LittleTextPlace
  1226. X        //1rt @LittleFootSect
  1227. X         }
  1228. X      //
  1229. X      @LittlePageList @Next @PageNum
  1230. X   }
  1231. X
  1232. X   def @LittleDocument
  1233. X   {  @LittlePage
  1234. X      {  @LittleTextPlace
  1235. X         //1rt @LittleFootSect
  1236. X      }
  1237. X      // @LittlePageList 2
  1238. X      // @LittleEndRunPlace
  1239. X   }
  1240. X        
  1241. X   def @Strange
  1242. X       named @Format right @Val { [@Val] }
  1243. X       right x
  1244. X   {   @Format x
  1245. X   }
  1246. X
  1247. X
  1248. X@Use { @DocumentLayout
  1249. X    @MinorHeadingFont { Slope }
  1250. X}
  1251. X
  1252. X@Database @Reference { "oldrefs" }
  1253. END_OF_FILE
  1254.   if test 13292 -ne `wc -c <'lout/doc/tr.impl/setup'`; then
  1255.     echo shar: \"'lout/doc/tr.impl/setup'\" unpacked with wrong size!
  1256.   fi
  1257.   # end of 'lout/doc/tr.impl/setup'
  1258. fi
  1259. if test -f 'lout/font0/NewCenSchBolIta.AFM' -a "${1}" != "-c" ; then 
  1260.   echo shar: Will not clobber existing file \"'lout/font0/NewCenSchBolIta.AFM'\"
  1261. else
  1262.   echo shar: Extracting \"'lout/font0/NewCenSchBolIta.AFM'\" \(15704 characters\)
  1263.   sed "s/^X//" >'lout/font0/NewCenSchBolIta.AFM' <<'END_OF_FILE'
  1264. XStartFontMetrics 2.0
  1265. XComment  Copyright (c) 1985, 1987 Adobe Systems Incorporated. All rights reserved.
  1266. XComment Creation Date:Fri Jul 17 18:25:22 PDT 1987
  1267. XFontName NewCenturySchlbk-BoldItalic
  1268. XEncodingScheme AdobeStandardEncoding
  1269. XFullName New Century Schoolbook Bold Italic
  1270. XFamilyName New Century Schoolbook
  1271. XWeight Bold
  1272. XItalicAngle -16.0
  1273. XIsFixedPitch false
  1274. XUnderlinePosition -102
  1275. XUnderlineThickness 54
  1276. XVersion 001.004
  1277. XNotice Copyright (c) 1985, 1987 Adobe Systems Incorporated.  All rights reserved. New Century Schoolbook is a trademark of Linotype Company.
  1278. XFontBBox -170 -220 1151 990
  1279. XCapHeight 722
  1280. XXHeight 477
  1281. XDescender -205
  1282. XAscender 737
  1283. XStartCharMetrics 228
  1284. XC 32 ; WX 287 ; N space ; B 0 0 0 0 ;
  1285. XC 33 ; WX 333 ; N exclam ; B 3 -15 336 737 ;
  1286. XC 34 ; WX 400 ; N quotedbl ; B 100 410 507 736 ;
  1287. XC 35 ; WX 574 ; N numbersign ; B 41 0 533 705 ;
  1288. XC 36 ; WX 574 ; N dollar ; B 3 -143 559 799 ;
  1289. XC 37 ; WX 889 ; N percent ; B 51 -34 836 721 ;
  1290. XC 38 ; WX 889 ; N ampersand ; B 31 -15 823 737 ;
  1291. XC 39 ; WX 259 ; N quoteright ; B 70 389 301 739 ;
  1292. XC 40 ; WX 407 ; N parenleft ; B 71 -123 452 740 ;
  1293. XC 41 ; WX 407 ; N parenright ; B -70 -123 308 740 ;
  1294. XC 42 ; WX 500 ; N asterisk ; B 32 268 472 704 ;
  1295. XC 43 ; WX 606 ; N plus ; B 41 0 545 505 ;
  1296. XC 44 ; WX 287 ; N comma ; B -48 -190 180 159 ;
  1297. XC 45 ; WX 333 ; N hyphen ; B 10 178 272 297 ;
  1298. XC 46 ; WX 287 ; N period ; B 12 -15 186 159 ;
  1299. XC 47 ; WX 278 ; N slash ; B -25 -15 311 737 ;
  1300. XC 48 ; WX 574 ; N zero ; B 21 -15 553 705 ;
  1301. XC 49 ; WX 574 ; N one ; B 25 0 489 705 ;
  1302. XC 50 ; WX 574 ; N two ; B -40 0 538 705 ;
  1303. XC 51 ; WX 574 ; N three ; B -5 -15 538 705 ;
  1304. XC 52 ; WX 574 ; N four ; B -13 0 544 705 ;
  1305. XC 53 ; WX 574 ; N five ; B 0 -15 573 705 ;
  1306. XC 54 ; WX 574 ; N six ; B 30 -15 573 705 ;
  1307. XC 55 ; WX 574 ; N seven ; B 64 -15 593 705 ;
  1308. XC 56 ; WX 574 ; N eight ; B 0 -15 551 705 ;
  1309. XC 57 ; WX 574 ; N nine ; B 1 -15 544 705 ;
  1310. XC 58 ; WX 287 ; N colon ; B -2 -15 257 477 ;
  1311. XC 59 ; WX 287 ; N semicolon ; B -39 -190 257 477 ;
  1312. XC 60 ; WX 606 ; N less ; B 14 -15 523 524 ;
  1313. XC 61 ; WX 606 ; N equal ; B 41 109 545 402 ;
  1314. XC 62 ; WX 606 ; N greater ; B 38 -15 547 524 ;
  1315. XC 63 ; WX 481 ; N question ; B 79 -15 452 737 ;
  1316. XC 64 ; WX 747 ; N at ; B 22 -15 722 737 ;
  1317. XC 65 ; WX 741 ; N A ; B -75 0 716 737 ;
  1318. XC 66 ; WX 759 ; N B ; B -50 0 720 722 ;
  1319. XC 67 ; WX 759 ; N C ; B 35 -15 759 737 ;
  1320. XC 68 ; WX 833 ; N D ; B -49 0 796 722 ;
  1321. XC 69 ; WX 741 ; N E ; B -41 0 728 722 ;
  1322. XC 70 ; WX 704 ; N F ; B -41 0 726 722 ;
  1323. XC 71 ; WX 815 ; N G ; B 34 -15 802 737 ;
  1324. XC 72 ; WX 870 ; N H ; B -41 0 912 722 ;
  1325. XC 73 ; WX 444 ; N I ; B -41 0 486 722 ;
  1326. XC 74 ; WX 667 ; N J ; B -9 -15 718 722 ;
  1327. XC 75 ; WX 778 ; N K ; B -41 0 832 722 ;
  1328. XC 76 ; WX 704 ; N L ; B -41 0 670 722 ;
  1329. XC 77 ; WX 944 ; N M ; B -24 0 988 722 ;
  1330. XC 78 ; WX 852 ; N N ; B -57 -16 912 722 ;
  1331. XC 79 ; WX 833 ; N O ; B 36 -15 797 737 ;
  1332. XC 80 ; WX 741 ; N P ; B -38 0 731 722 ;
  1333. XC 81 ; WX 833 ; N Q ; B 35 -186 796 737 ;
  1334. XC 82 ; WX 796 ; N R ; B -41 -15 751 722 ;
  1335. XC 83 ; WX 685 ; N S ; B 1 -15 666 737 ;
  1336. XC 84 ; WX 722 ; N T ; B 44 0 762 722 ;
  1337. XC 85 ; WX 833 ; N U ; B 88 -15 895 722 ;
  1338. XC 86 ; WX 741 ; N V ; B 32 -15 802 722 ;
  1339. XC 87 ; WX 944 ; N W ; B 40 -15 994 722 ;
  1340. XC 88 ; WX 741 ; N X ; B -72 0 811 722 ;
  1341. XC 89 ; WX 704 ; N Y ; B 15 0 777 722 ;
  1342. XC 90 ; WX 704 ; N Z ; B -29 0 715 722 ;
  1343. XC 91 ; WX 407 ; N bracketleft ; B -31 -110 432 737 ;
  1344. XC 92 ; WX 606 ; N backslash ; B 81 0 545 737 ;
  1345. XC 93 ; WX 407 ; N bracketright ; B -49 -110 414 737 ;
  1346. XC 94 ; WX 606 ; N asciicircum ; B 52 319 554 722 ;
  1347. XC 95 ; WX 500 ; N underscore ; B 0 -129 500 -75 ;
  1348. XC 96 ; WX 259 ; N quoteleft ; B 39 397 270 747 ;
  1349. XC 97 ; WX 667 ; N a ; B 15 -15 646 477 ;
  1350. XC 98 ; WX 611 ; N b ; B 28 -15 557 737 ;
  1351. XC 99 ; WX 537 ; N c ; B 3 -15 487 477 ;
  1352. XC 100 ; WX 667 ; N d ; B 0 -15 663 737 ;
  1353. XC 101 ; WX 519 ; N e ; B -2 -15 478 477 ;
  1354. XC 102 ; WX 389 ; N f ; B -48 -205 550 737 ; L i fi ; L l fl ;
  1355. XC 103 ; WX 611 ; N g ; B -66 -205 602 529 ;
  1356. XC 104 ; WX 685 ; N h ; B 0 -15 637 737 ;
  1357. XC 105 ; WX 389 ; N i ; B 28 -15 343 737 ;
  1358. XC 106 ; WX 370 ; N j ; B -170 -205 381 737 ;
  1359. XC 107 ; WX 648 ; N k ; B -5 -15 584 737 ;
  1360. XC 108 ; WX 389 ; N l ; B 26 -15 370 737 ;
  1361. XC 109 ; WX 944 ; N m ; B 9 -15 920 477 ;
  1362. XC 110 ; WX 685 ; N n ; B 3 -15 642 477 ;
  1363. XC 111 ; WX 574 ; N o ; B 10 -15 540 477 ;
  1364. XC 112 ; WX 648 ; N p ; B -118 -205 590 477 ;
  1365. XC 113 ; WX 630 ; N q ; B 0 -205 587 477 ;
  1366. XC 114 ; WX 519 ; N r ; B 3 0 524 486 ;
  1367. XC 115 ; WX 481 ; N s ; B 2 -15 437 477 ;
  1368. XC 116 ; WX 407 ; N t ; B 24 -15 404 650 ;
  1369. XC 117 ; WX 685 ; N u ; B 38 -15 639 477 ;
  1370. XC 118 ; WX 556 ; N v ; B 32 -15 500 477 ;
  1371. XC 119 ; WX 833 ; N w ; B 22 -15 788 477 ;
  1372. XC 120 ; WX 574 ; N x ; B -49 -15 571 477 ;
  1373. XC 121 ; WX 519 ; N y ; B -66 -205 492 477 ;
  1374. XC 122 ; WX 519 ; N z ; B -18 -15 472 477 ;
  1375. XC 123 ; WX 407 ; N braceleft ; B 51 -115 401 738 ;
  1376. XC 124 ; WX 606 ; N bar ; B 262 0 343 737 ;
  1377. XC 125 ; WX 407 ; N braceright ; B -30 -115 322 738 ;
  1378. XC 126 ; WX 606 ; N asciitilde ; B 51 158 555 353 ;
  1379. XC 161 ; WX 333 ; N exclamdown ; B -39 -205 289 544 ;
  1380. XC 162 ; WX 574 ; N cent ; B 30 -124 514 600 ;
  1381. XC 163 ; WX 574 ; N sterling ; B -18 -15 566 705 ;
  1382. XC 164 ; WX 167 ; N fraction ; B -166 -15 333 705 ;
  1383. XC 165 ; WX 574 ; N yen ; B 23 0 635 705 ;
  1384. XC 166 ; WX 574 ; N florin ; B -27 -205 588 737 ;
  1385. XC 167 ; WX 500 ; N section ; B -40 -145 505 737 ;
  1386. XC 168 ; WX 574 ; N currency ; B 40 110 546 612 ;
  1387. XC 169 ; WX 287 ; N quotesingle ; B 100 409 269 735 ;
  1388. XC 170 ; WX 481 ; N quotedblleft ; B 52 397 522 747 ;
  1389. XC 171 ; WX 481 ; N guillemotleft ; B -35 68 427 409 ;
  1390. XC 172 ; WX 278 ; N guilsinglleft ; B -35 68 224 409 ;
  1391. XC 173 ; WX 278 ; N guilsinglright ; B -5 67 254 408 ;
  1392. XC 174 ; WX 685 ; N fi ; B -70 -205 646 737 ;
  1393. XC 175 ; WX 685 ; N fl ; B -70 -205 681 737 ;
  1394. XC 177 ; WX 500 ; N endash ; B -18 189 518 286 ;
  1395. XC 178 ; WX 500 ; N dagger ; B 50 -146 510 737 ;
  1396. XC 179 ; WX 500 ; N daggerdbl ; B -48 -147 514 737 ;
  1397. XC 180 ; WX 287 ; N periodcentered ; B 41 168 215 342 ;
  1398. XC 182 ; WX 650 ; N paragraph ; B 67 0 661 737 ;
  1399. XC 183 ; WX 606 ; N bullet ; B 109 200 446 537 ;
  1400. XC 184 ; WX 259 ; N quotesinglbase ; B -43 -191 188 159 ;
  1401. XC 185 ; WX 481 ; N quotedblbase ; B -70 -191 402 159 ;
  1402. XC 186 ; WX 481 ; N quotedblright ; B 61 389 533 739 ;
  1403. XC 187 ; WX 481 ; N guillemotright ; B -5 67 457 408 ;
  1404. XC 188 ; WX 1000 ; N ellipsis ; B 20 -15 860 159 ;
  1405. XC 189 ; WX 1167 ; N perthousand ; B 26 -34 1151 721 ;
  1406. XC 191 ; WX 481 ; N questiondown ; B 1 -205 368 544 ;
  1407. XC 193 ; WX 333 ; N grave ; B 74 535 294 719 ;
  1408. XC 194 ; WX 333 ; N acute ; B 123 535 371 719 ;
  1409. XC 195 ; WX 333 ; N circumflex ; B 23 535 365 709 ;
  1410. XC 196 ; WX 333 ; N tilde ; B 34 557 404 683 ;
  1411. XC 197 ; WX 333 ; N macron ; B 32 573 387 649 ;
  1412. XC 198 ; WX 333 ; N breve ; B 67 534 390 698 ;
  1413. XC 199 ; WX 333 ; N dotaccent ; B 145 542 288 685 ;
  1414. XC 200 ; WX 333 ; N dieresis ; B 34 542 392 685 ;
  1415. XC 202 ; WX 333 ; N ring ; B 217 530 432 745 ;
  1416. XC 203 ; WX 333 ; N cedilla ; B -87 -220 157 3 ;
  1417. XC 205 ; WX 333 ; N hungarumlaut ; B 23 535 472 719 ;
  1418. XC 206 ; WX 333 ; N ogonek ; B 68 -155 245 -10 ;
  1419. XC 207 ; WX 333 ; N caron ; B 60 535 403 709 ;
  1420. XC 208 ; WX 1000 ; N emdash ; B -18 189 1018 286 ;
  1421. XC 225 ; WX 889 ; N AE ; B -81 0 906 722 ;
  1422. XC 227 ; WX 412 ; N ordfeminine ; B 29 327 449 737 ;
  1423. XC 232 ; WX 704 ; N Lslash ; B -41 0 670 722 ;
  1424. XC 233 ; WX 833 ; N Oslash ; B 17 -82 797 775 ;
  1425. XC 234 ; WX 963 ; N OE ; B 19 0 980 722 ;
  1426. XC 235 ; WX 356 ; N ordmasculine ; B 29 327 383 737 ;
  1427. XC 241 ; WX 815 ; N ae ; B -19 -15 774 477 ;
  1428. XC 245 ; WX 389 ; N dotlessi ; B 38 -15 353 477 ;
  1429. XC 248 ; WX 389 ; N lslash ; B 26 -15 397 737 ;
  1430. XC 249 ; WX 574 ; N oslash ; B 10 -126 540 578 ;
  1431. XC 250 ; WX 852 ; N oe ; B -5 -15 810 477 ;
  1432. XC 251 ; WX 574 ; N germandbls ; B -66 -205 523 737 ;
  1433. XC -1 ; WX 741 ; N Aacute ; B -75 0 716 964 ;
  1434. XC -1 ; WX 741 ; N Acircumflex ; B -75 0 716 954 ;
  1435. XC -1 ; WX 741 ; N Adieresis ; B -75 0 716 930 ;
  1436. XC -1 ; WX 741 ; N Agrave ; B -75 0 716 964 ;
  1437. XC -1 ; WX 741 ; N Aring ; B -75 0 716 990 ;
  1438. XC -1 ; WX 741 ; N Atilde ; B -75 0 716 928 ;
  1439. XC -1 ; WX 759 ; N Ccedilla ; B 35 -220 759 737 ;
  1440. XC -1 ; WX 741 ; N Eacute ; B -41 0 728 964 ;
  1441. XC -1 ; WX 741 ; N Ecircumflex ; B -41 0 728 954 ;
  1442. XC -1 ; WX 741 ; N Edieresis ; B -41 0 728 930 ;
  1443. XC -1 ; WX 741 ; N Egrave ; B -41 0 728 964 ;
  1444. XC -1 ; WX 833 ; N Eth ; B -49 0 796 722 ;
  1445. XC -1 ; WX 444 ; N Iacute ; B -41 0 486 964 ;
  1446. XC -1 ; WX 444 ; N Icircumflex ; B -41 0 486 954 ;
  1447. XC -1 ; WX 444 ; N Idieresis ; B -41 0 498 930 ;
  1448. XC -1 ; WX 444 ; N Igrave ; B -41 0 486 964 ;
  1449. XC -1 ; WX 852 ; N Ntilde ; B -57 -16 912 928 ;
  1450. XC -1 ; WX 833 ; N Oacute ; B 36 -15 797 964 ;
  1451. XC -1 ; WX 833 ; N Ocircumflex ; B 36 -15 797 954 ;
  1452. XC -1 ; WX 833 ; N Odieresis ; B 36 -15 797 930 ;
  1453. XC -1 ; WX 833 ; N Ograve ; B 36 -15 797 964 ;
  1454. XC -1 ; WX 833 ; N Otilde ; B 36 -15 797 928 ;
  1455. XC -1 ; WX 685 ; N Scaron ; B 1 -15 666 954 ;
  1456. XC -1 ; WX 741 ; N Thorn ; B -38 0 690 722 ;
  1457. XC -1 ; WX 833 ; N Uacute ; B 88 -15 895 964 ;
  1458. XC -1 ; WX 833 ; N Ucircumflex ; B 88 -15 895 954 ;
  1459. XC -1 ; WX 833 ; N Udieresis ; B 88 -15 895 930 ;
  1460. XC -1 ; WX 833 ; N Ugrave ; B 88 -15 895 964 ;
  1461. XC -1 ; WX 704 ; N Yacute ; B 15 0 777 964 ;
  1462. XC -1 ; WX 704 ; N Ydieresis ; B 15 0 777 930 ;
  1463. XC -1 ; WX 704 ; N Zcaron ; B -29 0 715 954 ;
  1464. XC -1 ; WX 667 ; N aacute ; B 15 -15 646 719 ;
  1465. XC -1 ; WX 667 ; N acircumflex ; B 15 -15 646 709 ;
  1466. XC -1 ; WX 667 ; N adieresis ; B 15 -15 646 685 ;
  1467. XC -1 ; WX 667 ; N agrave ; B 15 -15 646 719 ;
  1468. XC -1 ; WX 667 ; N aring ; B 15 -15 646 745 ;
  1469. XC -1 ; WX 667 ; N atilde ; B 15 -15 646 683 ;
  1470. XC -1 ; WX 606 ; N brokenbar ; B 262 0 343 737 ;
  1471. XC -1 ; WX 537 ; N ccedilla ; B 3 -220 487 477 ;
  1472. XC -1 ; WX 747 ; N copyright ; B 23 -15 723 737 ;
  1473. XC -1 ; WX 400 ; N degree ; B 70 405 370 705 ;
  1474. XC -1 ; WX 606 ; N divide ; B 41 0 545 505 ;
  1475. XC -1 ; WX 519 ; N eacute ; B -2 -15 478 719 ;
  1476. XC -1 ; WX 519 ; N ecircumflex ; B -2 -15 478 709 ;
  1477. XC -1 ; WX 519 ; N edieresis ; B -2 -15 495 685 ;
  1478. XC -1 ; WX 519 ; N egrave ; B -2 -15 478 719 ;
  1479. XC -1 ; WX 574 ; N eth ; B 10 -15 540 737 ;
  1480. XC -1 ; WX 389 ; N iacute ; B 38 -15 399 719 ;
  1481. XC -1 ; WX 389 ; N icircumflex ; B 38 -15 383 709 ;
  1482. XC -1 ; WX 389 ; N idieresis ; B 38 -15 410 685 ;
  1483. XC -1 ; WX 389 ; N igrave ; B 38 -15 353 719 ;
  1484. XC -1 ; WX 606 ; N logicalnot ; B 41 120 545 402 ;
  1485. XC -1 ; WX 606 ; N minus ; B 41 206 545 304 ;
  1486. XC -1 ; WX 685 ; N mu ; B -90 -205 639 477 ;
  1487. XC -1 ; WX 606 ; N multiply ; B 41 0 547 506 ;
  1488. XC -1 ; WX 685 ; N ntilde ; B 3 -15 642 683 ;
  1489. XC -1 ; WX 574 ; N oacute ; B 10 -15 540 719 ;
  1490. XC -1 ; WX 574 ; N ocircumflex ; B 10 -15 540 709 ;
  1491. XC -1 ; WX 574 ; N odieresis ; B 10 -15 540 685 ;
  1492. XC -1 ; WX 574 ; N ograve ; B 10 -15 540 719 ;
  1493. XC -1 ; WX 861 ; N onehalf ; B 21 -15 857 705 ;
  1494. XC -1 ; WX 861 ; N onequarter ; B 21 -15 826 705 ;
  1495. XC -1 ; WX 344 ; N onesuperior ; B 21 282 323 705 ;
  1496. XC -1 ; WX 574 ; N otilde ; B 10 -15 540 683 ;
  1497. XC -1 ; WX 606 ; N plusminus ; B 41 0 545 505 ;
  1498. XC -1 ; WX 747 ; N registered ; B 23 -15 723 737 ;
  1499. XC -1 ; WX 481 ; N scaron ; B 2 -15 477 709 ;
  1500. XC -1 ; WX 648 ; N thorn ; B -118 -205 590 650 ;
  1501. XC -1 ; WX 861 ; N threequarters ; B -4 -15 826 705 ;
  1502. XC -1 ; WX 344 ; N threesuperior ; B -4 273 348 705 ;
  1503. XC -1 ; WX 950 ; N trademark ; B 42 318 982 722 ;
  1504. XC -1 ; WX 344 ; N twosuperior ; B -16 282 360 705 ;
  1505. XC -1 ; WX 685 ; N uacute ; B 38 -15 639 719 ;
  1506. XC -1 ; WX 685 ; N ucircumflex ; B 38 -15 639 709 ;
  1507. XC -1 ; WX 685 ; N udieresis ; B 38 -15 639 685 ;
  1508. XC -1 ; WX 685 ; N ugrave ; B 38 -15 639 719 ;
  1509. XC -1 ; WX 519 ; N yacute ; B -66 -205 492 719 ;
  1510. XC -1 ; WX 519 ; N ydieresis ; B -66 -205 492 685 ;
  1511. XC -1 ; WX 519 ; N zcaron ; B -18 -15 496 709 ;
  1512. XEndCharMetrics
  1513. XStartKernData
  1514. XStartKernPairs 102
  1515. X
  1516. XKPX A y -50
  1517. XKPX A w -20
  1518. XKPX A v -20
  1519. XKPX A space -18
  1520. XKPX A quoteright -74
  1521. XKPX A Y -74
  1522. XKPX A W -92
  1523. XKPX A V -111
  1524. XKPX A T -74
  1525. X
  1526. XKPX F period -129
  1527. XKPX F f -18
  1528. XKPX F comma -129
  1529. XKPX F A -74
  1530. X
  1531. XKPX L y -55
  1532. XKPX L space -18
  1533. XKPX L quoteright -55
  1534. XKPX L Y -55
  1535. XKPX L W -55
  1536. XKPX L V -74
  1537. XKPX L T -55
  1538. X
  1539. XKPX P space -18
  1540. XKPX P period -129
  1541. XKPX P comma -129
  1542. XKPX P A -92
  1543. X
  1544. XKPX R y -50
  1545. XKPX R Y -20
  1546. XKPX R W -20
  1547. XKPX R V -20
  1548. XKPX R T -20
  1549. X
  1550. XKPX T y -89
  1551. XKPX T w -89
  1552. XKPX T u -89
  1553. XKPX T semicolon -72
  1554. XKPX T s -89
  1555. XKPX T r -89
  1556. XKPX T period -111
  1557. XKPX T o -109
  1558. XKPX T i -71
  1559. XKPX T hyphen -129
  1560. XKPX T e -109
  1561. XKPX T comma -111
  1562. XKPX T colon -62
  1563. XKPX T c -89
  1564. XKPX T a -74
  1565. XKPX T A -50
  1566. X
  1567. XKPX V y -89
  1568. XKPX V u -89
  1569. XKPX V semicolon -74
  1570. XKPX V r -109
  1571. XKPX V period -111
  1572. XKPX V o -129
  1573. XKPX V i -72
  1574. XKPX V hyphen -74
  1575. XKPX V e -129
  1576. XKPX V comma -111
  1577. XKPX V colon -74
  1578. XKPX V a -129
  1579. XKPX V A -129
  1580. X
  1581. XKPX W y -74
  1582. XKPX W u -74
  1583. XKPX W semicolon -37
  1584. XKPX W r -74
  1585. XKPX W period -55
  1586. XKPX W o -74
  1587. XKPX W i -74
  1588. XKPX W hyphen -37
  1589. XKPX W e -74
  1590. XKPX W comma -55
  1591. XKPX W colon -37
  1592. XKPX W a -74
  1593. XKPX W A -89
  1594. X
  1595. XKPX Y v -129
  1596. XKPX Y u -129
  1597. XKPX Y semicolon -111
  1598. XKPX Y q -129
  1599. XKPX Y period -129
  1600. XKPX Y p -129
  1601. XKPX Y o -129
  1602. XKPX Y i -90
  1603. XKPX Y hyphen -129
  1604. XKPX Y e -129
  1605. XKPX Y comma -129
  1606. XKPX Y colon -111
  1607. XKPX Y a -129
  1608. XKPX Y A -111
  1609. X
  1610. XKPX f quoteright 74
  1611. X
  1612. XKPX one one -74
  1613. X
  1614. XKPX quoteleft quoteleft -18
  1615. X
  1616. XKPX quoteright t -37
  1617. XKPX quoteright space -55
  1618. XKPX quoteright s -37
  1619. XKPX quoteright quoteright -18
  1620. X
  1621. XKPX r quoteright 55
  1622. XKPX r period -129
  1623. XKPX r hyphen 0
  1624. XKPX r comma -129
  1625. X
  1626. XKPX v period -37
  1627. XKPX v comma -37
  1628. X
  1629. XKPX w period -37
  1630. XKPX w comma -37
  1631. X
  1632. XKPX y period -55
  1633. XKPX y comma -55
  1634. XEndKernPairs
  1635. XEndKernData
  1636. XStartComposites 58
  1637. XCC Zcaron 2 ; PCC Z 0 0 ; PCC caron 205 245 ;
  1638. XCC zcaron 2 ; PCC z 0 0 ; PCC caron 93 0 ;
  1639. XCC Scaron 2 ; PCC S 0 0 ; PCC caron 196 245 ;
  1640. XCC scaron 2 ; PCC s 0 0 ; PCC caron 74 0 ;
  1641. XCC Ccedilla 2 ; PCC C 0 0 ; PCC cedilla 293 0 ;
  1642. XCC ccedilla 2 ; PCC c 0 0 ; PCC cedilla 142 0 ;
  1643. XCC Yacute 2 ; PCC Y 0 0 ; PCC acute 185 245 ;
  1644. XCC yacute 2 ; PCC y 0 0 ; PCC acute 93 0 ;
  1645. XCC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 215 245 ;
  1646. XCC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 83 0 ;
  1647. XCC Uacute 2 ; PCC U 0 0 ; PCC acute 290 245 ;
  1648. XCC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 310 245 ;
  1649. XCC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 320 245 ;
  1650. XCC Ugrave 2 ; PCC U 0 0 ; PCC grave 280 245 ;
  1651. XCC uacute 2 ; PCC u 0 0 ; PCC acute 176 0 ;
  1652. XCC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 176 0 ;
  1653. XCC udieresis 2 ; PCC u 0 0 ; PCC dieresis 166 0 ;
  1654. XCC ugrave 2 ; PCC u 0 0 ; PCC grave 176 0 ;
  1655. XCC Iacute 2 ; PCC I 0 0 ; PCC acute 75 245 ;
  1656. XCC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex 95 245 ;
  1657. XCC Idieresis 2 ; PCC I 0 0 ; PCC dieresis 105 245 ;
  1658. XCC Igrave 2 ; PCC I 0 0 ; PCC grave 85 245 ;
  1659. XCC iacute 2 ; PCC dotlessi 0 0 ; PCC acute 28 0 ;
  1660. XCC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex 18 0 ;
  1661. XCC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis 18 0 ;
  1662. XCC igrave 2 ; PCC dotlessi 0 0 ; PCC grave 28 0 ;
  1663. XCC Eacute 2 ; PCC E 0 0 ; PCC acute 234 245 ;
  1664. XCC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 244 245 ;
  1665. XCC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 244 245 ;
  1666. XCC Egrave 2 ; PCC E 0 0 ; PCC grave 234 245 ;
  1667. XCC eacute 2 ; PCC e 0 0 ; PCC acute 93 0 ;
  1668. XCC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 103 0 ;
  1669. XCC edieresis 2 ; PCC e 0 0 ; PCC dieresis 103 0 ;
  1670. XCC egrave 2 ; PCC e 0 0 ; PCC grave 103 0 ;
  1671. XCC Aacute 2 ; PCC A 0 0 ; PCC acute 204 245 ;
  1672. XCC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 244 245 ;
  1673. XCC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 224 245 ;
  1674. XCC Agrave 2 ; PCC A 0 0 ; PCC grave 234 245 ;
  1675. XCC aacute 2 ; PCC a 0 0 ; PCC acute 167 0 ;
  1676. XCC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 167 0 ;
  1677. XCC adieresis 2 ; PCC a 0 0 ; PCC dieresis 157 0 ;
  1678. XCC agrave 2 ; PCC a 0 0 ; PCC grave 167 0 ;
  1679. XCC Oacute 2 ; PCC O 0 0 ; PCC acute 270 245 ;
  1680. XCC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 290 245 ;
  1681. XCC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 300 245 ;
  1682. XCC Ograve 2 ; PCC O 0 0 ; PCC grave 280 245 ;
  1683. XCC oacute 2 ; PCC o 0 0 ; PCC acute 120 0 ;
  1684. XCC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 110 0 ;
  1685. XCC odieresis 2 ; PCC o 0 0 ; PCC dieresis 110 0 ;
  1686. XCC ograve 2 ; PCC o 0 0 ; PCC grave 120 0 ;
  1687. XCC Atilde 2 ; PCC A 0 0 ; PCC tilde 244 245 ;
  1688. XCC atilde 2 ; PCC a 0 0 ; PCC tilde 167 0 ;
  1689. XCC Ntilde 2 ; PCC N 0 0 ; PCC tilde 299 245 ;
  1690. XCC ntilde 2 ; PCC n 0 0 ; PCC tilde 156 0 ;
  1691. XCC Otilde 2 ; PCC O 0 0 ; PCC tilde 270 245 ;
  1692. XCC otilde 2 ; PCC o 0 0 ; PCC tilde 120 0 ;
  1693. XCC Aring 2 ; PCC A 0 0 ; PCC ring 124 245 ;
  1694. XCC aring 2 ; PCC a 0 0 ; PCC ring 57 0 ;
  1695. XEndComposites
  1696. XEndFontMetrics
  1697. END_OF_FILE
  1698.   if test 15704 -ne `wc -c <'lout/font0/NewCenSchBolIta.AFM'`; then
  1699.     echo shar: \"'lout/font0/NewCenSchBolIta.AFM'\" unpacked with wrong size!
  1700.   fi
  1701.   # end of 'lout/font0/NewCenSchBolIta.AFM'
  1702. fi
  1703. if test -f 'lout/include/fig' -a "${1}" != "-c" ; then 
  1704.   echo shar: Will not clobber existing file \"'lout/include/fig'\"
  1705. else
  1706.   echo shar: Extracting \"'lout/include/fig'\" \(16471 characters\)
  1707.   sed "s/^X//" >'lout/include/fig' <<'END_OF_FILE'
  1708. X
  1709. X###############################################################################
  1710. X#                                                                             #
  1711. X#  Lout @Fig package for drawing figures (Version 2.0)                        #
  1712. X#                                                                             #
  1713. X#  Version 1.0 by Jeffrey H. Kingston, October 1991.                          #
  1714. X#  Version 2.0 by Jeffrey H. Kingston, 22 December 1992.                      #
  1715. X#  Symbol names changed by JHK 5 March 1993 to avoid clashes with EPS files.  #
  1716. X#                                                                             #
  1717. X#  See "Fig - a Lout package for drawing figures" for user information.       #
  1718. X#                                                                             #
  1719. X###############################################################################
  1720. X
  1721. X@SysPrependGraphic { "fig_prepend" }
  1722. X
  1723. Xexport in cm pt em sp vs ft dg
  1724. X       "<<" "**" "++" "--" @Max @Min
  1725. X       @Distance @XDistance @YDistance @Angle
  1726. X       @Prev "::" @Label @BaseOf @MarkOf @ShowLabels
  1727. X       @Colour @Color @RGBColour @RGBColor @HSBColour @HSBColor
  1728. X       @Figure @Frame @Box @Square @Diamond @Polygon @Ellipse
  1729. X       @Circle @HLine @VLine @Line @HArrow @VArrow @Arrow @Arc
  1730. X
  1731. Xdef @Fig                  
  1732. X    named maxlabels  { 200     }
  1733. X    named linestyle  { solid   }
  1734. X    named linewidth  { 0.5 pt  }
  1735. X    named linecap    { round   }
  1736. X    named dashlength { 0.15 cm }
  1737. X    named paint      { nopaint }
  1738. X    named margin     { 0.4c    }
  1739. X    named arrow      { noarrow }
  1740. X    named headstyle  { open    }
  1741. X    named headwidth  { 0.05 cm }
  1742. X    named headlength { 0.15 cm }
  1743. X    body @Body
  1744. X@Begin
  1745. X
  1746. X    # Like @Graphic, but affects the graphics state of right parameter
  1747. X    def @InnerGraphic
  1748. X    left ps
  1749. X    right x
  1750. X    {
  1751. X    { ps gsave // grestore } @Graphic x
  1752. X    }
  1753. X
  1754. X    def in precedence 39 left x { x "in" }
  1755. X    def cm precedence 39 left x { x "cm" }
  1756. X    def pt precedence 39 left x { x "pt" }
  1757. X    def em precedence 39 left x { x "em" }
  1758. X    def sp precedence 39 left x { x "sp" }
  1759. X    def vs precedence 39 left x { x "vs" }
  1760. X    def ft precedence 39 left x { x "ft" }
  1761. X    def dg precedence 39 left x { x "dg" }
  1762. X
  1763. X    def "<<"
  1764. X    precedence 38
  1765. X    left length
  1766. X    right angle
  1767. X    {
  1768. X    0 0 length angle "lfigatangle"
  1769. X    }
  1770. X
  1771. X    def "**"
  1772. X    precedence 37
  1773. X    left point
  1774. X    right length
  1775. X    {
  1776. X    point length "lfigpmul"
  1777. X    }
  1778. X
  1779. X    def "++"
  1780. X    precedence 36
  1781. X    associativity left
  1782. X    left x
  1783. X    right y
  1784. X    {
  1785. X    x y "lfigpadd"
  1786. X    }
  1787. X
  1788. X    def "--"
  1789. X    precedence 36
  1790. X    associativity left
  1791. X    left x
  1792. X    right y
  1793. X    {
  1794. X    y x "lfigpsub"
  1795. X    }
  1796. X
  1797. X    def @Max
  1798. X    precedence 36
  1799. X    left x
  1800. X    right y
  1801. X    {
  1802. X    x y "lfigpmax"
  1803. X    }
  1804. X
  1805. X    def @Min
  1806. X    precedence 36
  1807. X    left x
  1808. X    right y
  1809. X    {
  1810. X    x y "lfigpmin"
  1811. X    }
  1812. X
  1813. X    def @Distance
  1814. X    precedence 35
  1815. X    left x
  1816. X    right y
  1817. X    {
  1818. X    x y "lfigdistance"
  1819. X    }
  1820. X
  1821. X    def @XDistance
  1822. X    precedence 35
  1823. X    left x
  1824. X    right y
  1825. X    {
  1826. X    x y "lfigxdistance"
  1827. X    }
  1828. X
  1829. X    def @YDistance
  1830. X    precedence 35
  1831. X    left x
  1832. X    right y
  1833. X    {
  1834. X    x y "lfigydistance"
  1835. X    }
  1836. X
  1837. X    def @Angle
  1838. X    precedence 35
  1839. X    left x
  1840. X    right y
  1841. X    {
  1842. X    x y "lfigangle"
  1843. X    }
  1844. X
  1845. X    def @Prev
  1846. X    {
  1847. X    "lfigprevious"
  1848. X    }
  1849. X
  1850. X    def "::"
  1851. X    precedence 33
  1852. X    left name
  1853. X    right x
  1854. X    {
  1855. X    { "currentdict end" maxlabels "dict begin begin"
  1856. X      // "("name") lfigpromotelabels" } @Graphic x
  1857. X    }
  1858. X
  1859. X    def @Label
  1860. X    right name
  1861. X    {
  1862. X    "/"name "lfigpointdef"
  1863. X    }
  1864. X
  1865. X    def @MarkOf
  1866. X    precedence 32
  1867. X    left point
  1868. X    right x
  1869. X    {
  1870. X    { point "translate" } @InnerGraphic
  1871. X    {
  1872. X        /0io |0io @OneCol @OneRow x |0io /0io
  1873. X    }
  1874. X    }
  1875. X
  1876. X    def @BaseOf
  1877. X    precedence 32
  1878. X    left point
  1879. X    right x
  1880. X    {
  1881. X    { point "translate" } @InnerGraphic
  1882. X    {
  1883. X        /0io |0io @OneRow @OneCol {
  1884. X        | @OneCol @OneRow x ^/
  1885. X        } |0io /0io
  1886. X    }
  1887. X    }
  1888. X
  1889. X    def @ShowLabels
  1890. X    {
  1891. X    "lfigshowlabels" @Graphic
  1892. X    }
  1893. X
  1894. X    def @Colour
  1895. X    left col
  1896. X    right x
  1897. X    {
  1898. X    {
  1899. X        col @Case
  1900. X        {
  1901. X        black @Yield "0.00 0.0 0.0"
  1902. X        grey  @Yield "0.00 0.0 0.9"
  1903. X        white @Yield "0.00 0.0 1.0"
  1904. X        red   @Yield "0.00 1.0 1.0"
  1905. X        green @Yield "0.33 1.0 1.0"
  1906. X        blue  @Yield "0.66 1.0 1.0"
  1907. X        } sethsbcolor
  1908. X    } @InnerGraphic x
  1909. X    }
  1910. X
  1911. X    def @Color
  1912. X    left col
  1913. X    right x
  1914. X    {
  1915. X    col @Colour x
  1916. X    }
  1917. X
  1918. X    def @RGBColour
  1919. X    left col
  1920. X    right x
  1921. X    {
  1922. X    { col setrgbcolor } @InnerGraphic x
  1923. X    }
  1924. X
  1925. X    def @RGBColor
  1926. X    left col
  1927. X    right x
  1928. X    {
  1929. X    col @RGBColour x
  1930. X    }
  1931. X
  1932. X    def @HSBColour
  1933. X    left col
  1934. X    right x
  1935. X    {
  1936. X    { col sethsbcolor } @InnerGraphic x
  1937. X    }
  1938. X
  1939. X    def @HSBColor
  1940. X    left col
  1941. X    right x
  1942. X    {
  1943. X    col @HSBColour x
  1944. X    }
  1945. X
  1946. X    def @Figure
  1947. X    named shape      {            }
  1948. X    named linestyle  { linestyle  }
  1949. X    named linewidth  { linewidth  }
  1950. X    named linecap    { linecap    }
  1951. X    named dashlength { dashlength }
  1952. X    named arrow      { arrow      }
  1953. X    named headstyle  { headstyle  }
  1954. X    named headwidth  { headwidth  }
  1955. X    named headlength { headlength }
  1956. X    named paint      { paint      }
  1957. X    named margin     { 0c         }
  1958. X    right x
  1959. X    {
  1960. X    @HContract @VContract
  1961. X    {
  1962. X        #fill the shape
  1963. X        paint @Case
  1964. X        {
  1965. X        nopaint @Yield {}
  1966. X
  1967. X        { white light grey gray dark black } @Yield
  1968. X        { "/lfig"paint "[" shape "] gsave lfigpaintpath grestore" }
  1969. X        }
  1970. X
  1971. X        # stroke the path and add any arrowheads
  1972. X        linestyle @Case
  1973. X        {
  1974. X        { solid dashed cdashed dotted noline } @Yield
  1975. X        {
  1976. X            linewidth "setlinewidth" "lfig"linecap "setlinecap"
  1977. X            dashlength "/lfig"linestyle "[" shape "] lfigdopath"
  1978. X            arrow @Case
  1979. X            {
  1980. X            noarrow @Yield { pop pop }
  1981. X            { forward back both } @Yield
  1982. X            {  dashlength "/lfig"linestyle "/"lfigblack
  1983. X               headstyle @Case
  1984. X               { { open halfopen closed } @Yield "lfig"headstyle }
  1985. X               headlength headwidth "lfig"arrow
  1986. X            }
  1987. X            }
  1988. X        }
  1989. X        }
  1990. X    }
  1991. X    @Graphic
  1992. X    {
  1993. X        ^/margin ^|margin @OneCol @OneRow x |margin
  1994. X         /margin
  1995. X    }
  1996. X    }
  1997. X
  1998. X    def @Frame
  1999. X    right x
  2000. X    {
  2001. X    @Figure
  2002. X        shape {xsize 0 @Label X 0 ysize @Label Y}
  2003. X    { x }
  2004. X    }
  2005. X
  2006. X    def @Box
  2007. X    named linestyle  { linestyle  }
  2008. X    named linewidth  { linewidth  }
  2009. X    named linecap    { linecap    }
  2010. X    named dashlength { dashlength }
  2011. X    named paint      { paint      }
  2012. X    named margin     { margin     }
  2013. X    right x
  2014. X    {
  2015. X    @Figure
  2016. X        shape {
  2017. X        # 0     0      @Label SW
  2018. X        # xsize 0      @Label SE
  2019. X        # xsize ysize  @Label NE
  2020. X        # 0     ysize  @Label NW
  2021. X        # SE ** 0.5    @Label S
  2022. X        # NW ** 0.5    @Label W
  2023. X        # W ++ SE      @Label E
  2024. X        # S ++ NW      @Label N
  2025. X        # NE ** 0.5    @Label CTR
  2026. X        # SW SE NE NW SW
  2027. X        lfigbox
  2028. X        }
  2029. X        linestyle  { linestyle }
  2030. X        linewidth  { linewidth  }
  2031. X        linecap    { linecap    }
  2032. X        dashlength { dashlength }
  2033. X        paint      { paint      }
  2034. X        margin     { margin     }
  2035. X    x
  2036. X    }
  2037. X
  2038. X    def @Square
  2039. X    named linestyle  { linestyle  }
  2040. X    named linewidth  { linewidth  }
  2041. X    named linecap    { linecap    }
  2042. X    named dashlength { dashlength }
  2043. X    named paint      { paint      }
  2044. X    named margin     { margin     }
  2045. X    right x
  2046. X    {
  2047. X    @Figure
  2048. X        shape {
  2049. X        # {xsize ysize} ** 0.5                           @Label CTR
  2050. X        # CTR ++ {{xsize xsize} @Max {ysize ysize}}**0.5 @Label NE
  2051. X        # CTR ++ { {CTR @Distance NE} << 135 }           @Label NW
  2052. X        # CTR ++ { {CTR @Distance NE} << 225 }           @Label SW
  2053. X        # CTR ++ { {CTR @Distance NE} << 315 }           @Label SE
  2054. X        # SW ** 0.5 ++ SE ** 0.5                         @Label S
  2055. X        # NW ** 0.5 ++ NE ** 0.5                         @Label N
  2056. X        # SW ** 0.5 ++ NW ** 0.5                         @Label W
  2057. X        # SE ** 0.5 ++ NE ** 0.5                         @Label E
  2058. X        # SW SE NE NW SW
  2059. X        lfigsquare
  2060. X        }
  2061. X        linestyle  { linestyle  }
  2062. X        linewidth  { linewidth  }
  2063. X        linecap    { linecap    }
  2064. X        dashlength { dashlength }
  2065. X        paint      { paint      }
  2066. X        margin     { margin     }
  2067. X    x
  2068. X    }
  2069. X
  2070. X    def @Diamond
  2071. X    named linestyle  { linestyle  }
  2072. X    named linewidth  { linewidth  }
  2073. X    named linecap    { linecap    }
  2074. X    named dashlength { dashlength }
  2075. X    named paint      { paint      }
  2076. X    named margin     { margin     }
  2077. X    right x
  2078. X    {
  2079. X    @Figure
  2080. X        shape {
  2081. X        # {xsize 0} ** 0.5  @Label S
  2082. X        # {0 ysize} ** 0.5  @Label W
  2083. X        # S ++ W            @Label CTR
  2084. X        # CTR ++ W          @Label N
  2085. X        # CTR ++ S          @Label E
  2086. X        # S E N W S
  2087. X        lfigdiamond
  2088. X        }
  2089. X        linestyle  { linestyle  }
  2090. X        linewidth  { linewidth  }
  2091. X        linecap    { linecap    }
  2092. X        dashlength { dashlength }
  2093. X        paint      { paint      }
  2094. X        margin     { margin     }
  2095. X    x
  2096. X    }
  2097. X
  2098. X    def @Polygon
  2099. X    named linestyle  { linestyle  }
  2100. X    named linewidth  { linewidth  }
  2101. X    named linecap    { linecap    }
  2102. X    named dashlength { dashlength }
  2103. X    named paint      { paint      }
  2104. X    named margin     { margin     }
  2105. X    named sides      { 3          }
  2106. X    named angle      { "dup 180 exch div" }
  2107. X    right x
  2108. X    {
  2109. X    @Figure
  2110. X        shape      { sides angle lfigpolygon }
  2111. X        linestyle  { linestyle  }
  2112. X        linewidth  { linewidth  }
  2113. X        linecap    { linecap    }
  2114. X        dashlength { dashlength }
  2115. X        paint      { paint      }
  2116. X        margin     { margin     }
  2117. X    x
  2118. X    }
  2119. X
  2120. X    def @Ellipse
  2121. X    named linestyle  { linestyle  }
  2122. X    named linewidth  { linewidth  }
  2123. X    named linecap    { linecap    }
  2124. X    named dashlength { dashlength }
  2125. X    named paint      { paint      }
  2126. X    named margin     { margin     }
  2127. X    right x
  2128. X    {
  2129. X    @Figure
  2130. X        shape {
  2131. X        # {xsize 0} ** 0.5  @Label S
  2132. X        # {0 ysize} ** 0.5  @Label W
  2133. X        # S ++ W            @Label CTR
  2134. X        # CTR ++ W          @Label N
  2135. X        # CTR ++ S          @Label E
  2136. X        # CTR ++ {xsize 0} ** 0.3536 ++ {0 ysize} ** 0.3536  @Label NE
  2137. X        # CTR ++ {xsize 0} ** 0.3536 -- {0 ysize} ** 0.3536  @Label SE
  2138. X        # CTR -- {xsize 0} ** 0.3536 ++ {0 ysize} ** 0.3536  @Label NW
  2139. X        # CTR -- {xsize 0} ** 0.3536 -- {0 ysize} ** 0.3536  @Label SW
  2140. X        # S [ CTR ] E [ CTR ] N [ CTR ] W [ CTR ] S
  2141. X        lfigellipse
  2142. X        }
  2143. X        linestyle  { linestyle  }
  2144. X        linewidth  { linewidth  }
  2145. X        linecap    { linecap    }
  2146. X        dashlength { dashlength }
  2147. X        paint      { paint      }
  2148. X        margin     { margin     }
  2149. X    x
  2150. X    }
  2151. X
  2152. X    def @Circle
  2153. X    named linestyle  { linestyle  }
  2154. X    named linewidth  { linewidth  }
  2155. X    named linecap    { linecap    }
  2156. X    named dashlength { dashlength }
  2157. X    named paint      { paint      }
  2158. X    named margin     { margin     }
  2159. X    right x
  2160. X    {
  2161. X    @Figure
  2162. X        shape {
  2163. X        # {xsize ysize} **0.5                    @Label CTR
  2164. X        # CTR ++ {{xsize 0} @Max {ysize 0}}**0.5 @Label E
  2165. X        # CTR ++ { {CTR @Distance E} << 45  }    @Label NE
  2166. X        # CTR ++ { {CTR @Distance E} << 90  }    @Label N
  2167. X        # CTR ++ { {CTR @Distance E} << 135 }    @Label NW
  2168. X        # CTR ++ { {CTR @Distance E} << 180 }    @Label W
  2169. X        # CTR ++ { {CTR @Distance E} << 225 }    @Label SW
  2170. X        # CTR ++ { {CTR @Distance E} << 270 }    @Label S
  2171. X        # CTR ++ { {CTR @Distance E} << 315 }    @Label SE
  2172. X        # S [ CTR ] E [ CTR ] N [ CTR ] W [ CTR ] S
  2173. X        lfigcircle
  2174. X        }
  2175. X        linestyle  { linestyle  }
  2176. X        linewidth  { linewidth  }
  2177. X        linecap    { linecap    }
  2178. X        dashlength { dashlength }
  2179. X        paint      { paint      }
  2180. X        margin     { margin     }
  2181. X    x
  2182. X    }
  2183. X
  2184. X    def @HLine
  2185. X    named linestyle  { linestyle  }
  2186. X    named linewidth  { linewidth  }
  2187. X    named linecap    { linecap    }
  2188. X    named dashlength { dashlength }
  2189. X    named paint      { paint      }
  2190. X    named margin     { 0c         }
  2191. X    named arrow      { arrow      }
  2192. X    named headstyle  { headstyle  }
  2193. X    named headwidth  { headwidth  }
  2194. X    named headlength { headlength }
  2195. X    right x
  2196. X    {
  2197. X    @Figure
  2198. X        shape {
  2199. X        # 0     ymark @Prev @Label FROM
  2200. X        # xsize ymark @Prev @Label TO
  2201. X        lfighline
  2202. X        }
  2203. X        linestyle  { linestyle  }
  2204. X        linewidth  { linewidth  }
  2205. X        linecap    { linecap    }
  2206. X        dashlength { dashlength }
  2207. X        paint      { paint      }
  2208. X        margin     { margin     }
  2209. X        arrow      { arrow      }
  2210. X        headstyle  { headstyle  }
  2211. X        headwidth  { headwidth  }
  2212. X        headlength { headlength }
  2213. X    x
  2214. X    }
  2215. X
  2216. X    def @VLine
  2217. X    named linestyle  { linestyle  }
  2218. X    named linewidth  { linewidth  }
  2219. X    named linecap    { linecap    }
  2220. X    named dashlength { dashlength }
  2221. X    named paint      { paint      }
  2222. X    named margin     { 0c         }
  2223. X    named arrow      { arrow      }
  2224. X    named headstyle  { headstyle  }
  2225. X    named headwidth  { headwidth  }
  2226. X    named headlength { headlength }
  2227. X    right x
  2228. X    {
  2229. X    @Figure
  2230. X        shape {
  2231. X        # xmark ysize @Prev @Label FROM
  2232. X        # xmark 0     @Prev @Label TO
  2233. X        lfigvline
  2234. X        }
  2235. X        linestyle  { linestyle }
  2236. X        linewidth  { linewidth  }
  2237. X        linecap    { linecap    }
  2238. X        dashlength { dashlength }
  2239. X        paint      { paint      }
  2240. X        margin     { margin     }
  2241. X        arrow      { arrow      }
  2242. X        headstyle  { headstyle  }
  2243. X        headwidth  { headwidth  }
  2244. X        headlength { headlength }
  2245. X    x
  2246. X    }
  2247. X
  2248. X    def @HArrow
  2249. X    named linestyle  { linestyle  }
  2250. X    named linewidth  { linewidth  }
  2251. X    named linecap    { linecap    }
  2252. X    named dashlength { dashlength }
  2253. X    named paint      { paint      }
  2254. X    named margin     { 0c         }
  2255. X    named arrow      { forward    }
  2256. X    named headstyle  { headstyle  }
  2257. X    named headwidth  { headwidth  }
  2258. X    named headlength { headlength }
  2259. X    right x
  2260. X    {
  2261. X    @Figure
  2262. X        shape {
  2263. X        # 0     ymark @Prev @Label FROM
  2264. X        # xsize ymark @Prev @Label TO
  2265. X        lfighline
  2266. X        }
  2267. X        linestyle  { linestyle  }
  2268. X        linewidth  { linewidth  }
  2269. X        linecap    { linecap    }
  2270. X        dashlength { dashlength }
  2271. X        paint      { paint      }
  2272. X        margin     { margin     }
  2273. X        arrow      { arrow      }
  2274. X        headstyle  { headstyle  }
  2275. X        headwidth  { headwidth  }
  2276. X        headlength { headlength }
  2277. X    x
  2278. X    }
  2279. X
  2280. X    def @VArrow
  2281. X    named linestyle  { linestyle  }
  2282. X    named linewidth  { linewidth  }
  2283. X    named linecap    { linecap    }
  2284. X    named dashlength { dashlength }
  2285. X    named paint      { paint      }
  2286. X    named margin     { 0c         }
  2287. X    named arrow      { forward    }
  2288. X    named headstyle  { headstyle  }
  2289. X    named headwidth  { headwidth  }
  2290. X    named headlength { headlength }
  2291. X    right x
  2292. X    {
  2293. X    @Figure
  2294. X        shape {
  2295. X        # xmark ysize @Prev @Label FROM
  2296. X        # xmark 0     @Prev @Label TO
  2297. X        lfigvline
  2298. X        }
  2299. X        linestyle  { linestyle  }
  2300. X        linewidth  { linewidth  }
  2301. X        linecap    { linecap    }
  2302. X        dashlength { dashlength }
  2303. X        paint      { paint      }
  2304. X        margin     { margin     }
  2305. X        arrow      { arrow      }
  2306. X        headstyle  { headstyle  }
  2307. X        headwidth  { headwidth  }
  2308. X        headlength { headlength }
  2309. X    x
  2310. X    }
  2311. X
  2312. X    def @Line
  2313. X    named from       { 0 ysize    }
  2314. X    named to         { xsize 0    }
  2315. X    named linestyle  { linestyle  }
  2316. X    named linewidth  { linewidth  }
  2317. X    named linecap    { linecap    }
  2318. X    named dashlength { dashlength }
  2319. X    named paint      { paint      }
  2320. X    named margin     { 0c         }
  2321. X    named arrow      { arrow      }
  2322. X    named headstyle  { headstyle  }
  2323. X    named headwidth  { headwidth  }
  2324. X    named headlength { headlength }
  2325. X    right x
  2326. X    {
  2327. X    @Figure
  2328. X        shape {
  2329. X        from @Prev @Label FROM
  2330. X        to   @Prev @Label TO
  2331. X        }
  2332. X        linestyle  { linestyle  }
  2333. X        linewidth  { linewidth  }
  2334. X        linecap    { linecap    }
  2335. X        dashlength { dashlength }
  2336. X        paint      { paint      }
  2337. X        margin     { margin     }
  2338. X        arrow      { arrow      }
  2339. X        headstyle  { headstyle  }
  2340. X        headwidth  { headwidth  }
  2341. X        headlength { headlength }
  2342. X    x
  2343. X    }
  2344. X
  2345. X    def @Arrow
  2346. X    named from       { 0 ysize    }
  2347. X    named to         { xsize 0    }
  2348. X    named linestyle  { linestyle  }
  2349. X    named linewidth  { linewidth  }
  2350. X    named linecap    { linecap    }
  2351. X    named dashlength { dashlength }
  2352. X    named paint      { paint      }
  2353. X    named margin     { 0c         }
  2354. X    named arrow      { forward    }
  2355. X    named headstyle  { headstyle  }
  2356. X    named headwidth  { headwidth  }
  2357. X    named headlength { headlength }
  2358. X    right x
  2359. X    {
  2360. X    @Figure
  2361. X        shape {
  2362. X        from @Prev @Label FROM
  2363. X        to   @Prev @Label TO
  2364. X        }
  2365. X        linestyle  { linestyle  }
  2366. X        linewidth  { linewidth  }
  2367. X        linecap    { linecap    }
  2368. X        dashlength { dashlength }
  2369. X        paint      { paint      }
  2370. X        margin     { margin     }
  2371. X        arrow      { arrow      }
  2372. X        headstyle  { headstyle  }
  2373. X        headwidth  { headwidth  }
  2374. X        headlength { headlength }
  2375. X    x
  2376. X    }
  2377. X
  2378. X    def @Arc
  2379. X    named from       { 0 ysize    }
  2380. X    named to         { xsize 0    }
  2381. X    named ctr        { 0 0        }
  2382. X    named direction  { clockwise  }
  2383. X    named linestyle  { linestyle  }
  2384. X    named linewidth  { linewidth  }
  2385. X    named linecap    { linecap    }
  2386. X    named dashlength { dashlength }
  2387. X    named paint      { paint      }
  2388. X    named margin     { 0c         }
  2389. X    named arrow      { noarrow    }
  2390. X    named headstyle  { headstyle  }
  2391. X    named headwidth  { headwidth  }
  2392. X    named headlength { headlength }
  2393. X    right x
  2394. X    {
  2395. X    @Figure
  2396. X        shape {
  2397. X        from @Label FROM
  2398. X        to   @Label TO
  2399. X        ctr  @Label CTR
  2400. X        FROM [ CTR
  2401. X        direction @Case { {clockwise anticlockwise} @Yield direction }
  2402. X        ] TO
  2403. X        }
  2404. X        linestyle  { linestyle  }
  2405. X        linewidth  { linewidth  }
  2406. X        linecap    { linecap    }
  2407. X        dashlength { dashlength }
  2408. X        paint      { paint      }
  2409. X        margin     { margin     }
  2410. X        arrow      { arrow      }
  2411. X        headstyle  { headstyle  }
  2412. X        headwidth  { headwidth  }
  2413. X        headlength { headlength }
  2414. X    x
  2415. X    }
  2416. X
  2417. X    { "grestore save gsave" maxlabels "dict begin lfigdict begin"
  2418. X      // "end end restore"
  2419. X    } @Graphic @Body
  2420. X
  2421. X@End @Fig                  
  2422. END_OF_FILE
  2423.   if test 16471 -ne `wc -c <'lout/include/fig'`; then
  2424.     echo shar: \"'lout/include/fig'\" unpacked with wrong size!
  2425.   fi
  2426.   # end of 'lout/include/fig'
  2427. fi
  2428. if test -f 'lout/z16.c' -a "${1}" != "-c" ; then 
  2429.   echo shar: Will not clobber existing file \"'lout/z16.c'\"
  2430. else
  2431.   echo shar: Extracting \"'lout/z16.c'\" \(16571 characters\)
  2432.   sed "s/^X//" >'lout/z16.c' <<'END_OF_FILE'
  2433. X/*@z16.c:Size Adjustment:SetNeighbours(), AdjustSize()@***********************/
  2434. X/*                                                                           */
  2435. X/*  LOUT: A HIGH-LEVEL LANGUAGE FOR DOCUMENT FORMATTING (VERSION 2.03)       */
  2436. X/*  COPYRIGHT (C) 1993 Jeffrey H. Kingston                                   */
  2437. X/*                                                                           */
  2438. X/*  Jeffrey H. Kingston (jeff@cs.su.oz.au)                                   */
  2439. X/*  Basser Department of Computer Science                                    */
  2440. X/*  The University of Sydney 2006                                            */
  2441. X/*  AUSTRALIA                                                                */
  2442. X/*                                                                           */
  2443. X/*  This program is free software; you can redistribute it and/or modify     */
  2444. X/*  it under the terms of the GNU General Public License as published by     */
  2445. X/*  the Free Software Foundation; either version 1, or (at your option)      */
  2446. X/*  any later version.                                                       */
  2447. X/*                                                                           */
  2448. X/*  This program is distributed in the hope that it will be useful,          */
  2449. X/*  but WITHOUT ANY WARRANTY; without even the implied warranty of           */
  2450. X/*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the            */
  2451. X/*  GNU General Public License for more details.                             */
  2452. X/*                                                                           */
  2453. X/*  You should have received a copy of the GNU General Public License        */
  2454. X/*  along with this program; if not, write to the Free Software              */
  2455. X/*  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.                */
  2456. X/*                                                                           */
  2457. X/*  FILE:         z16.c                                                      */
  2458. X/*  MODULE:       Size Adjustment                                            */
  2459. X/*  EXTERNS:      SetNeighbours(), AdjustSize()                              */
  2460. X/*                                                                           */
  2461. X/*****************************************************************************/
  2462. X#include "externs"
  2463. X
  2464. X
  2465. X/*****************************************************************************/
  2466. X/*                                                                           */
  2467. X/*  SetNeighbours(link, ratm, pg, pdef, sg, sdef, side)                      */
  2468. X/*                                                                           */
  2469. X/*  This is a utility routine used by CatConstrained(), AdjustSize(),        */
  2470. X/*  BreakTable() and FlushGalley() for calculating size updates in objects.  */
  2471. X/*  Assuming that link is the link of a component of a VCAT etc., and that   */
  2472. X/*  ratm is TRUE if there is a marked component to the right of link, set    */
  2473. X/*                                                                           */
  2474. X/*     pg    to the gap separating link from the first definite object       */
  2475. X/*           to the left, or nil if none.  If pg != nil, set pdef to         */
  2476. X/*           the preceding definite object;  else pdef is undefined.         */
  2477. X/*                                                                           */
  2478. X/*     sg    to the gap separating link from the first definite object       */
  2479. X/*           to the right, or nil if none.  if sg != nil, set sdef to        */
  2480. X/*           the succeeding definite object;  else sdef is undefined.        */
  2481. X/*                                                                           */
  2482. X/*     side  to the side of the mark link is on; either BACK, ON or FWD.     */
  2483. X/*                                                                           */
  2484. X/*****************************************************************************/
  2485. X
  2486. XSetNeighbours(link, ratm, pg, pdef, sg, sdef, side)
  2487. XOBJECT link;  BOOLEAN ratm;
  2488. XOBJECT *pg, *pdef, *sg, *sdef;  int *side;
  2489. X{ OBJECT plink, slink;
  2490. X
  2491. X  /* find preceding definite; if it exists, set *pg */
  2492. X  *pg = nil;
  2493. X  for( plink = PrevDown(link);  type(plink) == LINK;  plink = PrevDown(plink) )
  2494. X  { Child(*pdef, plink);
  2495. X    if( type(*pdef) == SPLIT ? SplitIsDefinite(*pdef) : is_definite(type(*pdef)) )
  2496. X    { Child(*pg, PrevDown(link));
  2497. X      while( is_index(type(*pg)) )
  2498. X      {    link = PrevDown(link);
  2499. X    Child(*pg, PrevDown(link));
  2500. X      }
  2501. X      assert( type(*pg) == GAP_OBJ, "SetNeighbours: type(*pg)!" );
  2502. X      break;
  2503. X    }
  2504. X  }
  2505. X
  2506. X  /* find succeeding definite; if it exists, set *sg */
  2507. X  *sg = nil;
  2508. X  for( slink = NextDown(link);  type(slink) == LINK;  slink = NextDown(slink) )
  2509. X  { Child(*sdef, slink);
  2510. X    if( type(*sdef) == SPLIT ? SplitIsDefinite(*sdef) : is_definite(type(*sdef)) )
  2511. X    { Child(*sg, PrevDown(slink));
  2512. X      while( is_index(type(*sg)) )
  2513. X      {    slink = PrevDown(slink);
  2514. X    Child(*sg, PrevDown(slink));
  2515. X      }
  2516. X      assert( type(*sg) == GAP_OBJ, "SetNeighbours: type(*sg)!" );
  2517. X      break;
  2518. X    }
  2519. X  }
  2520. X
  2521. X  *side = ratm ? BACK : *pg == nil || mark(gap(*pg)) ? ON : FWD;
  2522. X  debug4(DSA,DD, "SetNeighbours: ratm == %s, pg %s nil, sg %s nil, side == %s",
  2523. X    bool(ratm), *pg == nil ? "==" : "!=", *sg == nil ? "==" : "!=", 
  2524. X    *side == BACK ? "BACK" : *side == ON ? "ON" : "FWD");
  2525. X} /* end SetNeighbours */
  2526. X
  2527. X
  2528. X/*@@**************************************************************************/
  2529. X/*                                                                           */
  2530. X/*  static CatAdjustSize(x, b, f, ratm, y, dim)                              */
  2531. X/*                                                                           */
  2532. X/*  Adjust the size of x to be *b, *f.  Object x is known to lie in add-set  */
  2533. X/*  y;  ratm is TRUE iff there is a mark to the right of x.  Return the      */
  2534. X/*  new size of y in *b, *f.                                                 */
  2535. X/*                                                                           */
  2536. X/*****************************************************************************/
  2537. X
  2538. Xstatic CatAdjustSize(x, b, f, ratm, y, dim)
  2539. XOBJECT x;  LENGTH *b, *f;  BOOLEAN ratm;  OBJECT y;  int dim;
  2540. X{ OBJECT link;
  2541. X  OBJECT pg, prec_def, sg, sd;
  2542. X  LENGTH beffect, feffect, seffect;  int side;
  2543. X  int bb, ff;
  2544. X
  2545. X  debug6(DSA, D, "CatAdjustSize(%s x, %s, %s, %s, %s y, %s)", Image(type(x)),
  2546. X    EchoLength(*b), EchoLength(*f), bool(ratm), Image(type(y)), dimen(dim));
  2547. X  debug2(DSA,DD, "x(%s,%s) =", EchoLength(back(x,dim)), EchoLength(fwd(x,dim)));
  2548. X  ifdebug(DSA, DD, EchoObject(stderr, x));
  2549. X  debug2(DSA,DD, "y(%s,%s) =", EchoLength(back(y,dim)), EchoLength(fwd(y,dim)));
  2550. X  ifdebug(DSA, DD, EchoObject(stderr, y));
  2551. X
  2552. X  /* DO_ADJUST ACAT is a special case because adjustment affects its size */
  2553. X  if( dim==COL && type(y)==ACAT && display_style(save_style(y)) == DO_ADJUST )
  2554. X  { back(x, dim) = *b;  fwd(x, dim) = *f;
  2555. X    *b = back(y, dim);  *f = fwd(y, dim);
  2556. X    debug2(DSA, D, "CatAdjustSize ACAT %s,%s", EchoLength(*b), EchoLength(*f));
  2557. X    return;
  2558. X  }
  2559. X
  2560. X  link = UpDim(x, dim);
  2561. X  SetNeighbours(link, ratm, &pg, &prec_def, &sg, &sd, &side);
  2562. X  { ifdebug(DSA, D,
  2563. X    if( pg != nil && mode(gap(pg)) == NO_MODE )
  2564. X    { debug1(DSA, D, "NO_MODE gap pg, is_indefinite(x) == %s, y =",
  2565. X    bool(is_indefinite(type(x))) );
  2566. X      ifdebug(DSA, D, EchoObject(stderr, y));
  2567. X    }
  2568. X    if( sg != nil && mode(gap(sg)) == NO_MODE )
  2569. X    { debug1(DSA, D, "NO_MODE gap sg, is_indefinite(x) == %s, y =",
  2570. X    bool(is_indefinite(type(x))) );
  2571. X      ifdebug(DSA, D, EchoObject(stderr, y));
  2572. X    }
  2573. X  ); }
  2574. X  if( is_indefinite(type(x)) )
  2575. X  {
  2576. X    beffect = pg == nil ? *b :
  2577. X      MinGap(fwd(prec_def, dim), *b, *f, &gap(pg));
  2578. X
  2579. X    feffect = sg == nil ? *f :
  2580. X      MinGap(*f, back(sd, dim), fwd(sd, dim), &gap(sg));
  2581. X
  2582. X    seffect = pg == nil ? sg == nil ? 0 : back(sd, dim) :
  2583. X      sg == nil ? fwd(prec_def, dim) :
  2584. X      MinGap(fwd(prec_def, dim), back(sd,dim), fwd(sd,dim), &gap(sg));
  2585. X  }
  2586. X  else /* !is_indefinite(type(x)) */
  2587. X  {
  2588. X    beffect = pg == nil ?  *b - back(x, dim) :
  2589. X      MinGap(fwd(prec_def, dim), *b,           *f,          &gap(pg)) -
  2590. X      MinGap(fwd(prec_def, dim), back(x, dim), fwd(x, dim), &gap(pg));
  2591. X
  2592. X    feffect = sg == nil ? *f - fwd(x, dim) :
  2593. X      MinGap(*f,          back(sd, dim), fwd(sd, dim), &gap(sg)) -
  2594. X      MinGap(fwd(x, dim), back(sd, dim), fwd(sd, dim), &gap(sg));
  2595. X    
  2596. X    seffect = 0;
  2597. X  }
  2598. X
  2599. X  back(x, dim) = *b;  fwd(x, dim) = *f;
  2600. X  switch( side )
  2601. X  {
  2602. X    case BACK:    bb = back(y, dim) + beffect + feffect - seffect;
  2603. X        ff = fwd(y, dim);
  2604. X        break;
  2605. X
  2606. X    case ON:    bb = back(y, dim) + beffect - seffect;
  2607. X        ff = fwd(y, dim) + feffect;
  2608. X        break;
  2609. X
  2610. X    case FWD:    bb = back(y, dim);
  2611. X        ff = fwd(y, dim) + beffect + feffect - seffect;
  2612. X        break;
  2613. X  }
  2614. X  if( bb > MAX_LEN || ff > MAX_LEN )
  2615. X  { debug2(DSA, D, "bb = %s, ff = %s, y =", EchoLength(bb), EchoLength(ff));
  2616. X    ifdebug(DSA, D, EchoObject(stderr, y));
  2617. X    debug0(DSA, D, "x was");
  2618. X    ifdebug(DSA, D, EchoObject(stderr, x));
  2619. X    Error(FATAL,&fpos(y),"maximum size (%s) exceeded", EchoLength(MAX_LEN));
  2620. X  }
  2621. X  *b = bb;  *f = ff;
  2622. X  debug2(DSA, D, "CatAdjustSize returning %s,%s", EchoLength(*b), EchoLength(*f));
  2623. X} /* end CatAdjustSize */
  2624. X
  2625. X
  2626. X/*@@**************************************************************************/
  2627. X/*                                                                           */
  2628. X/*  AdjustSize(x, b, f, dim)                                                 */
  2629. X/*                                                                           */
  2630. X/*  Adjust the size of object x, in dimension dim, to be b, f.  If x is a    */
  2631. X/*  CLOSURE, the adjustment is from a CLOSURE to a definite object of size   */
  2632. X/*  b, f.                                                                    */
  2633. X/*                                                                           */
  2634. X/*****************************************************************************/
  2635. X
  2636. XAdjustSize(x, b, f, dim)
  2637. XOBJECT x;  LENGTH b, f;  int dim;
  2638. X{ OBJECT y, link, tlink, lp, rp, z, index;
  2639. X  BOOLEAN ratm;  LENGTH tb, tf, cby, cfy, rby, rfy;
  2640. X
  2641. X  debug6(DSA, D, "[ AdjustSize( %s(%s,%s), %s, %s, %s ), x =",
  2642. X    Image(type(x)), EchoLength(back(x, dim)), EchoLength(fwd(x, dim)),
  2643. X    EchoLength(b), EchoLength(f), dimen(dim));
  2644. X  ifdebug(DSA, DD, EchoObject(stderr, x) );
  2645. X
  2646. X  while( b != back(x, dim) || f != fwd(x, dim) || is_indefinite(type(x)) )
  2647. X  { assert( Up(x) != x, "AdjustSize: Up(x) == x!" );
  2648. X    assert( b >= 0, "AdjustSize: b < 0!" );
  2649. X    assert( f >= 0, "AdjustSize: f < 0!" );
  2650. X
  2651. X    /* these cases are unique because they have multiple parents */
  2652. X    if( type(x) == COL_THR || type(x) == ROW_THR )
  2653. X    { assert( (type(x)==COL_THR) == (dim==COL), "AdjustSize: COL_THR!" );
  2654. X      back(x, dim) = b;  fwd(x, dim) = f;
  2655. X      for( link = Up(x);  link != x;  link = NextUp(link) )
  2656. X      { Parent(y, link);
  2657. X    assert( type(y) == SPLIT, "AdjustSize: type(y) != SPLIT!") ;
  2658. X    AdjustSize(y, b, f, dim);
  2659. X      }
  2660. X      debug0(DSA, D, "[ AdjustSize (thread case) returning.");
  2661. X      return;
  2662. X    }
  2663. X
  2664. X    link = UpDim(x, dim);  ratm = FALSE;
  2665. X    for( tlink=NextDown(link);  type(tlink) == LINK;  tlink=NextDown(tlink) )
  2666. X    { Child(y, tlink);
  2667. X      if( type(y) == GAP_OBJ && mark(gap(y)) )  ratm = TRUE;
  2668. X    }
  2669. X    y = tlink;
  2670. X
  2671. X    debug5(DSA, DD, "  b = %s, f = %s, y = %s(%s,%s), x =",
  2672. X    EchoLength(b), EchoLength(f), Image(type(y)),
  2673. X    EchoLength(back(y, dim)), EchoLength(fwd(y, dim)));
  2674. X    ifdebug(DSA, DD, EchoObject(stderr, x) );
  2675. X
  2676. X    switch( type(y) )
  2677. X    {
  2678. X
  2679. X      case HEAD:
  2680. X      
  2681. X    if( dim == ROW )
  2682. X    { back(x, dim) = b, fwd(x, dim) = f;
  2683. X      debug0(DSA, D, "] AdjustSize ROW returning at HEAD");
  2684. X      return;
  2685. X    }
  2686. X    else
  2687. X    {
  2688. X      /* let lp and rp be the gaps delimiting the          */
  2689. X      /* components joined to x                            */
  2690. X      for( lp = PrevDown(link);  lp != y;  lp = PrevDown(lp) )
  2691. X      { Child(z, lp);
  2692. X        if( type(z) == GAP_OBJ && !join(gap(z)) )  break;
  2693. X      }
  2694. X      for( rp = NextDown(link);  rp != y;  rp = NextDown(rp) )
  2695. X      { Child(z, rp);
  2696. X        if( type(z) == GAP_OBJ && !join(gap(z)) )  break;
  2697. X      }
  2698. X
  2699. X      back(x, dim) = b;  fwd(x, dim) = f;
  2700. X      if( lp == y && rp == y && !seen_nojoin(y) )
  2701. X      {    
  2702. X        /* if whole object is joined, do this */
  2703. X        b = max(b, back(y, dim));
  2704. X        f = max(f, fwd(y, dim));
  2705. X      }
  2706. X      else
  2707. X      {
  2708. X        /* if // or || is present, do this */
  2709. X        tb = tf = 0;
  2710. X        for( link = NextDown(lp);  link != rp;  link = NextDown(link) )
  2711. X        { Child(z, link);
  2712. X          if( type(z) == GAP_OBJ || is_index(type(z)) )  continue;
  2713. X          tb = max(tb, back(z, dim));
  2714. X          tf = max(tf, fwd(z, dim));
  2715. X        }
  2716. X        b = 0;  f = max(tb + tf, fwd(y, dim));
  2717. X      }
  2718. X      if( back(y, dim) == b && fwd(y, dim) == f )
  2719. X      {
  2720. X        debug0(DSA, D, "] AdjustSize (COL) returning at HEAD (no wider)");
  2721. X        return;
  2722. X      }
  2723. X      debug3(DGF, D, "AdjustSize widening %s to %s,%s",
  2724. X           SymName(actual(y)), EchoLength(b), EchoLength(f));
  2725. X      back(y, dim) = b;  fwd(y, dim) = f;
  2726. X      if( Up(y) == y )
  2727. X      {
  2728. X        debug0(DSA, D, "] AdjustSize ret. at HEAD (no parent)" );
  2729. X        return;
  2730. X      }
  2731. X      Parent(index, Up(y));
  2732. X      if( type(index) != RECEIVING )
  2733. X      {
  2734. X        debug1(DSA,D, "] AdjustSize ret. at HEAD (%s)", Image(type(index)));
  2735. X        return;
  2736. X      }
  2737. X      assert( actual(index) != nil, "AdjustSize: actual(index) == nil!" );
  2738. X      assert( type(actual(index)) == CLOSURE, "AdjustSize: index non-C!" );
  2739. X      if( actual(actual(index)) != GalleySym )
  2740. X      {
  2741. X        debug0(DSA, D, "] AdjustSize ret. at HEAD (not @Galley, so root)" );
  2742. X        return;
  2743. X      }
  2744. X      y = actual(index);
  2745. X    }
  2746. X    break;
  2747. X
  2748. X
  2749. X      case SPLIT:
  2750. X      case HCONTRACT:
  2751. X      case VCONTRACT:
  2752. X      case HEXPAND:
  2753. X      case VEXPAND:
  2754. X      case PADJUST:
  2755. X      case HADJUST:
  2756. X      case VADJUST:
  2757. X      case ONE_COL:
  2758. X      case ONE_ROW:
  2759. X      case GRAPHIC:
  2760. X
  2761. X    back(x, dim) = b;  fwd(x, dim) = f;
  2762. X    break;
  2763. X
  2764. X
  2765. X      case HSCALE:
  2766. X      case VSCALE:
  2767. X
  2768. X    back(x, dim) = b;  fwd(x, dim) = f;
  2769. X    if( (dim==COL) == (type(y)==HSCALE) )
  2770. X    { debug0(DSA, D, "] AdjustSize returning at HSCALE or VSCALE");
  2771. X      return;
  2772. X    }
  2773. X    break;
  2774. X
  2775. X
  2776. X      case SCALE:
  2777. X
  2778. X    back(x, dim) = b;  fwd(x, dim) = f;
  2779. X    if( dim == COL )
  2780. X    { b *= bc(constraint(y)) / SF;
  2781. X      f *= bc(constraint(y)) / SF;
  2782. X    }
  2783. X    else
  2784. X    { b *= fc(constraint(y)) / SF;
  2785. X      f *= fc(constraint(y)) / SF;
  2786. X    }
  2787. X    break;
  2788. X
  2789. X
  2790. X      case ROTATE:
  2791. X      
  2792. X    back(x, dim) = b;  fwd(x, dim) = f;
  2793. X    RotateSize(&cby, &cfy, &rby, &rfy, x, sparec(constraint(y)));
  2794. X    if( cby != back(y, COL) || cfy != fwd(y, COL) )
  2795. X      AdjustSize(y, cby, cfy, COL);
  2796. X    if( rby != back(y, ROW) || rfy != fwd(y, ROW) )
  2797. X      AdjustSize(y, rby, rfy, ROW);
  2798. X    debug1(DSA, D, "] AdjustSize returning at %s.", Image(type(y)));
  2799. X    return;
  2800. X
  2801. X
  2802. X      case WIDE:
  2803. X      case HIGH:
  2804. X      
  2805. X    if( (type(y) == WIDE) == (dim == COL) )
  2806. X    { if( !FitsConstraint(b, f, constraint(y)) )
  2807. X      { Error(WARN, &fpos(y), "size constraint %s,%s,%s broken by %s,%s",
  2808. X          EchoLength(bc(constraint(y))), EchoLength(bfc(constraint(y))),
  2809. X          EchoLength(fc(constraint(y))), EchoLength(b), EchoLength(f));
  2810. X        SetConstraint(constraint(y), MAX_LEN, b+f, MAX_LEN);
  2811. X      }
  2812. X      back(x, dim) = b;  fwd(x, dim) = f;
  2813. X      EnlargeToConstraint(&b, &f, &constraint(y));
  2814. X    }
  2815. X    else
  2816. X    { back(x, dim) = b;
  2817. X      fwd(x, dim) = f;
  2818. X    }
  2819. X    break;
  2820. X
  2821. X
  2822. X      case COL_THR:
  2823. X      case ROW_THR:
  2824. X
  2825. X    assert( (type(y)==COL_THR) == (dim==COL), "AdjustSize: COL_THR!" );
  2826. X    back(x, dim) = b;  fwd(x, dim) = f;
  2827. X    b = max(b, back(y, dim));
  2828. X    f = max(f, fwd(y, dim));
  2829. X    break;
  2830. X
  2831. X
  2832. X      case VCAT:
  2833. X      case HCAT:
  2834. X      case ACAT:
  2835. X
  2836. X    if( (type(y) == VCAT) == (dim == ROW) )
  2837. X      CatAdjustSize(x, &b, &f, ratm, y, dim);
  2838. X    else
  2839. X    {
  2840. X      /* let lp and rp be the gaps bracketing the components joined to x */
  2841. X      for( lp = PrevDown(link);  lp != y;  lp = PrevDown(lp) )
  2842. X      { Child(z, lp);
  2843. X        if( type(z) == GAP_OBJ && !join(gap(z)) )  break;
  2844. X      }
  2845. X      for( rp = NextDown(link);  rp != y;  rp = NextDown(rp) )
  2846. X      { Child(z, rp);
  2847. X        if( type(z) == GAP_OBJ && !join(gap(z)) )  break;
  2848. X      }
  2849. X
  2850. X      back(x, dim) = b;  fwd(x, dim) = f;
  2851. X      if( lp == y && rp == y )
  2852. X      {
  2853. X        /* if whole object is joined, do this */
  2854. X        b = max(b, back(y, dim));
  2855. X        f = max(f, fwd(y, dim));
  2856. X      }
  2857. X      else
  2858. X      { /* if // or || is present, do this */
  2859. X        tb = tf = 0;
  2860. X        for( link = NextDown(lp); link != rp;  link = NextDown(link) )
  2861. X        { Child(z, link);
  2862. X          if( type(z) == GAP_OBJ || is_index(type(z)) )  continue;
  2863. X          tb = max(tb, back(z, dim));
  2864. X          tf = max(tf, fwd(z, dim));
  2865. X        }
  2866. X        b = 0;  f = max(tb + tf, fwd(y, dim));
  2867. X      }
  2868. X    }
  2869. X    break;
  2870. X
  2871. X
  2872. X      case WORD:
  2873. X      case CLOSURE:
  2874. X      case NULL_CLOS:
  2875. X      case CROSS:
  2876. X      default:
  2877. X      
  2878. X    Error(INTERN, &fpos(y), "AdjustSize: %s", Image(type(y)));
  2879. X    break;
  2880. X
  2881. X    } /* end switch */
  2882. X    x = y;
  2883. X  } /* end while */
  2884. X  debug0(DSA, D, "] AdjustSize returning.");
  2885. X} /* end AdjustSize */
  2886. END_OF_FILE
  2887.   if test 16571 -ne `wc -c <'lout/z16.c'`; then
  2888.     echo shar: \"'lout/z16.c'\" unpacked with wrong size!
  2889.   fi
  2890.   # end of 'lout/z16.c'
  2891. fi
  2892. echo shar: End of archive 14 \(of 30\).
  2893. cp /dev/null ark14isdone
  2894. MISSING=""
  2895. 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
  2896.     if test ! -f ark${I}isdone ; then
  2897.     MISSING="${MISSING} ${I}"
  2898.     fi
  2899. done
  2900. if test "${MISSING}" = "" ; then
  2901.     echo You have unpacked all 30 archives.
  2902.     rm -f ark[1-9]isdone ark[1-9][0-9]isdone
  2903. else
  2904.     echo You still must unpack the following archives:
  2905.     echo "        " ${MISSING}
  2906. fi
  2907. exit 0
  2908. exit 0 # Just in case...
  2909.