home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / misc / volume38 / lout / part34 < prev    next >
Text File  |  1993-08-11  |  75KB  |  2,025 lines

  1. Newsgroups: comp.sources.misc
  2. From: jeff@joyce.cs.su.oz.au (Jeff Kingston)
  3. Subject: v38i102:  lout - Lout document formatting system, v2.05, Part34/35
  4. Message-ID: <1993Aug10.132518.19573@sparky.sterling.com>
  5. X-Md4-Signature: 1bc71f1608fcf5c1fda59e8f9d07d24c
  6. Sender: kent@sparky.sterling.com (Kent Landfield)
  7. Organization: Sterling Software
  8. Date: Tue, 10 Aug 1993 13:25:18 GMT
  9. Approved: kent@sparky.sterling.com
  10.  
  11. Submitted-by: jeff@joyce.cs.su.oz.au (Jeff Kingston)
  12. Posting-number: Volume 38, Issue 102
  13. Archive-name: lout/part34
  14. Environment: UNIX
  15. Supersedes: lout: Volume 37, Issue 99-128
  16.  
  17. #! /bin/sh
  18. # This is a shell archive.  Remove anything before this line, then feed it
  19. # into a shell via "sh file" or similar.  To overwrite existing files,
  20. # type "sh file -c".
  21. # Contents:  data/refstyles.ld doc/README doc/tr.begin/s06
  22. #   doc/tr.begin/s07 doc/tr.begin/s08 doc/tr.begin/s09
  23. #   doc/tr.begin/s16 doc/tr.eq/s0 doc/tr.eq/s1 doc/tr.fig/s0
  24. #   doc/tr.fig/s1 doc/tr.fig/s4 doc/tr.fig/s7 doc/tr.fig/setup
  25. #   doc/tr.impl/s0.0 doc/tr.impl/s6.0 doc/tr.lout/ch3.01
  26. #   doc/tr.lout/ch3.06 doc/tr.lout/ch3.08 doc/tr.lout/ch3.10
  27. #   doc/tr.lout/ch3.11 doc/tr.lout/ch3.12 doc/tr.lout/ch3.13
  28. #   doc/tr.lout/ch3.15 doc/tr.lout/ch3.16 doc/tr.lout/ch3.17
  29. #   doc/tr.lout/ch3.19 doc/tr.lout/ch3.20 doc/tr.lout/ch3.21
  30. #   doc/tr.lout/ch3.22 doc/tr.lout/ch3.24 doc/tr.lout/ch3.25
  31. #   doc/tr.lout/ch3.26 doc/tr.over/s0 doc/tr.over/s7 doc/tr.tab/s0
  32. #   doc/tr.tab/s4 doc/tr.tab/s5 doc/tr.tab/setup evec/Ding.CEV
  33. #   evec/Latin1.CEV evec/Std.CEV include/README
  34. # Wrapped by kent@sparky on Sun Aug  8 12:29:35 1993
  35. PATH=/bin:/usr/bin:/usr/ucb:/usr/local/bin:/usr/lbin ; export PATH
  36. echo If this archive is complete, you will see the following message:
  37. echo '          "shar: End of archive 34 (of 35)."'
  38. if test -f 'data/refstyles.ld' -a "${1}" != "-c" ; then 
  39.   echo shar: Will not clobber existing file \"'data/refstyles.ld'\"
  40. else
  41.   echo shar: Extracting \"'data/refstyles.ld'\" \(911 characters\)
  42.   sed "s/^X//" >'data/refstyles.ld' <<'END_OF_FILE'
  43. X{ Book @RefStyle @Style
  44. X  {  @Reference&&reftag @Open
  45. X     { @Author,  {Slope @Font @Title}.  @Publisher, @Year.  @Comment }
  46. X  }
  47. X}
  48. X
  49. X{ JournalArticle @RefStyle @Style
  50. X  {  @Reference&&reftag @Open
  51. X     { @Author,  @Title.  {Slope @Font @Journal} {Bold @Font @Volume},
  52. X@Pages (@Year).  @Comment
  53. X     }
  54. X  }
  55. X}
  56. X
  57. X{ ConferencePaper @RefStyle @Style
  58. X  {  @Reference&&reftag @Open
  59. X     { @Author,  @Title.  {Slope @Font @Proceedings},
  60. X@Year, @Pages.  @Comment
  61. X     }
  62. X  }
  63. X}
  64. X
  65. X{ TechReport @RefStyle @Style
  66. X  {  @Reference&&reftag @Open
  67. X     { @Author,  {Slope @Font @Title}.  Tech. Rep. @Number (@Year),
  68. X@Institution.  @Comment
  69. X     }
  70. X  }
  71. X}
  72. X
  73. X{ PhD @RefStyle @Style
  74. X  {  @Reference&&reftag @Open
  75. X     { @Author,  {Slope @Font @Title}.  Ph.D. thesis,
  76. X@Institution (@Year).  @Comment
  77. X     }
  78. X  }
  79. X}
  80. X
  81. X{ Software @RefStyle @Style
  82. X  {  @Reference&&reftag @Open
  83. X     { @Author,  {Slope @Font @Title}, @Year.  @Comment
  84. X     }
  85. X  }
  86. X}
  87. END_OF_FILE
  88.   if test 911 -ne `wc -c <'data/refstyles.ld'`; then
  89.     echo shar: \"'data/refstyles.ld'\" unpacked with wrong size!
  90.   fi
  91.   # end of 'data/refstyles.ld'
  92. fi
  93. if test -f 'doc/README' -a "${1}" != "-c" ; then 
  94.   echo shar: Will not clobber existing file \"'doc/README'\"
  95. else
  96.   echo shar: Extracting \"'doc/README'\" \(905 characters\)
  97.   sed "s/^X//" >'doc/README' <<'END_OF_FILE'
  98. XDirectory lout/doc
  99. X
  100. XThis directory contains directories holding the Lout source for
  101. Xthe various technical reports that describe the Lout document
  102. Xformatting system:
  103. X
  104. Xtr.lout      `Document Formatting with Lout', the Lout user manual;
  105. X
  106. Xtr.over      `A New Approach to Document Formatting', a journal article;
  107. X
  108. Xtr.impl      `The Design and Implementation of the Lout Document Formatting
  109. X      Language', another journal article;
  110. X
  111. Xtr.begin  `A Beginners' Guide to Lout', describing the @DocumentLayout
  112. X      package;
  113. X
  114. Xtr.eq      `Eq - A Lout package for typesetting mathematics',
  115. X      describing the Eq equation formatter, and also the
  116. X      Pas Pascal program formatter;
  117. X
  118. Xtr.fig      `Fig - A Lout package for drawing figures', describing
  119. X      the Fig figure drawing package.
  120. X
  121. Xtr.tab      `Tab - A Lout package for formatting tables', describing
  122. X      the Tab table formatting package.
  123. X
  124. XJeffrey H. Kingston
  125. X24 September 1991
  126. X27 January 1993
  127. END_OF_FILE
  128.   if test 905 -ne `wc -c <'doc/README'`; then
  129.     echo shar: \"'doc/README'\" unpacked with wrong size!
  130.   fi
  131.   # end of 'doc/README'
  132. fi
  133. if test -f 'doc/tr.begin/s06' -a "${1}" != "-c" ; then 
  134.   echo shar: Will not clobber existing file \"'doc/tr.begin/s06'\"
  135. else
  136.   echo shar: Extracting \"'doc/tr.begin/s06'\" \(1009 characters\)
  137.   sed "s/^X//" >'doc/tr.begin/s06' <<'END_OF_FILE'
  138. X@Section
  139. X   @Tag { cnp }
  140. X   @Title { Conditional new page }
  141. X@Begin
  142. X@PP
  143. XOccasionally Lout will insert a page break directly following a heading,
  144. Xand this looks very poor.  The solution is to precede the heading with
  145. Xthe conditional new page symbol {@Code "@CNP"}, which checks whether
  146. Xenough space is left in the page or column for a heading and at least
  147. Xtwo lines of text.  If so, @Code "@CNP" does nothing; if not, @Code "@CNP"
  148. Xcauses a new page or column to be begun, like {@Code "@NP"}.  The recommended
  149. Xarrangement is
  150. X@ID @Code {
  151. X"end of previous part."
  152. X"@DP"
  153. X"@CNP"
  154. X"@Heading { A Heading }"
  155. X"@PP"
  156. X"First paragraph of next part ..."
  157. X}
  158. XThe @Code "@CNP" symbol should be preceded by either @Code "@DP" or
  159. X@Code "@LP", preferably {@Code "@DP"}, and this determines the amount of
  160. Xspace when the @Code "@NP" action does not occur.  In most cases it will
  161. Xbe better to use the @Code "@Section" symbol described below, which has
  162. X@Code "@CNP" included in it, rather than using @Code "@CNP" directly.
  163. X@End @Section
  164. END_OF_FILE
  165.   if test 1009 -ne `wc -c <'doc/tr.begin/s06'`; then
  166.     echo shar: \"'doc/tr.begin/s06'\" unpacked with wrong size!
  167.   fi
  168.   # end of 'doc/tr.begin/s06'
  169. fi
  170. if test -f 'doc/tr.begin/s07' -a "${1}" != "-c" ; then 
  171.   echo shar: Will not clobber existing file \"'doc/tr.begin/s07'\"
  172. else
  173.   echo shar: Extracting \"'doc/tr.begin/s07'\" \(1809 characters\)
  174.   sed "s/^X//" >'doc/tr.begin/s07' <<'END_OF_FILE'
  175. X@Section
  176. X   @Tag { sections }
  177. X   @Title { Sections }
  178. X@Begin
  179. X@PP
  180. XThe DocumentLayout package provides sections, like this:
  181. X@ID @Code {
  182. X"some introductory text."
  183. X"@BeginSections"
  184. X"@Section"
  185. X"    @Title { Introduction }"
  186. X"@Begin"
  187. X"@PP"
  188. X"..."
  189. X"..."
  190. X"@End @Section"
  191. X"@Section"
  192. X"    @Title { Displays and lists }"
  193. X"@Begin"
  194. X"@PP"
  195. X"..."
  196. X"..."
  197. X"@End @Section"
  198. X"@EndSections"
  199. X}
  200. X@Code "@BeginSections" and @Code "@EndSections" symbols must
  201. Xbracket the sections, and paragraph symbols are needed at the
  202. Xbeginning of each section but not before or after the whole group.  The
  203. X@OneCol @Code "@Title" option of @OneCol @Code "@Section" is made into
  204. Xa numbered heading, like those in the present document, preceded by a
  205. Xconditional new page symbol (Section {@NumberOf cnp}).  The body of
  206. Xeach section is enclosed in @OneCol @Code "@Begin" and
  207. X@OneCol {@Code "@End @Section"}, although @Code "{" and @Code "}"
  208. Xare sufficient if preferred.  The former are more long-winded but less
  209. Xprone to error.
  210. X@PP
  211. XWithin sections one may choose to have a sequence of subsections.  These
  212. Xare introduced by @Code "@BeginSubSections" and concluded by
  213. X{@Code "@EndSubSections"}:
  214. X@ID @Code {
  215. X"in the following subsections."
  216. X"@BeginSubSections"
  217. X"@SubSection"
  218. X"    @Title { ... }"
  219. X"@Begin"
  220. X"@PP"
  221. X"..."
  222. X"@End @SubSection"
  223. X"@SubSection"
  224. X"    @Title { ... }"
  225. X"@Begin"
  226. X"@PP"
  227. X"..."
  228. X"@End @SubSection"
  229. X"@EndSubSections"
  230. X}
  231. XThe first subsection of the first section will be numbered 1.1, and so
  232. Xon.  There are no sub-subsections.  DocumentLayout also provides appendices
  233. Xin an exactly analogous way, using the symbols {@Code "@BeginAppendices"},
  234. X{@Code "@Appendix"}, and {@Code "@EndAppendices"}, and subappendices
  235. Xwithin any appendix using the symbols {@Code "@BeginSubAppendices"},
  236. X{@Code "@SubAppendix"}, and {@Code "@EndSubAppendices"}.
  237. X@End @Section
  238. END_OF_FILE
  239.   if test 1809 -ne `wc -c <'doc/tr.begin/s07'`; then
  240.     echo shar: \"'doc/tr.begin/s07'\" unpacked with wrong size!
  241.   fi
  242.   # end of 'doc/tr.begin/s07'
  243. fi
  244. if test -f 'doc/tr.begin/s08' -a "${1}" != "-c" ; then 
  245.   echo shar: Will not clobber existing file \"'doc/tr.begin/s08'\"
  246. else
  247.   echo shar: Extracting \"'doc/tr.begin/s08'\" \(1142 characters\)
  248.   sed "s/^X//" >'doc/tr.begin/s08' <<'END_OF_FILE'
  249. X@Section
  250. X   @Tag { footnotes }
  251. X   @Title { Footnotes, figures, and tables }
  252. X@Begin
  253. X@PP
  254. XA footnote is created by typing
  255. X@ID @Code "@FootNote { Like this. }"
  256. Xafter the word that the footnote refers to.  It will be numbered
  257. Xautomatically and placed at the foot of the page or column;
  258. X@FootNote { Like this. }
  259. Xor, if space there is insufficient, it may start on or run onto the
  260. Xfollowing page or column.  Figures are created in a similar way:
  261. X@ID @Code {
  262. X"@Figure"
  263. X"    @Caption { Basser Lout }"
  264. X"@Fig {"
  265. X"    @Box Lout &"
  266. X"    @HArrow { 2c @Wide } &"
  267. X"    @Box PostScript"
  268. X"}"
  269. X}
  270. XThe @Code "@Figure" symbol places the figure (which in this example is
  271. Xcreated using the Fig figure drawing package [{@Ref kingston92fig}]) at
  272. Xthe top of the following column or page,
  273. X@Figure
  274. X    @Caption { Basser Lout }
  275. X@Fig {
  276. X    @Box Lout &
  277. X    @HArrow { 2c @Wide } &
  278. X    @Box PostScript
  279. X}
  280. Xlabelled by the @Code "@Caption" option and automatically numbered.  Unlike
  281. Xfootnotes, figures will not break across several pages; each figure must
  282. Xfit on one page.
  283. X@PP
  284. XTables are obtained in the same way using {@Code "@Table"} instead of
  285. X{@Code "@Figure"}.
  286. X@End @Section
  287. END_OF_FILE
  288.   if test 1142 -ne `wc -c <'doc/tr.begin/s08'`; then
  289.     echo shar: \"'doc/tr.begin/s08'\" unpacked with wrong size!
  290.   fi
  291.   # end of 'doc/tr.begin/s08'
  292. fi
  293. if test -f 'doc/tr.begin/s09' -a "${1}" != "-c" ; then 
  294.   echo shar: Will not clobber existing file \"'doc/tr.begin/s09'\"
  295. else
  296.   echo shar: Extracting \"'doc/tr.begin/s09'\" \(1428 characters\)
  297.   sed "s/^X//" >'doc/tr.begin/s09' <<'END_OF_FILE'
  298. X@Section
  299. X   @Tag { cross }
  300. X   @Title { Cross references }
  301. X@Begin
  302. X@PP
  303. X@I {Cross references} like `see page {@PageOf cross}' are a useful feature of
  304. Xdocuments, but they are troublesome to authors, since, as the document
  305. Xis revised, the thing on page {@PageOf cross} might find itself on page
  306. X{@PageOf reportlayout} and the cross reference must be changed.  Lout has
  307. Xa simple solution to this problem:  instead of writing the page number
  308. Xdirectly, write
  309. X@ID @Code "see page {@PageOf taxinfo}"
  310. Xinstead, and at the point referred to, write
  311. X@ID @Code "Taxation {@PageMark taxinfo} ..."
  312. X@Code "{@PageMark taxinfo}" will not appear in the output, but Lout makes
  313. Xa note of the number of the page on which the word preceding it appears,
  314. Xand inserts that number in place of {@Code "{@PageOf taxinfo}"}.  Any
  315. Xsingle word may be used for the tag.
  316. X@PP
  317. XCross referencing also applies to sections, subsections, appendices,
  318. Xsubappendices, figures, tables, and numbered displays, and can supply
  319. Xboth the page on which the item begins and its number.  First, add a
  320. X@Code "@Tag" option whose value is a single word:
  321. X@ID @Code {
  322. X"@Section"
  323. X"     @Title { Cross references }"
  324. X"     @Tag { cross }"
  325. X"@Begin"
  326. X"..."
  327. X}
  328. XThis marks the page on which the section begins, so @Code "{@PageOf cross}"
  329. Xwill be {@PageOf cross} in this case.  In addition, @Code "{@NumberOf cross}"
  330. Xwill be the number of the section, in this case {@NumberOf cross}.
  331. X@End @Section
  332. END_OF_FILE
  333.   if test 1428 -ne `wc -c <'doc/tr.begin/s09'`; then
  334.     echo shar: \"'doc/tr.begin/s09'\" unpacked with wrong size!
  335.   fi
  336.   # end of 'doc/tr.begin/s09'
  337. fi
  338. if test -f 'doc/tr.begin/s16' -a "${1}" != "-c" ; then 
  339.   echo shar: Will not clobber existing file \"'doc/tr.begin/s16'\"
  340. else
  341.   echo shar: Extracting \"'doc/tr.begin/s16'\" \(1843 characters\)
  342.   sed "s/^X//" >'doc/tr.begin/s16' <<'END_OF_FILE'
  343. X@Appendix
  344. X   @Tag { accented }
  345. X   @Title { Accented characters }
  346. X@Begin
  347. X@PP
  348. XAccented characters are available in Lout.  If you have a Latin-1 keyboard
  349. Xwith these characters on them, just use them; otherwise you have to name
  350. Xthe character using the @Code "@Char" symbol.  For example, 
  351. X@Code "{@Char eacute}" produces {@Char eacute}.  The complete list of
  352. Xnames of accented characters in Basser Lout is
  353. X@ID @Tab
  354. X   vmargin { 0.5vx }
  355. X   hmargin { 0.15c }
  356. X   @Fmta { @Col @Char A ! @Col @Code A ! @Col ! @Col @Char B ! @Col @Code B }
  357. X{
  358. X    @Rowa A { Agrave       } B { agrave        }
  359. X    @Rowa A { Aacute       } B { aacute        }
  360. X    @Rowa A { Acircumflex  } B { acircumflex    }
  361. X    @Rowa A { Atilde       } B { atilde        }
  362. X    @Rowa A { Adieresis       } B { adieresis    }
  363. X    @Rowa A { Aring       } B { aring        }
  364. X    @Rowa A { AE       } B { ae        }
  365. X    @Rowa A { Ccedilla       } B { ccedilla    }
  366. X
  367. X    @Rowa A { Egrave       } B { egrave        }
  368. X    @Rowa A { Eacute       } B { eacute        }
  369. X    @Rowa A { Ecircumflex  } B { ecircumflex    }
  370. X    @Rowa A { Edieresis       } B { edieresis    }
  371. X    @Rowa A { Igrave       } B { igrave        }
  372. X    @Rowa A { Iacute       } B { iacute        }
  373. X    @Rowa A { Icircumflex  } B { icircumflex    }
  374. X    @Rowa A { Idieresis       } B { idieresis    }
  375. X
  376. X    @Rowa A { Eth       } B { eth        }
  377. X    @Rowa A { Ntilde       } B { ntilde        }
  378. X    @Rowa A { Ograve       } B { ograve        }
  379. X    @Rowa A { Oacute       } B { oacute        }
  380. X    @Rowa A { Ocircumflex  } B { ocircumflex    }
  381. X    @Rowa A { Otilde       } B { otilde        }
  382. X    @Rowa A { Odieresis       } B { odieresis    }
  383. X
  384. X    @Rowa A { Oslash       } B { oslash        }
  385. X    @Rowa A { Ugrave       } B { ugrave        }
  386. X    @Rowa A { Uacute       } B { uacute        }
  387. X    @Rowa A { Ucircumflex  } B { ucircumflex    }
  388. X    @Rowa A { Udieresis       } B { udieresis    }
  389. X    @Rowa A { Yacute       } B { yacute        }
  390. X    @Rowa A { Thorn       } B { thorn        }
  391. X    @Rowa A { germandbls   } B { ydieresis    }
  392. X}
  393. X@End @Appendix
  394. END_OF_FILE
  395.   if test 1843 -ne `wc -c <'doc/tr.begin/s16'`; then
  396.     echo shar: \"'doc/tr.begin/s16'\" unpacked with wrong size!
  397.   fi
  398.   # end of 'doc/tr.begin/s16'
  399. fi
  400. if test -f 'doc/tr.eq/s0' -a "${1}" != "-c" ; then 
  401.   echo shar: Will not clobber existing file \"'doc/tr.eq/s0'\"
  402. else
  403.   echo shar: Extracting \"'doc/tr.eq/s0'\" \(909 characters\)
  404.   sed "s/^X//" >'doc/tr.eq/s0' <<'END_OF_FILE'
  405. X@Report
  406. X   @Title { Eq -- A Lout Package for Typesetting Mathematics }
  407. X   @Author { Jeffrey H. Kingston }
  408. X   @Institution { Basser Department of Computer Science
  409. XUniversity of Sydney 2006
  410. XAustralia }
  411. X   @DateLine { 22 December, 1992 }
  412. X//
  413. X
  414. X@Abstract {
  415. XThis report describes the use of Eq, a package of definitions for
  416. Xtypesetting mathematics with the Lout document formatter.  For example,
  417. X@ID @Code "@Eq { big int supp 1 on 0 ` dx over sqrt {1 - x sup 2} = pi over 2 }"
  418. Xproduces the output
  419. X@ID @Eq { big int supp 1 on 0 ` dx over sqrt {1 - x sup 2} = pi over 2 }
  420. XThe advantages of Eq include careful attention to details of spacing, a
  421. Xrepertoire of several hundred mathematical symbols, a simple syntax
  422. Xextensible by the user, and complete integration with the rest of Lout.
  423. X@PP
  424. XIn addition, this report contains an appendix describing the use of Pas,
  425. Xa package of definitions for printing Pascal programs.
  426. X}
  427. END_OF_FILE
  428.   if test 909 -ne `wc -c <'doc/tr.eq/s0'`; then
  429.     echo shar: \"'doc/tr.eq/s0'\" unpacked with wrong size!
  430.   fi
  431.   # end of 'doc/tr.eq/s0'
  432. fi
  433. if test -f 'doc/tr.eq/s1' -a "${1}" != "-c" ; then 
  434.   echo shar: Will not clobber existing file \"'doc/tr.eq/s1'\"
  435. else
  436.   echo shar: Extracting \"'doc/tr.eq/s1'\" \(1344 characters\)
  437.   sed "s/^X//" >'doc/tr.eq/s1' <<'END_OF_FILE'
  438. X@Section
  439. X   @Title { Introduction }
  440. X@Begin
  441. X@PP
  442. XEq is a package of definitions for typesetting mathematics with the Lout
  443. Xdocument formatter [{@Ref kingston92}].  It includes several hundred
  444. Xmathematical and other special characters (including the entire PostScript
  445. X@FootNote { PostScript is a trademark of Adobe Systems, Incorporated. }
  446. XSymbol font [{@Ref adobe90}]), and a smaller number of symbols for joining
  447. Xobjects together in mathematical ways.  Eq is based on the eqn language
  448. Xof Kernighan and Cherry [{@Ref kernighan75}], with
  449. Xspacing rules similar to Knuth's @TeX formatter [{@Ref knuth84}].
  450. X@PP
  451. XTo use Eq in a Lout document, first ensure that its definition is
  452. Xincluded, either by having @Code "@SysInclude { eq }"
  453. Xin the setup file, or @Code "-ieq" on the command line.  Then, at any point
  454. Xin the document, write @Code "@Eq  {  ...  }"
  455. Xand the symbols of Eq will be available between the braces.  Any symbols
  456. Xavailable outside continue to be available inside, which means that Eq
  457. Xcan be freely mixed with standard Lout and with symbols from other
  458. Xpackages, without restriction.
  459. X@PP
  460. XIn this report we show the Lout input at the left, and its
  461. Xresult at the right:
  462. X@ID {
  463. X@Code "@Eq { {x sup 2 + y sup 2} over 2 }"
  464. X|7ct
  465. X@Eq { {x sup 2 + y sup 2} over 2 }
  466. X}
  467. XSubsequent examples will omit the enclosing {@Code "@Eq { ... }"}.
  468. X@End @Section
  469. END_OF_FILE
  470.   if test 1344 -ne `wc -c <'doc/tr.eq/s1'`; then
  471.     echo shar: \"'doc/tr.eq/s1'\" unpacked with wrong size!
  472.   fi
  473.   # end of 'doc/tr.eq/s1'
  474. fi
  475. if test -f 'doc/tr.fig/s0' -a "${1}" != "-c" ; then 
  476.   echo shar: Will not clobber existing file \"'doc/tr.fig/s0'\"
  477. else
  478.   echo shar: Extracting \"'doc/tr.fig/s0'\" \(1153 characters\)
  479.   sed "s/^X//" >'doc/tr.fig/s0' <<'END_OF_FILE'
  480. X@Report
  481. X   @Title { Fig -- A Lout Package for Drawing Figures }
  482. X   @Author { Jeffrey H. Kingston }
  483. X   @Institution { Basser Department of Computer Science
  484. XThe University of Sydney 2006
  485. XAustralia }
  486. X   @DateLine { 22 December, 1992 }
  487. X//
  488. X
  489. X@Abstract @Begin
  490. XThis report describes the use of Fig, a package of definitions
  491. Xfor use with the Lout document formatter.  Fig draws, colours, and
  492. Xpositions arbitrary shapes made from straight lines, circular and
  493. Xelliptical arcs, and Bezier curves:
  494. X@CD @Fig
  495. X    margin { 0.2c }
  496. X{
  497. X@Frame -2p @Font
  498. X{ A:: @Ellipse { 25, 39 }
  499. X/0.3c |0.2c B:: @Ellipse { 43 } |0.1c |0.8c E:: @Box linestyle {noline} {Problem node}
  500. X/0.3c C:: @Ellipse { 40, 41 } | | D:: @Ellipse paint { light } {44, 45, 46}
  501. X}
  502. X// @Line from { A@SE } to { B@NW }
  503. X// @Line from { B@SW } to { C@NE }
  504. X// @Line from { B@SE } to { D@NW }
  505. X// @Arrow from { E@W } to { D@NE }
  506. X}
  507. XThe graphical objects may be rotated and scaled; they may enclose, and
  508. Xbe enclosed by arbitrary Lout objects (text, equations, tables, other
  509. Xgraphical objects, etc.) without restriction.  A convenient algebra of
  510. Xpoints and a method of labelling points assist positioning.
  511. X@End @Abstract
  512. END_OF_FILE
  513.   if test 1153 -ne `wc -c <'doc/tr.fig/s0'`; then
  514.     echo shar: \"'doc/tr.fig/s0'\" unpacked with wrong size!
  515.   fi
  516.   # end of 'doc/tr.fig/s0'
  517. fi
  518. if test -f 'doc/tr.fig/s1' -a "${1}" != "-c" ; then 
  519.   echo shar: Will not clobber existing file \"'doc/tr.fig/s1'\"
  520. else
  521.   echo shar: Extracting \"'doc/tr.fig/s1'\" \(1445 characters\)
  522.   sed "s/^X//" >'doc/tr.fig/s1' <<'END_OF_FILE'
  523. X@Section
  524. X   @Title { Introduction }
  525. X@Begin
  526. X@PP
  527. XFig is a package of Lout definitions for drawing and filling in
  528. Xarbitrary shapes made from straight lines, circular and elliptical arcs,
  529. Xand Bezier curves.  Its features are smoothly integrated with the rest
  530. Xof Lout: one can rotate and concatenate objects created by Fig, draw a
  531. Xbox to fit neatly around any object, etc.  The design of Fig is based
  532. Xentirely on Brian W. Kernighan's PIC language [{@Ref kernighan82}].  The
  533. Ximplementation of Fig makes good use of the PostScript
  534. X@FootNote { PostScript is a trademark of Adobe Systems, Inc. }
  535. Xpage description language [{@Ref adobe90}], which was designed by John
  536. XWarnock and others.  Lout was designed and implemented by Jeffrey
  537. XH. Kingston [{@Ref kingston92}].
  538. X@PP
  539. XTo use Fig within a Lout document, first ensure that its definition is
  540. Xincluded, either by putting @Code "@SysInclude { fig }" at the start of
  541. Xthe document, or @Code "-ifig" on the command line.  Then, anywhere at
  542. Xall within the document, write
  543. X@ID @Code "@Fig {  ...  }"
  544. Xand the symbols of Fig will be available
  545. Xbetween the braces, which may enclose an arbitrary Lout object.  Throughout
  546. Xthis report we will show the Lout text on the left and the corresponding
  547. Xresult on the right, like this:
  548. X@ID {
  549. X@Code {
  550. X"@Fig {"
  551. X"   @Square"
  552. X"   //0.5c"
  553. X"   @Circle"
  554. X"}"
  555. X}
  556. X||7ct
  557. X@Fig {
  558. X   @Square
  559. X   //0.5c
  560. X   @Circle
  561. X}
  562. X}
  563. XSubsequent examples will omit the enclosing {@Code "@Fig"}.
  564. X@End @Section
  565. END_OF_FILE
  566.   if test 1445 -ne `wc -c <'doc/tr.fig/s1'`; then
  567.     echo shar: \"'doc/tr.fig/s1'\" unpacked with wrong size!
  568.   fi
  569.   # end of 'doc/tr.fig/s1'
  570. fi
  571. if test -f 'doc/tr.fig/s4' -a "${1}" != "-c" ; then 
  572.   echo shar: Will not clobber existing file \"'doc/tr.fig/s4'\"
  573. else
  574.   echo shar: Extracting \"'doc/tr.fig/s4'\" \(1043 characters\)
  575.   sed "s/^X//" >'doc/tr.fig/s4' <<'END_OF_FILE'
  576. X@Section
  577. X   @Title { Colour }
  578. X@Begin
  579. X@PP
  580. XAn arbitrary Lout object may be printed in colour, like this:
  581. X@ID {
  582. X@Code "red @Colour hello"
  583. X||7ct
  584. X@Fig {
  585. Xred @Colour hello
  586. X}
  587. X}
  588. X@Code "@Colour" may also be spelt {@Code "@Color"}.  Of course, a colour
  589. Xprinting device is needed to see the effect.  The @Code "@Colour" symbol
  590. Xis intended to provide a fixed palette of colours indicated by names,
  591. Xincluding {@Code "white"}, {@Code "grey"}, {@Code "gray"}, {@Code "black"},
  592. X{@Code "red"}, {@Code "green"}, and {@Code "blue"} at least.
  593. X@PP
  594. XAn unlimited range of colours can be obtained with the
  595. X{@Code "@RGBColour"} (or {@Code "@RGBColor"}) symbol, which is given
  596. Xthree numbers in the range 0 to 1 specifying the required intensity of
  597. Xred, green and blue colour in that order.  For example,
  598. X@ID @Code "{1.0 0.0 0.0} @RGBColour hello"
  599. Xis equivalent to {@Code "red @Colour hello"}.  There is also
  600. X{@Code "@HSBColour"} (or {@Code "@HSBColor"}) for specifying colour
  601. Xusing the hue-saturation-brightness model (see [{@Ref adobe90}],
  602. XSection 4.8).
  603. X@End @Section
  604. END_OF_FILE
  605.   if test 1043 -ne `wc -c <'doc/tr.fig/s4'`; then
  606.     echo shar: \"'doc/tr.fig/s4'\" unpacked with wrong size!
  607.   fi
  608.   # end of 'doc/tr.fig/s4'
  609. fi
  610. if test -f 'doc/tr.fig/s7' -a "${1}" != "-c" ; then 
  611.   echo shar: Will not clobber existing file \"'doc/tr.fig/s7'\"
  612. else
  613.   echo shar: Extracting \"'doc/tr.fig/s7'\" \(1067 characters\)
  614.   sed "s/^X//" >'doc/tr.fig/s7' <<'END_OF_FILE'
  615. X@Section
  616. X   @Title { Errors }
  617. X@Begin
  618. X@PP
  619. XLout normally produces an output file that will print without mishap on
  620. Xany PostScript device.  However, some of the options of Fig's symbols
  621. Xare passed through Lout to the output file without checking, including
  622. Xanything containing Fig lengths, angles, points, and labels.  Any errors
  623. Xin these options will not be detected until the file is printed.
  624. X@PP
  625. XThe most likely errors are {@I syntax @I errors}, as in
  626. X@Code "shape { 0 0 [ 0 xsize }" for example, in which a @Code "]" is
  627. Xmissing; {@I type @I errors}, as in @Code "0 0 @Distance 45" where the
  628. Xright parameter is not a point; and {@I undefined @I errors}, arising
  629. Xfrom labels misspelt or used before being defined.  Less commonly, the
  630. Xoptions may all be correct but the figure is too large in some way:  too
  631. Xmany labels, too deeply nested, etc.
  632. X@PP
  633. XWhen an error is detected, Fig arranges for the offending page to
  634. Xbe printed up to the point where the error occurred, with a message
  635. Xnearby describing the error.  Printing of the document is then aborted.
  636. X@End @Section
  637. END_OF_FILE
  638.   if test 1067 -ne `wc -c <'doc/tr.fig/s7'`; then
  639.     echo shar: \"'doc/tr.fig/s7'\" unpacked with wrong size!
  640.   fi
  641.   # end of 'doc/tr.fig/s7'
  642. fi
  643. if test -f 'doc/tr.fig/setup' -a "${1}" != "-c" ; then 
  644.   echo shar: Will not clobber existing file \"'doc/tr.fig/setup'\"
  645. else
  646.   echo shar: Extracting \"'doc/tr.fig/setup'\" \(1715 characters\)
  647.   sed "s/^X//" >'doc/tr.fig/setup' <<'END_OF_FILE'
  648. X
  649. X######################################################
  650. X#                                                    #
  651. X#  Lout setup file for producing the Fig report.     #
  652. X#                                                    #
  653. X#  Jeffrey H. Kingston                               #
  654. X#  8 June 1991                                       #
  655. X#  22 December 1992                                  #
  656. X#                                                    #
  657. X######################################################
  658. X
  659. X@SysInclude { ft  }
  660. X@SysInclude { dl  }
  661. X@SysInclude { tab }
  662. X@SysInclude { eq  }
  663. X@SysInclude { fig }
  664. X
  665. X   def @Code
  666. X      right x
  667. X   { { Helvetica Base -1p } @Font lines @Break x
  668. X   }
  669. X
  670. X   import @Fig
  671. X   def @JoinFigures
  672. X      left A
  673. X      named linestyle { solid }
  674. X      named dashlength { 0.15 cm }
  675. X      named arrow { noarrow }
  676. X      named linewidth { 0.5 pt }
  677. X      right B
  678. X   {  @Arrow
  679. X     from { A"@CTR" ++ {{A"@CTR" @Angle B"@CTR"} A@CIRCUM} }
  680. X     to   { B"@CTR" ++ {{B"@CTR" @Angle A"@CTR"} B@CIRCUM} }
  681. X         linestyle { linestyle }
  682. X         dashlength { dashlength }
  683. X         arrow { arrow }
  684. X         linewidth { linewidth }
  685. X      {}
  686. X   }
  687. X
  688. X   def @ShowMarks
  689. X      named linewidth  { 0.015 cm }
  690. X      named linestyle  { dashed   }
  691. X      named dashlength { 0.15 cm  }
  692. X      named paint      { light    }
  693. X      right x
  694. X   {
  695. X      @Fig
  696. X      {   @Box margin { 0c } linewidth { linewidth } paint { paint }
  697. X      {   @Figure
  698. X         shape { -0.3 cm ymark
  699. X             {xsize ymark} ++ {0.3 cm 0}  []
  700. X             xmark -0.3 cm
  701. X             {xmark ysize} ++ {0 0.3 cm}
  702. X               }
  703. X         linewidth { linewidth }
  704. X         linestyle { linestyle }
  705. X         dashlength { dashlength }
  706. X          x
  707. X      }
  708. X
  709. X      }
  710. X   }
  711. X
  712. X@Use { @DocumentLayout }
  713. X
  714. X@SysDatabase @Reference { loutrefs }
  715. END_OF_FILE
  716.   if test 1715 -ne `wc -c <'doc/tr.fig/setup'`; then
  717.     echo shar: \"'doc/tr.fig/setup'\" unpacked with wrong size!
  718.   fi
  719.   # end of 'doc/tr.fig/setup'
  720. fi
  721. if test -f 'doc/tr.impl/s0.0' -a "${1}" != "-c" ; then 
  722.   echo shar: Will not clobber existing file \"'doc/tr.impl/s0.0'\"
  723. else
  724.   echo shar: Extracting \"'doc/tr.impl/s0.0'\" \(741 characters\)
  725.   sed "s/^X//" >'doc/tr.impl/s0.0' <<'END_OF_FILE'
  726. X@Report
  727. X    @Title { The Design and Implementation
  728. Xof the
  729. XLout Document Formatting Language }
  730. X    @Author { Jeffrey H. Kingston }
  731. X    @Institution { Basser Department of Computer Science,
  732. XThe University of Sydney 2006,
  733. XAustralia }
  734. X    @DateLine { 27 January, 1993 }
  735. X//
  736. X
  737. X@Abstract
  738. X   @Title { SUMMARY }
  739. X{
  740. XLout is a high-level language for document formatting, whose ease of use
  741. Xhas permitted an unprecedented number of advanced features to be added
  742. Xquickly and reliably.  This paper charts the evolution of the design and
  743. Ximplementation of Lout from conception in mid-1984 to public release in
  744. XOctober 1991.  It includes extensive discussions of remaining problems
  745. Xand possible solutions.
  746. X@DP
  747. X{@B Keywords}  document formatting typesetting
  748. X}
  749. END_OF_FILE
  750.   if test 741 -ne `wc -c <'doc/tr.impl/s0.0'`; then
  751.     echo shar: \"'doc/tr.impl/s0.0'\" unpacked with wrong size!
  752.   fi
  753.   # end of 'doc/tr.impl/s0.0'
  754. fi
  755. if test -f 'doc/tr.impl/s6.0' -a "${1}" != "-c" ; then 
  756.   echo shar: Will not clobber existing file \"'doc/tr.impl/s6.0'\"
  757. else
  758.   echo shar: Extracting \"'doc/tr.impl/s6.0'\" \(829 characters\)
  759.   sed "s/^X//" >'doc/tr.impl/s6.0' <<'END_OF_FILE'
  760. X@Section
  761. X    @Title { Cross references }
  762. X@Begin
  763. X@PP
  764. XCross references, such as `see page 57' and `see Figure 5,' are a useful
  765. Xbut highly error-prone feature of documents.  Scribe [7]
  766. Xintroduced a method of keeping them up to date automatically as the
  767. Xdocument changes:  the user gives each referenced entity a tag, and
  768. Xoperators are provided that return the page or sequence number of the
  769. Xentity with a given tag.
  770. X@PP
  771. XA cross reference takes an object (such as a page number) from one point
  772. Xin the document and copies it to another, and this generalization
  773. Xsuggests other applications.  For example, a running header is copied
  774. Xfrom the title of a nearby chapter, and a reference is copied from a
  775. Xbibliographic database.  Making the unity of these applications manifest
  776. Xis an interesting language design problem.
  777. X@BeginSubSections
  778. END_OF_FILE
  779.   if test 829 -ne `wc -c <'doc/tr.impl/s6.0'`; then
  780.     echo shar: \"'doc/tr.impl/s6.0'\" unpacked with wrong size!
  781.   fi
  782.   # end of 'doc/tr.impl/s6.0'
  783. fi
  784. if test -f 'doc/tr.lout/ch3.01' -a "${1}" != "-c" ; then 
  785.   echo shar: Will not clobber existing file \"'doc/tr.lout/ch3.01'\"
  786. else
  787.   echo shar: Extracting \"'doc/tr.lout/ch3.01'\" \(894 characters\)
  788.   sed "s/^X//" >'doc/tr.lout/ch3.01' <<'END_OF_FILE'
  789. X@Section
  790. X   @Title { "@Begin" and "@End" }
  791. X   @Tag { begin }
  792. X@Begin
  793. X@PP
  794. XThe body of a symbol @Code "@Sym" may be enclosed in @@Begin and
  795. Xbegin. @Index { @@Begin symbol }
  796. Xend. @Index { @@End symbol }
  797. X@@End @Code "@Sym" instead of the more usual braces:
  798. X@ID @Code {
  799. X"def @Section"
  800. X"    named @Title {}"
  801. X"    right @Body"
  802. X"@Begin"
  803. X"    @Title //2v @Body"
  804. X"@End @Section"
  805. X}
  806. XThey may also enclose the right or body parameter of a symbol invocation:
  807. X@ID @Code {
  808. X"@Chapter"
  809. X"    @Title { Introduction }"
  810. X"@Begin"
  811. X"This subject needs no introduction."
  812. X"@End @Chapter"
  813. X}
  814. XApart from their utility as documentation aids, these forms allow Basser
  815. XLout to pinpoint mismatched braces, which can otherwise create total
  816. Xhavoc.  For this reason, they should enclose the major parts of documents,
  817. Xsuch as chapters and sections.  Note that braces cannot be
  818. Xreplaced by @@Begin and @@End in general.
  819. X@End @Section
  820. END_OF_FILE
  821.   if test 894 -ne `wc -c <'doc/tr.lout/ch3.01'`; then
  822.     echo shar: \"'doc/tr.lout/ch3.01'\" unpacked with wrong size!
  823.   fi
  824.   # end of 'doc/tr.lout/ch3.01'
  825. fi
  826. if test -f 'doc/tr.lout/ch3.06' -a "${1}" != "-c" ; then 
  827.   echo shar: Will not clobber existing file \"'doc/tr.lout/ch3.06'\"
  828. else
  829.   echo shar: Extracting \"'doc/tr.lout/ch3.06'\" \(1114 characters\)
  830.   sed "s/^X//" >'doc/tr.lout/ch3.06' <<'END_OF_FILE'
  831. X@Section
  832. X   @Title { "@OneCol" and "@OneRow" }
  833. X   @Tag { onerow }
  834. X@Begin
  835. X@PP
  836. XThe @@OneRow symbol
  837. Xonerow.sym @Index { @@OneRow symbol }
  838. Xprincipal.mark.effect @SubIndex { effect on @@OneCol and @@OneRow }
  839. Xreturns its right parameter modified so that only the principal row mark
  840. Xprotrudes.  This is normally the first row mark, but another one may be
  841. Xchosen by preceding it with @Code "^/" or {@Code "^//"}.  For example,
  842. X@ID @Code {
  843. X"@OneRow {  |0.5rt  Slope @Font x + 2  ^//1p  @HLine  //1p  |0.5rt  5 }"
  844. X}
  845. Xhas result
  846. X@LP
  847. X@ID {
  848. X@ShowMarks
  849. X@OneRow { |0.5rt Slope @Font x + 2 ^//1p @HLine //1p |0.5rt 5 }
  850. X}
  851. X@LP
  852. Xwith one row mark protruding from the bar as shown.  Compare this with
  853. X@ID @Code {
  854. X"@OneRow {  |0.5rt  Slope @Font x + 2  //1p  @HLine  //1p  |0.5rt  5 }"
  855. X}
  856. Xwhere the mark protrudes from the numerator:
  857. X@LP
  858. X@ID {
  859. X@ShowMarks
  860. X@OneRow { |0.5rt Slope @Font x + 2 //1p @HLine //1p |0.5rt 5 }
  861. X}
  862. X@PP
  863. Xonecol.sym @Index { @@OneCol symbol }
  864. X@@OneCol has the same effect on columns as @@OneRow does on rows, with
  865. Xthe symbols @Code "^|" and @Code "^||" (or {@Code "^&"}) determining
  866. Xwhich mark is chosen.
  867. X@End @Section
  868. END_OF_FILE
  869.   if test 1114 -ne `wc -c <'doc/tr.lout/ch3.06'`; then
  870.     echo shar: \"'doc/tr.lout/ch3.06'\" unpacked with wrong size!
  871.   fi
  872.   # end of 'doc/tr.lout/ch3.06'
  873. fi
  874. if test -f 'doc/tr.lout/ch3.08' -a "${1}" != "-c" ; then 
  875.   echo shar: Will not clobber existing file \"'doc/tr.lout/ch3.08'\"
  876. else
  877.   echo shar: Extracting \"'doc/tr.lout/ch3.08'\" \(1138 characters\)
  878.   sed "s/^X//" >'doc/tr.lout/ch3.08' <<'END_OF_FILE'
  879. X@Section
  880. X   @Title { "@HExpand" and "@VExpand" }
  881. X   @Tag { hexpand }
  882. X@Begin
  883. X@PP
  884. Xhexpand @Index { @@HExpand symbol }
  885. Xvexpand @Index { @@VExpand symbol }
  886. Xexpansion @Index { Expansion of object }
  887. XThe @@HExpand symbol causes its right parameter to be as wide as it
  888. Xpossibly could be without violating a @@Wide symbol or intruding into
  889. Xthe space occupied by neighbouring gaps or objects.  The @@VExpand
  890. Xsymbol is similar, but it affects height.  For example, in the object
  891. X@ID @Code {
  892. X"8i @Wide 11i @High {"
  893. X"    //1i  ||1i @HExpand @VExpand x ||1i"
  894. X"    //1i"
  895. X"}"
  896. X}
  897. Xobject @Code x could have any size up to six inches wide by nine inches
  898. Xhigh, so the @@HExpand and @@VExpand symbols cause it to have exactly
  899. Xthis size.  This is important, for example, if @Code x contains
  900. X@Code "|1rt" or {@Code "/1rt"}; without the expansion these might not
  901. Xmove as far across or down as expected.
  902. X@PP
  903. XAs Section {@NumberOf size} explains in detail, most objects are
  904. Xalready as large as they possibly could be.  Consequently these symbols
  905. Xare needed only rarely.  @@HExpand includes a @@OneCol effect, and
  906. X@@VExpand includes a @@OneRow effect.
  907. X@End @Section
  908. END_OF_FILE
  909.   if test 1138 -ne `wc -c <'doc/tr.lout/ch3.08'`; then
  910.     echo shar: \"'doc/tr.lout/ch3.08'\" unpacked with wrong size!
  911.   fi
  912.   # end of 'doc/tr.lout/ch3.08'
  913. fi
  914. if test -f 'doc/tr.lout/ch3.10' -a "${1}" != "-c" ; then 
  915.   echo shar: Will not clobber existing file \"'doc/tr.lout/ch3.10'\"
  916. else
  917.   echo shar: Extracting \"'doc/tr.lout/ch3.10'\" \(1288 characters\)
  918.   sed "s/^X//" >'doc/tr.lout/ch3.10' <<'END_OF_FILE'
  919. X@Section
  920. X   @Title { "@HAdjust", "@VAdjust", and "@PAdjust" }
  921. X   @Tag { hadjust }
  922. X@Begin
  923. X@PP
  924. Xpadjust @Index { @@PAdjust symbol }
  925. Xhadjust @Index { @@HAdjust symbol }
  926. Xvadjust @Index { @@VAdjust symbol }
  927. Xadjustment @Index { Adjustment of object }
  928. XThese symbols spread their right parameter apart until it occupies
  929. Xall the space available to it;  @@HAdjust adjusts @Code "|" sequences,
  930. X@@VAdjust adjusts @Code "/" sequences, and @@PAdjust adjusts @Code "&"
  931. Xsequences.  For example,
  932. X@ID @Code {
  933. X"4i @Wide @PAdjust { 1 2 3 4 5 6 7 8 }"
  934. X}
  935. Xhas result
  936. X@ID {
  937. X4i @Wide @PAdjust { 1 2 3 4 5 6 7 8 }
  938. X}
  939. XMore precisely, the widening is effected by enlarging the size of each
  940. Xcomponent except the last by an equal fraction of the space that would
  941. Xotherwise be left over -- just the opposite of the usual procedure,
  942. Xwhich assigns all the leftover space to the last component (Section
  943. X{@NumberOf size}).
  944. X@PP
  945. X@@PAdjust is used by the @Code adjust and @Code outdent options of
  946. Xthe @@Break symbol (Section {@NumberOf break}).  It has a slight
  947. Xpeculiarity:  it will not enlarge components when the immediately
  948. Xfollowing gap has width 0.  This is to prevent space from appearing
  949. X(for example) between a word and an immediately following comma.  The
  950. Xother two symbols will enlarge such components.
  951. X@End @Section
  952. END_OF_FILE
  953.   if test 1288 -ne `wc -c <'doc/tr.lout/ch3.10'`; then
  954.     echo shar: \"'doc/tr.lout/ch3.10'\" unpacked with wrong size!
  955.   fi
  956.   # end of 'doc/tr.lout/ch3.10'
  957. fi
  958. if test -f 'doc/tr.lout/ch3.11' -a "${1}" != "-c" ; then 
  959.   echo shar: Will not clobber existing file \"'doc/tr.lout/ch3.11'\"
  960. else
  961.   echo shar: Extracting \"'doc/tr.lout/ch3.11'\" \(999 characters\)
  962.   sed "s/^X//" >'doc/tr.lout/ch3.11' <<'END_OF_FILE'
  963. X@Section
  964. X   @Title { "@HScale" and "@VScale" }
  965. X   @Tag { hscale }
  966. X@Begin
  967. X@PP
  968. Xhscale @Index { @@HScale symbol }
  969. Xvscale @Index { @@VScale symbol }
  970. Xscaling @Index { Scaling of object }
  971. X@@HScale causes its right parameter to expand to fill the space available,
  972. Xby geometricallly scaling it:
  973. X@ID @Code {
  974. X"4i @Wide @HScale { 1 2 3 4 5 6 7 8 }"
  975. X}
  976. Xhas result
  977. X@ID {
  978. X4i @Wide @HScale { 1 2 3 4 5 6 7 8 }
  979. X}
  980. Xand
  981. X@ID @Code {
  982. X"0.5i @Wide @HScale { 1 2 3 4 5 6 7 8 }"
  983. X}
  984. Xhas result
  985. X@ID {
  986. X0.5i @Wide @HScale { 1 2 3 4 5 6 7 8 }
  987. X}
  988. X@@HScale first applies @@HContract to its parameter, then horizontally
  989. Xscales it to the actual size.  The principal mark of the right parameter
  990. Xhas no effect on the result; the parameter is scaled to the actual size
  991. Xand positioned to fill the space available.  (Taking account of alignment
  992. Xof the principal mark only causes trouble in practice.)
  993. X@PP
  994. X@@VScale is similar, but in a vertical direction.  @@HScale and @@VScale
  995. Xeach have both a @@OneCol and a @@OneRow effect.
  996. X@End @Section
  997. END_OF_FILE
  998.   if test 999 -ne `wc -c <'doc/tr.lout/ch3.11'`; then
  999.     echo shar: \"'doc/tr.lout/ch3.11'\" unpacked with wrong size!
  1000.   fi
  1001.   # end of 'doc/tr.lout/ch3.11'
  1002. fi
  1003. if test -f 'doc/tr.lout/ch3.12' -a "${1}" != "-c" ; then 
  1004.   echo shar: Will not clobber existing file \"'doc/tr.lout/ch3.12'\"
  1005. else
  1006.   echo shar: Extracting \"'doc/tr.lout/ch3.12'\" \(718 characters\)
  1007.   sed "s/^X//" >'doc/tr.lout/ch3.12' <<'END_OF_FILE'
  1008. X@Section
  1009. X   @Title { "@Scale" }
  1010. X   @Tag { scale }
  1011. X@Begin
  1012. X@PP
  1013. Xscale @Index { @@Scale symbol }
  1014. XThis symbol geometrically scales its right parameter by the scale factor
  1015. Xgiven in its left parameter:
  1016. X@ID @Code "1.0 @Scale Hello  2.0 @Scale Hello  0.5 @Scale Hello"
  1017. Xhas result
  1018. X@ID { 1.0 @Scale Hello  2.0 @Scale Hello  0.5 @Scale Hello }
  1019. XThe left parameter can be two scale factors, in which case the first
  1020. Xapplies horizontally, and the second vertically:
  1021. X@ID @Code "{0.5 2.0} @Scale Hello"
  1022. Xhas result
  1023. X@ID { {0.5 2.0} @Scale Hello }
  1024. XThe right parameter may be any object.  @@Scale has both a @@OneCol and
  1025. Xa @@OneRow effect, and the marks of the result coincide with the principal
  1026. Xmarks of the right parameter.
  1027. X@End @Section
  1028. END_OF_FILE
  1029.   if test 718 -ne `wc -c <'doc/tr.lout/ch3.12'`; then
  1030.     echo shar: \"'doc/tr.lout/ch3.12'\" unpacked with wrong size!
  1031.   fi
  1032.   # end of 'doc/tr.lout/ch3.12'
  1033. fi
  1034. if test -f 'doc/tr.lout/ch3.13' -a "${1}" != "-c" ; then 
  1035.   echo shar: Will not clobber existing file \"'doc/tr.lout/ch3.13'\"
  1036. else
  1037.   echo shar: Extracting \"'doc/tr.lout/ch3.13'\" \(1552 characters\)
  1038.   sed "s/^X//" >'doc/tr.lout/ch3.13' <<'END_OF_FILE'
  1039. X@Section
  1040. X   @Title { "@Rotate" }
  1041. X   @Tag { rotate }
  1042. X@Begin
  1043. X@PP
  1044. Xrotate.sym @Index { @@Rotate symbol }
  1045. Xrotation @Index { Rotation of object }
  1046. XThe symbol @@Rotate will rotate its
  1047. Xright parameter counterclockwise an amount given in degrees (positive or
  1048. Xnegative) by its left parameter.  For example,
  1049. X@ID @Code {
  1050. X"30d  @Rotate  { hello, world }"
  1051. X}
  1052. Xhas result
  1053. X@ID {
  1054. X30d  @Rotate  { hello, world }
  1055. X}
  1056. XBefore rotating the object, @@OneCol and @@OneRow are applied to it.  The
  1057. Xresult is a rectangle whose marks pass through the point where the
  1058. Xoriginal marks crossed:
  1059. X@ID {
  1060. X   @ShowMarks
  1061. X   { 0.6c @Wide 0.3c @High ^| 2.2c @Wide ^/ 0.2c @High }
  1062. X
  1063. X&4m => &4m
  1064. X
  1065. X   @ShowMarks
  1066. X   {
  1067. X    30d @Rotate
  1068. X    {    @ShowMarks
  1069. X        { 0.6c @Wide 0.3c @High ^| 2.2c @Wide ^/ 0.2c @High }
  1070. X    }
  1071. X   }
  1072. X}
  1073. XAs this example shows, rotation by an angle other than a multiple of
  1074. Xninety degrees introduces quite a lot of white space.  So, for example, the
  1075. Xresult of
  1076. X@ID {
  1077. X@Code { "-30d" "@Rotate" 30d "@Rotate" }  @I object
  1078. X}
  1079. Xis a much larger object than {@I object}, despite the fact that one
  1080. Xrotation cancels the other.
  1081. X@PP
  1082. XRotation of objects containing receptive and recursive symbols is
  1083. Xpermitted, but for angles other than multiples of ninety degrees it is
  1084. Xbest to make the size of the rotated object clear with @@Wide and
  1085. X@@High symbols:
  1086. X@ID @Code {
  1087. X"30d @Rotate 5i @Wide 4i @High"
  1088. X"{   //1i @TextPlace"
  1089. X"    //1i"
  1090. X"}"
  1091. X}
  1092. XThis is because for angles other than multiples of ninety degrees the
  1093. Xspace available for @Code "@TextPlace" to occupy is indeterminate, and
  1094. Xthe result is poor.
  1095. X@End @Section
  1096. END_OF_FILE
  1097.   if test 1552 -ne `wc -c <'doc/tr.lout/ch3.13'`; then
  1098.     echo shar: \"'doc/tr.lout/ch3.13'\" unpacked with wrong size!
  1099.   fi
  1100.   # end of 'doc/tr.lout/ch3.13'
  1101. fi
  1102. if test -f 'doc/tr.lout/ch3.15' -a "${1}" != "-c" ; then 
  1103.   echo shar: Will not clobber existing file \"'doc/tr.lout/ch3.15'\"
  1104. else
  1105.   echo shar: Extracting \"'doc/tr.lout/ch3.15'\" \(1859 characters\)
  1106.   sed "s/^X//" >'doc/tr.lout/ch3.15' <<'END_OF_FILE'
  1107. X@Section
  1108. X   @Title { "@Case" }
  1109. X   @Tag { case }
  1110. X@Begin
  1111. X@PP
  1112. Xcase.sym @Index { @@Case symbol }
  1113. Xyield.sym @Index { @@Yield symbol }
  1114. XThe @@Case symbol selects its result from a list of alternatives,
  1115. Xdepending on a tag:
  1116. X@ID @Code {
  1117. X"@Day @Case {"
  1118. X"    { 1 21 31 }  @Yield  st"
  1119. X"    { 2 22 }  @Yield  nd"
  1120. X"    { 3 23 }  @Yield  rd"
  1121. X"    else  @Yield th"
  1122. X"}"
  1123. X}
  1124. XIn this example the result will be st if @Code "@Day" is 1, 21, or 31,
  1125. Xand nd if @Code "@Day" is 2 or 22, etc.  The effect is similar to
  1126. Xaccessing a database, though in a more compact form.  The right parameter
  1127. Xis a sequence of @@Yield symbols, each with a left parameter whose value is
  1128. Xa sequence of one or more juxtapositions of simple words, and a right
  1129. Xparameter which may be any object.
  1130. X@PP
  1131. XWe first describe the behaviour when the value of the left parameter of
  1132. X@@Case is a juxtaposition of one or more simple words.  Then the result of
  1133. Xthe @@Case is the right parameter of the first @@Yield whose left parameter
  1134. Xcontains either the value of the left parameter of the @@Case, or the special
  1135. Xvalue {@Code else}.  If there is no such @@Yield it is an error.
  1136. X@PP
  1137. XWhen the left parameter of @@Case is not a juxtaposition of simple
  1138. Xwords, the result is the right parameter of the first @@Yield whose
  1139. Xleft parameter is {@Code else}, or an error otherwise.  This permits
  1140. Xexamples like
  1141. X@ID @Code {
  1142. X"@RunningTitle @Case {"
  1143. X"    dft @Yield @Title"
  1144. X"    else @Yield @RunningTitle"
  1145. X"}"
  1146. X}
  1147. Xwhere a running title is returned unless it has the value {@Code dft}
  1148. X(which presumably means that no running title was supplied), in which
  1149. Xcase an ordinary title is returned instead.
  1150. X@PP
  1151. XWhen a receptive symbol is placed within a @@Case, it should be included
  1152. Xin each alternative, since otherwise Basser Lout may become confused when
  1153. Xtrying to predict whether the symbol will be a part of the result or not.
  1154. X@End @Section
  1155. END_OF_FILE
  1156.   if test 1859 -ne `wc -c <'doc/tr.lout/ch3.15'`; then
  1157.     echo shar: \"'doc/tr.lout/ch3.15'\" unpacked with wrong size!
  1158.   fi
  1159.   # end of 'doc/tr.lout/ch3.15'
  1160. fi
  1161. if test -f 'doc/tr.lout/ch3.16' -a "${1}" != "-c" ; then 
  1162.   echo shar: Will not clobber existing file \"'doc/tr.lout/ch3.16'\"
  1163. else
  1164.   echo shar: Extracting \"'doc/tr.lout/ch3.16'\" \(1705 characters\)
  1165.   sed "s/^X//" >'doc/tr.lout/ch3.16' <<'END_OF_FILE'
  1166. X@Section
  1167. X   @Title { "@Moment" }
  1168. X   @Tag { moment }
  1169. X@Begin
  1170. X@PP
  1171. XThe predefined symbol @@Moment
  1172. Xmoment.sym @Index { @@Moment symbol }
  1173. Xhas the following definition:
  1174. X@ID @Code {
  1175. X"def @Moment"
  1176. X"   named @Tag {}"
  1177. X"   named @Second {}"
  1178. X"   named @Minute {}"
  1179. X"   named @Hour {}"
  1180. X"   named @Day {}"
  1181. X"   named @Month {}"
  1182. X"   named @Year {}"
  1183. X"   named @Century {}"
  1184. X"   named @WeekDay {}"
  1185. X"   named @YearDay {}"
  1186. X"   named @DaylightSaving {}"
  1187. X"{}"
  1188. X}
  1189. XIt may be used like any other symbol.  Lout provides an invocation of
  1190. X@@Moment with tag {@Code now}, whose other parameters are numbers
  1191. Xencoding the current date and time:
  1192. X@ID {
  1193. X@JP @Code "@Second"  |0.5i the current second, between 0 and 59
  1194. X@JP @Code "@Minute"  | the current minute, between 0 and 59
  1195. X@JP @Code "@Hour"    | the current hour, between 0 and 23
  1196. X@JP @Code "@Day"     | the current day of the month, between 1 and 31
  1197. X@JP @Code "@Month"   | the current month, between 1 (January) and 12 (December)
  1198. X@JP @Code "@Year"    | the current year of the century, between 00 and 99
  1199. X@JP @Code "@Century" | the current century, e.g. 19 or 20
  1200. X@JP @Code "@WeekDay" | the current day of the week, between 1 (Sunday) and 7 (Saturday)
  1201. X@JP @Code "@YearDay" | the current day of the year, between 0 and 365
  1202. X@JP @Code "@DaylightSaving" | an implementation-dependent number that
  1203. Xmay encode the daylight saving currently in effect
  1204. X}
  1205. Xdate @Index { Date, printing of current }
  1206. XJudicious use of databases can convert
  1207. Xthese numbers into useful dates.  For example,
  1208. X@ID @Code {
  1209. X"@Moment&&now @Open { @Day {@Months&&@Month}, @Century{@Year} }"
  1210. X}
  1211. Xproduces something like
  1212. X@Moment&&now @Open { @Day {@Months&&@Month}, @Century{@Year} }
  1213. Xgiven a suitable database of months.
  1214. X@End @Section
  1215. END_OF_FILE
  1216.   if test 1705 -ne `wc -c <'doc/tr.lout/ch3.16'`; then
  1217.     echo shar: \"'doc/tr.lout/ch3.16'\" unpacked with wrong size!
  1218.   fi
  1219.   # end of 'doc/tr.lout/ch3.16'
  1220. fi
  1221. if test -f 'doc/tr.lout/ch3.17' -a "${1}" != "-c" ; then 
  1222.   echo shar: Will not clobber existing file \"'doc/tr.lout/ch3.17'\"
  1223. else
  1224.   echo shar: Extracting \"'doc/tr.lout/ch3.17'\" \(791 characters\)
  1225.   sed "s/^X//" >'doc/tr.lout/ch3.17' <<'END_OF_FILE'
  1226. X@Section
  1227. X   @Title { "@Null" }
  1228. X   @Tag { null }
  1229. X@Begin
  1230. X@PP
  1231. XThis symbol
  1232. Xnull.sym @Index { @@Null symbol }
  1233. Xprovides a convenient way to remove unwanted
  1234. Xconcatenation symbols.  If there is a concatenation symbol
  1235. Xpreceding @@Null, the @@Null and the
  1236. Xconcatenation symbol are both deleted.  Otherwise, if there is a
  1237. Xfollowing concatenation symbol, it and the @@Null are both deleted.
  1238. XOtherwise, @@Null becomes an empty object.
  1239. X@PP
  1240. XThese rules apply to a fully parenthesized version of the expression.  For
  1241. Xexample, in
  1242. X@ID @Code {
  1243. X"...  //1vx @Null |0.5i ..."
  1244. X}
  1245. Xit is the horizontal concatenation symbol following @@Null that
  1246. Xdisappears, because in the fully parenthesized version
  1247. X@ID @Code {
  1248. X"...  //1vx { @Null |0.5i ... }"
  1249. X}
  1250. Xthere is no concatenation symbol preceding the @@Null.
  1251. X@End @Section
  1252. END_OF_FILE
  1253.   if test 791 -ne `wc -c <'doc/tr.lout/ch3.17'`; then
  1254.     echo shar: \"'doc/tr.lout/ch3.17'\" unpacked with wrong size!
  1255.   fi
  1256.   # end of 'doc/tr.lout/ch3.17'
  1257. fi
  1258. if test -f 'doc/tr.lout/ch3.19' -a "${1}" != "-c" ; then 
  1259.   echo shar: Will not clobber existing file \"'doc/tr.lout/ch3.19'\"
  1260. else
  1261.   echo shar: Extracting \"'doc/tr.lout/ch3.19'\" \(1144 characters\)
  1262.   sed "s/^X//" >'doc/tr.lout/ch3.19' <<'END_OF_FILE'
  1263. X@Section
  1264. X   @Title { The cross reference symbol "&&" }
  1265. X   @Tag { crossref }
  1266. X@Begin
  1267. X@PP
  1268. XThe cross reference symbol @Code "&&" takes the name of a symbol (not an
  1269. Xobject) for its left parameter, and an object whose value must be a
  1270. Xsimple word for its right parameter.  The result is a cross reference,
  1271. Xwhich may be thought of as an arrow pointing from the cross reference
  1272. Xsymbol to the beginning of an invocation of the named symbol.
  1273. X@PP
  1274. XThe invocation pointed to, known as the @I target of the cross
  1275. Xreference, is generally one whose @@Tag parameter has value equal
  1276. Xto the right parameter of the cross reference symbol.  Two special tags,
  1277. X@Code preceding and {@Code following}, point respectively
  1278. Xto the first invocation preceding the cross reference in the final
  1279. Xprinted document, and the first following it.
  1280. X@PP
  1281. XA cross reference may be used in four ways:  where an object is
  1282. Xexpected, in which case its value is a copy of the target; with the
  1283. X@@Open and @@Use symbols; with the @@Tagged
  1284. Xsymbol; and in the @Code into clause of a galley definition, in which
  1285. Xcase the value of the tag must be @Code preceding or {@Code following}.
  1286. X@End @Section
  1287. END_OF_FILE
  1288.   if test 1144 -ne `wc -c <'doc/tr.lout/ch3.19'`; then
  1289.     echo shar: \"'doc/tr.lout/ch3.19'\" unpacked with wrong size!
  1290.   fi
  1291.   # end of 'doc/tr.lout/ch3.19'
  1292. fi
  1293. if test -f 'doc/tr.lout/ch3.20' -a "${1}" != "-c" ; then 
  1294.   echo shar: Will not clobber existing file \"'doc/tr.lout/ch3.20'\"
  1295. else
  1296.   echo shar: Extracting \"'doc/tr.lout/ch3.20'\" \(570 characters\)
  1297.   sed "s/^X//" >'doc/tr.lout/ch3.20' <<'END_OF_FILE'
  1298. X@Section
  1299. X   @Title { "@Tagged" }
  1300. X   @Tag { tagged }
  1301. X@Begin
  1302. X@PP
  1303. XThe @@Tagged
  1304. Xtagged.sym @Index { @@Tagged symbol }
  1305. Xsymbol takes a cross reference for its left parameter and an object, whose
  1306. Xvalue must be a juxtaposition of simple words or an empty
  1307. Xobject, for its right parameter.  It has the effect of attaching its
  1308. Xright parameter as an additional tag to the invocation denoted by its
  1309. Xleft parameter, unless the right parameter is empty, in which case @@Tagged
  1310. Xdoes nothing.  The result of @@Tagged is always @@Null, which makes it
  1311. Xeffectively invisible.
  1312. X@End @Section
  1313. END_OF_FILE
  1314.   if test 570 -ne `wc -c <'doc/tr.lout/ch3.20'`; then
  1315.     echo shar: \"'doc/tr.lout/ch3.20'\" unpacked with wrong size!
  1316.   fi
  1317.   # end of 'doc/tr.lout/ch3.20'
  1318. fi
  1319. if test -f 'doc/tr.lout/ch3.21' -a "${1}" != "-c" ; then 
  1320.   echo shar: Will not clobber existing file \"'doc/tr.lout/ch3.21'\"
  1321. else
  1322.   echo shar: Extracting \"'doc/tr.lout/ch3.21'\" \(1524 characters\)
  1323.   sed "s/^X//" >'doc/tr.lout/ch3.21' <<'END_OF_FILE'
  1324. X@Section
  1325. X   @Title { "@Open and @Use" }
  1326. X   @Tag { open }
  1327. X@Begin
  1328. X@PP
  1329. XThe @@Open symbol
  1330. Xopen.sym @Index { @@Open symbol }
  1331. Xtakes a cross reference or symbol
  1332. Xinvocation for its left parameter, and an arbitrary object, which must
  1333. Xbe enclosed in braces, for its right parameter.  The right parameter
  1334. Xmay refer to the exported parameters and nested definitions of the invocation
  1335. Xdenoted by the left parameter, and its value is the @@Open
  1336. Xsymbol's result.  The target of the cross reference may lie in an
  1337. Xexternal database (Section {@NumberOf database}).  Any symbol available
  1338. Xoutside the @@Open which happens to have the same name as one of the
  1339. Xsymbols made available by the @@Open will be unavailable within the @@Open.
  1340. X@PP
  1341. Xuse.sym @Index { @@Use symbol }
  1342. XThe @@Use symbol is an @@Open symbol in a
  1343. Xdifferent form.  It may only appear just after the definitions
  1344. Xin Lout's input, and it is equivalent to enclosing the remainder of the
  1345. Xinput in an @@Open symbol.  For example,
  1346. X@ID {
  1347. X      @I definitions
  1348. X//1vx @Code "@Use" @Code "{" @I x @Code "}"
  1349. X//1vx @Code "@Use" @Code "{" @I y @Code "}"
  1350. X//1vx @I { rest of input }
  1351. X}
  1352. Xis equivalent to
  1353. X@ID {
  1354. X      @I definitions
  1355. X//1vx @I x @Code "@Open"
  1356. X//1vx @Code "{" &4mt @I y @Code "@Open"
  1357. X//1vx   &4mt @Code "{" @I { rest of input }
  1358. X//1vx   &4mt @Code "}"
  1359. X//1vx @Code "}"
  1360. X}
  1361. XThe @@Use symbol allows a set of standard packages to be opened without
  1362. Xthe inconvenience of enclosing the entire document in @@Open symbols.  Such
  1363. Xenclosure could cause Basser Lout to run out of memory.
  1364. X@End @Section
  1365. END_OF_FILE
  1366.   if test 1524 -ne `wc -c <'doc/tr.lout/ch3.21'`; then
  1367.     echo shar: \"'doc/tr.lout/ch3.21'\" unpacked with wrong size!
  1368.   fi
  1369.   # end of 'doc/tr.lout/ch3.21'
  1370. fi
  1371. if test -f 'doc/tr.lout/ch3.22' -a "${1}" != "-c" ; then 
  1372.   echo shar: Will not clobber existing file \"'doc/tr.lout/ch3.22'\"
  1373. else
  1374.   echo shar: Extracting \"'doc/tr.lout/ch3.22'\" \(1623 characters\)
  1375.   sed "s/^X//" >'doc/tr.lout/ch3.22' <<'END_OF_FILE'
  1376. X@Section
  1377. X   @Title { "@Database and @SysDatabase" }
  1378. X   @Tag { database }
  1379. X@Begin
  1380. X@PP
  1381. Xdatabase.sym @Index { @@Database symbol }
  1382. XThe @@Database symbol is used to declare the existence of a file
  1383. Xof symbol invocations that Lout may refer to when evaluating cross
  1384. Xreferences.  In Basser Lout, for example,
  1385. X@ID @Code {
  1386. X"@Database @Months @WeekDays { standard }"
  1387. X}
  1388. Xmeans that there is a file called @Code "standard.ld" containing
  1389. Xinvocations of the previously defined symbols @Code "@Months" and
  1390. X{@Code "@WeekDays"}.  A @@Database symbol may appear anywhere a definition
  1391. Xor a @@Use symbol may appear.  Different definitions packages may refer to a
  1392. Xcommon database, provided the definitions they give for its symbols are
  1393. Xcompatible.  An entry is interpreted as though it appears at the point
  1394. Xwhere the cross reference that retrieves it does, which allows symbols
  1395. Xlike @Code "@I" for @Code "Slope @Font" to be used in databases.  The
  1396. Xdatabase file may not contain @@Database or @@Include symbols, and each
  1397. Xinvocation within it must be enclosed in braces.
  1398. X@PP
  1399. XBasser Lout constructs an {@I {index file}},
  1400. Xindex.file @Index { Index file (for databases) }
  1401. Xwhich in this example is called {@Code "standard.li"}, the first time it
  1402. Xever encounters the database, as an aid to searching it.  If the database
  1403. Xfile is changed, its index file must be deleted by the user so that
  1404. XBasser Lout knows to reconstruct it.
  1405. X@PP
  1406. XBasser Lout searches for databases in the current directory first, then
  1407. Xin a sequence of standard places.  To search the standard places only, use
  1408. Xsysdatabase.sym @Index { @@SysDatabase symbol }
  1409. X@@SysDatabase.
  1410. X@End @Section
  1411. END_OF_FILE
  1412.   if test 1623 -ne `wc -c <'doc/tr.lout/ch3.22'`; then
  1413.     echo shar: \"'doc/tr.lout/ch3.22'\" unpacked with wrong size!
  1414.   fi
  1415.   # end of 'doc/tr.lout/ch3.22'
  1416. fi
  1417. if test -f 'doc/tr.lout/ch3.24' -a "${1}" != "-c" ; then 
  1418.   echo shar: Will not clobber existing file \"'doc/tr.lout/ch3.24'\"
  1419. else
  1420.   echo shar: Extracting \"'doc/tr.lout/ch3.24'\" \(1436 characters\)
  1421.   sed "s/^X//" >'doc/tr.lout/ch3.24' <<'END_OF_FILE'
  1422. X@Section
  1423. X   @Title { "@IncludeGraphic" and "@SysIncludeGraphic" }
  1424. X   @Tag { includegraphic }
  1425. X@Begin
  1426. X@PP
  1427. Xincludegraphic.sym @Index { @@IncludeGraphic symbol }
  1428. Xsysincludegraphic.sym @Index { @@SysIncludeGraphic symbol }
  1429. Xpostscript.includegraphic @SubIndex { used by @@IncludeGraphic }
  1430. XThese symbols instruct Lout to incorporate a separately created
  1431. Xillustration:
  1432. X@ID @Code "@IncludeGraphic  \"myportrait.eps\""
  1433. XThe parameter is implementation-dependent; in Basser Lout it is an
  1434. Xobject whose value is a simple word denoting the name of a file.  This
  1435. Xfile should ideally be a PostScript EPS Version 3.0 file [{@Ref adobe90}],
  1436. Xsince then Lout will keep careful track of what resources are required
  1437. Xfor printing that file.  However, any PostScript file containing the
  1438. X@Code "%%BoundingBox:" comment and not requiring unusual resources is
  1439. Xlikely to work.
  1440. X@PP
  1441. XThe result of @@IncludeGraphic is an ordinary Lout object with marks
  1442. Xthrough its centre.  It may be rotated, scaled, and generally
  1443. Xtreated like any other object.  Basser Lout determines its size by
  1444. Xconsulting the bounding box information in the file.  If this cannot be
  1445. Xfound, a warning message is printed and the result object has zero size.
  1446. X@PP
  1447. X@@IncludeGraphic searches the same directories that @@Include does
  1448. X(Section {@NumberOf include}).  @@SysIncludeGraphic is the same as
  1449. X@@IncludeGraphic, except that it searches only the directories searched
  1450. Xby @@SysInclude.
  1451. X@End @Section
  1452. END_OF_FILE
  1453.   if test 1436 -ne `wc -c <'doc/tr.lout/ch3.24'`; then
  1454.     echo shar: \"'doc/tr.lout/ch3.24'\" unpacked with wrong size!
  1455.   fi
  1456.   # end of 'doc/tr.lout/ch3.24'
  1457. fi
  1458. if test -f 'doc/tr.lout/ch3.25' -a "${1}" != "-c" ; then 
  1459.   echo shar: Will not clobber existing file \"'doc/tr.lout/ch3.25'\"
  1460. else
  1461.   echo shar: Extracting \"'doc/tr.lout/ch3.25'\" \(1083 characters\)
  1462.   sed "s/^X//" >'doc/tr.lout/ch3.25' <<'END_OF_FILE'
  1463. X@Section
  1464. X   @Tag { prependgraphic }
  1465. X   @Title { "@PrependGraphic and @SysPrependGraphic" }
  1466. X@Begin
  1467. X@PP
  1468. Xprependgraphic.sym @Index { @@PrependGraphic symbol }
  1469. Xsysprependgraphic.sym @Index { @@SysPrependGraphic symbol }
  1470. Xpostscript.prependgraphic @SubIndex { used by @@PrependGraphic }
  1471. XThese symbols, which may appear anywhere that a definition or @@Use
  1472. Xsymbol may appear, tell Lout to include the contents of a file in the
  1473. Xpreamble of its output.  For Basser Lout this means that the file must
  1474. Xcontain PostScript (and ideally it would begin and end with the
  1475. X@Code "%%BeginResource" and @Code "%%EndResource" comments of
  1476. XDSC 3.0).  For example,
  1477. X@ID @Code {
  1478. X"@SysPrependGraphic { fig_prepend }"
  1479. X}
  1480. Xappears at the start of the Fig package; the file @Code fig_prepend
  1481. Xcontains a number of PostScript definitions used by Fig for drawing
  1482. Xdiagrams.  It saves a lot of space to include them just once at the
  1483. Xstart like this, rather than with every diagram.  @@PrependGraphic and
  1484. X@@SysPrependGraphic search for the file in the same places as @@Include and
  1485. X@@SysInclude respectively.
  1486. X@End @Section
  1487. END_OF_FILE
  1488.   if test 1083 -ne `wc -c <'doc/tr.lout/ch3.25'`; then
  1489.     echo shar: \"'doc/tr.lout/ch3.25'\" unpacked with wrong size!
  1490.   fi
  1491.   # end of 'doc/tr.lout/ch3.25'
  1492. fi
  1493. if test -f 'doc/tr.lout/ch3.26' -a "${1}" != "-c" ; then 
  1494.   echo shar: Will not clobber existing file \"'doc/tr.lout/ch3.26'\"
  1495. else
  1496.   echo shar: Extracting \"'doc/tr.lout/ch3.26'\" \(824 characters\)
  1497.   sed "s/^X//" >'doc/tr.lout/ch3.26' <<'END_OF_FILE'
  1498. X@Section
  1499. X   @Tag { include }
  1500. X   @Title { "@Include and @SysInclude" }
  1501. X@Begin
  1502. X@PP
  1503. Xinclude.sym @Index { @@Include symbol }
  1504. Xsysinclude.sym @Index { @@SysInclude symbol }
  1505. XThese symbols instruct Lout to temporarily switch to reading another
  1506. Xfile, whose name appears in braces following the symbol.  For example,
  1507. X@ID @Code {
  1508. X"@Include { \"/usr/lout/fontdefs\" }"
  1509. X}
  1510. Xwill cause the contents of file "/usr/lout/fontdefs" to be read at the
  1511. Xpoint it occurs.  After that file is read, the current file is resumed.  The
  1512. Xincluded file may contain arbitrary Lout text, including other
  1513. X@@Include commands.  The file is searched for first in the current
  1514. Xdirectory, then in a sequence of standard places which are not necessarily the
  1515. Xsame places that databases are searched for.  @@SysInclude searches the
  1516. Xstandard places only.
  1517. X@End @Section
  1518. END_OF_FILE
  1519.   if test 824 -ne `wc -c <'doc/tr.lout/ch3.26'`; then
  1520.     echo shar: \"'doc/tr.lout/ch3.26'\" unpacked with wrong size!
  1521.   fi
  1522.   # end of 'doc/tr.lout/ch3.26'
  1523. fi
  1524. if test -f 'doc/tr.over/s0' -a "${1}" != "-c" ; then 
  1525.   echo shar: Will not clobber existing file \"'doc/tr.over/s0'\"
  1526. else
  1527.   echo shar: Extracting \"'doc/tr.over/s0'\" \(883 characters\)
  1528.   sed "s/^X//" >'doc/tr.over/s0' <<'END_OF_FILE'
  1529. X@Report
  1530. X   @Title { A New Approach to Document Formatting }
  1531. X   @Author { Jeffrey H. Kingston }
  1532. X   @Institution { Basser Department of Computer Science
  1533. XUniversity of Sydney 2006
  1534. XAustralia }
  1535. X   @Columns { Double }
  1536. X   @DateLine { 22 December, 1992 }
  1537. X//
  1538. X
  1539. X@Abstract {
  1540. XThis paper describes a new approach to document formatting, in which
  1541. Xfeatures are written in a small, coherent, high-level language called
  1542. XLout.  The resulting increase in productivity has permitted many advanced
  1543. Xfeatures to be developed quickly and accurately, including page layout of
  1544. Xunprecedented flexibility, equation formatting, automatically generated
  1545. Xtables of contents, running page headers and footers, cross references,
  1546. Xsorted indexes, and access to bibliographic databases.  A fully operational
  1547. Xproduction implementation of the Lout system including all these features
  1548. Xand many others is freely available.
  1549. X}
  1550. END_OF_FILE
  1551.   if test 883 -ne `wc -c <'doc/tr.over/s0'`; then
  1552.     echo shar: \"'doc/tr.over/s0'\" unpacked with wrong size!
  1553.   fi
  1554.   # end of 'doc/tr.over/s0'
  1555. fi
  1556. if test -f 'doc/tr.over/s7' -a "${1}" != "-c" ; then 
  1557.   echo shar: Will not clobber existing file \"'doc/tr.over/s7'\"
  1558. else
  1559.   echo shar: Extracting \"'doc/tr.over/s7'\" \(1850 characters\)
  1560.   sed "s/^X//" >'doc/tr.over/s7' <<'END_OF_FILE'
  1561. X@Section
  1562. X   @Title { Conclusion }
  1563. X@Begin
  1564. X@PP
  1565. XThe Lout document formatting system permits features as diverse as page
  1566. Xlayout and equation formatting to be implemented by definitions written
  1567. Xin a high-level language.  The consequent improvement in productivity
  1568. Xhas allowed an unprecedented repertoire of advanced features to be
  1569. Xpresented to the non-expert user.
  1570. X@PP
  1571. XTo future research in document formatting, Lout offers evidence of the
  1572. Xutility of the functional paradigm, as well as two new abstractions:
  1573. Xgalleys and cross references.  These provide a secure foundation for
  1574. Xfeatures which have proven very difficult to implement in the past.
  1575. X@PP
  1576. XA number of improvements to the current system can be envisaged.  Better
  1577. Xparagraph and page breaking algorithms could be added to the formatter
  1578. Xwithout any change to the language; non-rectangular objects would be
  1579. Xuseful in some places.  Perhaps the most useful improvement would be the
  1580. Xrepresentation of paragraphs as horizontal galleys, since this would allow
  1581. Xthe full power of the language to be brought to bear on paragraph
  1582. Xlayout, in contrast to the present built-in system which offers only the
  1583. Xtraditional styles (ragged right, justified, and so on).
  1584. X{ @Reference
  1585. X    @Tag { brooks91 }
  1586. X    @Type { JournalArticle }
  1587. X    @Author { Brooks, Kenneth P. }
  1588. X    @Title { Lilac: a two-view document editor }
  1589. X    @Journal { IEEE Computer }
  1590. X    @Volume { @Null }
  1591. X    @Pages { 7--19 }
  1592. X    @Year { 1991 }
  1593. X}
  1594. X@PP
  1595. XThe author of a recent inter&-active document editor [{@Ref brooks91}]
  1596. Xhas recommended that the interface be supported by a functional base
  1597. Xlanguage, accessible to the expert user, for such purposes as page
  1598. Xlayout definition and fine control over formatting.  Lout appears to be
  1599. Xan excellent candidate for such a language, because of its small size,
  1600. Xprecision, and functional semantics.
  1601. X@End @Section
  1602. END_OF_FILE
  1603.   if test 1850 -ne `wc -c <'doc/tr.over/s7'`; then
  1604.     echo shar: \"'doc/tr.over/s7'\" unpacked with wrong size!
  1605.   fi
  1606.   # end of 'doc/tr.over/s7'
  1607. fi
  1608. if test -f 'doc/tr.tab/s0' -a "${1}" != "-c" ; then 
  1609.   echo shar: Will not clobber existing file \"'doc/tr.tab/s0'\"
  1610. else
  1611.   echo shar: Extracting \"'doc/tr.tab/s0'\" \(1096 characters\)
  1612.   sed "s/^X//" >'doc/tr.tab/s0' <<'END_OF_FILE'
  1613. X@Report
  1614. X   @Title { Tab -- A Lout Package for Formatting Tables }
  1615. X   @Author { Jeffrey H. Kingston }
  1616. X   @Institution { Basser Department of Computer Science
  1617. XUniversity of Sydney 2006
  1618. XAustralia }
  1619. X   @DateLine { 22 December 1992 }
  1620. X//
  1621. X
  1622. X@Abstract {
  1623. XThis report describes the use of Tab, a package of definitions for
  1624. Xproducing tables with the Lout document formatter:
  1625. X@Display @Tab
  1626. X   hmargin { 0.4c }
  1627. X   vmargin { 0.3v }
  1628. X   side { single }
  1629. X   @Fmta { @Col @B @CC X @Over A,B,C }
  1630. X   @Fmtb { @Col @I A ! @Col B !! @Col C }
  1631. X{
  1632. X@Rowa
  1633. X   above { single }
  1634. X   X { Value of mathematical formulae (millions of dollars) }
  1635. X@Rowb
  1636. X   above { double }
  1637. X   A { Quadratic formula }
  1638. X   B { @Eq { x ^= { minus b +- sqrt { b sup 2 - 4ac } } over 2a } }
  1639. X   C { 3^.5 }
  1640. X@Rowb
  1641. X   below { single }
  1642. X   A { Binomial theorem }
  1643. X   B { @Eq { ( a + b ) sup n ^= big sum from k=0 to infty 
  1644. Xmatrix atleft { ( } atright { ) } { n above k } a sup k b sup n-k
  1645. X} }
  1646. X   C { 12^ }
  1647. X}
  1648. XA wide variety of styles for columns and individual entries is provided,
  1649. Xand entries may contain equations, figures, and other objects without
  1650. Xrestriction.
  1651. X}
  1652. END_OF_FILE
  1653.   if test 1096 -ne `wc -c <'doc/tr.tab/s0'`; then
  1654.     echo shar: \"'doc/tr.tab/s0'\" unpacked with wrong size!
  1655.   fi
  1656.   # end of 'doc/tr.tab/s0'
  1657. fi
  1658. if test -f 'doc/tr.tab/s4' -a "${1}" != "-c" ; then 
  1659.   echo shar: Will not clobber existing file \"'doc/tr.tab/s4'\"
  1660. else
  1661.   echo shar: Extracting \"'doc/tr.tab/s4'\" \(1586 characters\)
  1662.   sed "s/^X//" >'doc/tr.tab/s4' <<'END_OF_FILE'
  1663. X@Section
  1664. X   @Title { Aligned columns }
  1665. X@Begin
  1666. X@PP
  1667. XColumns of numbers are often presented with decimal points aligned:
  1668. X@CD @Tab
  1669. X    @Fmta { @Col A }
  1670. X{
  1671. X    @Rowa A { 5^.46 }
  1672. X    @Rowa A { 128^.2 }
  1673. X    @Rowa A { 3^.4159 }
  1674. X    @Rowa A { 5772^ }
  1675. X}
  1676. XThis is achieved with Tab by placing the @Code "^" symbol (which
  1677. Xactually comes from the DocumentLayout package) just before the
  1678. Xalignment point in each entry:
  1679. X@ID @Code {
  1680. X"@Tab"
  1681. X"    @Fmta { @Col A }"
  1682. X"{"
  1683. X"    @Rowa A { 5^.46 }"
  1684. X"    @Rowa A { 128^.2 }"
  1685. X"    @Rowa A { 3^.4159 }"
  1686. X"    @Rowa A { 5772^ }"
  1687. X"}"
  1688. X}
  1689. XThe equals signs of equations can be aligned in the same way.  The
  1690. Xformat of such columns should not contain @Code "@CC" or {@Code "@RR"}.
  1691. X@PP
  1692. XThe simplest way to get a heading over an aligned column is to use the
  1693. X@Code "^" symbol in the heading as well.  If it is not possible to do
  1694. Xthis, for example because the heading entry is a paragraph of text
  1695. Xbroken over more than one line, the most viable alternative is to use
  1696. X@Code "@Over" in the heading line's format to make the heading column
  1697. Xspan over the aligned column:
  1698. X@ID @Code {
  1699. X"@Tab"
  1700. X"    @Fmta { @Col @CC H @Over A }"
  1701. X"    @Fmtb { @Col A }"
  1702. X"{"
  1703. X"    @Rowa H { Heading }"
  1704. X"    @Rowb A { 5^.46 }"
  1705. X"    @Rowb A { 128^.2 }"
  1706. X"    @Rowb A { 3^.4159 }"
  1707. X"    @Rowb A { 5772^ }"
  1708. X"}"
  1709. X}
  1710. Xfor example produces
  1711. X@CD @Tab
  1712. X    @Fmta { @Col @CC H @Over A }
  1713. X    @Fmtb { @Col A }
  1714. X{
  1715. X    @Rowa H { Heading }
  1716. X    @Rowb A { 5^.46 }
  1717. X    @Rowb A { 128^.2 }
  1718. X    @Rowb A { 3^.4159 }
  1719. X    @Rowb A { 5772^ }
  1720. X}
  1721. XUnfortunately, the aligned entries are left-justified in the column,
  1722. Xnot centred.
  1723. X@End @Section
  1724. END_OF_FILE
  1725.   if test 1586 -ne `wc -c <'doc/tr.tab/s4'`; then
  1726.     echo shar: \"'doc/tr.tab/s4'\" unpacked with wrong size!
  1727.   fi
  1728.   # end of 'doc/tr.tab/s4'
  1729. fi
  1730. if test -f 'doc/tr.tab/s5' -a "${1}" != "-c" ; then 
  1731.   echo shar: Will not clobber existing file \"'doc/tr.tab/s5'\"
  1732. else
  1733.   echo shar: Extracting \"'doc/tr.tab/s5'\" \(1538 characters\)
  1734.   sed "s/^X//" >'doc/tr.tab/s5' <<'END_OF_FILE'
  1735. X@Section
  1736. X   @Title { Margins }
  1737. X@Begin
  1738. X@PP
  1739. XTab places a @I { vertical margin } above and below each row, and a
  1740. X@I { horizontal margin } to the left and right of each column.  (If
  1741. Xthere are no side rules, the leftmost and rightmost margins are
  1742. Xomitted.)  The size of these margins is determined by two options to the
  1743. X@Code "@Tab" symbol:
  1744. X@ID @Code {
  1745. X"@Tab"
  1746. X"    hmargin { 0.3c }"
  1747. X"    vmargin { 0.2v }"
  1748. X"    @Fmta { ... }"
  1749. X"..."
  1750. X}
  1751. XShown here are the default values, 0.3 centimetres for the horizontal
  1752. Xmargins, and 0.2 times the current inter-line spacing (denoted by the
  1753. Xletter {@Code v}) for the vertical margins.
  1754. X@PP
  1755. XThe horizontal margin is fixed, but each row may have its own vertical margin:
  1756. X@ID @Code {
  1757. X"@Rowa"
  1758. X"    vmargin { 0.5vx }"
  1759. X"    A { ... }"
  1760. X}
  1761. XIf omitted, the @Code vmargin value is taken from the @Code "@Tab" option.
  1762. X@PP
  1763. XThe value shown here, {@Code "0.5vx"}, requests a vertical margin of
  1764. Xhalf the current inter-line spacing, measured from the baseline of the
  1765. Xentry rather than from its edge (this is what the @Code x means).  This
  1766. Xvalue is a good choice when the entries contain simple words or lines
  1767. Xof text (i.e. no paragraphs, large equations, figures, etc.):
  1768. X@CD {
  1769. X@Tab
  1770. X    vmargin { 0.5vx }
  1771. X    @Fmta { @Col @Heading A  !  @Col @Heading B }
  1772. X    @Fmtb { @Col A  !  @Col @CC B }
  1773. X{
  1774. X    @Rowa A { Course } B { Enrolment }
  1775. X    @Rowb A { Software Engineering } B { 174 }
  1776. X    @Rowb A { Complexity Theory } B { 37 }
  1777. X}
  1778. X}
  1779. Xsince the lines of the table will then be separated evenly like
  1780. Xthe lines in paragraphs.
  1781. X@End @Section
  1782. END_OF_FILE
  1783.   if test 1538 -ne `wc -c <'doc/tr.tab/s5'`; then
  1784.     echo shar: \"'doc/tr.tab/s5'\" unpacked with wrong size!
  1785.   fi
  1786.   # end of 'doc/tr.tab/s5'
  1787. fi
  1788. if test -f 'doc/tr.tab/setup' -a "${1}" != "-c" ; then 
  1789.   echo shar: Will not clobber existing file \"'doc/tr.tab/setup'\"
  1790. else
  1791.   echo shar: Extracting \"'doc/tr.tab/setup'\" \(736 characters\)
  1792.   sed "s/^X//" >'doc/tr.tab/setup' <<'END_OF_FILE'
  1793. X
  1794. X######################################################
  1795. X#                                                    #
  1796. X#  Lout setup file for Tab paper.                    #
  1797. X#                                                    #
  1798. X#  Jeffrey H. Kingston                               #
  1799. X#  22 December 1992                                  #
  1800. X#                                                    #
  1801. X######################################################
  1802. X
  1803. X@SysInclude { ft  }
  1804. X@SysInclude { dl  }
  1805. X@SysInclude { eq  }
  1806. X@SysInclude { pas }
  1807. X@SysInclude { fig }
  1808. X@Include { tab }
  1809. X
  1810. X   def @TeX { T{ /0.2fo E}X }
  1811. X
  1812. X   def @Code
  1813. X      right x
  1814. X   { { Helvetica Base -1p } @Font lines @Break x
  1815. X   }
  1816. X
  1817. X@Use { @DocumentLayout }
  1818. X
  1819. X@SysDatabase @Reference { loutrefs }
  1820. END_OF_FILE
  1821.   if test 736 -ne `wc -c <'doc/tr.tab/setup'`; then
  1822.     echo shar: \"'doc/tr.tab/setup'\" unpacked with wrong size!
  1823.   fi
  1824.   # end of 'doc/tr.tab/setup'
  1825. fi
  1826. if test -f 'evec/Ding.CEV' -a "${1}" != "-c" ; then 
  1827.   echo shar: Will not clobber existing file \"'evec/Ding.CEV'\"
  1828. else
  1829.   echo shar: Extracting \"'evec/Ding.CEV'\" \(1594 characters\)
  1830.   sed "s/^X//" >'evec/Ding.CEV' <<'END_OF_FILE'
  1831. X.notdef        .notdef        .notdef        .notdef        .notdef
  1832. X.notdef        .notdef        .notdef        .notdef        .notdef
  1833. X.notdef        .notdef        .notdef        .notdef        .notdef
  1834. X.notdef        .notdef        .notdef        .notdef        .notdef
  1835. X.notdef        .notdef        .notdef        .notdef        .notdef
  1836. X.notdef        .notdef        .notdef        .notdef        .notdef
  1837. X.notdef        .notdef        space        a1        a2
  1838. Xa202        a3        a4        a5        a119
  1839. Xa118        a117        a11        a12        a13
  1840. Xa14        a15        a16        a105        a17
  1841. Xa18        a19        a20        a21        a22
  1842. Xa23        a24        a25        a26        a27
  1843. Xa28        a6        a7        a8        a9
  1844. Xa10        a29        a30        a31        a32
  1845. Xa33        a34        a35        a36        a37
  1846. Xa38        a39        a40        a41        a42
  1847. Xa43        a44        a45        a46        a47
  1848. Xa48        a49        a50        a51        a52
  1849. Xa53        a54        a55        a56        a57
  1850. Xa58        a59        a60        a61        a62
  1851. Xa63        a64        a65        a66        a67
  1852. Xa68        a69        a70        a71        a72
  1853. Xa73        a74        a203        a75        a204
  1854. Xa76        a77        a78        a79        a81
  1855. Xa82        a83        a84        a97        a98
  1856. Xa99        a100        .notdef        .notdef        .notdef
  1857. X.notdef        .notdef        .notdef        .notdef        .notdef
  1858. X.notdef        .notdef        .notdef        .notdef        .notdef
  1859. X.notdef        .notdef        .notdef        .notdef        .notdef
  1860. X.notdef        .notdef        .notdef        .notdef        .notdef
  1861. X.notdef        .notdef        .notdef        .notdef        .notdef
  1862. X.notdef        .notdef        .notdef        .notdef        .notdef
  1863. X.notdef        a101        a102        a103        a104
  1864. Xa106        a107        a108        a112        a111
  1865. Xa110        a109        a120        a121        a122
  1866. Xa123        a124        a125        a126        a127
  1867. Xa128        a129        a130        a131        a132
  1868. Xa133        a134        a135        a136        a137
  1869. Xa138        a139        a140        a141        a142
  1870. Xa143        a144        a145        a146        a147
  1871. Xa148        a149        a150        a151        a152
  1872. Xa153        a154        a155        a156        a157
  1873. Xa158        a159        a160        a161        a163
  1874. Xa164        a196        a165        a192        a166
  1875. Xa167        a168        a169        a170        a171
  1876. Xa172        a173        a162        a174        a175
  1877. Xa176        a177        a178        a179        a193
  1878. Xa180        a199        a181        a200        a182
  1879. X.notdef        a201        a183        a184        a197
  1880. Xa185        a194        a198        a186        a195
  1881. Xa187        a188        a189        a190        a191
  1882. X.notdef
  1883. END_OF_FILE
  1884.   if test 1594 -ne `wc -c <'evec/Ding.CEV'`; then
  1885.     echo shar: \"'evec/Ding.CEV'\" unpacked with wrong size!
  1886.   fi
  1887.   # end of 'evec/Ding.CEV'
  1888. fi
  1889. if test -f 'evec/Latin1.CEV' -a "${1}" != "-c" ; then 
  1890.   echo shar: Will not clobber existing file \"'evec/Latin1.CEV'\"
  1891. else
  1892.   echo shar: Extracting \"'evec/Latin1.CEV'\" \(1956 characters\)
  1893.   sed "s/^X//" >'evec/Latin1.CEV' <<'END_OF_FILE'
  1894. X.notdef        .notdef        .notdef        .notdef        .notdef        .notdef        .notdef        .notdef
  1895. X.notdef        .notdef        .notdef        .notdef        .notdef        .notdef        .notdef        .notdef
  1896. X.notdef        .notdef        .notdef        .notdef        .notdef        .notdef        .notdef        .notdef
  1897. X.notdef        .notdef        .notdef        .notdef        .notdef        .notdef        .notdef        .notdef
  1898. Xspace        exclam        quotedbl    numbersign    dollar        percent        ampersand    quoteright
  1899. Xparenleft    parenright    asterisk    plus        comma        minus        period        slash
  1900. Xzero        one        two        three        four        five        six        seven
  1901. Xeight        nine        colon        semicolon    less        equal        greater        question
  1902. Xat        A        B        C        D        E        F        G
  1903. XH        I        J        K        L        M        N        O
  1904. XP        Q        R        S        T        U        V        W
  1905. XX        Y        Z        bracketleft    backslash    bracketright    asciicircum    underscore
  1906. Xquoteleft    a        b        c        d        e        f        g
  1907. Xh        i        j        k        l        m        n        o
  1908. Xp        q        r        s        t        u        v        w
  1909. Xx        y        z        braceleft    bar        braceright    asciitilde    .notdef
  1910. X.notdef        .notdef        .notdef        .notdef        .notdef        .notdef        .notdef        .notdef
  1911. X.notdef        .notdef        .notdef        .notdef        .notdef        .notdef        .notdef        .notdef
  1912. Xdotlessi    grave        acute        circumflex    tilde        macron        breve        dotaccent
  1913. Xdieresis    .notdef        ring        cedilla        .notdef        hungarumlaut    ogonek        caron
  1914. Xspace        exclamdown    cent        sterling    currency    yen        brokenbar    section
  1915. Xdieresis    copyright    ordfeminine    guillemotleft    logicalnot    hyphen        registered    macron
  1916. Xdegree        plusminus    twosuperior    threesuperior    acute        mu        paragraph    periodcentered
  1917. Xcedilla        onesuperior    ordmasculine    guillemotright    onequarter    onehalf        threequarters    questiondown
  1918. XAgrave        Aacute        Acircumflex    Atilde        Adieresis    Aring        AE        Ccedilla
  1919. XEgrave        Eacute        Ecircumflex    Edieresis    Igrave        Iacute        Icircumflex    Idieresis
  1920. XEth        Ntilde        Ograve        Oacute        Ocircumflex    Otilde        Odieresis    multiply
  1921. XOslash        Ugrave        Uacute        Ucircumflex    Udieresis    Yacute        Thorn        germandbls
  1922. Xagrave        aacute        acircumflex    atilde        adieresis    aring        ae        ccedilla
  1923. Xegrave        eacute        ecircumflex    edieresis    igrave        iacute        icircumflex    idieresis
  1924. Xeth        ntilde        ograve        oacute        ocircumflex    otilde        odieresis    divide
  1925. Xoslash        ugrave        uacute        ucircumflex    udieresis    yacute        thorn        ydieresis
  1926. END_OF_FILE
  1927.   if test 1956 -ne `wc -c <'evec/Latin1.CEV'`; then
  1928.     echo shar: \"'evec/Latin1.CEV'\" unpacked with wrong size!
  1929.   fi
  1930.   # end of 'evec/Latin1.CEV'
  1931. fi
  1932. if test -f 'evec/Std.CEV' -a "${1}" != "-c" ; then 
  1933.   echo shar: Will not clobber existing file \"'evec/Std.CEV'\"
  1934. else
  1935.   echo shar: Extracting \"'evec/Std.CEV'\" \(1950 characters\)
  1936.   sed "s/^X//" >'evec/Std.CEV' <<'END_OF_FILE'
  1937. X.notdef        .notdef        .notdef        .notdef        .notdef        .notdef        .notdef        .notdef
  1938. X.notdef        .notdef        .notdef        .notdef        .notdef        .notdef        .notdef        .notdef
  1939. X.notdef        .notdef        .notdef        .notdef        .notdef        .notdef        .notdef        .notdef
  1940. X.notdef        .notdef        .notdef        .notdef        .notdef        .notdef        .notdef        .notdef
  1941. Xspace        exclam        quotedbl    numbersign    dollar        percent        ampersand    quoteright
  1942. Xparenleft    parenright    asterisk    plus        comma        hyphen        period        slash
  1943. Xzero        one        two        three        four        five        six        seven
  1944. Xeight        nine        colon        semicolon    less        equal        greater        question
  1945. Xat        A        B        C        D        E        F        G
  1946. XH        I        J        K        L        M        N        O
  1947. XP        Q        R        S        T        U        V        W
  1948. XX        Y        Z        bracketleft    backslash    bracketright    asciicircum    underscore
  1949. Xquoteleft    a        b        c        d        e        f        g
  1950. Xh        i        j        k        l        m        n        o
  1951. Xp        q        r        s        t        u        v        w
  1952. Xx        y        z        braceleft    bar        braceright    asciitilde    .notdef
  1953. X.notdef        .notdef        .notdef        .notdef        .notdef        .notdef        .notdef        .notdef
  1954. X.notdef        .notdef        .notdef        .notdef        .notdef        .notdef        .notdef        .notdef
  1955. X.notdef        .notdef        .notdef        .notdef        .notdef        .notdef        .notdef        .notdef
  1956. X.notdef        .notdef        .notdef        .notdef        .notdef        .notdef        .notdef        .notdef
  1957. X.notdef        exclamdown    cent        sterling    fraction    yen        florin        section
  1958. Xcurrency    quotesingle    quotedblleft    guillemotleft    guilsinglleft    guilsinglright    fi        fl
  1959. X.notdef        endash        dagger        daggerdbl    periodcentered    .notdef        paragraph    bullet
  1960. Xquotesinglbase    quotedblbase    quotedblright    guillemotright    ellipsis    perthousand    .notdef        questiondown
  1961. X.notdef        grave        acute        circumflex    tilde        macron        breve        dotaccent
  1962. Xdieresis    .notdef        ring        cedilla        .notdef        hungarumlaut    ogonek        caron
  1963. Xemdash        .notdef        .notdef        .notdef        .notdef        .notdef        .notdef        .notdef
  1964. X.notdef        .notdef        .notdef        .notdef        .notdef        .notdef        .notdef        .notdef
  1965. X.notdef        AE        .notdef        ordfeminine    .notdef        .notdef        .notdef        .notdef
  1966. XLslash        Oslash        OE        ordmasculine    .notdef        .notdef        .notdef        .notdef
  1967. X.notdef        ae        .notdef        .notdef        .notdef        dotlessi    .notdef        .notdef
  1968. Xlslash        oslash        oe        germandbls    .notdef        .notdef        .notdef        .notdef
  1969. END_OF_FILE
  1970.   if test 1950 -ne `wc -c <'evec/Std.CEV'`; then
  1971.     echo shar: \"'evec/Std.CEV'\" unpacked with wrong size!
  1972.   fi
  1973.   # end of 'evec/Std.CEV'
  1974. fi
  1975. if test -f 'include/README' -a "${1}" != "-c" ; then 
  1976.   echo shar: Will not clobber existing file \"'include/README'\"
  1977. else
  1978.   echo shar: Extracting \"'include/README'\" \(753 characters\)
  1979.   sed "s/^X//" >'include/README' <<'END_OF_FILE'
  1980. XDirectory lout/include
  1981. X
  1982. XThis directory contains Lout source files for
  1983. Xa variety of standard packages and setup files:
  1984. X
  1985. X   ft        A file of font definitions
  1986. X   dl        The DocumentLayout package
  1987. X   tl        The ToyLayout package (for beginners to play with)
  1988. X   doc        A setup file calling dl for simple documents
  1989. X   report    A setup file calling dl for technical reports
  1990. X   book        A setup file calling dl for books
  1991. X   eq        The Eq equation formatting package
  1992. X   pas        The Pas Pascal formatting package
  1993. X   fig        The Fig figure drawing package
  1994. X   fig_prepend    A PostScript file needed by fig
  1995. X   tab        The Tab table formatting package
  1996. X   tab_prepend    A PostScript file needed by Tab
  1997. X   lout.hyph    Text file of hyphenation patterns
  1998. X
  1999. XJeffrey H. Kingston
  2000. X22 December 1992
  2001. X27 July 1993
  2002. END_OF_FILE
  2003.   if test 753 -ne `wc -c <'include/README'`; then
  2004.     echo shar: \"'include/README'\" unpacked with wrong size!
  2005.   fi
  2006.   # end of 'include/README'
  2007. fi
  2008. echo shar: End of archive 34 \(of 35\).
  2009. cp /dev/null ark34isdone
  2010. MISSING=""
  2011. for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 ; do
  2012.     if test ! -f ark${I}isdone ; then
  2013.     MISSING="${MISSING} ${I}"
  2014.     fi
  2015. done
  2016. if test "${MISSING}" = "" ; then
  2017.     echo You have unpacked all 35 archives.
  2018.     rm -f ark[1-9]isdone ark[1-9][0-9]isdone
  2019. else
  2020.     echo You still must unpack the following archives:
  2021.     echo "        " ${MISSING}
  2022. fi
  2023. exit 0
  2024. exit 0 # Just in case...
  2025.