home *** CD-ROM | disk | FTP | other *** search
Text File | 1993-08-11 | 73.2 KB | 2,025 lines |
- Newsgroups: comp.sources.misc
- From: jeff@joyce.cs.su.oz.au (Jeff Kingston)
- Subject: v38i102: lout - Lout document formatting system, v2.05, Part34/35
- Message-ID: <1993Aug10.132518.19573@sparky.sterling.com>
- X-Md4-Signature: 1bc71f1608fcf5c1fda59e8f9d07d24c
- Sender: kent@sparky.sterling.com (Kent Landfield)
- Organization: Sterling Software
- Date: Tue, 10 Aug 1993 13:25:18 GMT
- Approved: kent@sparky.sterling.com
-
- Submitted-by: jeff@joyce.cs.su.oz.au (Jeff Kingston)
- Posting-number: Volume 38, Issue 102
- Archive-name: lout/part34
- Environment: UNIX
- Supersedes: lout: Volume 37, Issue 99-128
-
- #! /bin/sh
- # This is a shell archive. Remove anything before this line, then feed it
- # into a shell via "sh file" or similar. To overwrite existing files,
- # type "sh file -c".
- # Contents: data/refstyles.ld doc/README doc/tr.begin/s06
- # doc/tr.begin/s07 doc/tr.begin/s08 doc/tr.begin/s09
- # doc/tr.begin/s16 doc/tr.eq/s0 doc/tr.eq/s1 doc/tr.fig/s0
- # doc/tr.fig/s1 doc/tr.fig/s4 doc/tr.fig/s7 doc/tr.fig/setup
- # doc/tr.impl/s0.0 doc/tr.impl/s6.0 doc/tr.lout/ch3.01
- # doc/tr.lout/ch3.06 doc/tr.lout/ch3.08 doc/tr.lout/ch3.10
- # doc/tr.lout/ch3.11 doc/tr.lout/ch3.12 doc/tr.lout/ch3.13
- # doc/tr.lout/ch3.15 doc/tr.lout/ch3.16 doc/tr.lout/ch3.17
- # doc/tr.lout/ch3.19 doc/tr.lout/ch3.20 doc/tr.lout/ch3.21
- # doc/tr.lout/ch3.22 doc/tr.lout/ch3.24 doc/tr.lout/ch3.25
- # doc/tr.lout/ch3.26 doc/tr.over/s0 doc/tr.over/s7 doc/tr.tab/s0
- # doc/tr.tab/s4 doc/tr.tab/s5 doc/tr.tab/setup evec/Ding.CEV
- # evec/Latin1.CEV evec/Std.CEV include/README
- # Wrapped by kent@sparky on Sun Aug 8 12:29:35 1993
- PATH=/bin:/usr/bin:/usr/ucb:/usr/local/bin:/usr/lbin ; export PATH
- echo If this archive is complete, you will see the following message:
- echo ' "shar: End of archive 34 (of 35)."'
- if test -f 'data/refstyles.ld' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'data/refstyles.ld'\"
- else
- echo shar: Extracting \"'data/refstyles.ld'\" \(911 characters\)
- sed "s/^X//" >'data/refstyles.ld' <<'END_OF_FILE'
- X{ Book @RefStyle @Style
- X { @Reference&&reftag @Open
- X { @Author, {Slope @Font @Title}. @Publisher, @Year. @Comment }
- X }
- X}
- X
- X{ JournalArticle @RefStyle @Style
- X { @Reference&&reftag @Open
- X { @Author, @Title. {Slope @Font @Journal} {Bold @Font @Volume},
- X@Pages (@Year). @Comment
- X }
- X }
- X}
- X
- X{ ConferencePaper @RefStyle @Style
- X { @Reference&&reftag @Open
- X { @Author, @Title. {Slope @Font @Proceedings},
- X@Year, @Pages. @Comment
- X }
- X }
- X}
- X
- X{ TechReport @RefStyle @Style
- X { @Reference&&reftag @Open
- X { @Author, {Slope @Font @Title}. Tech. Rep. @Number (@Year),
- X@Institution. @Comment
- X }
- X }
- X}
- X
- X{ PhD @RefStyle @Style
- X { @Reference&&reftag @Open
- X { @Author, {Slope @Font @Title}. Ph.D. thesis,
- X@Institution (@Year). @Comment
- X }
- X }
- X}
- X
- X{ Software @RefStyle @Style
- X { @Reference&&reftag @Open
- X { @Author, {Slope @Font @Title}, @Year. @Comment
- X }
- X }
- X}
- END_OF_FILE
- if test 911 -ne `wc -c <'data/refstyles.ld'`; then
- echo shar: \"'data/refstyles.ld'\" unpacked with wrong size!
- fi
- # end of 'data/refstyles.ld'
- fi
- if test -f 'doc/README' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'doc/README'\"
- else
- echo shar: Extracting \"'doc/README'\" \(905 characters\)
- sed "s/^X//" >'doc/README' <<'END_OF_FILE'
- XDirectory lout/doc
- X
- XThis directory contains directories holding the Lout source for
- Xthe various technical reports that describe the Lout document
- Xformatting system:
- X
- Xtr.lout `Document Formatting with Lout', the Lout user manual;
- X
- Xtr.over `A New Approach to Document Formatting', a journal article;
- X
- Xtr.impl `The Design and Implementation of the Lout Document Formatting
- X Language', another journal article;
- X
- Xtr.begin `A Beginners' Guide to Lout', describing the @DocumentLayout
- X package;
- X
- Xtr.eq `Eq - A Lout package for typesetting mathematics',
- X describing the Eq equation formatter, and also the
- X Pas Pascal program formatter;
- X
- Xtr.fig `Fig - A Lout package for drawing figures', describing
- X the Fig figure drawing package.
- X
- Xtr.tab `Tab - A Lout package for formatting tables', describing
- X the Tab table formatting package.
- X
- XJeffrey H. Kingston
- X24 September 1991
- X27 January 1993
- END_OF_FILE
- if test 905 -ne `wc -c <'doc/README'`; then
- echo shar: \"'doc/README'\" unpacked with wrong size!
- fi
- # end of 'doc/README'
- fi
- if test -f 'doc/tr.begin/s06' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'doc/tr.begin/s06'\"
- else
- echo shar: Extracting \"'doc/tr.begin/s06'\" \(1009 characters\)
- sed "s/^X//" >'doc/tr.begin/s06' <<'END_OF_FILE'
- X@Section
- X @Tag { cnp }
- X @Title { Conditional new page }
- X@Begin
- X@PP
- XOccasionally Lout will insert a page break directly following a heading,
- Xand this looks very poor. The solution is to precede the heading with
- Xthe conditional new page symbol {@Code "@CNP"}, which checks whether
- Xenough space is left in the page or column for a heading and at least
- Xtwo lines of text. If so, @Code "@CNP" does nothing; if not, @Code "@CNP"
- Xcauses a new page or column to be begun, like {@Code "@NP"}. The recommended
- Xarrangement is
- X@ID @Code {
- X"end of previous part."
- X"@DP"
- X"@CNP"
- X"@Heading { A Heading }"
- X"@PP"
- X"First paragraph of next part ..."
- X}
- XThe @Code "@CNP" symbol should be preceded by either @Code "@DP" or
- X@Code "@LP", preferably {@Code "@DP"}, and this determines the amount of
- Xspace when the @Code "@NP" action does not occur. In most cases it will
- Xbe better to use the @Code "@Section" symbol described below, which has
- X@Code "@CNP" included in it, rather than using @Code "@CNP" directly.
- X@End @Section
- END_OF_FILE
- if test 1009 -ne `wc -c <'doc/tr.begin/s06'`; then
- echo shar: \"'doc/tr.begin/s06'\" unpacked with wrong size!
- fi
- # end of 'doc/tr.begin/s06'
- fi
- if test -f 'doc/tr.begin/s07' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'doc/tr.begin/s07'\"
- else
- echo shar: Extracting \"'doc/tr.begin/s07'\" \(1809 characters\)
- sed "s/^X//" >'doc/tr.begin/s07' <<'END_OF_FILE'
- X@Section
- X @Tag { sections }
- X @Title { Sections }
- X@Begin
- X@PP
- XThe DocumentLayout package provides sections, like this:
- X@ID @Code {
- X"some introductory text."
- X"@BeginSections"
- X"@Section"
- X" @Title { Introduction }"
- X"@Begin"
- X"@PP"
- X"..."
- X"..."
- X"@End @Section"
- X"@Section"
- X" @Title { Displays and lists }"
- X"@Begin"
- X"@PP"
- X"..."
- X"..."
- X"@End @Section"
- X"@EndSections"
- X}
- X@Code "@BeginSections" and @Code "@EndSections" symbols must
- Xbracket the sections, and paragraph symbols are needed at the
- Xbeginning of each section but not before or after the whole group. The
- X@OneCol @Code "@Title" option of @OneCol @Code "@Section" is made into
- Xa numbered heading, like those in the present document, preceded by a
- Xconditional new page symbol (Section {@NumberOf cnp}). The body of
- Xeach section is enclosed in @OneCol @Code "@Begin" and
- X@OneCol {@Code "@End @Section"}, although @Code "{" and @Code "}"
- Xare sufficient if preferred. The former are more long-winded but less
- Xprone to error.
- X@PP
- XWithin sections one may choose to have a sequence of subsections. These
- Xare introduced by @Code "@BeginSubSections" and concluded by
- X{@Code "@EndSubSections"}:
- X@ID @Code {
- X"in the following subsections."
- X"@BeginSubSections"
- X"@SubSection"
- X" @Title { ... }"
- X"@Begin"
- X"@PP"
- X"..."
- X"@End @SubSection"
- X"@SubSection"
- X" @Title { ... }"
- X"@Begin"
- X"@PP"
- X"..."
- X"@End @SubSection"
- X"@EndSubSections"
- X}
- XThe first subsection of the first section will be numbered 1.1, and so
- Xon. There are no sub-subsections. DocumentLayout also provides appendices
- Xin an exactly analogous way, using the symbols {@Code "@BeginAppendices"},
- X{@Code "@Appendix"}, and {@Code "@EndAppendices"}, and subappendices
- Xwithin any appendix using the symbols {@Code "@BeginSubAppendices"},
- X{@Code "@SubAppendix"}, and {@Code "@EndSubAppendices"}.
- X@End @Section
- END_OF_FILE
- if test 1809 -ne `wc -c <'doc/tr.begin/s07'`; then
- echo shar: \"'doc/tr.begin/s07'\" unpacked with wrong size!
- fi
- # end of 'doc/tr.begin/s07'
- fi
- if test -f 'doc/tr.begin/s08' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'doc/tr.begin/s08'\"
- else
- echo shar: Extracting \"'doc/tr.begin/s08'\" \(1142 characters\)
- sed "s/^X//" >'doc/tr.begin/s08' <<'END_OF_FILE'
- X@Section
- X @Tag { footnotes }
- X @Title { Footnotes, figures, and tables }
- X@Begin
- X@PP
- XA footnote is created by typing
- X@ID @Code "@FootNote { Like this. }"
- Xafter the word that the footnote refers to. It will be numbered
- Xautomatically and placed at the foot of the page or column;
- X@FootNote { Like this. }
- Xor, if space there is insufficient, it may start on or run onto the
- Xfollowing page or column. Figures are created in a similar way:
- X@ID @Code {
- X"@Figure"
- X" @Caption { Basser Lout }"
- X"@Fig {"
- X" @Box Lout &"
- X" @HArrow { 2c @Wide } &"
- X" @Box PostScript"
- X"}"
- X}
- XThe @Code "@Figure" symbol places the figure (which in this example is
- Xcreated using the Fig figure drawing package [{@Ref kingston92fig}]) at
- Xthe top of the following column or page,
- X@Figure
- X @Caption { Basser Lout }
- X@Fig {
- X @Box Lout &
- X @HArrow { 2c @Wide } &
- X @Box PostScript
- X}
- Xlabelled by the @Code "@Caption" option and automatically numbered. Unlike
- Xfootnotes, figures will not break across several pages; each figure must
- Xfit on one page.
- X@PP
- XTables are obtained in the same way using {@Code "@Table"} instead of
- X{@Code "@Figure"}.
- X@End @Section
- END_OF_FILE
- if test 1142 -ne `wc -c <'doc/tr.begin/s08'`; then
- echo shar: \"'doc/tr.begin/s08'\" unpacked with wrong size!
- fi
- # end of 'doc/tr.begin/s08'
- fi
- if test -f 'doc/tr.begin/s09' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'doc/tr.begin/s09'\"
- else
- echo shar: Extracting \"'doc/tr.begin/s09'\" \(1428 characters\)
- sed "s/^X//" >'doc/tr.begin/s09' <<'END_OF_FILE'
- X@Section
- X @Tag { cross }
- X @Title { Cross references }
- X@Begin
- X@PP
- X@I {Cross references} like `see page {@PageOf cross}' are a useful feature of
- Xdocuments, but they are troublesome to authors, since, as the document
- Xis revised, the thing on page {@PageOf cross} might find itself on page
- X{@PageOf reportlayout} and the cross reference must be changed. Lout has
- Xa simple solution to this problem: instead of writing the page number
- Xdirectly, write
- X@ID @Code "see page {@PageOf taxinfo}"
- Xinstead, and at the point referred to, write
- X@ID @Code "Taxation {@PageMark taxinfo} ..."
- X@Code "{@PageMark taxinfo}" will not appear in the output, but Lout makes
- Xa note of the number of the page on which the word preceding it appears,
- Xand inserts that number in place of {@Code "{@PageOf taxinfo}"}. Any
- Xsingle word may be used for the tag.
- X@PP
- XCross referencing also applies to sections, subsections, appendices,
- Xsubappendices, figures, tables, and numbered displays, and can supply
- Xboth the page on which the item begins and its number. First, add a
- X@Code "@Tag" option whose value is a single word:
- X@ID @Code {
- X"@Section"
- X" @Title { Cross references }"
- X" @Tag { cross }"
- X"@Begin"
- X"..."
- X}
- XThis marks the page on which the section begins, so @Code "{@PageOf cross}"
- Xwill be {@PageOf cross} in this case. In addition, @Code "{@NumberOf cross}"
- Xwill be the number of the section, in this case {@NumberOf cross}.
- X@End @Section
- END_OF_FILE
- if test 1428 -ne `wc -c <'doc/tr.begin/s09'`; then
- echo shar: \"'doc/tr.begin/s09'\" unpacked with wrong size!
- fi
- # end of 'doc/tr.begin/s09'
- fi
- if test -f 'doc/tr.begin/s16' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'doc/tr.begin/s16'\"
- else
- echo shar: Extracting \"'doc/tr.begin/s16'\" \(1843 characters\)
- sed "s/^X//" >'doc/tr.begin/s16' <<'END_OF_FILE'
- X@Appendix
- X @Tag { accented }
- X @Title { Accented characters }
- X@Begin
- X@PP
- XAccented characters are available in Lout. If you have a Latin-1 keyboard
- Xwith these characters on them, just use them; otherwise you have to name
- Xthe character using the @Code "@Char" symbol. For example,
- X@Code "{@Char eacute}" produces {@Char eacute}. The complete list of
- Xnames of accented characters in Basser Lout is
- X@ID @Tab
- X vmargin { 0.5vx }
- X hmargin { 0.15c }
- X @Fmta { @Col @Char A ! @Col @Code A ! @Col ! @Col @Char B ! @Col @Code B }
- X{
- X @Rowa A { Agrave } B { agrave }
- X @Rowa A { Aacute } B { aacute }
- X @Rowa A { Acircumflex } B { acircumflex }
- X @Rowa A { Atilde } B { atilde }
- X @Rowa A { Adieresis } B { adieresis }
- X @Rowa A { Aring } B { aring }
- X @Rowa A { AE } B { ae }
- X @Rowa A { Ccedilla } B { ccedilla }
- X
- X @Rowa A { Egrave } B { egrave }
- X @Rowa A { Eacute } B { eacute }
- X @Rowa A { Ecircumflex } B { ecircumflex }
- X @Rowa A { Edieresis } B { edieresis }
- X @Rowa A { Igrave } B { igrave }
- X @Rowa A { Iacute } B { iacute }
- X @Rowa A { Icircumflex } B { icircumflex }
- X @Rowa A { Idieresis } B { idieresis }
- X
- X @Rowa A { Eth } B { eth }
- X @Rowa A { Ntilde } B { ntilde }
- X @Rowa A { Ograve } B { ograve }
- X @Rowa A { Oacute } B { oacute }
- X @Rowa A { Ocircumflex } B { ocircumflex }
- X @Rowa A { Otilde } B { otilde }
- X @Rowa A { Odieresis } B { odieresis }
- X
- X @Rowa A { Oslash } B { oslash }
- X @Rowa A { Ugrave } B { ugrave }
- X @Rowa A { Uacute } B { uacute }
- X @Rowa A { Ucircumflex } B { ucircumflex }
- X @Rowa A { Udieresis } B { udieresis }
- X @Rowa A { Yacute } B { yacute }
- X @Rowa A { Thorn } B { thorn }
- X @Rowa A { germandbls } B { ydieresis }
- X}
- X@End @Appendix
- END_OF_FILE
- if test 1843 -ne `wc -c <'doc/tr.begin/s16'`; then
- echo shar: \"'doc/tr.begin/s16'\" unpacked with wrong size!
- fi
- # end of 'doc/tr.begin/s16'
- fi
- if test -f 'doc/tr.eq/s0' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'doc/tr.eq/s0'\"
- else
- echo shar: Extracting \"'doc/tr.eq/s0'\" \(909 characters\)
- sed "s/^X//" >'doc/tr.eq/s0' <<'END_OF_FILE'
- X@Report
- X @Title { Eq -- A Lout Package for Typesetting Mathematics }
- X @Author { Jeffrey H. Kingston }
- X @Institution { Basser Department of Computer Science
- XUniversity of Sydney 2006
- XAustralia }
- X @DateLine { 22 December, 1992 }
- X//
- X
- X@Abstract {
- XThis report describes the use of Eq, a package of definitions for
- Xtypesetting mathematics with the Lout document formatter. For example,
- X@ID @Code "@Eq { big int supp 1 on 0 ` dx over sqrt {1 - x sup 2} = pi over 2 }"
- Xproduces the output
- X@ID @Eq { big int supp 1 on 0 ` dx over sqrt {1 - x sup 2} = pi over 2 }
- XThe advantages of Eq include careful attention to details of spacing, a
- Xrepertoire of several hundred mathematical symbols, a simple syntax
- Xextensible by the user, and complete integration with the rest of Lout.
- X@PP
- XIn addition, this report contains an appendix describing the use of Pas,
- Xa package of definitions for printing Pascal programs.
- X}
- END_OF_FILE
- if test 909 -ne `wc -c <'doc/tr.eq/s0'`; then
- echo shar: \"'doc/tr.eq/s0'\" unpacked with wrong size!
- fi
- # end of 'doc/tr.eq/s0'
- fi
- if test -f 'doc/tr.eq/s1' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'doc/tr.eq/s1'\"
- else
- echo shar: Extracting \"'doc/tr.eq/s1'\" \(1344 characters\)
- sed "s/^X//" >'doc/tr.eq/s1' <<'END_OF_FILE'
- X@Section
- X @Title { Introduction }
- X@Begin
- X@PP
- XEq is a package of definitions for typesetting mathematics with the Lout
- Xdocument formatter [{@Ref kingston92}]. It includes several hundred
- Xmathematical and other special characters (including the entire PostScript
- X@FootNote { PostScript is a trademark of Adobe Systems, Incorporated. }
- XSymbol font [{@Ref adobe90}]), and a smaller number of symbols for joining
- Xobjects together in mathematical ways. Eq is based on the eqn language
- Xof Kernighan and Cherry [{@Ref kernighan75}], with
- Xspacing rules similar to Knuth's @TeX formatter [{@Ref knuth84}].
- X@PP
- XTo use Eq in a Lout document, first ensure that its definition is
- Xincluded, either by having @Code "@SysInclude { eq }"
- Xin the setup file, or @Code "-ieq" on the command line. Then, at any point
- Xin the document, write @Code "@Eq { ... }"
- Xand the symbols of Eq will be available between the braces. Any symbols
- Xavailable outside continue to be available inside, which means that Eq
- Xcan be freely mixed with standard Lout and with symbols from other
- Xpackages, without restriction.
- X@PP
- XIn this report we show the Lout input at the left, and its
- Xresult at the right:
- X@ID {
- X@Code "@Eq { {x sup 2 + y sup 2} over 2 }"
- X|7ct
- X@Eq { {x sup 2 + y sup 2} over 2 }
- X}
- XSubsequent examples will omit the enclosing {@Code "@Eq { ... }"}.
- X@End @Section
- END_OF_FILE
- if test 1344 -ne `wc -c <'doc/tr.eq/s1'`; then
- echo shar: \"'doc/tr.eq/s1'\" unpacked with wrong size!
- fi
- # end of 'doc/tr.eq/s1'
- fi
- if test -f 'doc/tr.fig/s0' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'doc/tr.fig/s0'\"
- else
- echo shar: Extracting \"'doc/tr.fig/s0'\" \(1153 characters\)
- sed "s/^X//" >'doc/tr.fig/s0' <<'END_OF_FILE'
- X@Report
- X @Title { Fig -- A Lout Package for Drawing Figures }
- X @Author { Jeffrey H. Kingston }
- X @Institution { Basser Department of Computer Science
- XThe University of Sydney 2006
- XAustralia }
- X @DateLine { 22 December, 1992 }
- X//
- X
- X@Abstract @Begin
- XThis report describes the use of Fig, a package of definitions
- Xfor use with the Lout document formatter. Fig draws, colours, and
- Xpositions arbitrary shapes made from straight lines, circular and
- Xelliptical arcs, and Bezier curves:
- X@CD @Fig
- X margin { 0.2c }
- X{
- X@Frame -2p @Font
- X{ A:: @Ellipse { 25, 39 }
- X/0.3c |0.2c B:: @Ellipse { 43 } |0.1c |0.8c E:: @Box linestyle {noline} {Problem node}
- X/0.3c C:: @Ellipse { 40, 41 } | | D:: @Ellipse paint { light } {44, 45, 46}
- X}
- X// @Line from { A@SE } to { B@NW }
- X// @Line from { B@SW } to { C@NE }
- X// @Line from { B@SE } to { D@NW }
- X// @Arrow from { E@W } to { D@NE }
- X}
- XThe graphical objects may be rotated and scaled; they may enclose, and
- Xbe enclosed by arbitrary Lout objects (text, equations, tables, other
- Xgraphical objects, etc.) without restriction. A convenient algebra of
- Xpoints and a method of labelling points assist positioning.
- X@End @Abstract
- END_OF_FILE
- if test 1153 -ne `wc -c <'doc/tr.fig/s0'`; then
- echo shar: \"'doc/tr.fig/s0'\" unpacked with wrong size!
- fi
- # end of 'doc/tr.fig/s0'
- fi
- if test -f 'doc/tr.fig/s1' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'doc/tr.fig/s1'\"
- else
- echo shar: Extracting \"'doc/tr.fig/s1'\" \(1445 characters\)
- sed "s/^X//" >'doc/tr.fig/s1' <<'END_OF_FILE'
- X@Section
- X @Title { Introduction }
- X@Begin
- X@PP
- XFig is a package of Lout definitions for drawing and filling in
- Xarbitrary shapes made from straight lines, circular and elliptical arcs,
- Xand Bezier curves. Its features are smoothly integrated with the rest
- Xof Lout: one can rotate and concatenate objects created by Fig, draw a
- Xbox to fit neatly around any object, etc. The design of Fig is based
- Xentirely on Brian W. Kernighan's PIC language [{@Ref kernighan82}]. The
- Ximplementation of Fig makes good use of the PostScript
- X@FootNote { PostScript is a trademark of Adobe Systems, Inc. }
- Xpage description language [{@Ref adobe90}], which was designed by John
- XWarnock and others. Lout was designed and implemented by Jeffrey
- XH. Kingston [{@Ref kingston92}].
- X@PP
- XTo use Fig within a Lout document, first ensure that its definition is
- Xincluded, either by putting @Code "@SysInclude { fig }" at the start of
- Xthe document, or @Code "-ifig" on the command line. Then, anywhere at
- Xall within the document, write
- X@ID @Code "@Fig { ... }"
- Xand the symbols of Fig will be available
- Xbetween the braces, which may enclose an arbitrary Lout object. Throughout
- Xthis report we will show the Lout text on the left and the corresponding
- Xresult on the right, like this:
- X@ID {
- X@Code {
- X"@Fig {"
- X" @Square"
- X" //0.5c"
- X" @Circle"
- X"}"
- X}
- X||7ct
- X@Fig {
- X @Square
- X //0.5c
- X @Circle
- X}
- X}
- XSubsequent examples will omit the enclosing {@Code "@Fig"}.
- X@End @Section
- END_OF_FILE
- if test 1445 -ne `wc -c <'doc/tr.fig/s1'`; then
- echo shar: \"'doc/tr.fig/s1'\" unpacked with wrong size!
- fi
- # end of 'doc/tr.fig/s1'
- fi
- if test -f 'doc/tr.fig/s4' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'doc/tr.fig/s4'\"
- else
- echo shar: Extracting \"'doc/tr.fig/s4'\" \(1043 characters\)
- sed "s/^X//" >'doc/tr.fig/s4' <<'END_OF_FILE'
- X@Section
- X @Title { Colour }
- X@Begin
- X@PP
- XAn arbitrary Lout object may be printed in colour, like this:
- X@ID {
- X@Code "red @Colour hello"
- X||7ct
- X@Fig {
- Xred @Colour hello
- X}
- X}
- X@Code "@Colour" may also be spelt {@Code "@Color"}. Of course, a colour
- Xprinting device is needed to see the effect. The @Code "@Colour" symbol
- Xis intended to provide a fixed palette of colours indicated by names,
- Xincluding {@Code "white"}, {@Code "grey"}, {@Code "gray"}, {@Code "black"},
- X{@Code "red"}, {@Code "green"}, and {@Code "blue"} at least.
- X@PP
- XAn unlimited range of colours can be obtained with the
- X{@Code "@RGBColour"} (or {@Code "@RGBColor"}) symbol, which is given
- Xthree numbers in the range 0 to 1 specifying the required intensity of
- Xred, green and blue colour in that order. For example,
- X@ID @Code "{1.0 0.0 0.0} @RGBColour hello"
- Xis equivalent to {@Code "red @Colour hello"}. There is also
- X{@Code "@HSBColour"} (or {@Code "@HSBColor"}) for specifying colour
- Xusing the hue-saturation-brightness model (see [{@Ref adobe90}],
- XSection 4.8).
- X@End @Section
- END_OF_FILE
- if test 1043 -ne `wc -c <'doc/tr.fig/s4'`; then
- echo shar: \"'doc/tr.fig/s4'\" unpacked with wrong size!
- fi
- # end of 'doc/tr.fig/s4'
- fi
- if test -f 'doc/tr.fig/s7' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'doc/tr.fig/s7'\"
- else
- echo shar: Extracting \"'doc/tr.fig/s7'\" \(1067 characters\)
- sed "s/^X//" >'doc/tr.fig/s7' <<'END_OF_FILE'
- X@Section
- X @Title { Errors }
- X@Begin
- X@PP
- XLout normally produces an output file that will print without mishap on
- Xany PostScript device. However, some of the options of Fig's symbols
- Xare passed through Lout to the output file without checking, including
- Xanything containing Fig lengths, angles, points, and labels. Any errors
- Xin these options will not be detected until the file is printed.
- X@PP
- XThe most likely errors are {@I syntax @I errors}, as in
- X@Code "shape { 0 0 [ 0 xsize }" for example, in which a @Code "]" is
- Xmissing; {@I type @I errors}, as in @Code "0 0 @Distance 45" where the
- Xright parameter is not a point; and {@I undefined @I errors}, arising
- Xfrom labels misspelt or used before being defined. Less commonly, the
- Xoptions may all be correct but the figure is too large in some way: too
- Xmany labels, too deeply nested, etc.
- X@PP
- XWhen an error is detected, Fig arranges for the offending page to
- Xbe printed up to the point where the error occurred, with a message
- Xnearby describing the error. Printing of the document is then aborted.
- X@End @Section
- END_OF_FILE
- if test 1067 -ne `wc -c <'doc/tr.fig/s7'`; then
- echo shar: \"'doc/tr.fig/s7'\" unpacked with wrong size!
- fi
- # end of 'doc/tr.fig/s7'
- fi
- if test -f 'doc/tr.fig/setup' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'doc/tr.fig/setup'\"
- else
- echo shar: Extracting \"'doc/tr.fig/setup'\" \(1715 characters\)
- sed "s/^X//" >'doc/tr.fig/setup' <<'END_OF_FILE'
- X
- X######################################################
- X# #
- X# Lout setup file for producing the Fig report. #
- X# #
- X# Jeffrey H. Kingston #
- X# 8 June 1991 #
- X# 22 December 1992 #
- X# #
- X######################################################
- X
- X@SysInclude { ft }
- X@SysInclude { dl }
- X@SysInclude { tab }
- X@SysInclude { eq }
- X@SysInclude { fig }
- X
- X def @Code
- X right x
- X { { Helvetica Base -1p } @Font lines @Break x
- X }
- X
- X import @Fig
- X def @JoinFigures
- X left A
- X named linestyle { solid }
- X named dashlength { 0.15 cm }
- X named arrow { noarrow }
- X named linewidth { 0.5 pt }
- X right B
- X { @Arrow
- X from { A"@CTR" ++ {{A"@CTR" @Angle B"@CTR"} A@CIRCUM} }
- X to { B"@CTR" ++ {{B"@CTR" @Angle A"@CTR"} B@CIRCUM} }
- X linestyle { linestyle }
- X dashlength { dashlength }
- X arrow { arrow }
- X linewidth { linewidth }
- X {}
- X }
- X
- X def @ShowMarks
- X named linewidth { 0.015 cm }
- X named linestyle { dashed }
- X named dashlength { 0.15 cm }
- X named paint { light }
- X right x
- X {
- X @Fig
- X { @Box margin { 0c } linewidth { linewidth } paint { paint }
- X { @Figure
- X shape { -0.3 cm ymark
- X {xsize ymark} ++ {0.3 cm 0} []
- X xmark -0.3 cm
- X {xmark ysize} ++ {0 0.3 cm}
- X }
- X linewidth { linewidth }
- X linestyle { linestyle }
- X dashlength { dashlength }
- X x
- X }
- X
- X }
- X }
- X
- X@Use { @DocumentLayout }
- X
- X@SysDatabase @Reference { loutrefs }
- END_OF_FILE
- if test 1715 -ne `wc -c <'doc/tr.fig/setup'`; then
- echo shar: \"'doc/tr.fig/setup'\" unpacked with wrong size!
- fi
- # end of 'doc/tr.fig/setup'
- fi
- if test -f 'doc/tr.impl/s0.0' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'doc/tr.impl/s0.0'\"
- else
- echo shar: Extracting \"'doc/tr.impl/s0.0'\" \(741 characters\)
- sed "s/^X//" >'doc/tr.impl/s0.0' <<'END_OF_FILE'
- X@Report
- X @Title { The Design and Implementation
- Xof the
- XLout Document Formatting Language }
- X @Author { Jeffrey H. Kingston }
- X @Institution { Basser Department of Computer Science,
- XThe University of Sydney 2006,
- XAustralia }
- X @DateLine { 27 January, 1993 }
- X//
- X
- X@Abstract
- X @Title { SUMMARY }
- X{
- XLout is a high-level language for document formatting, whose ease of use
- Xhas permitted an unprecedented number of advanced features to be added
- Xquickly and reliably. This paper charts the evolution of the design and
- Ximplementation of Lout from conception in mid-1984 to public release in
- XOctober 1991. It includes extensive discussions of remaining problems
- Xand possible solutions.
- X@DP
- X{@B Keywords} document formatting typesetting
- X}
- END_OF_FILE
- if test 741 -ne `wc -c <'doc/tr.impl/s0.0'`; then
- echo shar: \"'doc/tr.impl/s0.0'\" unpacked with wrong size!
- fi
- # end of 'doc/tr.impl/s0.0'
- fi
- if test -f 'doc/tr.impl/s6.0' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'doc/tr.impl/s6.0'\"
- else
- echo shar: Extracting \"'doc/tr.impl/s6.0'\" \(829 characters\)
- sed "s/^X//" >'doc/tr.impl/s6.0' <<'END_OF_FILE'
- X@Section
- X @Title { Cross references }
- X@Begin
- X@PP
- XCross references, such as `see page 57' and `see Figure 5,' are a useful
- Xbut highly error-prone feature of documents. Scribe [7]
- Xintroduced a method of keeping them up to date automatically as the
- Xdocument changes: the user gives each referenced entity a tag, and
- Xoperators are provided that return the page or sequence number of the
- Xentity with a given tag.
- X@PP
- XA cross reference takes an object (such as a page number) from one point
- Xin the document and copies it to another, and this generalization
- Xsuggests other applications. For example, a running header is copied
- Xfrom the title of a nearby chapter, and a reference is copied from a
- Xbibliographic database. Making the unity of these applications manifest
- Xis an interesting language design problem.
- X@BeginSubSections
- END_OF_FILE
- if test 829 -ne `wc -c <'doc/tr.impl/s6.0'`; then
- echo shar: \"'doc/tr.impl/s6.0'\" unpacked with wrong size!
- fi
- # end of 'doc/tr.impl/s6.0'
- fi
- if test -f 'doc/tr.lout/ch3.01' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'doc/tr.lout/ch3.01'\"
- else
- echo shar: Extracting \"'doc/tr.lout/ch3.01'\" \(894 characters\)
- sed "s/^X//" >'doc/tr.lout/ch3.01' <<'END_OF_FILE'
- X@Section
- X @Title { "@Begin" and "@End" }
- X @Tag { begin }
- X@Begin
- X@PP
- XThe body of a symbol @Code "@Sym" may be enclosed in @@Begin and
- Xbegin. @Index { @@Begin symbol }
- Xend. @Index { @@End symbol }
- X@@End @Code "@Sym" instead of the more usual braces:
- X@ID @Code {
- X"def @Section"
- X" named @Title {}"
- X" right @Body"
- X"@Begin"
- X" @Title //2v @Body"
- X"@End @Section"
- X}
- XThey may also enclose the right or body parameter of a symbol invocation:
- X@ID @Code {
- X"@Chapter"
- X" @Title { Introduction }"
- X"@Begin"
- X"This subject needs no introduction."
- X"@End @Chapter"
- X}
- XApart from their utility as documentation aids, these forms allow Basser
- XLout to pinpoint mismatched braces, which can otherwise create total
- Xhavoc. For this reason, they should enclose the major parts of documents,
- Xsuch as chapters and sections. Note that braces cannot be
- Xreplaced by @@Begin and @@End in general.
- X@End @Section
- END_OF_FILE
- if test 894 -ne `wc -c <'doc/tr.lout/ch3.01'`; then
- echo shar: \"'doc/tr.lout/ch3.01'\" unpacked with wrong size!
- fi
- # end of 'doc/tr.lout/ch3.01'
- fi
- if test -f 'doc/tr.lout/ch3.06' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'doc/tr.lout/ch3.06'\"
- else
- echo shar: Extracting \"'doc/tr.lout/ch3.06'\" \(1114 characters\)
- sed "s/^X//" >'doc/tr.lout/ch3.06' <<'END_OF_FILE'
- X@Section
- X @Title { "@OneCol" and "@OneRow" }
- X @Tag { onerow }
- X@Begin
- X@PP
- XThe @@OneRow symbol
- Xonerow.sym @Index { @@OneRow symbol }
- Xprincipal.mark.effect @SubIndex { effect on @@OneCol and @@OneRow }
- Xreturns its right parameter modified so that only the principal row mark
- Xprotrudes. This is normally the first row mark, but another one may be
- Xchosen by preceding it with @Code "^/" or {@Code "^//"}. For example,
- X@ID @Code {
- X"@OneRow { |0.5rt Slope @Font x + 2 ^//1p @HLine //1p |0.5rt 5 }"
- X}
- Xhas result
- X@LP
- X@ID {
- X@ShowMarks
- X@OneRow { |0.5rt Slope @Font x + 2 ^//1p @HLine //1p |0.5rt 5 }
- X}
- X@LP
- Xwith one row mark protruding from the bar as shown. Compare this with
- X@ID @Code {
- X"@OneRow { |0.5rt Slope @Font x + 2 //1p @HLine //1p |0.5rt 5 }"
- X}
- Xwhere the mark protrudes from the numerator:
- X@LP
- X@ID {
- X@ShowMarks
- X@OneRow { |0.5rt Slope @Font x + 2 //1p @HLine //1p |0.5rt 5 }
- X}
- X@PP
- Xonecol.sym @Index { @@OneCol symbol }
- X@@OneCol has the same effect on columns as @@OneRow does on rows, with
- Xthe symbols @Code "^|" and @Code "^||" (or {@Code "^&"}) determining
- Xwhich mark is chosen.
- X@End @Section
- END_OF_FILE
- if test 1114 -ne `wc -c <'doc/tr.lout/ch3.06'`; then
- echo shar: \"'doc/tr.lout/ch3.06'\" unpacked with wrong size!
- fi
- # end of 'doc/tr.lout/ch3.06'
- fi
- if test -f 'doc/tr.lout/ch3.08' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'doc/tr.lout/ch3.08'\"
- else
- echo shar: Extracting \"'doc/tr.lout/ch3.08'\" \(1138 characters\)
- sed "s/^X//" >'doc/tr.lout/ch3.08' <<'END_OF_FILE'
- X@Section
- X @Title { "@HExpand" and "@VExpand" }
- X @Tag { hexpand }
- X@Begin
- X@PP
- Xhexpand @Index { @@HExpand symbol }
- Xvexpand @Index { @@VExpand symbol }
- Xexpansion @Index { Expansion of object }
- XThe @@HExpand symbol causes its right parameter to be as wide as it
- Xpossibly could be without violating a @@Wide symbol or intruding into
- Xthe space occupied by neighbouring gaps or objects. The @@VExpand
- Xsymbol is similar, but it affects height. For example, in the object
- X@ID @Code {
- X"8i @Wide 11i @High {"
- X" //1i ||1i @HExpand @VExpand x ||1i"
- X" //1i"
- X"}"
- X}
- Xobject @Code x could have any size up to six inches wide by nine inches
- Xhigh, so the @@HExpand and @@VExpand symbols cause it to have exactly
- Xthis size. This is important, for example, if @Code x contains
- X@Code "|1rt" or {@Code "/1rt"}; without the expansion these might not
- Xmove as far across or down as expected.
- X@PP
- XAs Section {@NumberOf size} explains in detail, most objects are
- Xalready as large as they possibly could be. Consequently these symbols
- Xare needed only rarely. @@HExpand includes a @@OneCol effect, and
- X@@VExpand includes a @@OneRow effect.
- X@End @Section
- END_OF_FILE
- if test 1138 -ne `wc -c <'doc/tr.lout/ch3.08'`; then
- echo shar: \"'doc/tr.lout/ch3.08'\" unpacked with wrong size!
- fi
- # end of 'doc/tr.lout/ch3.08'
- fi
- if test -f 'doc/tr.lout/ch3.10' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'doc/tr.lout/ch3.10'\"
- else
- echo shar: Extracting \"'doc/tr.lout/ch3.10'\" \(1288 characters\)
- sed "s/^X//" >'doc/tr.lout/ch3.10' <<'END_OF_FILE'
- X@Section
- X @Title { "@HAdjust", "@VAdjust", and "@PAdjust" }
- X @Tag { hadjust }
- X@Begin
- X@PP
- Xpadjust @Index { @@PAdjust symbol }
- Xhadjust @Index { @@HAdjust symbol }
- Xvadjust @Index { @@VAdjust symbol }
- Xadjustment @Index { Adjustment of object }
- XThese symbols spread their right parameter apart until it occupies
- Xall the space available to it; @@HAdjust adjusts @Code "|" sequences,
- X@@VAdjust adjusts @Code "/" sequences, and @@PAdjust adjusts @Code "&"
- Xsequences. For example,
- X@ID @Code {
- X"4i @Wide @PAdjust { 1 2 3 4 5 6 7 8 }"
- X}
- Xhas result
- X@ID {
- X4i @Wide @PAdjust { 1 2 3 4 5 6 7 8 }
- X}
- XMore precisely, the widening is effected by enlarging the size of each
- Xcomponent except the last by an equal fraction of the space that would
- Xotherwise be left over -- just the opposite of the usual procedure,
- Xwhich assigns all the leftover space to the last component (Section
- X{@NumberOf size}).
- X@PP
- X@@PAdjust is used by the @Code adjust and @Code outdent options of
- Xthe @@Break symbol (Section {@NumberOf break}). It has a slight
- Xpeculiarity: it will not enlarge components when the immediately
- Xfollowing gap has width 0. This is to prevent space from appearing
- X(for example) between a word and an immediately following comma. The
- Xother two symbols will enlarge such components.
- X@End @Section
- END_OF_FILE
- if test 1288 -ne `wc -c <'doc/tr.lout/ch3.10'`; then
- echo shar: \"'doc/tr.lout/ch3.10'\" unpacked with wrong size!
- fi
- # end of 'doc/tr.lout/ch3.10'
- fi
- if test -f 'doc/tr.lout/ch3.11' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'doc/tr.lout/ch3.11'\"
- else
- echo shar: Extracting \"'doc/tr.lout/ch3.11'\" \(999 characters\)
- sed "s/^X//" >'doc/tr.lout/ch3.11' <<'END_OF_FILE'
- X@Section
- X @Title { "@HScale" and "@VScale" }
- X @Tag { hscale }
- X@Begin
- X@PP
- Xhscale @Index { @@HScale symbol }
- Xvscale @Index { @@VScale symbol }
- Xscaling @Index { Scaling of object }
- X@@HScale causes its right parameter to expand to fill the space available,
- Xby geometricallly scaling it:
- X@ID @Code {
- X"4i @Wide @HScale { 1 2 3 4 5 6 7 8 }"
- X}
- Xhas result
- X@ID {
- X4i @Wide @HScale { 1 2 3 4 5 6 7 8 }
- X}
- Xand
- X@ID @Code {
- X"0.5i @Wide @HScale { 1 2 3 4 5 6 7 8 }"
- X}
- Xhas result
- X@ID {
- X0.5i @Wide @HScale { 1 2 3 4 5 6 7 8 }
- X}
- X@@HScale first applies @@HContract to its parameter, then horizontally
- Xscales it to the actual size. The principal mark of the right parameter
- Xhas no effect on the result; the parameter is scaled to the actual size
- Xand positioned to fill the space available. (Taking account of alignment
- Xof the principal mark only causes trouble in practice.)
- X@PP
- X@@VScale is similar, but in a vertical direction. @@HScale and @@VScale
- Xeach have both a @@OneCol and a @@OneRow effect.
- X@End @Section
- END_OF_FILE
- if test 999 -ne `wc -c <'doc/tr.lout/ch3.11'`; then
- echo shar: \"'doc/tr.lout/ch3.11'\" unpacked with wrong size!
- fi
- # end of 'doc/tr.lout/ch3.11'
- fi
- if test -f 'doc/tr.lout/ch3.12' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'doc/tr.lout/ch3.12'\"
- else
- echo shar: Extracting \"'doc/tr.lout/ch3.12'\" \(718 characters\)
- sed "s/^X//" >'doc/tr.lout/ch3.12' <<'END_OF_FILE'
- X@Section
- X @Title { "@Scale" }
- X @Tag { scale }
- X@Begin
- X@PP
- Xscale @Index { @@Scale symbol }
- XThis symbol geometrically scales its right parameter by the scale factor
- Xgiven in its left parameter:
- X@ID @Code "1.0 @Scale Hello 2.0 @Scale Hello 0.5 @Scale Hello"
- Xhas result
- X@ID { 1.0 @Scale Hello 2.0 @Scale Hello 0.5 @Scale Hello }
- XThe left parameter can be two scale factors, in which case the first
- Xapplies horizontally, and the second vertically:
- X@ID @Code "{0.5 2.0} @Scale Hello"
- Xhas result
- X@ID { {0.5 2.0} @Scale Hello }
- XThe right parameter may be any object. @@Scale has both a @@OneCol and
- Xa @@OneRow effect, and the marks of the result coincide with the principal
- Xmarks of the right parameter.
- X@End @Section
- END_OF_FILE
- if test 718 -ne `wc -c <'doc/tr.lout/ch3.12'`; then
- echo shar: \"'doc/tr.lout/ch3.12'\" unpacked with wrong size!
- fi
- # end of 'doc/tr.lout/ch3.12'
- fi
- if test -f 'doc/tr.lout/ch3.13' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'doc/tr.lout/ch3.13'\"
- else
- echo shar: Extracting \"'doc/tr.lout/ch3.13'\" \(1552 characters\)
- sed "s/^X//" >'doc/tr.lout/ch3.13' <<'END_OF_FILE'
- X@Section
- X @Title { "@Rotate" }
- X @Tag { rotate }
- X@Begin
- X@PP
- Xrotate.sym @Index { @@Rotate symbol }
- Xrotation @Index { Rotation of object }
- XThe symbol @@Rotate will rotate its
- Xright parameter counterclockwise an amount given in degrees (positive or
- Xnegative) by its left parameter. For example,
- X@ID @Code {
- X"30d @Rotate { hello, world }"
- X}
- Xhas result
- X@ID {
- X30d @Rotate { hello, world }
- X}
- XBefore rotating the object, @@OneCol and @@OneRow are applied to it. The
- Xresult is a rectangle whose marks pass through the point where the
- Xoriginal marks crossed:
- X@ID {
- X @ShowMarks
- X { 0.6c @Wide 0.3c @High ^| 2.2c @Wide ^/ 0.2c @High }
- X
- X&4m => &4m
- X
- X @ShowMarks
- X {
- X 30d @Rotate
- X { @ShowMarks
- X { 0.6c @Wide 0.3c @High ^| 2.2c @Wide ^/ 0.2c @High }
- X }
- X }
- X}
- XAs this example shows, rotation by an angle other than a multiple of
- Xninety degrees introduces quite a lot of white space. So, for example, the
- Xresult of
- X@ID {
- X@Code { "-30d" "@Rotate" 30d "@Rotate" } @I object
- X}
- Xis a much larger object than {@I object}, despite the fact that one
- Xrotation cancels the other.
- X@PP
- XRotation of objects containing receptive and recursive symbols is
- Xpermitted, but for angles other than multiples of ninety degrees it is
- Xbest to make the size of the rotated object clear with @@Wide and
- X@@High symbols:
- X@ID @Code {
- X"30d @Rotate 5i @Wide 4i @High"
- X"{ //1i @TextPlace"
- X" //1i"
- X"}"
- X}
- XThis is because for angles other than multiples of ninety degrees the
- Xspace available for @Code "@TextPlace" to occupy is indeterminate, and
- Xthe result is poor.
- X@End @Section
- END_OF_FILE
- if test 1552 -ne `wc -c <'doc/tr.lout/ch3.13'`; then
- echo shar: \"'doc/tr.lout/ch3.13'\" unpacked with wrong size!
- fi
- # end of 'doc/tr.lout/ch3.13'
- fi
- if test -f 'doc/tr.lout/ch3.15' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'doc/tr.lout/ch3.15'\"
- else
- echo shar: Extracting \"'doc/tr.lout/ch3.15'\" \(1859 characters\)
- sed "s/^X//" >'doc/tr.lout/ch3.15' <<'END_OF_FILE'
- X@Section
- X @Title { "@Case" }
- X @Tag { case }
- X@Begin
- X@PP
- Xcase.sym @Index { @@Case symbol }
- Xyield.sym @Index { @@Yield symbol }
- XThe @@Case symbol selects its result from a list of alternatives,
- Xdepending on a tag:
- X@ID @Code {
- X"@Day @Case {"
- X" { 1 21 31 } @Yield st"
- X" { 2 22 } @Yield nd"
- X" { 3 23 } @Yield rd"
- X" else @Yield th"
- X"}"
- X}
- XIn this example the result will be st if @Code "@Day" is 1, 21, or 31,
- Xand nd if @Code "@Day" is 2 or 22, etc. The effect is similar to
- Xaccessing a database, though in a more compact form. The right parameter
- Xis a sequence of @@Yield symbols, each with a left parameter whose value is
- Xa sequence of one or more juxtapositions of simple words, and a right
- Xparameter which may be any object.
- X@PP
- XWe first describe the behaviour when the value of the left parameter of
- X@@Case is a juxtaposition of one or more simple words. Then the result of
- Xthe @@Case is the right parameter of the first @@Yield whose left parameter
- Xcontains either the value of the left parameter of the @@Case, or the special
- Xvalue {@Code else}. If there is no such @@Yield it is an error.
- X@PP
- XWhen the left parameter of @@Case is not a juxtaposition of simple
- Xwords, the result is the right parameter of the first @@Yield whose
- Xleft parameter is {@Code else}, or an error otherwise. This permits
- Xexamples like
- X@ID @Code {
- X"@RunningTitle @Case {"
- X" dft @Yield @Title"
- X" else @Yield @RunningTitle"
- X"}"
- X}
- Xwhere a running title is returned unless it has the value {@Code dft}
- X(which presumably means that no running title was supplied), in which
- Xcase an ordinary title is returned instead.
- X@PP
- XWhen a receptive symbol is placed within a @@Case, it should be included
- Xin each alternative, since otherwise Basser Lout may become confused when
- Xtrying to predict whether the symbol will be a part of the result or not.
- X@End @Section
- END_OF_FILE
- if test 1859 -ne `wc -c <'doc/tr.lout/ch3.15'`; then
- echo shar: \"'doc/tr.lout/ch3.15'\" unpacked with wrong size!
- fi
- # end of 'doc/tr.lout/ch3.15'
- fi
- if test -f 'doc/tr.lout/ch3.16' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'doc/tr.lout/ch3.16'\"
- else
- echo shar: Extracting \"'doc/tr.lout/ch3.16'\" \(1705 characters\)
- sed "s/^X//" >'doc/tr.lout/ch3.16' <<'END_OF_FILE'
- X@Section
- X @Title { "@Moment" }
- X @Tag { moment }
- X@Begin
- X@PP
- XThe predefined symbol @@Moment
- Xmoment.sym @Index { @@Moment symbol }
- Xhas the following definition:
- X@ID @Code {
- X"def @Moment"
- X" named @Tag {}"
- X" named @Second {}"
- X" named @Minute {}"
- X" named @Hour {}"
- X" named @Day {}"
- X" named @Month {}"
- X" named @Year {}"
- X" named @Century {}"
- X" named @WeekDay {}"
- X" named @YearDay {}"
- X" named @DaylightSaving {}"
- X"{}"
- X}
- XIt may be used like any other symbol. Lout provides an invocation of
- X@@Moment with tag {@Code now}, whose other parameters are numbers
- Xencoding the current date and time:
- X@ID {
- X@JP @Code "@Second" |0.5i the current second, between 0 and 59
- X@JP @Code "@Minute" | the current minute, between 0 and 59
- X@JP @Code "@Hour" | the current hour, between 0 and 23
- X@JP @Code "@Day" | the current day of the month, between 1 and 31
- X@JP @Code "@Month" | the current month, between 1 (January) and 12 (December)
- X@JP @Code "@Year" | the current year of the century, between 00 and 99
- X@JP @Code "@Century" | the current century, e.g. 19 or 20
- X@JP @Code "@WeekDay" | the current day of the week, between 1 (Sunday) and 7 (Saturday)
- X@JP @Code "@YearDay" | the current day of the year, between 0 and 365
- X@JP @Code "@DaylightSaving" | an implementation-dependent number that
- Xmay encode the daylight saving currently in effect
- X}
- Xdate @Index { Date, printing of current }
- XJudicious use of databases can convert
- Xthese numbers into useful dates. For example,
- X@ID @Code {
- X"@Moment&&now @Open { @Day {@Months&&@Month}, @Century{@Year} }"
- X}
- Xproduces something like
- X@Moment&&now @Open { @Day {@Months&&@Month}, @Century{@Year} }
- Xgiven a suitable database of months.
- X@End @Section
- END_OF_FILE
- if test 1705 -ne `wc -c <'doc/tr.lout/ch3.16'`; then
- echo shar: \"'doc/tr.lout/ch3.16'\" unpacked with wrong size!
- fi
- # end of 'doc/tr.lout/ch3.16'
- fi
- if test -f 'doc/tr.lout/ch3.17' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'doc/tr.lout/ch3.17'\"
- else
- echo shar: Extracting \"'doc/tr.lout/ch3.17'\" \(791 characters\)
- sed "s/^X//" >'doc/tr.lout/ch3.17' <<'END_OF_FILE'
- X@Section
- X @Title { "@Null" }
- X @Tag { null }
- X@Begin
- X@PP
- XThis symbol
- Xnull.sym @Index { @@Null symbol }
- Xprovides a convenient way to remove unwanted
- Xconcatenation symbols. If there is a concatenation symbol
- Xpreceding @@Null, the @@Null and the
- Xconcatenation symbol are both deleted. Otherwise, if there is a
- Xfollowing concatenation symbol, it and the @@Null are both deleted.
- XOtherwise, @@Null becomes an empty object.
- X@PP
- XThese rules apply to a fully parenthesized version of the expression. For
- Xexample, in
- X@ID @Code {
- X"... //1vx @Null |0.5i ..."
- X}
- Xit is the horizontal concatenation symbol following @@Null that
- Xdisappears, because in the fully parenthesized version
- X@ID @Code {
- X"... //1vx { @Null |0.5i ... }"
- X}
- Xthere is no concatenation symbol preceding the @@Null.
- X@End @Section
- END_OF_FILE
- if test 791 -ne `wc -c <'doc/tr.lout/ch3.17'`; then
- echo shar: \"'doc/tr.lout/ch3.17'\" unpacked with wrong size!
- fi
- # end of 'doc/tr.lout/ch3.17'
- fi
- if test -f 'doc/tr.lout/ch3.19' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'doc/tr.lout/ch3.19'\"
- else
- echo shar: Extracting \"'doc/tr.lout/ch3.19'\" \(1144 characters\)
- sed "s/^X//" >'doc/tr.lout/ch3.19' <<'END_OF_FILE'
- X@Section
- X @Title { The cross reference symbol "&&" }
- X @Tag { crossref }
- X@Begin
- X@PP
- XThe cross reference symbol @Code "&&" takes the name of a symbol (not an
- Xobject) for its left parameter, and an object whose value must be a
- Xsimple word for its right parameter. The result is a cross reference,
- Xwhich may be thought of as an arrow pointing from the cross reference
- Xsymbol to the beginning of an invocation of the named symbol.
- X@PP
- XThe invocation pointed to, known as the @I target of the cross
- Xreference, is generally one whose @@Tag parameter has value equal
- Xto the right parameter of the cross reference symbol. Two special tags,
- X@Code preceding and {@Code following}, point respectively
- Xto the first invocation preceding the cross reference in the final
- Xprinted document, and the first following it.
- X@PP
- XA cross reference may be used in four ways: where an object is
- Xexpected, in which case its value is a copy of the target; with the
- X@@Open and @@Use symbols; with the @@Tagged
- Xsymbol; and in the @Code into clause of a galley definition, in which
- Xcase the value of the tag must be @Code preceding or {@Code following}.
- X@End @Section
- END_OF_FILE
- if test 1144 -ne `wc -c <'doc/tr.lout/ch3.19'`; then
- echo shar: \"'doc/tr.lout/ch3.19'\" unpacked with wrong size!
- fi
- # end of 'doc/tr.lout/ch3.19'
- fi
- if test -f 'doc/tr.lout/ch3.20' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'doc/tr.lout/ch3.20'\"
- else
- echo shar: Extracting \"'doc/tr.lout/ch3.20'\" \(570 characters\)
- sed "s/^X//" >'doc/tr.lout/ch3.20' <<'END_OF_FILE'
- X@Section
- X @Title { "@Tagged" }
- X @Tag { tagged }
- X@Begin
- X@PP
- XThe @@Tagged
- Xtagged.sym @Index { @@Tagged symbol }
- Xsymbol takes a cross reference for its left parameter and an object, whose
- Xvalue must be a juxtaposition of simple words or an empty
- Xobject, for its right parameter. It has the effect of attaching its
- Xright parameter as an additional tag to the invocation denoted by its
- Xleft parameter, unless the right parameter is empty, in which case @@Tagged
- Xdoes nothing. The result of @@Tagged is always @@Null, which makes it
- Xeffectively invisible.
- X@End @Section
- END_OF_FILE
- if test 570 -ne `wc -c <'doc/tr.lout/ch3.20'`; then
- echo shar: \"'doc/tr.lout/ch3.20'\" unpacked with wrong size!
- fi
- # end of 'doc/tr.lout/ch3.20'
- fi
- if test -f 'doc/tr.lout/ch3.21' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'doc/tr.lout/ch3.21'\"
- else
- echo shar: Extracting \"'doc/tr.lout/ch3.21'\" \(1524 characters\)
- sed "s/^X//" >'doc/tr.lout/ch3.21' <<'END_OF_FILE'
- X@Section
- X @Title { "@Open and @Use" }
- X @Tag { open }
- X@Begin
- X@PP
- XThe @@Open symbol
- Xopen.sym @Index { @@Open symbol }
- Xtakes a cross reference or symbol
- Xinvocation for its left parameter, and an arbitrary object, which must
- Xbe enclosed in braces, for its right parameter. The right parameter
- Xmay refer to the exported parameters and nested definitions of the invocation
- Xdenoted by the left parameter, and its value is the @@Open
- Xsymbol's result. The target of the cross reference may lie in an
- Xexternal database (Section {@NumberOf database}). Any symbol available
- Xoutside the @@Open which happens to have the same name as one of the
- Xsymbols made available by the @@Open will be unavailable within the @@Open.
- X@PP
- Xuse.sym @Index { @@Use symbol }
- XThe @@Use symbol is an @@Open symbol in a
- Xdifferent form. It may only appear just after the definitions
- Xin Lout's input, and it is equivalent to enclosing the remainder of the
- Xinput in an @@Open symbol. For example,
- X@ID {
- X @I definitions
- X//1vx @Code "@Use" @Code "{" @I x @Code "}"
- X//1vx @Code "@Use" @Code "{" @I y @Code "}"
- X//1vx @I { rest of input }
- X}
- Xis equivalent to
- X@ID {
- X @I definitions
- X//1vx @I x @Code "@Open"
- X//1vx @Code "{" &4mt @I y @Code "@Open"
- X//1vx &4mt @Code "{" @I { rest of input }
- X//1vx &4mt @Code "}"
- X//1vx @Code "}"
- X}
- XThe @@Use symbol allows a set of standard packages to be opened without
- Xthe inconvenience of enclosing the entire document in @@Open symbols. Such
- Xenclosure could cause Basser Lout to run out of memory.
- X@End @Section
- END_OF_FILE
- if test 1524 -ne `wc -c <'doc/tr.lout/ch3.21'`; then
- echo shar: \"'doc/tr.lout/ch3.21'\" unpacked with wrong size!
- fi
- # end of 'doc/tr.lout/ch3.21'
- fi
- if test -f 'doc/tr.lout/ch3.22' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'doc/tr.lout/ch3.22'\"
- else
- echo shar: Extracting \"'doc/tr.lout/ch3.22'\" \(1623 characters\)
- sed "s/^X//" >'doc/tr.lout/ch3.22' <<'END_OF_FILE'
- X@Section
- X @Title { "@Database and @SysDatabase" }
- X @Tag { database }
- X@Begin
- X@PP
- Xdatabase.sym @Index { @@Database symbol }
- XThe @@Database symbol is used to declare the existence of a file
- Xof symbol invocations that Lout may refer to when evaluating cross
- Xreferences. In Basser Lout, for example,
- X@ID @Code {
- X"@Database @Months @WeekDays { standard }"
- X}
- Xmeans that there is a file called @Code "standard.ld" containing
- Xinvocations of the previously defined symbols @Code "@Months" and
- X{@Code "@WeekDays"}. A @@Database symbol may appear anywhere a definition
- Xor a @@Use symbol may appear. Different definitions packages may refer to a
- Xcommon database, provided the definitions they give for its symbols are
- Xcompatible. An entry is interpreted as though it appears at the point
- Xwhere the cross reference that retrieves it does, which allows symbols
- Xlike @Code "@I" for @Code "Slope @Font" to be used in databases. The
- Xdatabase file may not contain @@Database or @@Include symbols, and each
- Xinvocation within it must be enclosed in braces.
- X@PP
- XBasser Lout constructs an {@I {index file}},
- Xindex.file @Index { Index file (for databases) }
- Xwhich in this example is called {@Code "standard.li"}, the first time it
- Xever encounters the database, as an aid to searching it. If the database
- Xfile is changed, its index file must be deleted by the user so that
- XBasser Lout knows to reconstruct it.
- X@PP
- XBasser Lout searches for databases in the current directory first, then
- Xin a sequence of standard places. To search the standard places only, use
- Xsysdatabase.sym @Index { @@SysDatabase symbol }
- X@@SysDatabase.
- X@End @Section
- END_OF_FILE
- if test 1623 -ne `wc -c <'doc/tr.lout/ch3.22'`; then
- echo shar: \"'doc/tr.lout/ch3.22'\" unpacked with wrong size!
- fi
- # end of 'doc/tr.lout/ch3.22'
- fi
- if test -f 'doc/tr.lout/ch3.24' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'doc/tr.lout/ch3.24'\"
- else
- echo shar: Extracting \"'doc/tr.lout/ch3.24'\" \(1436 characters\)
- sed "s/^X//" >'doc/tr.lout/ch3.24' <<'END_OF_FILE'
- X@Section
- X @Title { "@IncludeGraphic" and "@SysIncludeGraphic" }
- X @Tag { includegraphic }
- X@Begin
- X@PP
- Xincludegraphic.sym @Index { @@IncludeGraphic symbol }
- Xsysincludegraphic.sym @Index { @@SysIncludeGraphic symbol }
- Xpostscript.includegraphic @SubIndex { used by @@IncludeGraphic }
- XThese symbols instruct Lout to incorporate a separately created
- Xillustration:
- X@ID @Code "@IncludeGraphic \"myportrait.eps\""
- XThe parameter is implementation-dependent; in Basser Lout it is an
- Xobject whose value is a simple word denoting the name of a file. This
- Xfile should ideally be a PostScript EPS Version 3.0 file [{@Ref adobe90}],
- Xsince then Lout will keep careful track of what resources are required
- Xfor printing that file. However, any PostScript file containing the
- X@Code "%%BoundingBox:" comment and not requiring unusual resources is
- Xlikely to work.
- X@PP
- XThe result of @@IncludeGraphic is an ordinary Lout object with marks
- Xthrough its centre. It may be rotated, scaled, and generally
- Xtreated like any other object. Basser Lout determines its size by
- Xconsulting the bounding box information in the file. If this cannot be
- Xfound, a warning message is printed and the result object has zero size.
- X@PP
- X@@IncludeGraphic searches the same directories that @@Include does
- X(Section {@NumberOf include}). @@SysIncludeGraphic is the same as
- X@@IncludeGraphic, except that it searches only the directories searched
- Xby @@SysInclude.
- X@End @Section
- END_OF_FILE
- if test 1436 -ne `wc -c <'doc/tr.lout/ch3.24'`; then
- echo shar: \"'doc/tr.lout/ch3.24'\" unpacked with wrong size!
- fi
- # end of 'doc/tr.lout/ch3.24'
- fi
- if test -f 'doc/tr.lout/ch3.25' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'doc/tr.lout/ch3.25'\"
- else
- echo shar: Extracting \"'doc/tr.lout/ch3.25'\" \(1083 characters\)
- sed "s/^X//" >'doc/tr.lout/ch3.25' <<'END_OF_FILE'
- X@Section
- X @Tag { prependgraphic }
- X @Title { "@PrependGraphic and @SysPrependGraphic" }
- X@Begin
- X@PP
- Xprependgraphic.sym @Index { @@PrependGraphic symbol }
- Xsysprependgraphic.sym @Index { @@SysPrependGraphic symbol }
- Xpostscript.prependgraphic @SubIndex { used by @@PrependGraphic }
- XThese symbols, which may appear anywhere that a definition or @@Use
- Xsymbol may appear, tell Lout to include the contents of a file in the
- Xpreamble of its output. For Basser Lout this means that the file must
- Xcontain PostScript (and ideally it would begin and end with the
- X@Code "%%BeginResource" and @Code "%%EndResource" comments of
- XDSC 3.0). For example,
- X@ID @Code {
- X"@SysPrependGraphic { fig_prepend }"
- X}
- Xappears at the start of the Fig package; the file @Code fig_prepend
- Xcontains a number of PostScript definitions used by Fig for drawing
- Xdiagrams. It saves a lot of space to include them just once at the
- Xstart like this, rather than with every diagram. @@PrependGraphic and
- X@@SysPrependGraphic search for the file in the same places as @@Include and
- X@@SysInclude respectively.
- X@End @Section
- END_OF_FILE
- if test 1083 -ne `wc -c <'doc/tr.lout/ch3.25'`; then
- echo shar: \"'doc/tr.lout/ch3.25'\" unpacked with wrong size!
- fi
- # end of 'doc/tr.lout/ch3.25'
- fi
- if test -f 'doc/tr.lout/ch3.26' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'doc/tr.lout/ch3.26'\"
- else
- echo shar: Extracting \"'doc/tr.lout/ch3.26'\" \(824 characters\)
- sed "s/^X//" >'doc/tr.lout/ch3.26' <<'END_OF_FILE'
- X@Section
- X @Tag { include }
- X @Title { "@Include and @SysInclude" }
- X@Begin
- X@PP
- Xinclude.sym @Index { @@Include symbol }
- Xsysinclude.sym @Index { @@SysInclude symbol }
- XThese symbols instruct Lout to temporarily switch to reading another
- Xfile, whose name appears in braces following the symbol. For example,
- X@ID @Code {
- X"@Include { \"/usr/lout/fontdefs\" }"
- X}
- Xwill cause the contents of file "/usr/lout/fontdefs" to be read at the
- Xpoint it occurs. After that file is read, the current file is resumed. The
- Xincluded file may contain arbitrary Lout text, including other
- X@@Include commands. The file is searched for first in the current
- Xdirectory, then in a sequence of standard places which are not necessarily the
- Xsame places that databases are searched for. @@SysInclude searches the
- Xstandard places only.
- X@End @Section
- END_OF_FILE
- if test 824 -ne `wc -c <'doc/tr.lout/ch3.26'`; then
- echo shar: \"'doc/tr.lout/ch3.26'\" unpacked with wrong size!
- fi
- # end of 'doc/tr.lout/ch3.26'
- fi
- if test -f 'doc/tr.over/s0' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'doc/tr.over/s0'\"
- else
- echo shar: Extracting \"'doc/tr.over/s0'\" \(883 characters\)
- sed "s/^X//" >'doc/tr.over/s0' <<'END_OF_FILE'
- X@Report
- X @Title { A New Approach to Document Formatting }
- X @Author { Jeffrey H. Kingston }
- X @Institution { Basser Department of Computer Science
- XUniversity of Sydney 2006
- XAustralia }
- X @Columns { Double }
- X @DateLine { 22 December, 1992 }
- X//
- X
- X@Abstract {
- XThis paper describes a new approach to document formatting, in which
- Xfeatures are written in a small, coherent, high-level language called
- XLout. The resulting increase in productivity has permitted many advanced
- Xfeatures to be developed quickly and accurately, including page layout of
- Xunprecedented flexibility, equation formatting, automatically generated
- Xtables of contents, running page headers and footers, cross references,
- Xsorted indexes, and access to bibliographic databases. A fully operational
- Xproduction implementation of the Lout system including all these features
- Xand many others is freely available.
- X}
- END_OF_FILE
- if test 883 -ne `wc -c <'doc/tr.over/s0'`; then
- echo shar: \"'doc/tr.over/s0'\" unpacked with wrong size!
- fi
- # end of 'doc/tr.over/s0'
- fi
- if test -f 'doc/tr.over/s7' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'doc/tr.over/s7'\"
- else
- echo shar: Extracting \"'doc/tr.over/s7'\" \(1850 characters\)
- sed "s/^X//" >'doc/tr.over/s7' <<'END_OF_FILE'
- X@Section
- X @Title { Conclusion }
- X@Begin
- X@PP
- XThe Lout document formatting system permits features as diverse as page
- Xlayout and equation formatting to be implemented by definitions written
- Xin a high-level language. The consequent improvement in productivity
- Xhas allowed an unprecedented repertoire of advanced features to be
- Xpresented to the non-expert user.
- X@PP
- XTo future research in document formatting, Lout offers evidence of the
- Xutility of the functional paradigm, as well as two new abstractions:
- Xgalleys and cross references. These provide a secure foundation for
- Xfeatures which have proven very difficult to implement in the past.
- X@PP
- XA number of improvements to the current system can be envisaged. Better
- Xparagraph and page breaking algorithms could be added to the formatter
- Xwithout any change to the language; non-rectangular objects would be
- Xuseful in some places. Perhaps the most useful improvement would be the
- Xrepresentation of paragraphs as horizontal galleys, since this would allow
- Xthe full power of the language to be brought to bear on paragraph
- Xlayout, in contrast to the present built-in system which offers only the
- Xtraditional styles (ragged right, justified, and so on).
- X{ @Reference
- X @Tag { brooks91 }
- X @Type { JournalArticle }
- X @Author { Brooks, Kenneth P. }
- X @Title { Lilac: a two-view document editor }
- X @Journal { IEEE Computer }
- X @Volume { @Null }
- X @Pages { 7--19 }
- X @Year { 1991 }
- X}
- X@PP
- XThe author of a recent inter&-active document editor [{@Ref brooks91}]
- Xhas recommended that the interface be supported by a functional base
- Xlanguage, accessible to the expert user, for such purposes as page
- Xlayout definition and fine control over formatting. Lout appears to be
- Xan excellent candidate for such a language, because of its small size,
- Xprecision, and functional semantics.
- X@End @Section
- END_OF_FILE
- if test 1850 -ne `wc -c <'doc/tr.over/s7'`; then
- echo shar: \"'doc/tr.over/s7'\" unpacked with wrong size!
- fi
- # end of 'doc/tr.over/s7'
- fi
- if test -f 'doc/tr.tab/s0' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'doc/tr.tab/s0'\"
- else
- echo shar: Extracting \"'doc/tr.tab/s0'\" \(1096 characters\)
- sed "s/^X//" >'doc/tr.tab/s0' <<'END_OF_FILE'
- X@Report
- X @Title { Tab -- A Lout Package for Formatting Tables }
- X @Author { Jeffrey H. Kingston }
- X @Institution { Basser Department of Computer Science
- XUniversity of Sydney 2006
- XAustralia }
- X @DateLine { 22 December 1992 }
- X//
- X
- X@Abstract {
- XThis report describes the use of Tab, a package of definitions for
- Xproducing tables with the Lout document formatter:
- X@Display @Tab
- X hmargin { 0.4c }
- X vmargin { 0.3v }
- X side { single }
- X @Fmta { @Col @B @CC X @Over A,B,C }
- X @Fmtb { @Col @I A ! @Col B !! @Col C }
- X{
- X@Rowa
- X above { single }
- X X { Value of mathematical formulae (millions of dollars) }
- X@Rowb
- X above { double }
- X A { Quadratic formula }
- X B { @Eq { x ^= { minus b +- sqrt { b sup 2 - 4ac } } over 2a } }
- X C { 3^.5 }
- X@Rowb
- X below { single }
- X A { Binomial theorem }
- X B { @Eq { ( a + b ) sup n ^= big sum from k=0 to infty
- Xmatrix atleft { ( } atright { ) } { n above k } a sup k b sup n-k
- X} }
- X C { 12^ }
- X}
- XA wide variety of styles for columns and individual entries is provided,
- Xand entries may contain equations, figures, and other objects without
- Xrestriction.
- X}
- END_OF_FILE
- if test 1096 -ne `wc -c <'doc/tr.tab/s0'`; then
- echo shar: \"'doc/tr.tab/s0'\" unpacked with wrong size!
- fi
- # end of 'doc/tr.tab/s0'
- fi
- if test -f 'doc/tr.tab/s4' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'doc/tr.tab/s4'\"
- else
- echo shar: Extracting \"'doc/tr.tab/s4'\" \(1586 characters\)
- sed "s/^X//" >'doc/tr.tab/s4' <<'END_OF_FILE'
- X@Section
- X @Title { Aligned columns }
- X@Begin
- X@PP
- XColumns of numbers are often presented with decimal points aligned:
- X@CD @Tab
- X @Fmta { @Col A }
- X{
- X @Rowa A { 5^.46 }
- X @Rowa A { 128^.2 }
- X @Rowa A { 3^.4159 }
- X @Rowa A { 5772^ }
- X}
- XThis is achieved with Tab by placing the @Code "^" symbol (which
- Xactually comes from the DocumentLayout package) just before the
- Xalignment point in each entry:
- X@ID @Code {
- X"@Tab"
- X" @Fmta { @Col A }"
- X"{"
- X" @Rowa A { 5^.46 }"
- X" @Rowa A { 128^.2 }"
- X" @Rowa A { 3^.4159 }"
- X" @Rowa A { 5772^ }"
- X"}"
- X}
- XThe equals signs of equations can be aligned in the same way. The
- Xformat of such columns should not contain @Code "@CC" or {@Code "@RR"}.
- X@PP
- XThe simplest way to get a heading over an aligned column is to use the
- X@Code "^" symbol in the heading as well. If it is not possible to do
- Xthis, for example because the heading entry is a paragraph of text
- Xbroken over more than one line, the most viable alternative is to use
- X@Code "@Over" in the heading line's format to make the heading column
- Xspan over the aligned column:
- X@ID @Code {
- X"@Tab"
- X" @Fmta { @Col @CC H @Over A }"
- X" @Fmtb { @Col A }"
- X"{"
- X" @Rowa H { Heading }"
- X" @Rowb A { 5^.46 }"
- X" @Rowb A { 128^.2 }"
- X" @Rowb A { 3^.4159 }"
- X" @Rowb A { 5772^ }"
- X"}"
- X}
- Xfor example produces
- X@CD @Tab
- X @Fmta { @Col @CC H @Over A }
- X @Fmtb { @Col A }
- X{
- X @Rowa H { Heading }
- X @Rowb A { 5^.46 }
- X @Rowb A { 128^.2 }
- X @Rowb A { 3^.4159 }
- X @Rowb A { 5772^ }
- X}
- XUnfortunately, the aligned entries are left-justified in the column,
- Xnot centred.
- X@End @Section
- END_OF_FILE
- if test 1586 -ne `wc -c <'doc/tr.tab/s4'`; then
- echo shar: \"'doc/tr.tab/s4'\" unpacked with wrong size!
- fi
- # end of 'doc/tr.tab/s4'
- fi
- if test -f 'doc/tr.tab/s5' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'doc/tr.tab/s5'\"
- else
- echo shar: Extracting \"'doc/tr.tab/s5'\" \(1538 characters\)
- sed "s/^X//" >'doc/tr.tab/s5' <<'END_OF_FILE'
- X@Section
- X @Title { Margins }
- X@Begin
- X@PP
- XTab places a @I { vertical margin } above and below each row, and a
- X@I { horizontal margin } to the left and right of each column. (If
- Xthere are no side rules, the leftmost and rightmost margins are
- Xomitted.) The size of these margins is determined by two options to the
- X@Code "@Tab" symbol:
- X@ID @Code {
- X"@Tab"
- X" hmargin { 0.3c }"
- X" vmargin { 0.2v }"
- X" @Fmta { ... }"
- X"..."
- X}
- XShown here are the default values, 0.3 centimetres for the horizontal
- Xmargins, and 0.2 times the current inter-line spacing (denoted by the
- Xletter {@Code v}) for the vertical margins.
- X@PP
- XThe horizontal margin is fixed, but each row may have its own vertical margin:
- X@ID @Code {
- X"@Rowa"
- X" vmargin { 0.5vx }"
- X" A { ... }"
- X}
- XIf omitted, the @Code vmargin value is taken from the @Code "@Tab" option.
- X@PP
- XThe value shown here, {@Code "0.5vx"}, requests a vertical margin of
- Xhalf the current inter-line spacing, measured from the baseline of the
- Xentry rather than from its edge (this is what the @Code x means). This
- Xvalue is a good choice when the entries contain simple words or lines
- Xof text (i.e. no paragraphs, large equations, figures, etc.):
- X@CD {
- X@Tab
- X vmargin { 0.5vx }
- X @Fmta { @Col @Heading A ! @Col @Heading B }
- X @Fmtb { @Col A ! @Col @CC B }
- X{
- X @Rowa A { Course } B { Enrolment }
- X @Rowb A { Software Engineering } B { 174 }
- X @Rowb A { Complexity Theory } B { 37 }
- X}
- X}
- Xsince the lines of the table will then be separated evenly like
- Xthe lines in paragraphs.
- X@End @Section
- END_OF_FILE
- if test 1538 -ne `wc -c <'doc/tr.tab/s5'`; then
- echo shar: \"'doc/tr.tab/s5'\" unpacked with wrong size!
- fi
- # end of 'doc/tr.tab/s5'
- fi
- if test -f 'doc/tr.tab/setup' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'doc/tr.tab/setup'\"
- else
- echo shar: Extracting \"'doc/tr.tab/setup'\" \(736 characters\)
- sed "s/^X//" >'doc/tr.tab/setup' <<'END_OF_FILE'
- X
- X######################################################
- X# #
- X# Lout setup file for Tab paper. #
- X# #
- X# Jeffrey H. Kingston #
- X# 22 December 1992 #
- X# #
- X######################################################
- X
- X@SysInclude { ft }
- X@SysInclude { dl }
- X@SysInclude { eq }
- X@SysInclude { pas }
- X@SysInclude { fig }
- X@Include { tab }
- X
- X def @TeX { T{ /0.2fo E}X }
- X
- X def @Code
- X right x
- X { { Helvetica Base -1p } @Font lines @Break x
- X }
- X
- X@Use { @DocumentLayout }
- X
- X@SysDatabase @Reference { loutrefs }
- END_OF_FILE
- if test 736 -ne `wc -c <'doc/tr.tab/setup'`; then
- echo shar: \"'doc/tr.tab/setup'\" unpacked with wrong size!
- fi
- # end of 'doc/tr.tab/setup'
- fi
- if test -f 'evec/Ding.CEV' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'evec/Ding.CEV'\"
- else
- echo shar: Extracting \"'evec/Ding.CEV'\" \(1594 characters\)
- sed "s/^X//" >'evec/Ding.CEV' <<'END_OF_FILE'
- X.notdef .notdef .notdef .notdef .notdef
- X.notdef .notdef .notdef .notdef .notdef
- X.notdef .notdef .notdef .notdef .notdef
- X.notdef .notdef .notdef .notdef .notdef
- X.notdef .notdef .notdef .notdef .notdef
- X.notdef .notdef .notdef .notdef .notdef
- X.notdef .notdef space a1 a2
- Xa202 a3 a4 a5 a119
- Xa118 a117 a11 a12 a13
- Xa14 a15 a16 a105 a17
- Xa18 a19 a20 a21 a22
- Xa23 a24 a25 a26 a27
- Xa28 a6 a7 a8 a9
- Xa10 a29 a30 a31 a32
- Xa33 a34 a35 a36 a37
- Xa38 a39 a40 a41 a42
- Xa43 a44 a45 a46 a47
- Xa48 a49 a50 a51 a52
- Xa53 a54 a55 a56 a57
- Xa58 a59 a60 a61 a62
- Xa63 a64 a65 a66 a67
- Xa68 a69 a70 a71 a72
- Xa73 a74 a203 a75 a204
- Xa76 a77 a78 a79 a81
- Xa82 a83 a84 a97 a98
- Xa99 a100 .notdef .notdef .notdef
- X.notdef .notdef .notdef .notdef .notdef
- X.notdef .notdef .notdef .notdef .notdef
- X.notdef .notdef .notdef .notdef .notdef
- X.notdef .notdef .notdef .notdef .notdef
- X.notdef .notdef .notdef .notdef .notdef
- X.notdef .notdef .notdef .notdef .notdef
- X.notdef a101 a102 a103 a104
- Xa106 a107 a108 a112 a111
- Xa110 a109 a120 a121 a122
- Xa123 a124 a125 a126 a127
- Xa128 a129 a130 a131 a132
- Xa133 a134 a135 a136 a137
- Xa138 a139 a140 a141 a142
- Xa143 a144 a145 a146 a147
- Xa148 a149 a150 a151 a152
- Xa153 a154 a155 a156 a157
- Xa158 a159 a160 a161 a163
- Xa164 a196 a165 a192 a166
- Xa167 a168 a169 a170 a171
- Xa172 a173 a162 a174 a175
- Xa176 a177 a178 a179 a193
- Xa180 a199 a181 a200 a182
- X.notdef a201 a183 a184 a197
- Xa185 a194 a198 a186 a195
- Xa187 a188 a189 a190 a191
- X.notdef
- END_OF_FILE
- if test 1594 -ne `wc -c <'evec/Ding.CEV'`; then
- echo shar: \"'evec/Ding.CEV'\" unpacked with wrong size!
- fi
- # end of 'evec/Ding.CEV'
- fi
- if test -f 'evec/Latin1.CEV' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'evec/Latin1.CEV'\"
- else
- echo shar: Extracting \"'evec/Latin1.CEV'\" \(1956 characters\)
- sed "s/^X//" >'evec/Latin1.CEV' <<'END_OF_FILE'
- X.notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef
- X.notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef
- X.notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef
- X.notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef
- Xspace exclam quotedbl numbersign dollar percent ampersand quoteright
- Xparenleft parenright asterisk plus comma minus period slash
- Xzero one two three four five six seven
- Xeight nine colon semicolon less equal greater question
- Xat A B C D E F G
- XH I J K L M N O
- XP Q R S T U V W
- XX Y Z bracketleft backslash bracketright asciicircum underscore
- Xquoteleft a b c d e f g
- Xh i j k l m n o
- Xp q r s t u v w
- Xx y z braceleft bar braceright asciitilde .notdef
- X.notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef
- X.notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef
- Xdotlessi grave acute circumflex tilde macron breve dotaccent
- Xdieresis .notdef ring cedilla .notdef hungarumlaut ogonek caron
- Xspace exclamdown cent sterling currency yen brokenbar section
- Xdieresis copyright ordfeminine guillemotleft logicalnot hyphen registered macron
- Xdegree plusminus twosuperior threesuperior acute mu paragraph periodcentered
- Xcedilla onesuperior ordmasculine guillemotright onequarter onehalf threequarters questiondown
- XAgrave Aacute Acircumflex Atilde Adieresis Aring AE Ccedilla
- XEgrave Eacute Ecircumflex Edieresis Igrave Iacute Icircumflex Idieresis
- XEth Ntilde Ograve Oacute Ocircumflex Otilde Odieresis multiply
- XOslash Ugrave Uacute Ucircumflex Udieresis Yacute Thorn germandbls
- Xagrave aacute acircumflex atilde adieresis aring ae ccedilla
- Xegrave eacute ecircumflex edieresis igrave iacute icircumflex idieresis
- Xeth ntilde ograve oacute ocircumflex otilde odieresis divide
- Xoslash ugrave uacute ucircumflex udieresis yacute thorn ydieresis
- END_OF_FILE
- if test 1956 -ne `wc -c <'evec/Latin1.CEV'`; then
- echo shar: \"'evec/Latin1.CEV'\" unpacked with wrong size!
- fi
- # end of 'evec/Latin1.CEV'
- fi
- if test -f 'evec/Std.CEV' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'evec/Std.CEV'\"
- else
- echo shar: Extracting \"'evec/Std.CEV'\" \(1950 characters\)
- sed "s/^X//" >'evec/Std.CEV' <<'END_OF_FILE'
- X.notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef
- X.notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef
- X.notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef
- X.notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef
- Xspace exclam quotedbl numbersign dollar percent ampersand quoteright
- Xparenleft parenright asterisk plus comma hyphen period slash
- Xzero one two three four five six seven
- Xeight nine colon semicolon less equal greater question
- Xat A B C D E F G
- XH I J K L M N O
- XP Q R S T U V W
- XX Y Z bracketleft backslash bracketright asciicircum underscore
- Xquoteleft a b c d e f g
- Xh i j k l m n o
- Xp q r s t u v w
- Xx y z braceleft bar braceright asciitilde .notdef
- X.notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef
- X.notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef
- X.notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef
- X.notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef
- X.notdef exclamdown cent sterling fraction yen florin section
- Xcurrency quotesingle quotedblleft guillemotleft guilsinglleft guilsinglright fi fl
- X.notdef endash dagger daggerdbl periodcentered .notdef paragraph bullet
- Xquotesinglbase quotedblbase quotedblright guillemotright ellipsis perthousand .notdef questiondown
- X.notdef grave acute circumflex tilde macron breve dotaccent
- Xdieresis .notdef ring cedilla .notdef hungarumlaut ogonek caron
- Xemdash .notdef .notdef .notdef .notdef .notdef .notdef .notdef
- X.notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef
- X.notdef AE .notdef ordfeminine .notdef .notdef .notdef .notdef
- XLslash Oslash OE ordmasculine .notdef .notdef .notdef .notdef
- X.notdef ae .notdef .notdef .notdef dotlessi .notdef .notdef
- Xlslash oslash oe germandbls .notdef .notdef .notdef .notdef
- END_OF_FILE
- if test 1950 -ne `wc -c <'evec/Std.CEV'`; then
- echo shar: \"'evec/Std.CEV'\" unpacked with wrong size!
- fi
- # end of 'evec/Std.CEV'
- fi
- if test -f 'include/README' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'include/README'\"
- else
- echo shar: Extracting \"'include/README'\" \(753 characters\)
- sed "s/^X//" >'include/README' <<'END_OF_FILE'
- XDirectory lout/include
- X
- XThis directory contains Lout source files for
- Xa variety of standard packages and setup files:
- X
- X ft A file of font definitions
- X dl The DocumentLayout package
- X tl The ToyLayout package (for beginners to play with)
- X doc A setup file calling dl for simple documents
- X report A setup file calling dl for technical reports
- X book A setup file calling dl for books
- X eq The Eq equation formatting package
- X pas The Pas Pascal formatting package
- X fig The Fig figure drawing package
- X fig_prepend A PostScript file needed by fig
- X tab The Tab table formatting package
- X tab_prepend A PostScript file needed by Tab
- X lout.hyph Text file of hyphenation patterns
- X
- XJeffrey H. Kingston
- X22 December 1992
- X27 July 1993
- END_OF_FILE
- if test 753 -ne `wc -c <'include/README'`; then
- echo shar: \"'include/README'\" unpacked with wrong size!
- fi
- # end of 'include/README'
- fi
- echo shar: End of archive 34 \(of 35\).
- cp /dev/null ark34isdone
- MISSING=""
- for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 ; do
- if test ! -f ark${I}isdone ; then
- MISSING="${MISSING} ${I}"
- fi
- done
- if test "${MISSING}" = "" ; then
- echo You have unpacked all 35 archives.
- rm -f ark[1-9]isdone ark[1-9][0-9]isdone
- else
- echo You still must unpack the following archives:
- echo " " ${MISSING}
- fi
- exit 0
- exit 0 # Just in case...
-