home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Usenet 1994 October
/
usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso
/
misc
/
volume38
/
lout
/
part34
< prev
next >
Wrap
Text File
|
1993-08-11
|
75KB
|
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...