%!PS-Adobe-3.0
%%Creator: Basser Lout Version 3.39 (September 2010)
%%CreationDate: Tue Sep 21 13:16:16 2010
%%DocumentData: Binary
%%DocumentNeededResources: (atend)
%%DocumentSuppliedResources: (atend)
%%DocumentMedia: A4 595 842 0 white ()
%%PageOrder: Ascend
%%LanguageLevel: 2
%%Pages: (atend)
%%BoundingBox: 0 0 595 842
%%EndComments
%%BeginProlog
%%BeginResource: procset LoutStartUp
/cp_x 0 def
/cp_y 0 def
/louts 0 def
/loutv 0 def
/loutf 0 def
/ymark 0 def
/xmark 0 def
/ysize 0 def
/xsize 0 def
/save_cp { currentpoint /cp_y exch def /cp_x exch def } bind def
/restore_cp { cp_x cp_y moveto } bind def
/outline { gsave 1 1 1 setrgbcolor dup show save_cp
grestore true charpath stroke restore_cp } bind def
/m { 3 1 roll moveto show } bind def
/mo { 3 1 roll moveto outline } bind def
/s { exch currentpoint exch pop moveto show } bind def
/so { exch currentpoint exch pop moveto outline } bind def
/k { exch neg 0 rmoveto show } bind def
/ko { exch neg 0 rmoveto outline } bind def
/r { exch 0 rmoveto show } bind def
/ro { exch 0 rmoveto outline } bind def
/c { gsave 3 1 roll rmoveto show grestore } bind def
/co { gsave 3 1 roll rmoveto outline grestore } bind def
/ul { gsave setlinewidth dup 3 1 roll
moveto lineto stroke grestore } bind def
/in { 1440 mul } bind def
/cm { 567 mul } bind def
/pt { 20 mul } bind def
/em { 120 mul } bind def
/sp { louts mul } def
/vs { loutv mul } def
/ft { loutf mul } def
/dg { } def
/LoutGraphic {
/louts exch def
/loutv exch def
/loutf exch def
/ymark exch def
/xmark exch def
/ysize exch def
/xsize exch def
} def
/LoutGr2 { gsave translate LoutGraphic gsave } def
/LoutFont
{ findfont exch scalefont setfont
} bind def
/LoutRecode {
{ findfont dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding exch def
currentdict end definefont pop
}
stopped pop
} bind def
/PreEPSF_state 0 def
/dict_stack 0 def
/ops_count 0 def
/LoutStartEPSF { % prepare for EPSF inclusion
/PreEPSF_state save def
/dict_stack countdictstack def
/ops_count count 1 sub def
20 dict begin
/showpage {} def
0 setgray 0 setlinecap
1 setlinewidth 0 setlinejoin
10 setmiterlimit [] 0 setdash newpath
/languagelevel where
{ pop languagelevel
1 ne
{ false setstrokeadjust false setoverprint
} if
} if
} bind def
/LoutEPSFCleanUp { % clean up after EPSF inclusion
count ops_count sub { pop } repeat
countdictstack dict_stack sub { end } repeat
PreEPSF_state restore
} bind def
% Find current texture (may be null)
% - LoutCurrentP p
/LoutCurrentP
{
currentcolorspace
0 get /Pattern eq
{
[ currentcolor ]
dup length 1 sub get
}
{
null
} ifelse
} def
% Find current color and color space
% - LoutCurrentCCS c cs
/LoutCurrentCCS
{
LoutCurrentP dup null eq
{
pop [ currentcolor ]
currentcolorspace
}
{
dup
/UnderlyingColor get
exch /UnderlyingColorSpace get
} ifelse
} def
% Install c, cs, and (a copy of) p into graphics state
% c cs p LoutSetCCSP -
/LoutSetCCSP
{
dup null eq
{
pop setcolorspace
aload pop setcolor
}
{
% copy pattern dictionary
12 dict copy
% record cs and c in p
dup /UnderlyingColorSpace 3 index
put
dup /UnderlyingColor 4 index
put
% do setcolorspace and setcolor
dup /PaintType get 1 eq
{
[ /Pattern ] setcolorspace
setcolor
pop pop
}
{
[ /Pattern
4 -1 roll
] setcolorspace
exch aload length 1 add
-1 roll
setcolor
} ifelse
} ifelse
} bind def
% num LoutSetGray -
/LoutSetGray
{
[ 2 1 roll ]
[ /DeviceGray ]
LoutCurrentP
LoutSetCCSP
} bind def
% r g b LoutSetRGBColor -
/LoutSetRGBColor
{
[ 4 1 roll ]
[ /DeviceRGB ]
LoutCurrentP
LoutSetCCSP
} bind def
% h s b LoutSetHSBColor -
/LoutSetHSBColor
{
gsave sethsbcolor
currentrgbcolor grestore
LoutSetRGBColor
} bind def
% c m y k LoutSetRGBColor -
/LoutSetCMYKColor
{
[ 5 1 roll ]
[ /DeviceCMYK ]
LoutCurrentP
LoutSetCCSP
} bind def
% p LoutSetTexture -
/LoutSetTexture
{
LoutCurrentCCS
3 -1 roll
LoutSetCCSP
} bind def
% <scale > <scalex> <scaley> <rotate> <hshift> <vshift>
% <painttype> <bbox> <xstep> <ystep> <paintproc> LoutMakeTexture p
/LoutMakeTexture
{
12 dict begin
/PaintProc exch def
/YStep exch def
/XStep exch def
/BBox exch def
/PaintType exch def
/PatternType 1 def
/TilingType 1 def
currentdict end
7 1 roll
matrix translate
5 1 roll
matrix rotate
4 1 roll
matrix scale
exch dup matrix scale
matrix concatmatrix
matrix concatmatrix
matrix concatmatrix
/makepattern where
{
pop makepattern
}
{
pop pop null
} ifelse
} bind def
/LoutTextureSolid
{
null
LoutSetTexture
} bind def
%%EndResource
%%BeginResource: procset LoutTabPrependGraphic
% @PrependGraphic file /home/jeff/lout.lib/include/tabf.lpg
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
% PostScript @SysPrependGraphic file for @Tab %
% %
% This file has been placed in the public domain %
% by its author, Jeffrey H. Kingston %
% %
% To assist in avoiding name clashes, the names %
% of all these symbols begin with "ltab". %
% %
% Jeffrey H. Kingston %
% 24 September 1991 %
% 22 December 1992 %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% linewidth ltabhs -
% horizontal single line
/ltabhs
{ 0 0 moveto xsize 0 lineto
setlinewidth 0 setlinecap stroke
} def
% linewidth ltabhsp -
% horizontal single line with projecting ends
/ltabhsp
{ 0 0 moveto xsize 0 lineto
setlinewidth 2 setlinecap stroke
} def
% linewidth ltabhd -
% horizontal double line
/ltabhd
{ dup dup
0 0 moveto xsize 0 lineto
0 exch 3 mul moveto xsize exch 3 mul lineto
setlinewidth 0 setlinecap stroke
} def
% linewidth ltabhdb -
% horizontal double line below mark
/ltabhdb
{ dup dup
0 0 moveto xsize 0 lineto
0 exch -3 mul moveto xsize exch -3 mul lineto
setlinewidth 0 setlinecap stroke
} def
% linewidth ltabhdnw -
% horizontal double line with northwest corner
/ltabhdnw
{ dup dup dup dup
0 0 moveto xsize 0 lineto
xsize exch 3 mul moveto
-3 mul exch 3 mul lineto
-3 mul 0 lineto
setlinewidth 0 setlinejoin 2 setlinecap stroke
} def
% linewidth ltabhdne -
% horizontal double line with northeast corner
/ltabhdne
{ dup dup dup dup
0 0 moveto xsize 0 lineto
0 exch 3 mul moveto
3 mul xsize add exch 3 mul lineto
3 mul xsize add 0 lineto
setlinewidth 0 setlinejoin 2 setlinecap stroke
} def
% linewidth ltabhdsw -
% horizontal double line with southwest corner
/ltabhdsw
{ dup dup dup dup
0 0 moveto xsize 0 lineto
xsize exch -3 mul moveto
-3 mul exch -3 mul lineto
-3 mul 0 lineto
setlinewidth 0 setlinejoin 2 setlinecap stroke
} def
% linewidth ltabhdse -
% horizontal double line with southeast corner
/ltabhdse
{ dup dup dup dup
0 0 moveto xsize 0 lineto
0 exch -3 mul moveto
3 mul xsize add exch -3 mul lineto
3 mul xsize add 0 lineto
setlinewidth 0 setlinejoin 2 setlinecap stroke
} def
% linewidth ltabvs -
% vertical single line
/ltabvs
{ 0 0 moveto 0 ysize lineto
setlinewidth 0 setlinecap stroke
} def
% linewidth ltabvd -
% vertical double line
/ltabvd
{ dup dup
0 0 moveto 0 ysize lineto
-3 mul 0 moveto -3 mul ysize lineto
setlinewidth 0 setlinecap stroke
} def
% linewidth ltabvdr -
% vertical double line to right of mark
/ltabvdr
{ dup dup
0 0 moveto 0 ysize lineto
3 mul 0 moveto 3 mul ysize lineto
setlinewidth 0 setlinecap stroke
} def
%%EndResource
%%BeginResource: procset LoutFigPrependGraphic
% @PrependGraphic file /home/jeff/lout.lib/include/figf.lpg
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
% PostScript @SysPrependGraphic file for @Fig Jeffrey H. Kingston %
% Version 2.0 (includes CIRCUM label) January 1992 %
% %
% This file has been placed in the public domain by its author, %
% Jeffrey H. Kingston %
% %
% Although Fig is now obsolete I have updated it 20 October 2002 %
% to work with textures, i.e. replacing setrgbcolor with %
% LoutSetRGBColor. %
% %
% To assist in avoiding name clashes, the names of all symbols %
% defined here begin with "lfig". However, this is not feasible %
% with user-defined labels and some labels used by users. %
% %
% <point> is two numbers, a point. %
% <length> is one number, a length %
% <angle> is one number, an angle in degrees %
% <dashlength> is one number, the preferred length of a dash %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
errordict begin
/handleerror
{
{ /Times-Roman findfont 8 pt scalefont setfont
0 setgray 4 pt 4 pt moveto
$error /errorname get
dup lfigdict exch known
{ lfigdict exch get }
{ 30 string cvs } ifelse
show
( Command: ) show
$error /command get 30 string cvs show
} stopped {} if
showpage stop
} def
end
% concat strings: <string> <string> lfigconcat <string>
% must be defined outside lfigdict since used in lfigpromotelabels
/lfigconcat
{ 2 copy length exch length add string
dup 0 4 index putinterval
dup 3 index length 3 index putinterval
3 1 roll pop pop
} def
% <string> lfigdebugprint -
% must be defined outside lfigdict since used in arbitrary places
% /lfigdebugprint
% { print
% (; operand stack:\n) print
% count copy
% count 2 idiv
% { ==
% (\n) print
% } repeat
% (\n) print
% } def
/lfigdict 120 dict def
lfigdict begin
% error messages
/dictfull (dictfull error: too many labels?) def
/dictstackoverflow (dictstackoverflow error: labels nested too deeply?) def
/execstackoverflow (execstackoverflow error: figure nested too deeply?) def
/limitcheck (limitcheck error: figure nested too deeply or too large?) def
/syntaxerror (syntaxerror error: syntax error in text of figure?) def
/typecheck (typecheck error: syntax error in text of figure?) def
/undefined (undefined error: unknown or misspelt label?) def
/VMError (VMError error: run out of memory?) def
% push pi onto stack: - lfigpi <num>
/lfigpi 3.14159 def
% arc directions
/clockwise false def
/anticlockwise true def
% maximum of two numbers: <num> <num> lfigmax <num>
/lfigmax { 2 copy gt { pop } { exch pop } ifelse } def
% minimum of two numbers: <num> <num> lfigmin <num>
/lfigmin { 2 copy lt { pop } { exch pop } ifelse } def
% add two points: <point> <point> lfigpadd <point>
/lfigpadd { exch 3 1 roll add 3 1 roll add exch } def
% subtract first point from second: <point> <point> lfigpsub <point>
/lfigpsub { 3 2 roll sub 3 1 roll exch sub exch } def
% max two points: <point> <point> lfigpmax <point>
/lfigpmax { exch 3 1 roll lfigmax 3 1 roll lfigmax exch } def
% min two points: <point> <point> lfigpmin <point>
/lfigpmin { exch 3 1 roll lfigmin 3 1 roll lfigmin exch } def
% scalar multiplication: <point> <num> lfigpmul <point>
/lfigpmul { dup 3 1 roll mul 3 1 roll mul exch } def
% point at angle and distance: <point> <length> <angle> lfigatangle <point>
/lfigatangle { 2 copy cos mul 3 1 roll sin mul lfigpadd } def
% angle from one point to another: <point> <point> lfigangle <angle>
/lfigangle { lfigpsub 2 copy 0 eq exch 0 eq and {pop} {exch atan} ifelse } def
% distance between two points: <point> <point> lfigdistance <length>
/lfigdistance { lfigpsub dup mul exch dup mul add sqrt } def
% difference in x coords: <point> <point> lfigxdistance <length>
/lfigxdistance { pop 3 1 roll pop sub } def
%difference in y coords: <point> <point> lfigydistance <length>
/lfigydistance { 3 1 roll pop sub exch pop } def
% stroke a solid line: <length> <dashlength> lfigsolid -
/lfigsolid
{ pop pop [] 0 setdash stroke
} def
% stroke a lfigdashed line: <length> <dashlength> lfigdashed -
/lfigdashed
{ 2 copy div 2 le 1 index 0 le or
{ exch pop 1 pt lfigmax [ exch dup ] 0 setdash }
{ dup [ exch 4 2 roll 2 copy div
1 sub 2 div ceiling dup 4 1 roll
1 add mul sub exch div ] 0 setdash
} ifelse stroke
} def
% stroke a lfigcdashed line: <length> <dashlength> lfigcdashed -
/lfigcdashed
{ 2 copy le 1 index 0 le or
{ exch pop 1 pt lfigmax [ exch dup ] dup 0 get 2 div setdash }
{ dup [ 4 2 roll exch 2 copy exch div
2 div ceiling div 1 index sub
] exch 2 div setdash
} ifelse stroke
} def
% stroke a dotted line: <length> <dashlength> lfigdotted -
/lfigdotted
{ 2 copy le 1 index 0 le or
{ exch pop 1 pt lfigmax [ exch 0 exch ] 0 setdash }
{ 1 index exch div ceiling div
[ 0 3 2 roll ] 0 setdash
} ifelse stroke
} def
% stroke a noline line: <length> <dashlength> lfignoline -
/lfignoline
{ pop pop
} def
% painting (i.e. filling): - lfigwhite - (etc.)
/lfignopaint { } def
/lfignochange { fill } def
/lfigdarkblue { 0.0 0.0 0.5 LoutSetRGBColor fill } def
/lfigblue { 0.0 0.0 1.0 LoutSetRGBColor fill } def
/lfiglightblue { 0.5 0.5 1.0 LoutSetRGBColor fill } def
/lfigdarkgreen { 0.0 0.5 0.0 LoutSetRGBColor fill } def
/lfiggreen { 0.0 1.0 0.0 LoutSetRGBColor fill } def
/lfiglightgreen { 0.5 1.0 0.5 LoutSetRGBColor fill } def
/lfigdarkred { 0.5 0.0 0.0 LoutSetRGBColor fill } def
/lfigred { 1.0 0.0 0.0 LoutSetRGBColor fill } def
/lfiglightred { 1.0 0.5 0.5 LoutSetRGBColor fill } def
/lfigdarkcyan { 0.0 0.5 0.5 LoutSetRGBColor fill } def
/lfigcyan { 0.0 1.0 1.0 LoutSetRGBColor fill } def
/lfiglightcyan { 0.5 1.0 1.0 LoutSetRGBColor fill } def
/lfigdarkmagenta { 0.5 0.0 0.5 LoutSetRGBColor fill } def
/lfigmagenta { 1.0 0.0 1.0 LoutSetRGBColor fill } def
/lfiglightmagenta { 1.0 0.5 1.0 LoutSetRGBColor fill } def
/lfigdarkyellow { 0.5 0.5 0.0 LoutSetRGBColor fill } def
/lfigyellow { 1.0 1.0 0.0 LoutSetRGBColor fill } def
/lfiglightyellow { 1.0 1.0 0.5 LoutSetRGBColor fill } def
/lfigdarkgray { 0.2 0.2 0.2 LoutSetRGBColor fill } def
/lfiggray { 0.5 0.5 0.5 LoutSetRGBColor fill } def
/lfiglightgray { 0.8 0.8 0.8 LoutSetRGBColor fill } def
/lfigdarkgrey { 0.2 0.2 0.2 LoutSetRGBColor fill } def
/lfiggrey { 0.5 0.5 0.5 LoutSetRGBColor fill } def
/lfiglightgrey { 0.8 0.8 0.8 LoutSetRGBColor fill } def
/lfigblack { 0.0 0.0 0.0 LoutSetRGBColor fill } def
/lfigwhite { 1.0 1.0 1.0 LoutSetRGBColor fill } def
% line caps (and joins, not currently used)
/lfigbutt 0 def
/lfiground 1 def
/lfigprojecting 2 def
/lfigmiter 0 def
/lfigbevel 2 def
% shape and labels of the @Box symbol
/lfigbox
{
0 0 /SW lfigpointdef
xsize 0 /SE lfigpointdef
xsize ysize /NE lfigpointdef
0 ysize /NW lfigpointdef
SE 0.5 lfigpmul /S lfigpointdef
NW 0.5 lfigpmul /W lfigpointdef
W SE lfigpadd /E lfigpointdef
S NW lfigpadd /N lfigpointdef
NE 0.5 lfigpmul /CTR lfigpointdef
[ CTR NE lfigpsub /lfigboxcircum cvx ] lfigcircumdef
SW SE NE NW SW
} def
% shape and labels of the @CurveBox symbol
/lfigcurvebox
{
xsize 0.5 mul ysize 0.5 mul /CTR lfigpointdef
xsize 0.5 mul 0 /S lfigpointdef
xsize ysize 0.5 mul /E lfigpointdef
xsize 0.5 mul ysize /N lfigpointdef
0 ysize 0.5 mul /W lfigpointdef
xmark 0.293 mul xmark 0.293 mul /SW lfigpointdef
xsize xmark 0.293 mul sub xmark 0.293 mul /SE lfigpointdef
xsize xmark 0.293 mul sub ysize xmark 0.293 mul sub /NE lfigpointdef
xmark 0.293 mul ysize xmark 0.293 mul sub /NW lfigpointdef
[ xsize ysize 0.5 lfigpmul xmark /lfigcurveboxcircum cvx ] lfigcircumdef
xmark 0
xsize xmark sub 0
[ xsize xmark sub xmark ]
xsize xmark
xsize ysize xmark sub
[ xsize xmark sub ysize xmark sub ]
xsize xmark sub ysize
xmark ysize
[ xmark ysize xmark sub ]
0 ysize xmark sub
0 xmark
[ xmark xmark ]
xmark 0
} def
% shadow of the @ShadowBox symbol
% its shape and labels are done, somewhat inaccurately, with lfigbox
/lfigshadow
{ xmark 2 mul 0 moveto xsize 0 lineto
xsize ysize xmark 2 mul sub lineto
xsize xmark sub ysize xmark 2 mul sub lineto
xsize xmark sub xmark lineto
xmark 2 mul xmark lineto closepath fill
} def
% shape and labels of the @Square symbol
/lfigsquare
{
xsize ysize 0.5 lfigpmul /CTR lfigpointdef
CTR xsize xsize ysize ysize lfigpmax 0.5 lfigpmul lfigpadd /NE lfigpointdef
CTR 0 0 CTR NE lfigdistance 135 lfigatangle lfigpadd /NW lfigpointdef
CTR 0 0 CTR NE lfigdistance 225 lfigatangle lfigpadd /SW lfigpointdef
CTR 0 0 CTR NE lfigdistance 315 lfigatangle lfigpadd /SE lfigpointdef
SW 0.5 lfigpmul SE 0.5 lfigpmul lfigpadd /S lfigpointdef
NW 0.5 lfigpmul NE 0.5 lfigpmul lfigpadd /N lfigpointdef
SW 0.5 lfigpmul NW 0.5 lfigpmul lfigpadd /W lfigpointdef
SE 0.5 lfigpmul NE 0.5 lfigpmul lfigpadd /E lfigpointdef
[ CTR NE lfigpsub /lfigboxcircum cvx ] lfigcircumdef
SW SE NE NW SW
} def
% shape and labels of the @Diamond symbol
/lfigdiamond
{
xsize 0 0.5 lfigpmul /S lfigpointdef
0 ysize 0.5 lfigpmul /W lfigpointdef
S W lfigpadd /CTR lfigpointdef
CTR W lfigpadd /N lfigpointdef
CTR S lfigpadd /E lfigpointdef
[ xsize ysize 0.5 lfigpmul /lfigdiamondcircum cvx ] lfigcircumdef
S E N W S
} def
% shape and labels of the @Ellipse symbol
/lfigellipse
{
xsize 0 0.5 lfigpmul /S lfigpointdef
0 ysize 0.5 lfigpmul /W lfigpointdef
S W lfigpadd /CTR lfigpointdef
CTR W lfigpadd /N lfigpointdef
CTR S lfigpadd /E lfigpointdef
CTR xsize 0 0.3536 lfigpmul lfigpadd 0 ysize 0.3536 lfigpmul lfigpadd /NE lfigpointdef
0 ysize 0.3536 lfigpmul CTR xsize 0 0.3536 lfigpmul lfigpadd lfigpsub /SE lfigpointdef
xsize 0 0.3536 lfigpmul CTR lfigpsub 0 ysize 0.3536 lfigpmul lfigpadd /NW lfigpointdef
0 ysize 0.3536 lfigpmul xsize 0 0.3536 lfigpmul CTR lfigpsub lfigpsub /SW lfigpointdef
[ xsize ysize 0.5 lfigpmul /lfigellipsecircum cvx ] lfigcircumdef
S [ CTR ] E [ CTR ] N [ CTR ] W [ CTR ] S
} def
% shape and labels of the @Circle symbol
/lfigcircle
{
xsize ysize 0.5 lfigpmul /CTR lfigpointdef
CTR xsize 0 ysize 0 lfigpmax 0.5 lfigpmul lfigpadd /E lfigpointdef
CTR 0 0 CTR E lfigdistance 45 lfigatangle lfigpadd /NE lfigpointdef
CTR 0 0 CTR E lfigdistance 90 lfigatangle lfigpadd /N lfigpointdef
CTR 0 0 CTR E lfigdistance 135 lfigatangle lfigpadd /NW lfigpointdef
CTR 0 0 CTR E lfigdistance 180 lfigatangle lfigpadd /W lfigpointdef
CTR 0 0 CTR E lfigdistance 225 lfigatangle lfigpadd /SW lfigpointdef
CTR 0 0 CTR E lfigdistance 270 lfigatangle lfigpadd /S lfigpointdef
CTR 0 0 CTR E lfigdistance 315 lfigatangle lfigpadd /SE lfigpointdef
[ S E lfigpsub /lfigellipsecircum cvx ] lfigcircumdef
S [ CTR ] E [ CTR ] N [ CTR ] W [ CTR ] S
} def
% shape and labels of the @HLine and @HArrow symbols
/lfighline
{
0 ymark lfigprevious /FROM lfigpointdef
xsize ymark lfigprevious /TO lfigpointdef
} def
% shape and labels of the @VLine and @VArrow symbols
/lfigvline
{
xmark ysize lfigprevious /FROM lfigpointdef
xmark 0 lfigprevious /TO lfigpointdef
} def
% points of a polygon around base with given no of sides, vert init angle:
% <sides> <angle> figpolygon <point> ... <point>
/lfigpolygon
{ xsize ysize 0.5 lfigpmul /CTR lfigpointdef
90 sub CTR 2 copy lfigmax 5 3 roll
[ 4 copy pop /lfigpolycircum cvx ] lfigcircumdef
exch dup 360 exch div exch
1 1 3 2 roll
{ 4 string cvs (P) exch lfigconcat cvn
6 copy pop pop lfigatangle 2 copy 10 2 roll
3 2 roll lfigpointdef
dup 3 1 roll add exch
} for
pop lfigatangle
} def
% next array element: <array> <index> lfiggetnext <array> <index> <any> true
% or <array> <index> false
/lfiggetnext
{ 2 copy exch length ge
{ false }
{ 2 copy get exch 1 add exch true } ifelse
} def
% check whether thing is number: <any> lfigisnumbertype <any> <bool>
/lfigisnumbertype
{ dup type dup
/integertype eq exch /realtype eq or
} def
% check whether thing is an array: <any> lfigisarraytype <any> <bool>
/lfigisarraytype { dup type /arraytype eq } def
% get next item: <array> <index> lfiggetnextitem <array> <index> 0
% or <array> <index> <array> 1
% or <array> <index> <point> 2
/lfiggetnextitem
{ lfiggetnext
{ lfigisarraytype
{ 1
}
{ lfigisnumbertype
{ 3 1 roll
lfiggetnext
{ lfigisnumbertype
{ 4 3 roll exch 2
}
{ pop 3 2 roll pop 0
} ifelse
}
{ 3 2 roll pop 0
} ifelse
}
{ pop 0
} ifelse
} ifelse
}
{ 0
} ifelse
} def
% set arc path: bool x1 y1 x2 y2 x0 y0 lfigsetarc <angle> <angle> <dist>
% the path goes from x1 y1 to x2 y2 about centre x0 y0,
% anticlockwise if bool is true else clockwise.
% The orientations of backwards pointing and forwards pointing
% arrowheads are returned in the two angles, and
% the length of the arc is returned in <dist>.
/lfigsetarc
{
20 dict begin
matrix currentmatrix 8 1 roll
2 copy translate 2 copy 8 2 roll
4 2 roll lfigpsub 6 2 roll lfigpsub
dup /y1 exch def dup mul /y1s exch def
dup /x1 exch def dup mul /x1s exch def
dup /y2 exch def dup mul /y2s exch def
dup /x2 exch def dup mul /x2s exch def
y1s y2s eq
{ -1
}
{ y1s x2s mul y2s x1s mul sub y1s y2s sub div
} ifelse
/da exch def
x1s x2s eq
{ -1
}
{ x1s y2s mul x2s y1s mul sub x1s x2s sub div
} ifelse
/db exch def
da 0 gt db 0 gt and
{ /LMax da sqrt db sqrt lfigmax def
/scalex da sqrt LMax div def
/scaley db sqrt LMax div def
scalex scaley scale
0 0 LMax
0 0 x1 scalex mul y1 scaley mul lfigangle
0 0 x2 scalex mul y2 scaley mul lfigangle
2 copy eq { 360 add } if
2 copy 8 2 roll
5 index { arc } { arcn } ifelse
2 index 1 index
{ 90 sub } { 90 add } ifelse
dup sin scaley mul exch cos scalex mul atan
2 index 2 index
{ 90 add } { 90 sub } ifelse
dup sin scaley mul exch cos scalex mul atan
5 2 roll % res1 res2 ang1 ang2 anticlockwise
{ exch sub } { sub } ifelse
dup 0 le { 360 add } if lfigpi mul LMax mul 180 div
}
{ 0 0 x1 y1 lfigdistance 0 0 x2 y2 lfigdistance eq
0 0 x1 y1 lfigdistance 0 gt and
{ 0 0
0 0 x1 y1 lfigdistance
0 0 x1 y1 lfigangle
0 0 x2 y2 lfigangle
2 copy eq { 360 add } if
2 copy 8 2 roll
5 index { arc } { arcn } ifelse
2 index 1 index
{ 90 sub } { 90 add } ifelse
2 index 2 index
{ 90 add } { 90 sub } ifelse
5 2 roll % res1 res2 ang1 ang2 clockwise
{ exch sub } { sub } ifelse
dup 0 le { 360 add } if lfigpi mul 0 0 x1 y1 lfigdistance mul 180 div
}
{ x2 y2 lineto pop
x2 y2 x1 y1 lfigangle
x1 y1 x2 y2 lfigangle
x1 y1 x2 y2 lfigdistance
} ifelse
} ifelse
4 -1 roll setmatrix
end
} def
% lfigsetcurve: set up a Bezier curve from x0 y0 to x3 y3
% and return arrowhead angles and length of curve (actually 0)
% x0 y0 x1 y1 x2 y2 x3 y3 lfigsetcurve <angle> <angle> <length>
/lfigsetcurve
{ 8 copy curveto pop pop
lfigangle
5 1 roll
4 2 roll lfigangle
exch
0
} def
% lfigpaintpath: paint a path of the given shape
% /paint [ shape ] lfigpaintpath -
/lfigpaintpath
{
10 dict begin
0 newpath
/prevseen false def
/curveseen false def
{ lfiggetnextitem
dup 0 eq { pop exit }
{ 1 eq
{ /curveseen true def
/curve exch def
curve length 0 eq { /curveseen false def } if
}
{ /ycurr exch def
/xcurr exch def
prevseen
{ curveseen
{ curve length 4 eq
{ xprev yprev
curve 0 get curve 1 get
curve 2 get curve 3 get
xcurr ycurr
lfigsetcurve pop pop pop
}
{ xprev yprev xcurr ycurr
curve length 1 ge { curve 0 get } { 0 } ifelse
curve length 2 ge { curve 1 get } { 0 } ifelse
curve length 3 ge { curve 2 get } { true } ifelse
7 1 roll
lfigsetarc pop pop pop
} ifelse
}
{ xcurr ycurr lineto
} ifelse
}
{ xcurr ycurr moveto
} ifelse
/xprev xcurr def
/yprev ycurr def
/prevseen true def
/curveseen false def
} ifelse
} ifelse
} loop pop pop cvx exec
end
} def
% stroke a path of the given shape in the given linestyle and dash length.
% Return the origin and angle of the backward and forward arrow heads.
% dashlength /linestyle [shape] lfigdopath [<point> <angle>] [<point> <angle>]
/lfigdopath
{
10 dict begin
0
/prevseen false def
/curveseen false def
/backarrow [] def
/fwdarrow [] def
{
lfiggetnextitem
dup 0 eq { pop exit }
{
1 eq
{ /curveseen true def
/curve exch def
curve length 0 eq { /prevseen false def } if
}
{ /ycurr exch def
/xcurr exch def
prevseen
{ newpath xprev yprev moveto
curveseen
{ curve length 4 eq
{ xprev yprev
curve 0 get curve 1 get
curve 2 get curve 3 get
xcurr ycurr lfigsetcurve
}
{ xprev yprev xcurr ycurr
curve length 1 ge { curve 0 get } { 0 } ifelse
curve length 2 ge { curve 1 get } { 0 } ifelse
curve length 3 ge { curve 2 get } { true } ifelse
7 1 roll
lfigsetarc
} ifelse
}
{ xcurr ycurr lineto
xcurr ycurr xprev yprev lfigangle dup 180 sub
xprev yprev xcurr ycurr lfigdistance
} ifelse
6 index 6 index cvx exec
[ xprev yprev 5 -1 roll ]
backarrow length 0 eq
{ /backarrow exch def }
{ pop } ifelse
[ xcurr ycurr 4 -1 roll ] /fwdarrow exch def
} if
/xprev xcurr def
/yprev ycurr def
/prevseen true def
/curveseen false def
} ifelse
} ifelse
} loop
pop pop pop pop
backarrow length 0 eq { [ 0 0 0 ] } { backarrow } ifelse
fwdarrow length 0 eq { [ 0 0 0 ] } { fwdarrow } ifelse
end
} def
% lfigdoarrow: draw an arrow head of given form
% dashlength /lstyle /pstyle hfrac height width [ <point> <angle> ] lfigdoarrow -
/lfigdoarrow
{ matrix currentmatrix 8 1 roll
dup 0 get 1 index 1 get translate
2 get rotate
[ 2 index neg 2 index 0 0
3 index 3 index neg
1 index 10 index mul 0
7 index 7 index ]
4 1 roll pop pop pop
dup 3 1 roll
gsave lfigpaintpath grestore lfigdopath pop pop
setmatrix
} def
% arrow head styles
/lfigopen 0.0 def
/lfighalfopen 0.5 def
/lfigclosed 1.0 def
% stroke no arrows, forward, back, and both
/lfignoarrow { pop pop pop pop pop pop pop pop } def
/lfigforward { 7 -1 roll lfigdoarrow pop } def
/lfigback { 8 -2 roll pop lfigdoarrow } def
/lfigboth { 8 -1 roll 7 copy lfigdoarrow pop 7 -1 roll lfigdoarrow } def
% lfigprevious: return previous point on path
/lfigprevious
{ lfigisnumbertype
{ 2 copy }
{ lfigisarraytype
{ 2 index 2 index }
{ 0 0 }
ifelse
} ifelse
} def
% label a point in 2nd top dictionary: <point> /name lfigpointdef -
/lfigpointdef
{
% (Entering lfigpointdef) lfigdebugprint
[ 4 2 roll transform
/itransform cvx ] cvx
currentdict end
3 1 roll
% currentdict length currentdict maxlength lt
% { def }
% { exec moveto (too many labels) show stop }
% ifelse
def
begin
% (Leaving lfigpointdef) lfigdebugprint
} def
% promote labels from second top to third top dictionary
% <string> lfigpromotelabels -
/lfigpromotelabels
{
% (Entering lfigpromotelabels) lfigdebugprint
currentdict end exch currentdict end
{ exch 20 string cvs 2 index
(@) lfigconcat exch lfigconcat cvn exch def
} forall pop begin
% (Leaving lfigpromotelabels) lfigdebugprint
} def
% show labels (except CIRCUM): - lfigshowlabels -
/lfigshowlabels
{
% (Entering lfigshowlabels) lfigdebugprint
currentdict end
currentdict
{ 1 index 20 string cvs (CIRCUM) search % if CIRCUM in key
{ pop pop pop pop pop }
{ pop cvx exec 2 copy
newpath 1.5 pt 0 360 arc
0 setgray fill
/Times-Roman findfont 8 pt scalefont setfont
moveto 0.2 cm 0.1 cm rmoveto 20 string cvs show
}
ifelse
} forall
begin
% (Leaving lfigshowlabels) lfigdebugprint
} def
% fix an angle to 0 <= res < 360: <angle> lfigfixangle <angle>
/lfigfixangle
{
% (Entering lfigfixangle) lfigdebugprint
{ dup 0 ge { exit } if
360 add
} loop
{ dup 360 lt { exit } if
360 sub
} loop
% (Leaving lfigfixangle) lfigdebugprint
} def
% find point on circumference of box: alpha a b lfigboxcircum x y
/lfigboxcircum
{
% (Entering lfigboxcircum) lfigdebugprint
4 dict begin
/b exch def
/a exch def
lfigfixangle /alpha exch def
0 0 a b lfigangle /theta exch def
% if alpha <= theta, return (a, a*tan(alpha))
alpha theta le
{ a a alpha sin mul alpha cos div }
{
% else if alpha <= 180 - theta, return (b*cot(alpha), b)
alpha 180 theta sub le
{ b alpha cos mul alpha sin div b }
{
% else if alpha <= 180 + theta, return (-a, -a*tan(alpha))
alpha 180 theta add le
{ a neg a neg alpha sin mul alpha cos div }
{
% else if alpha <= 360 - theta, return (-b*cot(alpha), -b)
alpha 360 theta sub le
{ b neg alpha cos mul alpha sin div b neg }
{
% else 360 - theta <= alpha, return (a, a*tan(alpha))
a a alpha sin mul alpha cos div
} ifelse
} ifelse
} ifelse
} ifelse
end
% (Leaving lfigboxcircum) lfigdebugprint
} def
% find quadratic roots (assume a != 0): a b c lfigqroots x1 x2 2
% or x2 1
% or 0
/lfigqroots
{
4 dict begin
/c exch def
/b exch def
/a exch def
/disc b b mul 4 a c mul mul sub def
disc 0 lt
{ 0
}
{ disc 0 eq
{ b neg 2 a mul div
1
}
{ b neg disc sqrt add 2 a mul div
b neg disc sqrt sub 2 a mul div
2
}
ifelse
}
ifelse
end
} def
% work our which quadrant: <angle> lfigquadrant <0-3>
/lfigquadrant
{ dup 90 lt
{ pop 0
}
{ dup 180 lt
{ pop 1
}
{ 270 lt
{ 2
}
{ 3
} ifelse
} ifelse
} ifelse
} def
% find curvebox circum, assuming upper right quadrant: alpha a b xmk lfigcb x y
/lfigcb
{
6 dict begin
/xmk exch def
/b exch def
/a exch def
/alpha exch def
/theta1 0 0 a b xmk sub lfigangle def
/theta2 0 0 a xmk sub b lfigangle def
alpha theta1 le
{ % if alpha <= theta1, return (a, a*tan(alpha))
a a alpha sin mul alpha cos div
}
{ alpha theta2 ge
{ % else if alpha > theta2, return (b*cot(alpha), b)
b alpha cos mul alpha sin div b
}
{
% else, return the intersection of line and circle
a xmk sub b xmk sub xmk 0 0 alpha lfigcircleintersect
dup 0 eq
{ % should never happen, just return any reasonable point
pop
a b 0.5 lfigpmul
}
{ 1 eq
{ % should never happen, just return the point on top of stack
}
{ % the usual case, two points on stack, return the larger
lfigpmax
} ifelse
} ifelse
} ifelse
} ifelse
end
} def
% find point on circumference of curvebox: alpha a b xmk lfigcurveboxcircum x y
/lfigcurveboxcircum
{
% (Entering lfigcurveboxcircum) lfigdebugprint
5 dict begin
/xmk exch def
/b exch def
/a exch def
lfigfixangle /alpha exch def
% work out which quadrant we are in, and reflect accordingly
/quad alpha lfigquadrant def
quad 0 eq
{ alpha a b xmk lfigcb
}
{ quad 1 eq
{ 180 alpha sub a b xmk lfigcb exch neg exch
}
{ quad 2 eq
{ alpha 180 sub a b xmk lfigcb neg exch neg exch
}
{ 360 alpha sub a b xmk lfigcb neg
} ifelse
} ifelse
} ifelse
end
% (Leaving lfigcurveboxcircum) lfigdebugprint
} def
% find point on circumference of diamond: alpha a b lfigdiamondcircum x y
/lfigdiamondcircum
{
% (Entering lfigdiamondcircum) lfigdebugprint
4 dict begin
/b exch def
/a exch def
lfigfixangle /alpha exch def
b alpha cos abs mul a alpha sin abs mul add /denom exch def
a b mul alpha cos mul denom div
a b mul alpha sin mul denom div
end
% (Leaving lfigdiamondcircum) lfigdebugprint
} def
% find point on circumference of ellipse: alpha a b lfigellipsecircum x y
/lfigellipsecircum
{
% (Entering lfigellipsecircum) lfigdebugprint
4 dict begin
/b exch def
/a exch def
lfigfixangle /alpha exch def
b alpha cos mul dup mul a alpha sin mul dup mul add sqrt /denom exch def
a b mul alpha cos mul denom div
a b mul alpha sin mul denom div
end
% (Leaving lfigellipsecircum) lfigdebugprint
} def
% find point of intersection of two lines each defined by two points
% x1 y1 x2 y2 x3 y3 x4 y4 lfiglineintersect x y
/lfiglineintersect
{
% (Entering lfiglineintersect) lfigdebugprint
13 dict begin
/y4 exch def
/x4 exch def
/y3 exch def
/x3 exch def
/y2 exch def
/x2 exch def
/y1 exch def
/x1 exch def
x2 x1 sub /x21 exch def
x4 x3 sub /x43 exch def
y2 y1 sub /y21 exch def
y4 y3 sub /y43 exch def
y21 x43 mul y43 x21 mul sub /det exch def
% calculate x
y21 x43 mul x1 mul
y43 x21 mul x3 mul sub
y3 y1 sub x21 mul x43 mul add
det div
% calculate y
x21 y43 mul y1 mul
x43 y21 mul y3 mul sub
x3 x1 sub y21 mul y43 mul add
det neg div
end
% (Leaving lfiglineintersect) lfigdebugprint
} def
% find point on circumference of polygon
% alpha radius num theta lfigpolycircum x y
/lfigpolycircum
{
% (Entering lfigpolycircum) lfigdebugprint
13 dict begin
/theta exch def
/num exch def
/radius exch def
/alpha exch def
% calculate delta, the angle from theta to alpha
alpha theta sub lfigfixangle
% calculate the angle which is the multiple of 360/num closest to delta
360 num div div truncate 360 num div mul theta add /anglea exch def
% calculate the next multiple of 360/num after anglea
anglea 360 num div add /angleb exch def
% intersect the line through these two points with the alpha line
anglea cos anglea sin angleb cos angleb sin
0 0 alpha cos 2 mul alpha sin 2 mul
lfiglineintersect radius lfigpmul
end
% (Leaving lfigpolycircum) lfigdebugprint
} def
% find point of intersection of a point and a circle
% x0 y0 r x1 y1 theta lfigcircleintersect xa ya xb yb 2
% or xb yb 1
% or 0
/lfigcircleintersect
{
% (Entering lfigcircleintersect) lfigdebugprint
15 dict begin
/theta exch def
/y1 exch def
/x1 exch def
/r exch def
/y0 exch def
/x0 exch def
% if sin(theta) = 0 then line is horizontal and y must be y1
theta sin abs 0.00001 lt
{
/a 1 def
/b -2 x0 mul def
/c x0 dup mul y1 y0 sub dup mul add r dup mul sub def
a b c lfigqroots dup
0 eq
{ pop
0
}
{ 1 eq
{ y1 1
}
{ y1 exch y1 2
} ifelse
} ifelse
}
{
/ct theta cos theta sin div def
/a ct ct mul 1 add def
/b ct x1 x0 sub mul y1 add y0 sub 2 mul def
/c x1 x0 sub dup mul y1 y0 sub dup mul add r dup mul sub def
a b c lfigqroots dup
0 eq
{ pop
0
}
{ 1 eq
{ y1 add /yb exch def
yb y1 sub ct mul x1 add /xb exch def
xb yb 1
}
{ y1 add /ya exch def
ya y1 sub ct mul x1 add /xa exch def
y1 add /yb exch def
yb y1 sub ct mul x1 add /xb exch def
xa ya xb yb 2
} ifelse
} ifelse
} ifelse
end
% (Leaving lfigcircleintersect) lfigdebugprint
} def
% add CIRCUM operator with this body: <array> lfigcircumdef -
/lfigcircumdef
{ % (Entering lfigcircumdef) lfigdebugprint
/CIRCUM exch cvx
currentdict end
3 1 roll
% currentdict length currentdict maxlength lt
% { def }
% { exec moveto (too many labels) show stop }
% ifelse
def
begin
% (Leaving lfigcircumdef) lfigdebugprint
} def
end
%%EndResource
%%BeginResource: procset LoutBasicSetup
% @PrependGraphic file /home/jeff/lout.lib/include/bsf.lpg
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
% PostScript @SysPrependGraphic file for @BasicSetup %
% %
% This file has been placed in the public domain by its author, %
% Jeffrey H. Kingston %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% width height linethickness louteuro -
% draw a Euro symbol of this width and height with this line thickness
/louteuro {
20 dict begin
/eurothick exch def
/euroheight exch def
/eurowidth exch def
/eurostrokewidth euroheight 0.8 mul def
/eurostep eurothick 60 cos mul 60 sin div def
/eurotheta 40 def
% llx lly width thickness louteurobox -
% draw angled box starting at (llx, lly) with given width and thickness
/louteurobox
{
/euroboxthick exch def
/euroboxwidth exch def
newpath moveto euroboxwidth 0 rlineto
eurostep euroboxthick rlineto
euroboxwidth neg 0 rlineto closepath fill
} def
% lower cross stroke
0 euroheight 2 div eurothick 1.5 mul sub
eurostrokewidth eurothick louteurobox
% upper cross stroke
0 euroheight 2 div eurothick 0.5 mul add
eurostrokewidth eurostep 2 mul add eurothick louteurobox
% circular part
/eurohctr eurowidth euroheight 2 div eurotheta cos mul sub def
/eurovctr euroheight 2 div def
newpath
eurohctr eurovctr eurovctr eurotheta 350 eurotheta sub arc
eurohctr eurovctr eurovctr eurothick sub 365 eurotheta sub eurotheta arcn
closepath fill
end
} def
% path for @FullWidthRule symbol
/LoutRule
{ 0 0 moveto xsize 0 lineto
} def
% path for @Box symbol
/LoutBox
{ 0 0 moveto xsize 0 lineto
xsize ysize lineto 0 ysize lineto
closepath
} def
% path for @CurveBox symbol
/LoutCurveBox
{ xmark 0 moveto
xsize xmark sub xmark xmark 270 360 arc
xsize xmark sub ysize xmark sub xmark 0 90 arc
xmark ysize xmark sub xmark 90 180 arc
xmark xmark xmark 180 270 arc
closepath
} def
% path for @ShadowBox symbol
/LoutShadowBox
{ xmark 2 mul 0 moveto xsize 0 lineto
xsize ysize xmark 2 mul sub lineto
xsize xmark sub ysize xmark 2 mul sub lineto
xsize xmark sub xmark lineto
xmark 2 mul xmark lineto
closepath
} def
% set up dictionary containing margin note data: parity LoutMargSet -
/LoutMargSet
{ /LoutMargDict 12 dict def
LoutMargDict begin
/parity exch def
/matr matrix currentmatrix def
/rightx xsize def
/lefty ysize def % highest allowable point for top of next left note
/righty ysize def % highest allowable point for top of next right note
/max { 2 copy gt { pop } { exch pop } ifelse } def
/min { 2 copy lt { pop } { exch pop } ifelse } def
end
} def
%translate coordinate system for marginal notes: type LoutMargShift -
% where type 0 is left margin, 1 is right margin, 2 is outer, 3 is inner
/LoutMargShift
{ LoutMargDict begin
% y coordinate of top of note, in margin coords, before vertical adjust
0 ysize transform matr itransform exch pop
% decide whether left or right margin based on type and parity
exch [ 0 1 parity 1 parity sub ] exch get 0 eq
{
% left margin: adjust top of note downwards if overlaps previous note
lefty min
% bottom of note is new lefty position and also translate position
ysize sub dup /lefty exch def
% want right edge of note at coordinate zero
xsize neg exch
}
{
% right margin: adjust top of note downwards if overlaps previous note
righty min
% bottom of note is new righty position and also translate position
ysize sub dup /righty exch def
% want left edge of note at coordinate rightx
rightx exch
} ifelse
% stack now contains coord of bottom left corner in margin coordinates
matr setmatrix translate
end
} def
% create LoutPageDict with left, right, foot, top for @Place symbol users
/LoutPageSet
{
/LoutPageDict 5 dict def
LoutPageDict begin
/matr matrix currentmatrix def
/left 0 def
/right xsize def
/foot 0 def
/top ysize def
end
} def
%%EndResource
%%EndProlog
%%BeginSetup
%%BeginResource: encoding vec2
/vec2 [
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright
/parenleft /parenright /asterisk /plus /comma /hyphen /period /slash
/zero /one /two /three /four /five /six /seven
/eight /nine /colon /semicolon /less /equal /greater /question
/at /A /B /C /D /E /F /G
/H /I /J /K /L /M /N /O
/P /Q /R /S /T /U /V /W
/X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore
/quoteleft /a /b /c /d /e /f /g
/h /i /j /k /l /m /n /o
/p /q /r /s /t /u /v /w
/x /y /z /braceleft /bar /braceright /asciitilde /.notdef
/quotesinglbase /quotedblbase /ellipsis /OE /oe /quotedblleft /quotedblright /fi
/fl /endash /emdash /bullet /dagger /daggerdbl /florin /fraction
/dotlessi /grave /acute /circumflex /tilde /macron /breve /dotaccent
/dieresis /.notdef /ring /cedilla /.notdef /hungarumlaut /ogonek /caron
/space /exclamdown /cent /sterling /currency /yen /brokenbar /section
/dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron
/degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph /periodcentered
/cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown
/Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla
/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis
/Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply
/Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls
/agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla
/egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis
/eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide
/oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis
] def
%%EndResource
/pdfmark where {pop} {userdict /pdfmark /cleartomark load put} ifelse
%%EndSetup
%%Page: i 1
%%BeginPageSetup
%%PageResources: font Times-Roman
%%+ font Times-Bold
%%+ font Times-Italic
/pgsave save def
%%IncludeResource: font Times-Roman
/Times-Romanfnt1 vec2 /Times-Roman LoutRecode
/fnt1 { /Times-Romanfnt1 LoutFont } def
%%IncludeResource: font Times-Bold
/Times-Boldfnt2 vec2 /Times-Bold LoutRecode
/fnt2 { /Times-Boldfnt2 LoutFont } def
%%IncludeResource: font Times-Italic
/Times-Italicfnt3 vec2 /Times-Italic LoutRecode
/fnt3 { /Times-Italicfnt3 LoutFont } def
0.0500 dup scale 10 setlinewidth
%%EndPageSetup
gsave
0 0 translate
240 fnt1 0.0 0.0 0.0 LoutSetRGBColor LoutTextureSolid 11900 16840 0 16840 240 288 60 LoutGraphic
gsave
LoutPageSet
grestore
gsave
0 0 translate
1.0 1.0 1.0 LoutSetRGBColor 11900 16840 0 16840 240 288 60 LoutGraphic
gsave
LoutBox gsave 1.0 1.0 1.0 LoutSetRGBColor fill grestore 0 cm setlinewidth stroke
grestore
gsave
0 16840 translate
0.0000 rotate
gsave
1417 -15423 translate
0.0 0.0 0.0 LoutSetRGBColor
9066 14006 0 14006 240 288 60 LoutGraphic
gsave
1 LoutMargSet
grestore
240 fnt2 2897 12401(The)m 3352(Design)s 4099(and)s 4540(Implementation)s
4239 11998(of)m 4511(the)s 2589 11595(Lout)m 3141(Document)s 4250(F)s 6(ormatting)k
5468(Language)s 240 fnt3 3630 11097(J)m 6(ef)k 4(fr)k 8(e)k 7(y)k
4310(H.)s 4577(Kingston)s 240 fnt1 2551 10596(Basser)m 3248(Department)s
4436(of)s 4707(Computer)s 5724(Science,)s 3007 10308(The)m 3435(Uni)s 6(v)k 3(ersity)k
4489(of)s 4760(Sydne)s 3(y)k 5530(2006,)s 4095 10020(Australia)m
3739 9568(27)m 4027(January)s 15(,)k 4863(1993)s 240 fnt2
3901 8775(SUMMAR)m 8(Y)k 240 fnt1 0 8320(Lout)m 543(is)s
784(a)s 982(high-le)s 6(v)k 3(el)k 2028(language)s
2979(for)s 3349(document)s 4384(formatting,)s 5530(whose)s 6230(ease)s
6728(of)s 7030(use)s 7437(has)s 7838(permitted)s 8843(an)s
0 8032(unprecedented)m 1501(number)s 2340(of)s 2659(adv)s 6(anced)k
3663(features)s 4517(to)s 4804(be)s 5134(added)s 5812(quickly)s
6632(and)s 7084(reliably)s 15(.)k 8010(This)s 8535(paper)s
0 7744(charts)m 625(the)s 978(e)s 6(v)k 4(olution)k
1933(of)s 2209(the)s 2561(design)s 3248(and)s 3656(implementation)s
5218(of)s 5493(Lout)s 6010(from)s 6538(conception)s 7650(in)s
7897(mid-1984)s 8887(to)s 0 7456(public)m 672(release)s 1412(in)s
1677(October)s 2529(1991.)s 3194(It)s 3421(includes)s 4291(e)s 3(xtensi)k 6(v)k 3(e)k
5260(discussions)s 6422(of)s 6715(remaining)s 7759(problems)s 8722(and)s
0 7168(possible)m 840(solutions.)s 240 fnt2 0 6664(K)m 6(eyw)k 2(ords)k
240 fnt1 1143 6665(document)m 2147(formatting)s 3208(typesetting)s
grestore
gsave
1417 -15423 translate
0.0 0.0 0.0 LoutSetRGBColor
0 0 0 0 240 288 60 LoutGraphic
gsave
1 LoutMargSet
grestore
grestore
grestore
grestore
grestore
pgsave restore
showpage
%%Page: 1 2
%%BeginPageSetup
%%PageResources: font Times-Roman
%%+ font Times-Bold
%%+ font Times-Italic
/pgsave save def
%%IncludeResource: font Times-Roman
/Times-Romanfnt1 vec2 /Times-Roman LoutRecode
/fnt1 { /Times-Romanfnt1 LoutFont } def
%%IncludeResource: font Times-Bold
/Times-Boldfnt2 vec2 /Times-Bold LoutRecode
/fnt2 { /Times-Boldfnt2 LoutFont } def
%%IncludeResource: font Times-Italic
/Times-Italicfnt3 vec2 /Times-Italic LoutRecode
/fnt3 { /Times-Italicfnt3 LoutFont } def
0.0500 dup scale 10 setlinewidth
%%EndPageSetup
gsave
0 0 translate
240 fnt1 0.0 0.0 0.0 LoutSetRGBColor LoutTextureSolid 11900 16840 0 16840 240 288 60 LoutGraphic
gsave
LoutPageSet
grestore
gsave
0 0 translate
1.0 1.0 1.0 LoutSetRGBColor 11900 16840 0 16840 240 288 60 LoutGraphic
gsave
LoutBox gsave 1.0 1.0 1.0 LoutSetRGBColor fill grestore 0 cm setlinewidth stroke
grestore
gsave
0 16840 translate
0.0000 rotate
gsave
1417 -15423 translate
0.0 0.0 0.0 LoutSetRGBColor
9066 14006 0 14006 240 288 60 LoutGraphic
gsave
1 LoutMargSet
grestore
240 fnt2 2897 12401(The)m 3352(Design)s 4099(and)s 4540(Implementation)s
4239 11998(of)m 4511(the)s 2589 11595(Lout)m 3141(Document)s 4250(F)s 6(ormatting)k
5468(Language)s 240 fnt3 3630 11097(J)m 6(ef)k 4(fr)k 8(e)k 7(y)k
4310(H.)s 4577(Kingston)s 240 fnt1 2551 10596(Basser)m 3248(Department)s
4436(of)s 4707(Computer)s 5724(Science,)s 3007 10308(The)m 3435(Uni)s 6(v)k 3(ersity)k
4489(of)s 4760(Sydne)s 3(y)k 5530(2006,)s 4095 10020(Australia)m
3739 9568(27)m 4027(January)s 15(,)k 4863(1993)s 240 fnt2
0 8926(1.)m 291(Intr)s 4(oduction)k
[ /Dest /LOUT18_694_s1_0_1 /DEST pdfmark
240 fnt1 480 8495(Lout)m
985([1,)s 1284(2])s 1515(is)s 1718(a)s 1877(high-le)s 6(v)k 3(el)k
2885(language)s 3798(for)s 4129(document)s 5126(formatting,)s 6234(designed)s
7136(and)s 7533(implemented)s 8832(by)s 0 8207(the)m 341(author)s 13(.)k
1096(The)s 1517(implementation,)s 3117(kno)s 6(wn)k 3814(as)s
4057(Basser)s 4747(Lout,)s 5299(is)s 5502(a)s 5661(fully)s
6159(operational)s 7282(production)s 8368(v)s 3(ersion)k 0 7919(written)m
736(in)s 983(C)s 1198(for)s 1540(the)s 1891(Unix)s
2429(operating)s 3389(system,)s 153 fnt1 4100 8008(1)m 240 fnt1
4223 7919(which)m 4869(translates)s 5824(Lout)s 6340(source)s 7023(code)s
7535(into)s 7964(PostScript,)s 153 fnt1 8993 8008(2)m 240 fnt1
0 7631(a)m 201(de)s 6(vice-independent)k 2164(graphics)s 3061(rendering)s
4066(language)s 5021(accepted)s 5951(by)s 6281(man)s 3(y)k
6900(high-resolution)s 8454(output)s 0 7343(de)m 6(vices,)k 833(including)s
1805(most)s 2346(laser)s 2871(printers.)s 3779(Basser)s 4492(Lout)s
5019(is)s 5244(a)s 4(v)k 6(ailable)k 6168(free)s
6609(of)s 6895(char)s 4(ge)k 7600([3].)s 8057(It)s
8278(includes)s 0 7055(installation)m 1118(instructions,)s 2339(C)s 2550(source,)s
3281(se)s 6(v)k 3(en)k 3873(standard)s 4740(packages,)s
5723(and)s 6127(complete)s 7058(documentation)s 8536(in)s 8778(the)s
0 6767(form)m 524(of)s 795(six)s 1129(technical)s 2046(reports)s
2760(and)s 3164(a)s 3330(manual)s 4089(page.)s 480 6393(The)m
900(Lout)s 1404(project)s 2118(arose)s 2670(out)s 3027(of)s
3290(the)s 3629(author')s 13(s)k 4442(desire)s 5060(to)s
5290(bring)s 5840(to)s 6070(document)s 7066(formatting)s 8118(languages)s
0 6105(the)m 343(ele)s 3(g)k 1(ance)k 1225(of)s
1491(e)s 3(xpression)k 2562(found)s 3174(in)s 3411(programming)s
4761(languages)s 5763(lik)s 2(e)k 6170(Algol-)s 6783(60)s
7072(and)s 7471(P)s 3(ascal.)k 8236(This)s 8706(em-)s
0 5817(phasis)m 638(on)s 924(e)s 3(xpressi)k 6(v)k 3(eness)k
2373(has)s 2731(produced)s 3669(an)s 3941(order)s 4493(of)s
4753(magnitude)s 5808(reduction)s 6757(in)s 6988(the)s 7325(cost)s
7759(of)s 8018(de)s 6(v)k 3(eloping)k 0 5529(document)m
998(formatting)s 2053(applications.)s 3366(F)s 3(or)k 3748(e)s 3(xample,)k
4656(an)s 4933(equation)s 5807(formatting)s 6862(application,)s 8025(which)s
8660(may)s 0 5241(be)m 282(dif\207cult)s 1098(or)s 1357(impossible)s
2449(to)s 2688(add)s 3092(to)s 3331(other)s 3882(systems,)s
4746(can)s 5135(be)s 5417(written)s 6150(in)s 6393(Lout)s
6905(in)s 7148(a)s 7314(fe)s 6(w)k 7720(days.)s
480 4867(When)m 1099(e)s 3(xpert)k 1742(users)s 2274(can)s
2652(implement)s 3724(such)s 4209(applications)s 5405(quickly)s 15(,)k
6204(non-)s 6632(e)s 3(xperts)k 7360(bene\207t.)s 8164(Although)s
0 4579(Lout)m 509(itself)s 1053(pro)s 3(vides)k 1922(only)s
2398(a)s 2560(small)s 3129(k)s 2(ernel)k 3775(of)s
4042(carefully)s 4941(chosen)s 5659(primiti)s 6(v)k 3(es,)k
6721(packages)s 7646(written)s 8375(in)s 8614(Lout)s 0 4291(and)m
399(distrib)s 4(uted)k 1470(with)s 1946(Basser)s 2638(Lout)s
3145(pro)s 3(vide)k 3923(an)s 4201(unprecedented)s 5649(array)s
6187(of)s 6453(adv)s 6(anced)k 7404(features)s 8204(in)s
8442(a)s 8602(form)s 0 4003(accessible)m 1035(to)s 1286(non-)s
1714(e)s 3(xpert)k 2380(users.)s 3047(The)s 3487(features)s
4305(include)s 5076(rotation)s 5888(and)s 6304(scaling,)s 7100(fonts,)s
7697(paragraph)s 8722(and)s 0 3715(page)m 500(breaking,)s 1435(displays)s
2262(and)s 2657(lists,)s 3139(\210oating)s 3915(\207gures)s 4608(and)s
5004(tables,)s 5659(footnotes,)s 6647(chapters)s 7486(and)s 7881(sections)s
8693(\(au-)s 0 3427(tomatically)m 1128(numbered\),)s 2272(running)s 3070(page)s
3579(headers)s 4361(and)s 4765(footers,)s 5536(odd-)s 5964(e)s 6(v)k 3(en)k
6464(page)s 6973(layouts,)s 7772(automatically)s 0 3139(generated)m 975(tables)s
1570(of)s 1829(contents,)s 2720(sorted)s 3350(inde)s 3(x)k 3(es)k
4113(and)s 4505(reference)s 5435(lists,)s 5914(bibliographic)s 7229(and)s
7621(other)s 8159(databases)s 0 2851(\(including)m 1038(databases)s 2008(of)s
2281(formats)s 3064(for)s 3405(printing)s 4217(references\),)s 5386(equations,)s
6412(tables,)s 7079(diagrams,)s 8065(formatting)s 0 2563(of)m 271(P)s 3(ascal)k
933(programs,)s 1943(and)s 2347(automatically)s 3701(maintained)s 4821(cross)s
5363(references.)s 480 2189(This)m 1015(paper)s 1666(charts)s 2347(the)s
2755(e)s 6(v)k 4(olution)k 3766(of)s 4097(Lout)s
4669(from)s 5253(conception)s 6420(in)s 6723(mid-1984)s 7768(to)s
8067(the)s 8475(public)s 0 1901(release)m 722(of)s 997(Basser)s
1699(Lout)s 2215(in)s 2462(October)s 3297(1991.)s 3945(Lout)s
4461(is)s 4676(or)s 4(g)k 1(anized)k 5676(around)s
6403(four)s 6866(k)s 2(e)k 3(y)k 7265(concepts)s
8157(\211)s 8342(objects,)s 0 1613(de\207nitions,)m 1131(g)s 1(alle)k 3(ys,)k
1925(and)s 2343(cross)s 2899(references)s 3944(\211)s 4138(and)s
4556(the)s 3(y)k 5033(were)s 5567(de)s 6(v)k 3(eloped)k
6614(in)s 6871(the)s 7233(order)s 7811(listed,)s 8449(so)s
8730(this)s 0 1325(paper)m 593(will)s 1022(treat)s 1508(each)s
2006(in)s 2252(turn,)s 2747(discussing)s 3800(its)s 4079(design,)s
4814(implementation,)s 6424(problems,)s 7424(and)s 7831(prospects)s 8788(for)s
1134 0 0 0 240 288 60 0 574 LoutGr2
0 0 moveto xsize 0 lineto stroke
grestore
grestore
122 fnt1 0 379(1)m 192 fnt1 58 309(Unix)m 485(is)s
653(a)s 786(trademark)s 1609(of)s 1825(A)s 21(T&T)k
2370(Bell)s 2733(Laboratories.)s 122 fnt1 0 112(2)m 192 fnt1
67 42(PostScript)m 900(is)s 1068(a)s 1201(trademark)s 2024(of)s
2240(Adobe)s 2796(Systems,)s 3519(Incorporated.)s
grestore
gsave
1417 -15423 translate
0.0 0.0 0.0 LoutSetRGBColor 0 0 0 0 240 288 60 LoutGraphic
gsave
1 LoutMargSet
grestore
grestore
grestore
grestore
grestore
pgsave restore
showpage
%%Page: 2 3
%%BeginPageSetup
%%PageResources: font Times-Roman
%%+ font Times-Bold
%%+ font Symbol
%%+ font Times-Italic
%%+ font Helvetica
/pgsave save def
%%IncludeResource: font Times-Roman
/Times-Romanfnt1 vec2 /Times-Roman LoutRecode
/fnt1 { /Times-Romanfnt1 LoutFont } def
%%IncludeResource: font Times-Bold
/Times-Boldfnt2 vec2 /Times-Bold LoutRecode
/fnt2 { /Times-Boldfnt2 LoutFont } def
%%IncludeResource: font Symbol
/fnt4 { /Symbol LoutFont } def
%%IncludeResource: font Times-Italic
/Times-Italicfnt3 vec2 /Times-Italic LoutRecode
/fnt3 { /Times-Italicfnt3 LoutFont } def
%%IncludeResource: font Helvetica
/Helveticafnt5 vec2 /Helvetica LoutRecode
/fnt5 { /Helveticafnt5 LoutFont } def
0.0500 dup scale 10 setlinewidth
%%EndPageSetup
gsave
0 0 translate
240 fnt1 0.0 0.0 0.0 LoutSetRGBColor LoutTextureSolid 11900 16840 0 16840 240 288 60 LoutGraphic
gsave
LoutPageSet
grestore
gsave
0 0 translate
1.0 1.0 1.0 LoutSetRGBColor 11900 16840 0 16840 240 288 60 LoutGraphic
gsave
LoutBox gsave 1.0 1.0 1.0 LoutSetRGBColor fill grestore 0 cm setlinewidth stroke
grestore
gsave
0 16840 translate
0.0000 rotate
0.0 0.0 0.0 LoutSetRGBColor
5765 -1579(-)m 5893(2)s 6067(-)s 9066 13419 0 13310 240 288 60 1417 -15423 LoutGr2
0 LoutMargSet
grestore
0 13256(further)m 709(impro)s 3(v)k 3(ement.)k
240 fnt2 0 12463(2.)m 291(Objects)s
[ /Dest /LOUT18_694_s2_0_1 /DEST pdfmark
240 fnt1 480 11987(The)m
923(essence)s 1725(of)s 2011(an)s 3(y)k 2424(mo)s 3(v)k 3(e)k
3021(to)s 3276(a)s 3457(higher)s 4144(le)s 6(v)k 3(el)k
4669(is)s 4895(the)s 5258(introduction)s 6500(of)s 6786(some)s
7363(abstraction)s 8484(which)s 0 11699(serv)m 3(es)k 639(to)s
872(or)s 4(g)k 1(anize)k 1740(the)s 2082(lo)s 6(w-)k
2503(le)s 6(v)k 3(el)k 3006(operations,)s 4103(resulting)s
4986(in)s 5223(a)s 5383(more)s 5923(succinct)s 6760(e)s 3(xpression)k
7831(of)s 8096(their)s 8586(com-)s 0 11411(mon)m 475(combinations)s
1806(at)s 2030(the)s 2369(cost)s 2805(of)s 3068(some)s
3620(loss)s 4034(of)s 4297(detailed)s 5102(control.)s 5934(The)s
6354(early)s 6876(part)s 7298(of)s 7561(the)s 7900(Lout)s
8403(project)s 0 11123(w)m 2(as)k 426(spent)s 996(in)s
1245(the)s 1598(de)s 6(v)k 3(elopment)k 2891(of)s
3167(such)s 3668(an)s 3957(abstraction)s 5067(for)s 5411(the)s
5764(b)s 4(uilding)k 6616(blocks)s 7298(of)s 7574(documents,)s
8724(one)s 0 10835(which)m 635(could)s 1217(e)s 3(xplain,)k
2017(not)s 2375(just)s 2772(the)s 3113(simple)s 3798(phenomena)s
4954(of)s 5217(w)s 2(ords,)k 5899(lines,)s 6450(and)s
6846(paragraphs,)s 7994(b)s 4(ut)k 8348(also)s 8778(the)s
0 10547(alignment)m 1016(of)s 1287(columns)s 2149(in)s 2392(tables,)s
3056(and)s 3460(the)s 3808(comple)s 3(x)k 4684(nested)s
5353(structures)s 6332(of)s 6603(equations.)s 240 fnt2 0 9898(2.1.)m
471(The)s 926(genesis)s 1697(of)s 1969(the)s 2343(object)s
3026(abstraction)s
[ /Dest /LOUTgenesis /DEST pdfmark
240 fnt1 480 9421(When)m 1163(one)s 1620(e)s 3(xamines)k
2626(pre)s 6(vious)k 3549(document)s 4608(formatting)s 5724(systems)s
6587([4])s 6958(looking)s 7798(for)s 8191(ideas)s 8788(for)s
0 9133(abstractions,)m 1245(as)s 1492(the)s 1837(author)s 2505(did)s
2866(in)s 3106(1984,)s 3690(the)s 4035(Eqn)s 4475(formatting)s
5533(language)s 6450([5])s 6764(stands)s 7410(out)s 7773(lik)s 2(e)k
8182(a)s 8344(beacon.)s 0 8845(In)m 256(Eqn,)s 749(a)s
915(mathematical)s 2256(formula)s 3072(such)s 3568(as)s 168 fnt4
586 8390(2)m 240 fnt3 480 8330(x)m 240 fnt4 738 8322(+)m
939(1)s gsave
480 8274 translate
240 fnt3 553 0 0 0 240 288 12 LoutGraphic
gsave
0 0 moveto xsize 0 lineto 0.05 ft setlinewidth stroke
grestore
grestore
700 8046(4)m 240 fnt1 0 7535(is)m
210(produced)s 1159(by)s 1453(typing)s 220 fnt5 480 7037({ x sup 2 + 1 } o)m 3(v)k 5(er 4)k
240 fnt1 0 6541(in)m 261(the)s 627(input)s 1197(\207le;)s
220 fnt5 1632 6538(sup)m 240 fnt1 2056 6541(and)m 220 fnt5
2478 6538(o)m 3(v)k 5(er)k 240 fnt1 2975 6541(are)m
3340(binary)s 4023(operators,)s 5037(and)s 5459(braces)s 6138(are)s
6503(used)s 7018(for)s 7374(grouping.)s 8421(This)s 8916(is)s
0 6253(document)m 1017(formatting)s 2091(at)s 2337(a)s 2516(v)s 3(ery)k
3006(high)s 3502(le)s 6(v)k 3(el,)k 4077(close)s
4638(to)s 4890(the)s 5252(language)s 6185(of)s 6469(mathematics)s
7741(itself,)s 8337(with)s 8833(all)s 0 5965(reference)m 943(to)s
1182(font)s 1627(changes)s 2449(and)s 2853(spacing)s 3637(suppressed.)s
480 5591(Eqn)m 916(pro)s 3(vides)k 1780(a)s 1938(single)s
2557(data)s 3008(type)s 3468(\(let)s 3837(us)s 4093(call)s
4485(it)s 4669(the)s 240 fnt3 5009 5593(e)m 4(xpr)k 8(ession)k
240 fnt1 6014 5591(\),)m 6192(b)s 4(uilt)k 6679(up)s
6964(recursi)s 6(v)k 3(ely)k 8062(in)s 8297(conte)s 3(xt-)k
0 5303(free)m 457(style:)s 1106(where)s 1778(one)s 2212(e)s 3(xpression)k
3321(may)s 3819(appear)s 9(,)k 4586(an)s 3(y)k
5015(e)s 3(xpression)k 6124(may)s 6622(appear)s 13(.)k
7442(This)s 7950(approach)s 8916(is)s 0 5015(common)m 905(in)s
1158(algebra)s 1931(and)s 2345(programming)s 3710(languages,)s 4785(where)s
5435(its)s 5721(simplicity)s 6740(and)s 7154(e)s 3(xpressi)k 6(v)k 3(eness)k
8625(ha)s 4(v)k 3(e)k 0 4727(long)m 479(been)s
987(appreciated;)s 2199(b)s 4(ut)k 2560(Eqn)s 3002(w)s 2(as)k
3423(the)s 3770(\207rst)s 4200(language)s 5119(to)s 5357(demonstrate)s
6581(its)s 6856(utility)s 7479(in)s 7721(document)s 8724(for)s 4(-)k
0 4439(matting.)m 480 4065(Each)m 1015(e)s 3(xpression)k 2092(is)s
2302(treated)s 3009(by)s 3304(Eqn)s 3747(as)s 3997(a)s
4163(rectangle)s 5094(with)s 5577(a)s 240 fnt3 5743 4067(horizontal)m
6787(axis)s 240 fnt1 7167 4065(,)m 7274(used)s 7771(for)s
8110(alignment)s 0 3777(with)m 482(adjacent)s 1338(e)s 3(xpressions:)k
553 519 0 288 240 288 60 480 2918 LoutGr2
grestore save gsave 200 dict begin lfigdict begin
grestore
553 519 0 288 240 288 60 0 0 LoutGr2
/lfiglightgrey [ lfigbox ] gsave lfigpaintpath grestore
0.015 cm setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigbox ] lfigdopath
pop pop
grestore
553 519 0 288 240 288 60 0 0 LoutGr2
0.015 cm setlinewidth lfiground setlinecap
0.15 cm /lfigdashed [ -0.3 cm ymark xsize ymark 0.3 cm 0 lfigpadd
] lfigdopath
pop pop
grestore
168 fnt4 106 404(2)m 240 fnt3 0 344(x)m 240 fnt4
258 336(+)m 459(1)s gsave
0 288 translate
240 fnt3 553 0 0 0 240 288 12 LoutGraphic
gsave
0 0 moveto xsize 0 lineto 0.05 ft setlinewidth stroke
grestore
grestore
220 60(4)m
grestore
grestore
end end restore
grestore
0 2467(The)m
425(size)s 848(and)s 1248(rendering)s 2213(of)s 2481(the)s
2825(e)s 3(xpression)k 3898(on)s 4191(the)s 4536(printed)s
5267(page)s 5771(are)s 6114(kno)s 6(wn)k 6815(only)s
7291(to)s 7526(the)s 7870(implementa-)s 0 2179(tion,)m 481(ne)s 6(v)k 3(er)k
1066(e)s 3(xplicitly)k 2021(calculated)s 3050(or)s 3312(accessed)s
4208(by)s 4505(the)s 4855(user)s 13(.)k 5407(This)s
5886(prohibition)s 7008(is)s 7221(crucial)s 7927(to)s 8169(the)s
8520(main-)s 0 1891(tenance)m 785(of)s 1055(the)s 1402(conte)s 3(xt-)k
2171(free)s 2596(property)s 3459(in)s 3701(practice.)s 4619(In)s
4874(Lout,)s 5432(for)s 5769(e)s 3(xample,)k 6682(equations,)s
7705(\207gures,)s 8462(tables,)s 0 1603(and)m 393(arbitrary)s 1256(objects)s
1972(may)s 2427(be)s 2697(mix)s 3(ed)k 3338(together)s
4169(freely)s 15(.)k 4863(This)s 5327(w)s 2(ould)k
5970(be)s 6241(impossible)s 7321(if)s 7526(size)s 7941(information)s
0 1315(w)m 2(as)k 421(hidden)s 1130(from)s 1654(the)s
2002(implementation)s 3559(in)s 3802(user)s 4260(calculations.)s 480 941(The)m
927(object)s 1591(abstraction)s 2715(of)s 3006(Lout)s 3537(is)s
3767(a)s 3952(direct)s 4575(descendant)s 5717(of)s 6008(the)s
6375(Eqn)s 6838(e)s 3(xpression.)k 8041(It)s 8266(emplo)s 2(ys)k
0 653(the)m 385(same)s 969(conte)s 3(xt-free)k 2212(recursi)s 6(v)k 3(e)k
3171(style)s 3715(of)s 4023(construction,)s 5350(and)s 5791(each)s
6323(object)s 7004(is)s 7251(treated)s 7995(by)s 8326(Lout)s
8876(as)s
grestore
0 0 0 0 240 288 60 1417 -15423 LoutGr2
0 LoutMargSet
grestore
grestore
grestore
grestore
grestore
pgsave restore
showpage
%%Page: 3 4
%%BeginPageSetup
%%PageResources: font Times-Roman
%%+ font Times-Italic
%%+ font Times-Bold
%%+ font Symbol
%%+ font Helvetica
/pgsave save def
%%IncludeResource: font Times-Roman
/Times-Romanfnt1 vec2 /Times-Roman LoutRecode
/fnt1 { /Times-Romanfnt1 LoutFont } def
%%IncludeResource: font Times-Italic
/Times-Italicfnt3 vec2 /Times-Italic LoutRecode
/fnt3 { /Times-Italicfnt3 LoutFont } def
%%IncludeResource: font Times-Bold
/Times-Boldfnt2 vec2 /Times-Bold LoutRecode
/fnt2 { /Times-Boldfnt2 LoutFont } def
%%IncludeResource: font Symbol
/fnt4 { /Symbol LoutFont } def
%%IncludeResource: font Helvetica
/Helveticafnt5 vec2 /Helvetica LoutRecode
/fnt5 { /Helveticafnt5 LoutFont } def
0.0500 dup scale 10 setlinewidth
%%EndPageSetup
gsave
0 0 translate
240 fnt1 0.0 0.0 0.0 LoutSetRGBColor LoutTextureSolid 11900 16840 0 16840 240 288 60 LoutGraphic
gsave
LoutPageSet
grestore
gsave
0 0 translate
1.0 1.0 1.0 LoutSetRGBColor 11900 16840 0 16840 240 288 60 LoutGraphic
gsave
LoutBox gsave 1.0 1.0 1.0 LoutSetRGBColor fill grestore 0 cm setlinewidth stroke
grestore
gsave
0 16840 translate
0.0000 rotate
0.0 0.0 0.0 LoutSetRGBColor
5770 -1579(-)m 5898(3)s 6062(-)s 9066 13416 0 13307 240 288 60 1417 -15423 LoutGr2
1 LoutMargSet
grestore
0 13253(a)m 166(rectangle:)s
1701 453 567 198 240 288 60 480 12460 LoutGr2
grestore save gsave 200 dict begin lfigdict begin
grestore
1701 453 567 198 240 288 60 0 0 LoutGr2
grestore save gsave 200 dict begin lfigdict begin
grestore
1701 453 567 198 240 288 60 0 0 LoutGr2
/lfiglightgrey [ lfigbox ] gsave lfigpaintpath grestore
0.015 cm setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigbox ] lfigdopath
pop pop
grestore
1701 453 567 198 240 288 60 0 0 LoutGr2
0.015 cm setlinewidth lfiground setlinecap
0.15 cm /lfigdashed [ -0.3 cm ymark xsize ymark 0.3 cm 0 lfigpadd
[]
xmark -0.3 cm xmark ysize 0 0.3 cm lfigpadd ] lfigdopath
pop pop
grestore
grestore
grestore
end end restore
grestore
end end restore
grestore
0 12007(The)m 442(horizontal)s 1481(axis,)s 1987(called)s 2630(a)s
240 fnt3 2810 12009(r)m 10(ow)k 3244(mark)s 240 fnt1
3814 12007(in)m 4072(Lout,)s 4645(has)s 5030(a)s 5210(v)s 3(ertical)k
5992(analogue)s 6926(called)s 7569(a)s 240 fnt3 7749 12009(column)m
8523(mark)s 240 fnt1 9019 12007(,)m 0 11719(creating)m 822(a)s
988(v)s 6(aluable)k 1848(symmetry)s 2857(between)s 3711(horizontal)s
4735(and)s 5139(v)s 3(ertical.)k 6014(Multiple)s 6893(column)s
7668(and)s 8072(ro)s 6(w)k 8491(marks)s 0 11431(are)m
347(permitted:)s 1984 1189 0 1189 240 288 60 480 9902 LoutGr2
grestore save gsave 200 dict begin lfigdict begin
grestore
680 453 0 453 240 288 60 0 736 LoutGr2
currentdict end 200 dict begin begin
grestore
680 453 0 453 240 288 60 0 0 LoutGr2
/lfiggrey [ lfigbox ] gsave lfigpaintpath grestore
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigbox ] lfigdopath
pop pop
grestore
grestore
(A) lfigpromotelabels
grestore
737 453 0 453 240 288 60 1247 736 LoutGr2
currentdict end 200 dict begin begin
grestore
567 453 0 453 240 288 60 0 0 LoutGr2
/lfiggrey [ lfigbox ] gsave lfigpaintpath grestore
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigbox ] lfigdopath
pop pop
grestore
grestore
(B) lfigpromotelabels
grestore
680 453 0 453 240 288 60 0 0 LoutGr2
currentdict end 200 dict begin begin
grestore
396 453 0 453 240 288 60 0 0 LoutGr2
/lfiggrey [ lfigbox ] gsave lfigpaintpath grestore
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigbox ] lfigdopath
pop pop
grestore
grestore
(C) lfigpromotelabels
grestore
737 453 0 453 240 288 60 1247 0 LoutGr2
currentdict end 200 dict begin begin
grestore
737 453 0 453 240 288 60 0 0 LoutGr2
/lfiggrey [ lfigbox ] gsave lfigpaintpath grestore
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigbox ] lfigdopath
pop pop
grestore
grestore
(D) lfigpromotelabels
grestore
0 0 0 0 240 288 60 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigdashed [ 0.3 cm 0 A@W lfigpsub lfigprevious /FROM lfigpointdef
B@W 1.6 cm 0 lfigpadd lfigprevious /TO lfigpointdef ] lfigdopath
pop pop
grestore
grestore
0 0 0 0 240 288 60 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigdashed [ 0.3 cm 0 C@W lfigpsub lfigprevious /FROM lfigpointdef
D@W 1.6 cm 0 lfigpadd lfigprevious /TO lfigpointdef ] lfigdopath
pop pop
grestore
grestore
0 0 0 0 240 288 60 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigdashed [ A@NW 0 0.3 cm lfigpadd lfigprevious /FROM lfigpointdef
0 0.3 cm C@SW lfigpsub lfigprevious /TO lfigpointdef ] lfigdopath
pop pop
grestore
grestore
0 0 0 0 240 288 60 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigdashed [ B@NW 0.3 cm 0.3 cm lfigpadd lfigprevious /FROM lfigpointdef
D@SW 0.3 cm -0.3 cm lfigpadd lfigprevious /TO lfigpointdef ] lfigdopath
pop pop
grestore
grestore
end end restore
grestore
0 9451(so)m 266(that)s 684(objects)s 1412(are)s
1759(able)s 2213(to)s 2452(represent)s 3387(tables.)s 480 9077(This)m
946(abstraction)s 2041(has)s 2401(some)s 2952(limitations,)s 4069(the)s
4407(most)s 4922(ob)s 3(vious)k 5719(being)s 6293(the)s
6631(restriction)s 7645(of)s 7906(size)s 8322(calcula-)s 0 8789(tions)m
507(to)s 736(rectangular)s 1860(bounding)s 2809(box)s 3(es.)k
3519(Non-)s 4000(rectangular)s 5124(and)s 5518(disconnected)s 6815(shapes)s
7494(arise)s 7990(naturally)s 8883(in)s 0 8501(\207gures)m 704(and)s
1111(in)s 1356(the)s 1707(characters)s 2727(of)s 3001(fonts;)s
3594(the)s 3944(e)s 3(xtension)k 4918(to)s 5159(them)s
5700(is)s 5912(conceptually)s 7191(straightforw)s 2(ard)k 8722(and)s
0 8213(might)m 615(help)s 1076(to)s 1311(e)s 3(xplain)k
2065(some)s 2622(\207ne)s 3033(points)s 3665(of)s 3933(layout)s
4587(such)s 5079(as)s 5325(k)s 2(erning.)k 6214(Ho)s 6(we)k 6(v)k 3(er)k 9(,)k
7170(there)s 7699(are)s 8042(implemen-)s 0 7925(tation)m 599(and)s
1001(language)s 1918(design)s 2598(problems,)s 3592(particularly)s 4744(when)s
5317(\207lling)s 5939(non-)s 6367(rectangular)s 7498(shapes)s 8185(with)s
8664(te)s 3(xt,)k 0 7637(and)m 404(so)s 670(the)s
1018(author)s 1689(chose)s 2290(to)s 2529(k)s 2(eep)k
3032(to)s 3271(Eqn')s 13(s)k 3867(rectangles.)s 480 7263(A)m
766(more)s 1370(fundamental)s 2676(limitation)s 3718(of)s 4045(the)s
4450(object)s 5151(abstraction)s 6312(arises)s 6963(from)s 7543(the)s
7948(inability)s 8855(of)s 0 6975(recursi)m 6(v)k 3(e)k
936(data)s 1408(types)s 1978(to)s 2231(describe)s 3097(cross-link)s 2(ed)k
4335(structures,)s 5384(which)s 6040(seem)s 6605(to)s 6858(require)s
7604(some)s 8179(means)s 8855(of)s 0 6687(naming)m 756(the)s
1089(multiply)s 1938(referenced)s 2988(parts.)s 3601(Lout)s 4098(is)s
4293(obliged)s 5054(to)s 5278(introduce)s 6222(additional)s 7218(abstractions)s
8395(to)s 8618(cope)s 0 6399(with)m 490(cross)s 1040(linking:)s
1892(g)s 1(alle)k 3(ys)k 2624(for)s 2970(inserting)s
3867(te)s 3(xt)k 4291(into)s 4724(pages)s 5328(\(Section)s
6189(5.1\),)s 6683(cross)s 7233(references)s 8273(\(Section)s 0 6111(6.1\),)m
490(and)s 898(labelled)s 1716(points)s 2356(in)s 2603(\207gure)s
3221(dra)s 3(wing)k 4059([6].)s 4506(An)s 4860(abstraction)s
5969(closer)s 6603(to)s 6846(h)s 1(yperte)k 3(xt)k
7809(might)s 8431(form)s 8960(a)s 0 5823(more)m 547(uni\207ed)s
1270(basis)s 1799(for)s 2137(these)s 2684(features.)s 240 fnt2
0 5224(2.2.)m 471(Grammatical)s 1893(and)s 2334(lexical)s 3039(structur)s 4(e)k
[ /Dest /LOUTlexical /DEST pdfmark
240 fnt1 480 4792(If)m 700(objects)s 1417(are)s 1754(to)s
1982(be)s 2253(constructed)s 3403(lik)s 2(e)k 3804(mathematical)s
5134(e)s 3(xpressions,)k 6344(the)s 6681(natural)s 7388(notation)s
8219(is)s 8418(a)s 8573(func-)s 0 4504(tional)m 599(language)s
1519(based)s 2122(on)s 2419(operators,)s 3415(as)s 3665(in)s
3908(Eqn.)s 4458(The)s 4886(grammar)s 5808(of)s 6079(Lout)s
6591(objects)s 7319(is)s 7529(accordingly)s 240 fnt4 1332 3945(\256)m
1332 3612(\256)m 1332 3279(\256)m 1332 2995(\256)m 1332 2662(\256)m 1332 2368(\256)m
1332 2035(\256)m 1332 1751(\256)m 240 fnt3 480 3953(object)m 1826(object)s
2498(in\207xop)s 3227(object)s 1826 3620(pr)m 8(e\207xop)k 2680(object)s
1826 3287(object)m 2498(post\207xop)s 1826 3003(nopar)m 2(sop)k 1826 2670(liter)m 3(alwor)k 8(d)k
220 fnt5 1826 2371({)m 240 fnt3 1974 2376(object)m 220 fnt5
2646 2371(})m 240 fnt3 1826 2043(object)m 2498(object)s 240 fnt1
0 1248(where)m 240 fnt3 640 1250(in\207xop)m 240 fnt1 1285 1248(,)m
240 fnt3 1391 1250(pr)m 8(e\207xop)k 240 fnt1 2161 1248(,)m
240 fnt3 2267 1250(post\207xop)m 240 fnt1 3125 1248(,)m 3232(and)s
240 fnt3 3635 1250(nopar)m 2(sop)k 240 fnt1 4591 1248(are)m
4938(identi\207ers)s 5943(naming)s 6713(operators)s 7653(which)s 8294(tak)s 2(e)k
8745(0,)s 8971(1)s 0 960(or)m 255(2)s 424(parameters,)s
1573(as)s 1819(sho)s 6(wn,)k 2541(and)s 240 fnt3
2940 962(liter)m 3(alwor)k 8(d)k 240 fnt1 4067 960(is)m
4272(a)s 4433(sequence)s 5362(of)s 5628(non-space)s 6649(characters,)s
7719(or)s 7973(an)s 8251(arbitrary)s 0 672(sequence)m 969(of)s
1276(characters)s 2330(enclosed)s 3262(in)s 3541(double)s 4285(quotes.)s
5110(Ambiguities)s 6380(are)s 6763(resolv)s 3(ed)k 7664(by)s
7995(precedence)s 0 384(and)m 404(associati)s 6(vity)k 15(.)k
grestore
0 0 0 0 240 288 60 1417 -15423 LoutGr2
1 LoutMargSet
grestore
grestore
grestore
grestore
grestore
pgsave restore
showpage
%%Page: 4 5
%%BeginPageSetup
%%PageResources: font Times-Roman
%%+ font Helvetica
%%+ font Times-Italic
%%+ font Times-Bold
/pgsave save def
%%IncludeResource: font Times-Roman
/Times-Romanfnt1 vec2 /Times-Roman LoutRecode
/fnt1 { /Times-Romanfnt1 LoutFont } def
%%IncludeResource: font Helvetica
/Helveticafnt5 vec2 /Helvetica LoutRecode
/fnt5 { /Helveticafnt5 LoutFont } def
%%IncludeResource: font Times-Italic
/Times-Italicfnt3 vec2 /Times-Italic LoutRecode
/fnt3 { /Times-Italicfnt3 LoutFont } def
%%IncludeResource: font Times-Bold
/Times-Boldfnt2 vec2 /Times-Bold LoutRecode
/fnt2 { /Times-Boldfnt2 LoutFont } def
0.0500 dup scale 10 setlinewidth
%%EndPageSetup
gsave
0 0 translate
240 fnt1 0.0 0.0 0.0 LoutSetRGBColor LoutTextureSolid 11900 16840 0 16840 240 288 60 LoutGraphic
gsave
LoutPageSet
grestore
gsave
0 0 translate
1.0 1.0 1.0 LoutSetRGBColor 11900 16840 0 16840 240 288 60 LoutGraphic
gsave
LoutBox gsave 1.0 1.0 1.0 LoutSetRGBColor fill grestore 0 cm setlinewidth stroke
grestore
gsave
0 16840 translate
0.0000 rotate
0.0 0.0 0.0 LoutSetRGBColor
5765 -1579(-)m 5893(4)s 6067(-)s 9066 13419 0 13310 240 288 60 1417 -15423 LoutGr2
0 LoutMargSet
grestore
480 13256(The)m 941(last)s
1366(production)s 2494(allo)s 6(ws)k 3197(a)s 3397(meaning)s
4307(for)s 4679(e)s 3(xpressions)k 5877(such)s 6407(as)s
220 fnt5 6691 13253({})m 240 fnt1 6828 13256(,)m 6968(in)s
7245(which)s 7921(an)s 8238(object)s 8916(is)s 0 12968(missing.)m
907(The)s 1333(v)s 6(alue)k 1899(of)s 2168(this)s
240 fnt3 2562 12970(empty)m 3187(object)s 240 fnt1 3833 12968(is)m
4041(a)s 4205(rectangle)s 5135(of)s 5404(size)s 5829(0)s
6002(by)s 6294(0,)s 6519(with)s 6999(one)s 7399(column)s
8172(mark)s 8722(and)s 0 12680(one)m 402(ro)s 6(w)k
822(mark,)s 1420(that)s 1838(prints)s 2433(as)s 2683(nothing.)s
480 12306(The)m 938(second-last)s 2103(production)s 3227(generates)s 4210(sequences)s
5261(of)s 5562(arbitrary)s 6467(objects)s 7225(separated)s 8215(by)s
8539(white)s 0 12018(space,)m 671(called)s 240 fnt3 1333 12020(par)m 3(a)k 2(gr)k 3(aphs)k
240 fnt1 2439 12018(.)m 2636(Ignoring)s 3547(paragraph)s 4593(breaking)s
5517(for)s 5888(no)s 6(w)k 15(,)k 6421(the)s
6802(natural)s 7554(meaning)s 8464(is)s 8708(that)s 0 11730(the)m
361(tw)s 2(o)k 784(objects)s 1525(should)s 2235(appear)s
2946(side)s 3400(by)s 3707(side,)s 4212(and)s 4629(Lout')s 13(s)k
5305(parser)s 5961(accordingly)s 7157(interpolates)s 8335(an)s 8632(in\207x)s
0 11442(horizontal)m 1017(concatenation)s 2395(operator)s 3244(\(see)s 3677(belo)s 6(w\))k
4377(between)s 5224(them.)s 5859(This)s 6328(operator)s 7177(is)s
7380(associati)s 6(v)k 3(e,)k 8519(so)s 8778(the)s
0 11154(grammatical)m 1262(ambiguity)s 2301(does)s 2806(no)s 3113(harm.)s
3783(Ho)s 6(we)k 6(v)k 3(er)k 9(,)k
4758(the)s 5120(Algol-60)s 6054(rule)s 6496(that)s 6928(white)s
7530(space)s 8132(should)s 8844(be)s 0 10866(signi\207cant)m 1056(only)s
1536(as)s 1786(a)s 1952(separator)s 2887(is)s 3097(necessarily)s
4212(brok)s 2(en)k 4932(by)s 5226(Lout)s 5738(in)s
5981(just)s 6386(this)s 6782(one)s 7184(place.)s 480 10492(Algol-lik)m 2(e)k
1506(languages)s 2504(distinguish)s 3601(literal)s 4201(strings)s 4879(from)s
5393(identi\207ers)s 6389(by)s 6673(enclosing)s 7633(them)s 8161(in)s
8394(quotes,)s 0 10204(b)m 4(ut)k 372(literals)s 1082(are)s
1440(f)s 2(ar)k 1773(too)s 2143(frequent)s 3010(in)s
3264(document)s 4278(formatting)s 5350(for)s 5699(this)s 6106(to)s
6356(be)s 6649(viable.)s 7408(The)s 7847(con)s 9(v)k 3(entional)k
0 9916(solution)m 829(is)s 1041(to)s 1282(be)s 3(gin)k
1870(identi\207ers)s 2878(with)s 3362(a)s 3530(special)s 4250(character)s 9(,)k
5224(and)s 5630(Lout)s 6144(follo)s 6(ws)k 6908(Scribe)s
7576([7])s 7895(in)s 8140(using)s 8714(`@')s 0 9628(rather)m
616(than)s 1085(the)s 1433(`\\')s 1690(of)s 1961(trof)s 6(f)k
2450([8])s 2767(and)s 3171(T)s 3313 9580(E)m 3456 9628(X)m
3685([9].)s 480 9254(Ho)m 6(we)k 6(v)k 3(er)k 9(,)k
1447(Lout)s 1966(tak)s 2(es)k 2513(the)s 2868(unusual)s
3675(step)s 4120(of)s 4398(making)s 5176(an)s 5466(initial)s
6084(`@')s 6503(optional.)s 7458(The)s 7893(designers)s 8855(of)s
0 8966(Eqn)m 449(apparently)s 1519(considered)s 2620(such)s 3122(characters)s
4147(dis\207guring)s 5244(in)s 5494(\207ne-grained)s 6713(input)s 7272(lik)s 2(e)k
7691(equations,)s 8722(and)s 0 8678(this)m 401(author)s 1077(agrees.)s
1856(The)s 2289(implementation)s 3851(is)s 4066(straightforw)s 2(ard:)k
5707(`@')s 6124(is)s 6339(classed)s 7092(as)s 7347(just)s
7757(another)s 8539(letter)s 9(,)k 0 8390(and)m 407(e)s 6(v)k 3(ery)k
986(w)s 2(ord)k 1537(is)s 1750(searched)s 2647(for)s
2988(in)s 3234(the)s 3585(symbol)s 4348(table.)s 4979(If)s
5212(it)s 5407(is)s 5620(found,)s 6289(it)s 6484(is)s
6697(an)s 6983(identi\207er)s 9(,)k 7946(otherwise)s 8934(it)s
0 8102(is)m 214(a)s 384(literal.)s 1107(A)s 1341(w)s 2(arning)k
2181(message)s 3051(is)s 3265(printed)s 4004(when)s 4585(a)s
4755(literal)s 5369(be)s 3(ginning)k 6381(with)s 6867(`@')s
7284(is)s 7498(found,)s 8168(since)s 8719(it)s 8916(is)s
0 7814(probably)m 905(a)s 1071(mis-spelt)s 2006(identi\207er)s 13(.)k
3019(No)s 3365(such)s 3861(safety)s 4485(net)s 4837(is)s
5047(possible)s 5887(for)s 6225(identi\207ers)s 7231(without)s 8022(`@'.)s
480 7440(Equation)m 1418(formatting)s 2496(also)s 2951(demands)s 3871(symbols)s
4737(made)s 5328(from)s 5869(punctuation)s 7074(characters,)s 8165(such)s
8678(as)s 220 fnt5 8946 7437(+)m 240 fnt1 0 7152(and)m
220 fnt5 404 7149(<=)m 240 fnt1 652 7152(.)m 816(It)s
1021(is)s 1231(traditional)s 2267(to)s 2506(allo)s 6(w)k
3085(such)s 3581(symbols)s 4430(to)s 4669(be)s 4951(juxtaposed,)s
6095(which)s 6737(means)s 7399(that)s 7817(the)s 8165(input)s
220 fnt5 480 6702(<=++)m 240 fnt1 0 6251(for)m 354(e)s 3(xample)k
1234(must)s 1776(be)s 2075(interpreted)s 3184(within)s 3869(the)s
4234(le)s 3(xical)k 4939(analyser)s 5812(by)s 6123(searching)s
7109(the)s 7474(symbol)s 8251(table)s 8788(for)s 0 5963(its)m
306(pre\207x)s 3(es)k 1142(in)s 1416(the)s 1795(order)s
220 fnt5 2390 5960(<=++)m 240 fnt1 2894 5963(,)m 220 fnt5
3032 5960(<=+)m 240 fnt1 3408 5963(,)m 220 fnt5 3546 5960(<=)m
240 fnt1 3794 5963(.)m 3988(Although)s 4981(this)s 5408(tak)s 2(es)k
5979(quadratic)s 6952(time,)s 7514(in)s 7788(practice)s 8630(such)s
0 5675(sequences)m 1021(are)s 1368(too)s 1727(short)s 2265(to)s
2504(mak)s 2(e)k 3076(a)s 3242(more)s 3789(sophisticated)s
5095(linear)s 5698(method)s 6474(lik)s 2(e)k 6886(tries)s
7347(w)s 2(orthwhile.)k 240 fnt2 0 5026(2.3.)m 471(Basic)s
1073(structural)s 2149(operators)s
[ /Dest /LOUTobjects /DEST pdfmark
240 fnt1 480 4549(A)m 696(programming)s
2036(language)s 2941(may)s 3393(be)s 3660(considered)s 4739(complete)s
5656(when)s 6218(it)s 6395(attains)s 7054(the)s 7388(po)s 6(wer)k
8025(of)s 8281(a)s 8432(T)s 10(uring)k 0 4261(machine,)m
917(b)s 4(ut)k 1280(no)s 1574(such)s 2071(criterion)s
2937(seems)s 3573(rele)s 6(v)k 6(ant)k 4390(to)s
4630(document)s 5635(formatting.)s 6808(Instead,)s 7606(as)s 7857(the)s
8206(language)s 0 3973(de)m 6(v)k 3(elops)k 913(and)s
1338(ne)s 6(w)k 1806(applications)s 3033(are)s 3401(attempted,)s
4471(de\207ciencies)s 5670(are)s 6038(e)s 3(xposed)k 6899(and)s
7324(the)s 7693(operator)s 8570(set)s 8916(is)s 0 3685(re)m 6(vised)k
742(to)s 981(o)s 3(v)k 3(ercome)k 1974(them.)s
480 3311(Lout)m 1025(has)s 1429(a)s 1629(repertoire)s 2646(of)s
2950(23)s 3268(primiti)s 6(v)k 3(e)k 4224(operators)s
5198(\(Figure)s 5990(1\),)s 6390(which)s 7066(has)s 7470(pro)s 3(v)k 3(en)k
8220(adequate)s 0 3023(for)m 348(a)s 525(wide)s 1056(v)s 6(ariety)k
1778(of)s 2059(features,)s 2932(including)s 3899(equations,)s 4934(tables,)s
5609(and)s 6023(page)s 6542(layout,)s 7257(and)s 7672(so)s
7948(seems)s 8594(to)s 8844(be)s 0 2735(reasonably)m 1077(complete)s
1995(in)s 2225(this)s 2607(pragmatic)s 3602(sense.)s 4270(In)s
4513(this)s 4895(section)s 5616(we)s 5937(introduce)s 6883(the)s
7217(eight)s 7741(concatenation)s 0 2447(and)m 424(mark-hiding)s 1680(operators.)s
2754(T)s 19(o)k 3075(them)s 3634(f)s 2(alls)k
4114(the)s 4482(basic)s 5047(task)s 5514(of)s 5806(assembling)s
6956(comple)s 3(x)k 7853(objects)s 8602(from)s 0 2159(simple)m
693(ones,)s 1239(and)s 1643(the)s 3(y)k 2106(were)s
2626(the)s 2974(\207rst)s 3405(to)s 3644(be)s 3926(designed)s
4835(and)s 5239(implemented.)s 480 1785(Man)m 3(y)k 1094(of)s
1370(the)s 1723(operators)s 2668(of)s 2944(Eqn)s 3392(can)s
3786(be)s 4073(vie)s 6(wed)k 4821(as)s 5076(b)s 4(uilding)k
5928(small)s 6505(tables.)s 7231(A)s 7466(b)s 4(uilt-up)k
8277(fraction,)s 0 1497(for)m 367(e)s 3(xample,)k 1310(has)s
1710(one)s 2141(column)s 2945(and)s 3379(three)s 3941(ro)s 6(ws)k
4480(\(numerator)s 9(,)k 5669(line,)s 6163(and)s 6596(denominator\).)s
8078(Numerous)s 0 1209(in)m 9(v)k 3(estig)k 1(ations)k
1377(of)s 1660(this)s 2068(kind)s 2564(con)s 9(vinced)k
3609(the)s 3969(author)s 4652(that)s 5082(operators)s 6034(capable)s
6832(of)s 7115(assembling)s 8256(the)s 8616(ro)s 6(ws)k
0 921(and)m 404(columns)s 1266(of)s 1537(tables)s 2145(w)s 2(ould)k
2800(suf\207ce)s 3493(for)s 3831(b)s 4(uilding)k 4678(all)s
4971(kinds)s 5541(of)s 5812(objects.)s 480 547(The)m 906(simplest)s
1759(objects)s 2485(are)s 2829(empty)s 3479(objects)s 4204(and)s
4605(literal)s 5213(w)s 2(ords)k 5844(lik)s 2(e)k
220 fnt5 6254 544(metempsychosis)m 240 fnt1 7882 547(,)m 7986(which)s
8625(ha)s 4(v)k 3(e)k
grestore
0 0 0 0 240 288 60 1417 -15423 LoutGr2
0 LoutMargSet
grestore
grestore
grestore
grestore
grestore
pgsave restore
showpage
%%Page: 5 6
%%BeginPageSetup
%%PageResources: font Times-Roman
%%+ font Times-Italic
%%+ font Helvetica
%%+ font Times-Bold
/pgsave save def
%%IncludeResource: font Times-Roman
/Times-Romanfnt1 vec2 /Times-Roman LoutRecode
/fnt1 { /Times-Romanfnt1 LoutFont } def
%%IncludeResource: font Times-Italic
/Times-Italicfnt3 vec2 /Times-Italic LoutRecode
/fnt3 { /Times-Italicfnt3 LoutFont } def
%%IncludeResource: font Helvetica
/Helveticafnt5 vec2 /Helvetica LoutRecode
/fnt5 { /Helveticafnt5 LoutFont } def
%%IncludeResource: font Times-Bold
/Times-Boldfnt2 vec2 /Times-Bold LoutRecode
/fnt2 { /Times-Boldfnt2 LoutFont } def
0.0500 dup scale 10 setlinewidth
%%EndPageSetup
gsave
0 0 translate
240 fnt1 0.0 0.0 0.0 LoutSetRGBColor LoutTextureSolid 11900 16840 0 16840 240 288 60 LoutGraphic
gsave
LoutPageSet
grestore
gsave
0 0 translate
1.0 1.0 1.0 LoutSetRGBColor 11900 16840 0 16840 240 288 60 LoutGraphic
gsave
LoutBox gsave 1.0 1.0 1.0 LoutSetRGBColor fill grestore 0 cm setlinewidth stroke
grestore
gsave
0 16840 translate
0.0000 rotate
0.0 0.0 0.0 LoutSetRGBColor
5769 -1582(-)m 5897(5)s 6063(-)s 9066 13413 0 13413 240 288 60 1417 -15423 LoutGr2
1 LoutMargSet
grestore
240 fnt3 266 13217(object)m
220 fnt5 974 13212(/)m 240 fnt3 1038 13217(gap)m 1511(object)s
240 fnt1 3816 13215(V)m 26(ertical)k 4613(concatenation)s 5998(with)s
6480(mark)s 7032(alignment)s 240 fnt3 266 12929(object)m 220 fnt5
974 12924(//)m 240 fnt3 1099 12929(gap)m 1572(object)s 240 fnt1
3816 12927(V)m 26(ertical)k 4613(concatenation)s 5998(with)s 6480(left)s
6857(justi\207cation)s 240 fnt3 266 12641(object)m 220 fnt5 974 12636(|)m
240 fnt3 1011 12641(gap)m 1484(object)s 240 fnt1 3816 12639(Horizontal)m
4893(concatenation)s 6278(with)s 6760(mark)s 7312(alignment)s 240 fnt3
266 12353(object)m 220 fnt5 974 12348(||)m 240 fnt3 1068 12353(gap)m
1541(object)s 240 fnt1 3816 12351(Horizontal)m 4893(concatenation)s 6278(with)s
6760(top-justi\207cation)s 240 fnt3 266 12065(object)m 220 fnt5 974 12060(&)m
240 fnt3 1116 12065(gap)m 1589(object)s 240 fnt1 3816 12063(Horizontal)m
4893(concatenation)s 6278(within)s 6946(paragraphs)s 220 fnt5 266 11772(@OneCol)m
240 fnt3 1338 11777(object)m 240 fnt1 3816 11775(Hide)m 4337(all)s
4630(b)s 4(ut)k 4992(one)s 5394(column)s 6169(mark)s
6721(of)s 240 fnt3 6992 11777(object)m 220 fnt5 266 11484(@OneRo)m 3(w)k
240 fnt3 1457 11489(object)m 240 fnt1 3816 11487(Hide)m 4337(all)s
4630(b)s 4(ut)k 4992(one)s 5394(ro)s 6(w)k
5814(mark)s 6366(of)s 240 fnt3 6637 11489(object)m 266 11201(font)m
220 fnt5 762 11196(@F)m 6(ont)k 240 fnt3 1534 11201(object)m
240 fnt1 3816 11199(Render)m 240 fnt3 4567 11201(object)m 240 fnt1
5215 11199(in)m 5458(nominated)s 6526(font)s 240 fnt3 266 10913(br)m 8(eakstyle)k
220 fnt5 1353 10908(@Break)m 240 fnt3 2269 10913(object)m 240 fnt1
3816 10911(Break)m 4448(paragraphs)s 5548(of)s 240 fnt3 5819 10913(object)m
240 fnt1 6467 10911(in)m 6710(nominated)s 7778(style)s 240 fnt3
266 10625(spacestyle)m 220 fnt5 1361 10620(@Space)m 240 fnt3 2318 10625(object)m
240 fnt1 3816 10623(Render)m 4567(spaces)s 5242(between)s 6096(w)s 2(ords)k
6730(in)s 6973(nominated)s 8041(style)s 240 fnt3 266 10337(length)m
220 fnt5 979 10332(@Wide)m 240 fnt3 1813 10337(object)m 240 fnt1
3816 10335(Render)m 240 fnt3 4567 10337(object)m 240 fnt1 5215 10335(to)m
5454(width)s 240 fnt3 6056 10337(length)m 266 10049(length)m 220 fnt5
979 10044(@High)m 240 fnt3 1758 10049(object)m 240 fnt1 3816 10047(Render)m
240 fnt3 4567 10049(object)m 240 fnt1 5215 10047(to)m 5454(height)s
240 fnt3 6112 10049(length)m 220 fnt5 266 9756(@HExpand)m 240 fnt3
1499 9761(object)m 240 fnt1 3816 9759(Expand)m 4606(horizontal)s 5630(g)s 1(aps)k
6119(to)s 6358(\207ll)s 6678(a)s 4(v)k 6(ailable)k
7586(space)s 220 fnt5 266 9468(@VExpand)m 240 fnt3 1487 9473(object)m
240 fnt1 3816 9471(Expand)m 4606(v)s 3(ertical)k 5373(g)s 1(aps)k
5862(to)s 6101(\207ll)s 6421(a)s 4(v)k 6(ailable)k
7329(space)s 220 fnt5 266 9180(@HScale)m 240 fnt3 1307 9185(object)m
240 fnt1 3816 9183(Horizontal)m 4893(geometrical)s 6075(scaling)s 6805(to)s
7044(\207ll)s 7364(a)s 4(v)k 6(ailable)k 8272(space)s
220 fnt5 266 8892(@VScale)m 240 fnt3 1295 8897(object)m 240 fnt1
3816 8895(V)m 26(ertical)k 4613(geometrical)s 5795(scaling)s 6525(to)s
6764(\207ll)s 7084(a)s 4(v)k 6(ailable)k 7992(space)s
240 fnt3 266 8609(angle)m 220 fnt5 911 8604(@Rotate)m 240 fnt3
1892 8609(object)m 240 fnt1 3816 8607(Rotate)m 240 fnt3 4496 8609(object)m
240 fnt1 5144 8607(by)m 240 fnt3 5438 8609(angle)m 266 8321(P)m 19(ostScript)k
220 fnt5 1367 8316(@Gr)m 2(aphic)k 240 fnt3 2471 8321(object)m
240 fnt1 3816 8319(Escape)m 4549(to)s 4788(graphics)s 5649(language)s
220 fnt5 266 8028(@Ne)m 6(xt)k 240 fnt3 1050 8033(object)m
240 fnt1 3816 8031(Add)m 4287(1)s 4442(to)s 4681(an)s
4964(object)s 5608(denoting)s 6499(a)s 6665(number)s 240 fnt3
266 7745(object)m 220 fnt5 974 7740(@Case)m 240 fnt3 1821 7745(alternatives)m
240 fnt1 3816 7743(Select)m 4459(from)s 4983(a)s 5149(set)s
5474(of)s 5745(alternati)s 6(v)k 3(e)k 6799(objects)s
240 fnt3 266 7457(identi\207er)m 220 fnt5 1254 7452(&&)m 240 fnt3
1662 7457(object)m 240 fnt1 3816 7455(Cross)m 4412(reference)s 240 fnt3
266 7169(cr)m 10(oss-r)k 8(efer)k 8(ence)k 220 fnt5
1839 7164(@Open)m 240 fnt3 2705 7169(object)m 240 fnt1 3816 7167(Retrie)m 6(v)k 3(e)k
4672(v)s 6(alue)k 5240(from)s 5764(cross)s 6306(reference)s
240 fnt3 266 6881(cr)m 10(oss-r)k 8(efer)k 8(ence)k
220 fnt5 1839 6876(@T)m 26(agged)k 240 fnt3 2888 6881(object)m
240 fnt1 3816 6879(Attach)m 4510(cross)s 5052(referencing)s 6192(tag)s
6537(to)s 6776(object)s
[ /Dest /LOUTprimitives /DEST pdfmark
200 fnt2 1346 6226(Figur)m 3(e)k
1954(1.)s 200 fnt1 2196 6227(The)m 2552(23)s 2789(primiti)s 5(v)k 3(e)k
3556(operators)s 4338(of)s 4564(Lout,)s 5030(in)s 5232(order)s
5702(of)s 5928(increasing)s 6789(precedence.)s 240 fnt1 0 5596(one)m
402(column)s 1177(mark)s 1729(and)s 2133(one)s 2535(ro)s 6(w)k
2955(mark:)s 1572 215 0 106 240 288 60 480 5090 LoutGr2
grestore save gsave 200 dict begin lfigdict begin
grestore
1572 215 0 106 240 288 60 0 0 LoutGr2
/lfiglightgrey [ lfigbox ] gsave lfigpaintpath grestore
0.015 cm setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigbox ] lfigdopath
pop pop
grestore
1572 215 0 106 240 288 60 0 0 LoutGr2
0.015 cm setlinewidth lfiground setlinecap
0.15 cm /lfigdashed [ -0.3 cm ymark xsize ymark 0.3 cm 0 lfigpadd
[]
xmark -0.3 cm xmark ysize 0 0.3 cm lfigpadd ] lfigdopath
pop pop
grestore
0 52(metempsychosis)m
grestore
grestore
end end restore
grestore
0 4639(T)m 19(o)k 337(place)s
934(tw)s 2(o)k 1381(arbitrary)s 2294(objects)s 3059(side)s
3537(by)s 3868(side,)s 4398(we)s 4770(use)s 5182(the)s
5567(in\207x)s 6099(operator)s 220 fnt5 6992 4636(|)m 240 fnt1
7029 4639(,)m 7173(denoting)s 8102(horizontal)s 0 4351(concatenation.)m 1492(F)s 3(or)k
1881(e)s 3(xample,)k 220 fnt5 480 3850(USA |0.2i A)m 6(ustr)k 2(alia)k
240 fnt1 0 3395(produces)m 915(the)s 1263(object)s 476 166 0 57 240 288 60 480 2889 LoutGr2
grestore save gsave 200 dict begin lfigdict begin
grestore
476 165 0 57 240 288 60 0 0 LoutGr2
/lfiglightgrey [ lfigbox ] gsave lfigpaintpath grestore
0.015 cm setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigbox ] lfigdopath
pop pop
grestore
476 165 0 57 240 288 60 0 0 LoutGr2
0.015 cm setlinewidth lfiground setlinecap
0.15 cm /lfigdashed [ -0.3 cm ymark xsize ymark 0.3 cm 0 lfigpadd
[]
xmark -0.3 cm xmark ysize 0 0.3 cm lfigpadd ] lfigdopath
pop pop
grestore
0 3(USA)m
grestore
grestore
end end restore
grestore
875 166 0 57 240 288 60 1244 2889 LoutGr2
grestore save gsave 200 dict begin lfigdict begin
grestore
875 165 0 56 240 288 60 0 1 LoutGr2
/lfiglightgrey [ lfigbox ] gsave lfigpaintpath grestore
0.015 cm setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigbox ] lfigdopath
pop pop
grestore
875 165 0 56 240 288 60 0 0 LoutGr2
0.015 cm setlinewidth lfiground setlinecap
0.15 cm /lfigdashed [ -0.3 cm ymark xsize ymark 0.3 cm 0 lfigpadd
[]
xmark -0.3 cm xmark ysize 0 0.3 cm lfigpadd ] lfigdopath
pop pop
grestore
0 2(Australia)m
grestore
grestore
end end restore
grestore
0 2438(The)m 443(ro)s 6(w)k 879(marks)s
1529(are)s 1892(mer)s 4(ged)k 2678(into)s 3119(one,)s
3587(\207xing)s 4215(the)s 4579(v)s 3(ertical)k 5361(position)s
6205(of)s 6491(the)s 6855(objects)s 7598(relati)s 6(v)k 3(e)k
8376(to)s 8631(each)s 0 2150(other;)m 611(their)s 1116(horizontal)s
2148(separation)s 3196(is)s 3414(determined)s 4555(by)s 4857(the)s
240 fnt3 5214 2152(gap)m 240 fnt1 5635 2150(attached)m 6497(to)s
6744(the)s 7101(operator)s 9(,)k 8003(in)s 8254(this)s
8659(case)s 0 1862(0.2)m 361(inches.)s 1143(W)s 19(e)k
1519(think)s 2080(of)s 2358(the)s 2713(g)s 1(ap)k
3118(as)s 3376(part)s 3814(of)s 4092(the)s 4448(operator)s 9(,)k
5349(although)s 6251(strictly)s 6974(it)s 7174(is)s 7391(a)s
7564(third)s 8081(parameter)s 13(.)k 0 1574(It)m 205(may)s
671(be)s 953(omitted,)s 1790(def)s 2(aulting)k 2810(to)s
220 fnt5 3049 1571(0i)m 240 fnt1 3205 1574(.)m 240 fnt3
480 1202(V)m 26(ertical)k 1294(concatenation)s 240 fnt1 2644 1200(,)m
2762(denoted)s 3590(by)s 3895(the)s 4254(in\207x)s 4760(operator)s
220 fnt5 5627 1197(/)m 240 fnt1 5691 1200(,)m 5809(is)s
6031(the)s 6390(same)s 6948(apart)s 7497(from)s 8032(the)s
8392(change)s 0 912(of)m 271(direction:)s 220 fnt5 480 461(A)m 6(ustr)k 2(alia /0.1i USA)k
grestore
0 0 0 0 240 288 60 1417 -15423 LoutGr2
1 LoutMargSet
grestore
grestore
grestore
grestore
grestore
pgsave restore
showpage
%%Page: 6 7
%%BeginPageSetup
%%PageResources: font Times-Roman
%%+ font Helvetica
%%+ font Times-Italic
/pgsave save def
%%IncludeResource: font Times-Roman
/Times-Romanfnt1 vec2 /Times-Roman LoutRecode
/fnt1 { /Times-Romanfnt1 LoutFont } def
%%IncludeResource: font Helvetica
/Helveticafnt5 vec2 /Helvetica LoutRecode
/fnt5 { /Helveticafnt5 LoutFont } def
%%IncludeResource: font Times-Italic
/Times-Italicfnt3 vec2 /Times-Italic LoutRecode
/fnt3 { /Times-Italicfnt3 LoutFont } def
0.0500 dup scale 10 setlinewidth
%%EndPageSetup
gsave
0 0 translate
240 fnt1 0.0 0.0 0.0 LoutSetRGBColor LoutTextureSolid 11900 16840 0 16840 240 288 60 LoutGraphic
gsave
LoutPageSet
grestore
gsave
0 0 translate
1.0 1.0 1.0 LoutSetRGBColor 11900 16840 0 16840 240 288 60 LoutGraphic
gsave
LoutBox gsave 1.0 1.0 1.0 LoutSetRGBColor fill grestore 0 cm setlinewidth stroke
grestore
gsave
0 16840 translate
0.0000 rotate
0.0 0.0 0.0 LoutSetRGBColor
5765 -1581(-)m 5893(6)s 6066(-)s 9066 13414 0 13305 240 288 60 1417 -15423 LoutGr2
0 LoutMargSet
grestore
0 13251(produces)m 915(the)s
1263(object)s 875 165 0 56 240 288 60 480 12746 LoutGr2
grestore save gsave 200 dict begin lfigdict begin
grestore
875 165 0 56 240 288 60 0 0 LoutGr2
/lfiglightgrey [ lfigbox ] gsave lfigpaintpath grestore
0.015 cm setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigbox ] lfigdopath
pop pop
grestore
875 165 0 56 240 288 60 0 0 LoutGr2
0.015 cm setlinewidth lfiground setlinecap
0.15 cm /lfigdashed [ -0.3 cm ymark xsize ymark 0.3 cm 0 lfigpadd
[]
xmark -0.3 cm xmark ysize 0 0.3 cm lfigpadd ] lfigdopath
pop pop
grestore
0 2(Australia)m
grestore
grestore
end end restore
grestore
875 165 0 57 240 288 60 480 12437 LoutGr2
grestore save gsave 200 dict begin lfigdict begin
grestore
476 165 0 57 240 288 60 0 0 LoutGr2
/lfiglightgrey [ lfigbox ] gsave lfigpaintpath grestore
0.015 cm setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigbox ] lfigdopath
pop pop
grestore
476 165 0 57 240 288 60 0 0 LoutGr2
0.015 cm setlinewidth lfiground setlinecap
0.15 cm /lfigdashed [ -0.3 cm ymark xsize ymark 0.3 cm 0 lfigpadd
[]
xmark -0.3 cm xmark ysize 0 0.3 cm lfigpadd ] lfigdopath
pop pop
grestore
0 3(USA)m
grestore
grestore
end end restore
grestore
0 11986(with)m 482(column)s
1257(marks)s 1892(mer)s 4(ged)k 2663(and)s 3067(a)s
3233(0.1)s 3568(inch)s 4037(g)s 1(ap.)k 480 11612(Consider)m
1404(no)s 6(w)k 1865(what)s 2390(happens)s 3226(when)s
3802(horizontal)s 4826(and)s 5230(v)s 3(ertical)k 5997(are)s
6344(combined:)s 220 fnt5 1000 11111({)m 1186(USA)s 2442(|0.2i)s
2958(A)s 6(ustr)k 2(alia)k 3919(})s 480 10823(/0.1i)m
1000({)s 1186(W)s 8(ashington)k 2442(|)s 2958(Canberr)s 2(a)k
3987(})s 240 fnt1 0 10324(The)m 445(tw)s 2(o)k
872(parameters)s 1987(of)s 220 fnt5 2275 10321(/)m 240 fnt1
2416 10324(no)m 6(w)k 2895(ha)s 4(v)k 3(e)k
3413(tw)s 2(o)k 3840(column)s 4632(marks)s 5284(each,)s
5846(and)s 6268(the)s 3(y)k 6748(will)s 7191(be)s
7490(mer)s 4(ged)k 8278(with)s 8778(the)s 0 10036(corresponding)m
1422(marks)s 2057(in)s 2300(the)s 2648(other)s 3199(parameter)s 9(,)k
4251(yielding)s 5088(the)s 5436(object)s 476 166 0 57 240 288 60 480 9530 LoutGr2
grestore save gsave 200 dict begin lfigdict begin
grestore
476 165 0 57 240 288 60 0 0 LoutGr2
/lfiglightgrey [ lfigbox ] gsave lfigpaintpath grestore
0.015 cm setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigbox ] lfigdopath
pop pop
grestore
476 165 0 57 240 288 60 0 0 LoutGr2
0.015 cm setlinewidth lfiground setlinecap
0.15 cm /lfigdashed [ -0.3 cm ymark xsize ymark 0.3 cm 0 lfigpadd
[]
xmark -0.3 cm xmark ysize 0 0.3 cm lfigpadd ] lfigdopath
pop pop
grestore
0 3(USA)m
grestore
grestore
end end restore
grestore
659 166 0 57 240 288 60 956 9530 LoutGr2
0 ymark moveto xsize 10 pt add ymark lineto [ 3 pt ] 0 setdash stroke
grestore
grestore
876 166 0 57 240 288 60 1903 9530 LoutGr2
grestore save gsave 200 dict begin lfigdict begin
grestore
875 165 0 56 240 288 60 0 1 LoutGr2
/lfiglightgrey [ lfigbox ] gsave lfigpaintpath grestore
0.015 cm setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigbox ] lfigdopath
pop pop
grestore
875 165 0 56 240 288 60 0 0 LoutGr2
0.015 cm setlinewidth lfiground setlinecap
0.15 cm /lfigdashed [ -0.3 cm ymark xsize ymark 0.3 cm 0 lfigpadd
[]
xmark -0.3 cm xmark ysize 0 0.3 cm lfigpadd ] lfigdopath
pop pop
grestore
0 2(Australia)m
grestore
grestore
end end restore
grestore
1135 215 0 106 240 288 60 480 9171 LoutGr2
grestore save gsave 200 dict begin lfigdict begin
grestore
1135 215 0 106 240 288 60 0 0 LoutGr2
/lfiglightgrey [ lfigbox ] gsave lfigpaintpath grestore
0.015 cm setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigbox ] lfigdopath
pop pop
grestore
1135 215 0 106 240 288 60 0 0 LoutGr2
0.015 cm setlinewidth lfiground setlinecap
0.15 cm /lfigdashed [ -0.3 cm ymark xsize ymark 0.3 cm 0 lfigpadd
[]
xmark -0.3 cm xmark ysize 0 0.3 cm lfigpadd ] lfigdopath
pop pop
grestore
0 52(W)m 19(ashington)k
grestore
grestore
end end restore
grestore
876 215 0 106 240 288 60 1903 9171 LoutGr2
grestore save gsave 200 dict begin lfigdict begin
grestore
876 166 0 57 240 288 60 0 49 LoutGr2
/lfiglightgrey [ lfigbox ] gsave lfigpaintpath grestore
0.015 cm setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigbox ] lfigdopath
pop pop
grestore
876 166 0 57 240 288 60 0 0 LoutGr2
0.015 cm setlinewidth lfiground setlinecap
0.15 cm /lfigdashed [ -0.3 cm ymark xsize ymark 0.3 cm 0 lfigpadd
[]
xmark -0.3 cm xmark ysize 0 0.3 cm lfigpadd ] lfigdopath
pop pop
grestore
0 3(Canberra)m
grestore
grestore
end end restore
grestore
0 8720(The)m 220 fnt5
425 8717(0.2i)m 240 fnt1 821 8720(g)m 1(ap)k 1216(separates)s
2139(columns,)s 3054(not)s 3416(indi)s 6(vidual)k 4432(items)s
4997(in)s 5237(columns,)s 6152(so)s 6414(a)s 6577(g)s 1(ap)k
6972(attached)s 7823(to)s 8059(the)s 8403(second)s 220 fnt5
0 8429(|)m 240 fnt1 96 8432(w)m 2(ould)k 749(serv)s 3(e)k
1304(no)s 1595(purpose;)s 2464(an)s 3(y)k 2859(such)s
3353(g)s 1(ap)k 3749(is)s 3957(ignored.)s 4851(If)s
5079(the)s 5425(number)s 6214(of)s 6484(marks)s 7117(to)s
7354(be)s 7634(mer)s 4(ged)k 8403(dif)s 6(fers,)k
0 8144(empty)m 638(columns)s 1485(are)s 1818(added)s 2433(at)s
2651(the)s 2984(right)s 3481(to)s 3705(equalize)s 4542(the)s
4876(number)s 13(.)k 5743(The)s 6157(four)s 6600(marks)s
7221(protruding)s 8269(from)s 8778(the)s 0 7856(result)m 601(are)s
959(all)s 1263(a)s 4(v)k 6(ailable)k 2182(for)s
2531(mer)s 4(ging)k 3389(with)s 3882(neighbouring)s 5223(marks)s
5869(by)s 6174(other)s 6736(concatenation)s 8133(operators.)s 0 7568(The)m
428(precedence)s 1559(of)s 220 fnt5 1830 7565(|)m 240 fnt1
1927 7568(is)m 2137(higher)s 2808(than)s 3277(the)s 3625(precedence)s
4756(of)s 220 fnt5 5027 7565(/)m 240 fnt1 5091 7568(,)m
5198(so)s 5464(the)s 5812(braces)s 6473(could)s 7063(be)s
7345(omitted.)s 480 7194(When)m 1131(lines)s 1656(of)s 1950(te)s 3(xt)k
2387(are)s 2757(concatenated,)s 4135(it)s 4349(is)s 4582(con)s 9(v)k 3(entional)k
5884(to)s 6145(measure)s 7020(their)s 7540(separation)s 8602(from)s
0 6906(baseline)m 832(to)s 1063(baseline)s 1894(\(mark)s 2517(to)s
2748(mark)s 3292(in)s 3527(Lout\),)s 4157(rather)s 4765(than)s
5226(from)s 5742(edge)s 6242(to)s 6473(edge)s 6973(as)s
7215(abo)s 3(v)k 3(e.)k 7937(This)s 8405(idea)s
8855(of)s 0 6618(dif)m 6(ferent)k 863(reference)s 1794(points)s
2417(for)s 2743(measurement)s 4065(e)s 6(v)k 4(olv)k 3(ed)k
4855(o)s 3(v)k 3(er)k 5322(the)s 5658(years)s
6200(into)s 6613(a)s 6767(system)s 7478(of)s 7737(six)s
240 fnt3 8059 6620(gap)m 8459(modes)s 240 fnt1 0 6330(\(Figure)m
769(2\),)s 1085(e)s 3(xpressed)k 2094(by)s 2398(appending)s
3460(a)s 3636(letter)s 4195(to)s 4445(the)s 4803(length.)s
5576(F)s 3(or)k 5975(e)s 3(xample,)k 220 fnt5
6899 6327(|0.2i)m 240 fnt1 7366 6330(is)m 7586(an)s 7880(abbre)s 6(viation)k
0 6042(for)m 220 fnt5 377 6039(|0.2ie)m 240 fnt1 901 6042(,)m
1047(meaning)s 1963(0.2)s 2356(inches)s 3057(measured)s 4070(from)s
4633(edge)s 5180(to)s 5458(edge;)s 220 fnt5 6061 6039(|0.3ix)m
240 fnt1 6678 6042(produces)m 7632(a)s 7837(0.3)s 8220(inch)s
8728(g)s 1(ap)k 0 5754(measured)m 972(from)s 1493(mark)s
2043(to)s 2279(mark)s 2829(and)s 3230(widened)s 4097(if)s
4311(necessary)s 5292(to)s 5528(pre)s 6(v)k 3(ent)k
6294(o)s 3(v)k 3(erstriking;)k 7552(and)s 220 fnt5
7954 5751(|2.5it)m 240 fnt1 8478 5754(places)m 0 5466(its)m 273(right)s
781(parameter)s 1792(2.5)s 2135(inches)s 2794(from)s 3314(the)s
3659(current)s 4392(left)s 4766(mar)s 4(gin,)k 5543(irrespecti)s 6(v)k 3(e)k
6699(of)s 6967(the)s 7312(position)s 8137(of)s 8405(the)s
8749(left)s 0 5178(parameter)m 13(.)k 1098(There)s 1704(is)s
1907(also)s 2338(a)s 2496(choice)s 3169(of)s 3433(ele)s 6(v)k 3(en)k
4098(units)s 4606(of)s 4870(measurement)s 6197(\(inches,)s 6987(centimetres,)s
8186(multiples)s 0 4890(of)m 288(the)s 654(current)s 1407(font)s
1870(size,)s 2365(etc.\),)s 2907(the)s 3272(most)s 3815(interesting)s
4894(being)s 5496(the)s 220 fnt5 5862 4887(r)m 240 fnt1
6012 4890(unit:)m 6568(one)s 220 fnt5 6987 4887(r)m 240 fnt1
7138 4890(is)m 7365(the)s 7731(column)s 8524(width)s 0 4602(minus)m
635(the)s 982(width)s 1583(of)s 1852(the)s 2199(follo)s 6(wing)k
3175(object,)s 3864(so)s 4129(that)s 220 fnt5 4546 4599(|1r)m -8(t)k
240 fnt1 4921 4602(produces)m 5835(suf\207cient)s 6783(space)s 7368(to)s
7606(right)s 8116(justify)s 8778(the)s 0 4314(follo)m 6(wing)k
987(object,)s 1688(and)s 220 fnt5 2103 4311(|0.5r)m -8(t)k
240 fnt1 2673 4314(to)m 2923(center)s 3576(it.)s 3883(These)s
4520(features)s 5337(implement)s 6429(spacings)s 7315(needed)s 8061(in)s
8315(practice)s 0 4026(rather)m 608(than)s 1069(suggested)s 2063(by)s
2349(theory)s 15(.)k 3101(The)s 3(y)k 3636(w)s 2(ork)k
4179(with)s 4653(all)s 4938(\207v)s 3(e)k 5342(concatenation)s
6719(operators,)s 7707(horizontal)s 8722(and)s 0 3738(v)m 3(ertical.)k
480 3364(When)m 1113(we)s 1452(construct)s 2392(a)s 2562(b)s 4(uilt-up)k
3372(fraction,)s 4225(the)s 4577(result)s 5171(has)s 5545(three)s
6082(ro)s 6(w)k 6506(marks,)s 7201(b)s 4(ut)k
7567(only)s 8051(the)s 8403(second)s 0 3076(should)m 697(be)s
979(visible)s 1672(outside)s 2419(the)s 2767(object:)s gsave
480 2245 translate
240 fnt3
156 491 0 288 240 288 12 LoutGraphic
gsave
grestore save gsave 200 dict begin lfigdict begin
grestore
156 491 0 288 240 288 12 0 0 LoutGr2
/lfiglightgrey [ lfigbox ] gsave lfigpaintpath grestore
0.015 cm setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigbox ] lfigdopath
pop pop
grestore
156 491 0 288 240 288 12 0 0 LoutGr2
0.015 cm setlinewidth lfiground setlinecap
0.15 cm /lfigdashed [ -0.3 cm ymark xsize ymark 0.3 cm 0 lfigpadd
[]
xmark -0.3 cm xmark ysize 0 0.3 cm lfigpadd ] lfigdopath
pop pop
grestore
0 336(X)m 156 0 0 0 240 288 12 0 288 LoutGr2
0 0 moveto xsize 0 lineto 0.05 ft setlinewidth stroke
grestore
grestore
2 68(Y)m
grestore
grestore
end end restore
grestore
0 1794(This)m 493(is)s 721(a)s
905(common)s 1817(problem,)s 2739(and)s 3161(accordingly)s 4361(a)s
220 fnt5 4545 1791(@OneRo)m 3(w)k 240 fnt1 5694 1794(operator)m
6567(w)s 2(as)k 7006(introduced)s 8105(for)s 8461(hiding)s
0 1506(all)m 291(b)s 4(ut)k 650(one)s 1050(of)s
1318(the)s 1663(ro)s 6(w)k 2081(marks)s 2713(of)s
2981(its)s 3255(parameter)s 13(.)k 4357(Normally)s 15(,)k
5363(the)s 5708(\207rst)s 6136(mark)s 6686(is)s 6893(the)s
7238(survi)s 6(v)k 4(or)k 9(,)k 8121(b)s 4(ut)k
8480(a)s 8643(later)s 0 1218(mark)m 552(can)s 941(be)s
1223(chosen)s 1945(by)s 2239(pre\207xing)s 220 fnt5 3156 1215(^)m
240 fnt1 3322 1218(to)m 3561(the)s 3909(preceding)s 4905(concatenation)s
6290(operator:)s 220 fnt5 480 717(@OneRo)m 3(w { X ^/2p @HLine /2p )k 19(Y })k
grestore
0 0 0 0 240 288 60 1417 -15423 LoutGr2
0 LoutMargSet
grestore
grestore
grestore
grestore
grestore
pgsave restore
showpage
%%Page: 7 8
%%BeginPageSetup
%%PageResources: font Times-Roman
%%+ font Helvetica
%%+ font Times-Italic
%%+ font Symbol
%%+ font Times-Bold
/pgsave save def
%%IncludeResource: font Times-Roman
/Times-Romanfnt1 vec2 /Times-Roman LoutRecode
/fnt1 { /Times-Romanfnt1 LoutFont } def
%%IncludeResource: font Helvetica
/Helveticafnt5 vec2 /Helvetica LoutRecode
/fnt5 { /Helveticafnt5 LoutFont } def
%%IncludeResource: font Times-Italic
/Times-Italicfnt3 vec2 /Times-Italic LoutRecode
/fnt3 { /Times-Italicfnt3 LoutFont } def
%%IncludeResource: font Symbol
/fnt4 { /Symbol LoutFont } def
%%IncludeResource: font Times-Bold
/Times-Boldfnt2 vec2 /Times-Bold LoutRecode
/fnt2 { /Times-Boldfnt2 LoutFont } def
0.0500 dup scale 10 setlinewidth
%%EndPageSetup
gsave
0 0 translate
240 fnt1 0.0 0.0 0.0 LoutSetRGBColor LoutTextureSolid 11900 16840 0 16840 240 288 60 LoutGraphic
gsave
LoutPageSet
grestore
gsave
0 0 translate
1.0 1.0 1.0 LoutSetRGBColor 11900 16840 0 16840 240 288 60 LoutGraphic
gsave
LoutBox gsave 1.0 1.0 1.0 LoutSetRGBColor fill grestore 0 cm setlinewidth stroke
grestore
gsave
0 16840 translate
0.0000 rotate
0.0 0.0 0.0 LoutSetRGBColor
5768 -1575(-)m 5896(7)s 6064(-)s 9066 13422 0 13422 240 288 60 1417 -15423 LoutGr2
1 LoutMargSet
grestore
6693 8221 0 8221 240 288 60 1186 5201 LoutGr2
grestore save gsave 200 dict begin lfigdict begin
grestore
0 7447(Edge-to-edge)m 220 fnt5
1786 7444(|)m 240 fnt3 1843 7449(length)m 220 fnt5 2456 7444(e)m
240 fnt1 0 6238(Hyphenation)m 220 fnt5 1786 6235(|)m 240 fnt3
1843 6240(length)m 220 fnt5 2456 6235(h)m 240 fnt1 0 5029(Ov)m 3(erstrik)k 2(e)k
220 fnt5 1786 5026(|)m 240 fnt3 1843 5031(length)m 220 fnt5
2456 5026(o)m 240 fnt1 0 3820(Mark-to-mark)m 220 fnt5 1786 3817(|)m
240 fnt3 1843 3822(length)m 220 fnt5 2456 3817(x)m 240 fnt1
0 2611(K)m 6(erning)k 220 fnt5 1786 2608(|)m 240 fnt3
1843 2613(length)m 220 fnt5 2456 2608(k)m 240 fnt1 0 1402(T)m 19(ab)k 4(ulation)k
220 fnt5 1786 1399(|)m 240 fnt3 1843 1404(length)m 220 fnt5
2456 1399(t)m gsave
3291 0 translate
240 fnt1 3402 8221 0 8221 240 288 60 LoutGraphic
gsave
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigbox ] lfigdopath
pop pop
grestore
gsave
567 7485 translate
180 fnt1 680 340 0 340 180 288 45 LoutGraphic
gsave
0 0 moveto xsize 0 lineto
xsize ysize lineto 0 ysize lineto closepath
gsave 0.9 setgray fill grestore stroke
grestore
grestore
gsave
680 7371 translate
180 fnt1 2722 567 0 567 180 288 45 LoutGraphic
gsave
0 0 moveto 0 ysize lineto [ 3 pt ] 0 setdash stroke
grestore
grestore
gsave
2268 7485 translate
180 fnt1
680 340 0 340 180 288 45 LoutGraphic
gsave
0 0 moveto xsize 0 lineto
xsize ysize lineto 0 ysize lineto closepath
gsave 0.9 setgray fill grestore stroke
grestore
grestore
gsave
2551 7371 translate
180 fnt1 851 567 0 567 180 288 45 LoutGraphic
gsave
0 0 moveto 0 ysize lineto [ 3 pt ] 0 setdash stroke
grestore
grestore
gsave
2267 7395 translate
180.0000 rotate
gsave
0 0 translate
30.0000 rotate
gsave
0 1 translate
180 fnt1 68 -2 0 -1 180 288 45 LoutGraphic
gsave
0 0 moveto xsize 0 lineto stroke
grestore
grestore
grestore
gsave
0 0 translate
180 fnt1 1020 0 0 0 180 288 45 LoutGraphic
gsave
0 0 moveto xsize 0 lineto stroke
grestore
grestore
gsave
0 0 translate
-30.0000 rotate
gsave
0 1 translate
180 fnt1 68 -2 0 -1 180 288 45 LoutGraphic
gsave
0 0 moveto xsize 0 lineto stroke
grestore
grestore
grestore
grestore
gsave
1247 7395 translate
30.0000 rotate
gsave
0 1 translate
180 fnt1
68 -2 0 -1 180 288 45 LoutGraphic
gsave
0 0 moveto xsize 0 lineto stroke
grestore
grestore
grestore
gsave
1247 7395 translate
180 fnt1 1020 0 0 0 180 288 45 LoutGraphic
gsave
0 0 moveto xsize 0 lineto stroke
grestore
grestore
gsave
1247 7395 translate
-30.0000 rotate
gsave
0 1 translate
180 fnt1 68 -2 0 -1 180 288 45 LoutGraphic
gsave
0 0 moveto xsize 0 lineto stroke
grestore
grestore
grestore
180 fnt3 1534 7192(length)m gsave
567 6304 translate
180 fnt1
680 340 0 340 180 288 45 LoutGraphic
gsave
0 0 moveto xsize 0 lineto
xsize ysize lineto 0 ysize lineto closepath
gsave 0.9 setgray fill grestore stroke
grestore
grestore
gsave
680 6190 translate
180 fnt1 2722 567 0 567 180 288 45 LoutGraphic
gsave
0 0 moveto 0 ysize lineto [ 3 pt ] 0 setdash stroke
grestore
grestore
gsave
2268 6304 translate
180 fnt1 680 340 0 340 180 288 45 LoutGraphic
gsave
0 0 moveto xsize 0 lineto
xsize ysize lineto 0 ysize lineto closepath
gsave 0.9 setgray fill grestore stroke
grestore
grestore
gsave
2551 6190 translate
180 fnt1 851 567 0 567 180 288 45 LoutGraphic
gsave
0 0 moveto 0 ysize lineto [ 3 pt ] 0 setdash stroke
grestore
grestore
gsave
2267 6214 translate
180.0000 rotate
gsave
0 0 translate
30.0000 rotate
gsave
0 1 translate
180 fnt1 68 -2 0 -1 180 288 45 LoutGraphic
gsave
0 0 moveto xsize 0 lineto stroke
grestore
grestore
grestore
gsave
0 0 translate
180 fnt1
1020 0 0 0 180 288 45 LoutGraphic
gsave
0 0 moveto xsize 0 lineto stroke
grestore
grestore
gsave
0 0 translate
-30.0000 rotate
gsave
0 1 translate
180 fnt1 68 -2 0 -1 180 288 45 LoutGraphic
gsave
0 0 moveto xsize 0 lineto stroke
grestore
grestore
grestore
grestore
gsave
1247 6214 translate
30.0000 rotate
gsave
0 1 translate
180 fnt1 68 -2 0 -1 180 288 45 LoutGraphic
gsave
0 0 moveto xsize 0 lineto stroke
grestore
grestore
grestore
gsave
1247 6214 translate
180 fnt1 1020 0 0 0 180 288 45 LoutGraphic
gsave
0 0 moveto xsize 0 lineto stroke
grestore
grestore
gsave
1247 6214 translate
-30.0000 rotate
gsave
0 1 translate
180 fnt1 68 -2 0 -1 180 288 45 LoutGraphic
gsave
0 0 moveto xsize 0 lineto stroke
grestore
grestore
grestore
1534 6011(length)m
gsave
567 5123 translate
180 fnt1 680 340 0 340 180 288 45 LoutGraphic
gsave
0 0 moveto xsize 0 lineto
xsize ysize lineto 0 ysize lineto closepath
gsave 0.9 setgray fill grestore stroke
grestore
grestore
gsave
680 5009 translate
180 fnt1 2722 567 0 567 180 288 45 LoutGraphic
gsave
0 0 moveto 0 ysize lineto [ 3 pt ] 0 setdash stroke
grestore
grestore
gsave
2268 5123 translate
180 fnt1 680 340 0 340 180 288 45 LoutGraphic
gsave
0 0 moveto xsize 0 lineto
xsize ysize lineto 0 ysize lineto closepath
gsave 0.9 setgray fill grestore stroke
grestore
grestore
gsave
2551 5009 translate
180 fnt1 851 567 0 567 180 288 45 LoutGraphic
gsave
0 0 moveto 0 ysize lineto [ 3 pt ] 0 setdash stroke
grestore
grestore
gsave
2551 4976 translate
180.0000 rotate
gsave
0 0 translate
30.0000 rotate
gsave
0 1 translate
180 fnt1
68 -2 0 -1 180 288 45 LoutGraphic
gsave
0 0 moveto xsize 0 lineto stroke
grestore
grestore
grestore
gsave
0 0 translate
180 fnt1 1871 0 0 0 180 288 45 LoutGraphic
gsave
0 0 moveto xsize 0 lineto stroke
grestore
grestore
gsave
0 0 translate
-30.0000 rotate
gsave
0 1 translate
180 fnt1 68 -2 0 -1 180 288 45 LoutGraphic
gsave
0 0 moveto xsize 0 lineto stroke
grestore
grestore
grestore
grestore
gsave
680 4976 translate
30.0000 rotate
gsave
0 1 translate
180 fnt1 68 -2 0 -1 180 288 45 LoutGraphic
gsave
0 0 moveto xsize 0 lineto stroke
grestore
grestore
grestore
gsave
680 4976 translate
180 fnt1 1871 0 0 0 180 288 45 LoutGraphic
gsave
0 0 moveto xsize 0 lineto stroke
grestore
grestore
gsave
680 4976 translate
-30.0000 rotate
gsave
0 1 translate
180 fnt1
68 -2 0 -1 180 288 45 LoutGraphic
gsave
0 0 moveto xsize 0 lineto stroke
grestore
grestore
grestore
1392 4774(length)m gsave
567 3886 translate
180 fnt1 680 340 0 340 180 288 45 LoutGraphic
gsave
0 0 moveto xsize 0 lineto
xsize ysize lineto 0 ysize lineto closepath
gsave 0.9 setgray fill grestore stroke
grestore
grestore
gsave
680 3772 translate
180 fnt1 2722 567 0 567 180 288 45 LoutGraphic
gsave
0 0 moveto 0 ysize lineto [ 3 pt ] 0 setdash stroke
grestore
grestore
gsave
2268 3886 translate
180 fnt1 680 340 0 340 180 288 45 LoutGraphic
gsave
0 0 moveto xsize 0 lineto
xsize ysize lineto 0 ysize lineto closepath
gsave 0.9 setgray fill grestore stroke
grestore
grestore
gsave
2551 3772 translate
180 fnt1
851 567 0 567 180 288 45 LoutGraphic
gsave
0 0 moveto 0 ysize lineto [ 3 pt ] 0 setdash stroke
grestore
grestore
gsave
2551 3739 translate
180.0000 rotate
gsave
0 0 translate
30.0000 rotate
gsave
0 1 translate
180 fnt1 68 -2 0 -1 180 288 45 LoutGraphic
gsave
0 0 moveto xsize 0 lineto stroke
grestore
grestore
grestore
gsave
0 0 translate
180 fnt1 1871 0 0 0 180 288 45 LoutGraphic
gsave
0 0 moveto xsize 0 lineto stroke
grestore
grestore
gsave
0 0 translate
-30.0000 rotate
gsave
0 1 translate
180 fnt1 68 -2 0 -1 180 288 45 LoutGraphic
gsave
0 0 moveto xsize 0 lineto stroke
grestore
grestore
grestore
grestore
gsave
680 3739 translate
30.0000 rotate
gsave
0 1 translate
180 fnt1 68 -2 0 -1 180 288 45 LoutGraphic
gsave
0 0 moveto xsize 0 lineto stroke
grestore
grestore
grestore
gsave
680 3739 translate
180 fnt1
1871 0 0 0 180 288 45 LoutGraphic
gsave
0 0 moveto xsize 0 lineto stroke
grestore
grestore
gsave
680 3739 translate
-30.0000 rotate
gsave
0 1 translate
180 fnt1 68 -2 0 -1 180 288 45 LoutGraphic
gsave
0 0 moveto xsize 0 lineto stroke
grestore
grestore
grestore
180 fnt1 941 3536(max)m 180 fnt4 1256 3531(\()m
180 fnt3 1319 3537(length)m 180 fnt4 1774 3531(,)m 180 fnt3
1854 3537(a)m 180 fnt4 1994 3531(+)m 180 fnt3 2145 3537(b)m
180 fnt4 2240 3531(\))m gsave
1247 4363 translate
180.0000 rotate
gsave
0 0 translate
30.0000 rotate
gsave
0 1 translate
180 fnt1 68 -2 0 -1 180 288 45 LoutGraphic
gsave
0 0 moveto xsize 0 lineto stroke
grestore
grestore
grestore
gsave
0 0 translate
180 fnt1 567 0 0 0 180 288 45 LoutGraphic
gsave
0 0 moveto xsize 0 lineto stroke
grestore
grestore
gsave
0 0 translate
-30.0000 rotate
gsave
0 1 translate
180 fnt1
68 -2 0 -1 180 288 45 LoutGraphic
gsave
0 0 moveto xsize 0 lineto stroke
grestore
grestore
grestore
grestore
gsave
680 4363 translate
30.0000 rotate
gsave
0 1 translate
180 fnt1 68 -2 0 -1 180 288 45 LoutGraphic
gsave
0 0 moveto xsize 0 lineto stroke
grestore
grestore
grestore
gsave
680 4363 translate
180 fnt1 567 0 0 0 180 288 45 LoutGraphic
gsave
0 0 moveto xsize 0 lineto stroke
grestore
grestore
gsave
680 4363 translate
-30.0000 rotate
gsave
0 1 translate
180 fnt1 68 -2 0 -1 180 288 45 LoutGraphic
gsave
0 0 moveto xsize 0 lineto stroke
grestore
grestore
grestore
180 fnt3 920 4431(a)m
gsave
2551 4363 translate
180.0000 rotate
gsave
0 0 translate
30.0000 rotate
gsave
0 1 translate
180 fnt1 68 -2 0 -1 180 288 45 LoutGraphic
gsave
0 0 moveto xsize 0 lineto stroke
grestore
grestore
grestore
gsave
0 0 translate
180 fnt1 283 0 0 0 180 288 45 LoutGraphic
gsave
0 0 moveto xsize 0 lineto stroke
grestore
grestore
gsave
0 0 translate
-30.0000 rotate
gsave
0 1 translate
180 fnt1 68 -2 0 -1 180 288 45 LoutGraphic
gsave
0 0 moveto xsize 0 lineto stroke
grestore
grestore
grestore
grestore
gsave
2268 4363 translate
30.0000 rotate
gsave
0 1 translate
180 fnt1 68 -2 0 -1 180 288 45 LoutGraphic
gsave
0 0 moveto xsize 0 lineto stroke
grestore
grestore
grestore
gsave
2268 4363 translate
180 fnt1
283 0 0 0 180 288 45 LoutGraphic
gsave
0 0 moveto xsize 0 lineto stroke
grestore
grestore
gsave
2268 4363 translate
-30.0000 rotate
gsave
0 1 translate
180 fnt1 68 -2 0 -1 180 288 45 LoutGraphic
gsave
0 0 moveto xsize 0 lineto stroke
grestore
grestore
grestore
2366 4387(b)m gsave
567 2590 translate
180 fnt1 680 340 0 340 180 288 45 LoutGraphic
gsave
0 0 moveto xsize 0 lineto
xsize ysize lineto 0 ysize lineto closepath
gsave 0.9 setgray fill grestore stroke
grestore
grestore
gsave
680 2476 translate
180 fnt1 2722 567 0 567 180 288 45 LoutGraphic
gsave
0 0 moveto 0 ysize lineto [ 3 pt ] 0 setdash stroke
grestore
grestore
gsave
2268 2590 translate
180 fnt1
680 340 0 340 180 288 45 LoutGraphic
gsave
0 0 moveto xsize 0 lineto
xsize ysize lineto 0 ysize lineto closepath
gsave 0.9 setgray fill grestore stroke
grestore
grestore
gsave
2551 2476 translate
180 fnt1 851 567 0 567 180 288 45 LoutGraphic
gsave
0 0 moveto 0 ysize lineto [ 3 pt ] 0 setdash stroke
grestore
grestore
gsave
2551 2443 translate
180.0000 rotate
gsave
0 0 translate
30.0000 rotate
gsave
0 1 translate
180 fnt1 68 -2 0 -1 180 288 45 LoutGraphic
gsave
0 0 moveto xsize 0 lineto stroke
grestore
grestore
grestore
gsave
0 0 translate
180 fnt1 1871 0 0 0 180 288 45 LoutGraphic
gsave
0 0 moveto xsize 0 lineto stroke
grestore
grestore
gsave
0 0 translate
-30.0000 rotate
gsave
0 1 translate
180 fnt1 68 -2 0 -1 180 288 45 LoutGraphic
gsave
0 0 moveto xsize 0 lineto stroke
grestore
grestore
grestore
grestore
gsave
680 2443 translate
30.0000 rotate
gsave
0 1 translate
180 fnt1
68 -2 0 -1 180 288 45 LoutGraphic
gsave
0 0 moveto xsize 0 lineto stroke
grestore
grestore
grestore
gsave
680 2443 translate
180 fnt1 1871 0 0 0 180 288 45 LoutGraphic
gsave
0 0 moveto xsize 0 lineto stroke
grestore
grestore
gsave
680 2443 translate
-30.0000 rotate
gsave
0 1 translate
180 fnt1 68 -2 0 -1 180 288 45 LoutGraphic
gsave
0 0 moveto xsize 0 lineto stroke
grestore
grestore
grestore
180 fnt1 999 2240(max)m 180 fnt4
1314 2235(\()m 180 fnt3 1377 2241(length)m 180 fnt4 1832 2235(,)m
180 fnt3 1912 2241(a)m 180 fnt4 2007 2235(,)m 180 fnt3
2087 2241(b)m 180 fnt4 2182 2235(\))m gsave
1247 3067 translate
180.0000 rotate
gsave
0 0 translate
30.0000 rotate
gsave
0 1 translate
180 fnt1 68 -2 0 -1 180 288 45 LoutGraphic
gsave
0 0 moveto xsize 0 lineto stroke
grestore
grestore
grestore
gsave
0 0 translate
180 fnt1
567 0 0 0 180 288 45 LoutGraphic
gsave
0 0 moveto xsize 0 lineto stroke
grestore
grestore
gsave
0 0 translate
-30.0000 rotate
gsave
0 1 translate
180 fnt1 68 -2 0 -1 180 288 45 LoutGraphic
gsave
0 0 moveto xsize 0 lineto stroke
grestore
grestore
grestore
grestore
gsave
680 3067 translate
30.0000 rotate
gsave
0 1 translate
180 fnt1 68 -2 0 -1 180 288 45 LoutGraphic
gsave
0 0 moveto xsize 0 lineto stroke
grestore
grestore
grestore
gsave
680 3067 translate
180 fnt1 567 0 0 0 180 288 45 LoutGraphic
gsave
0 0 moveto xsize 0 lineto stroke
grestore
grestore
gsave
680 3067 translate
-30.0000 rotate
gsave
0 1 translate
180 fnt1 68 -2 0 -1 180 288 45 LoutGraphic
gsave
0 0 moveto xsize 0 lineto stroke
grestore
grestore
grestore
180 fnt3
920 3135(a)m gsave
2551 3067 translate
180.0000 rotate
gsave
0 0 translate
30.0000 rotate
gsave
0 1 translate
180 fnt1 68 -2 0 -1 180 288 45 LoutGraphic
gsave
0 0 moveto xsize 0 lineto stroke
grestore
grestore
grestore
gsave
0 0 translate
180 fnt1 283 0 0 0 180 288 45 LoutGraphic
gsave
0 0 moveto xsize 0 lineto stroke
grestore
grestore
gsave
0 0 translate
-30.0000 rotate
gsave
0 1 translate
180 fnt1 68 -2 0 -1 180 288 45 LoutGraphic
gsave
0 0 moveto xsize 0 lineto stroke
grestore
grestore
grestore
grestore
gsave
2268 3067 translate
30.0000 rotate
gsave
0 1 translate
180 fnt1
68 -2 0 -1 180 288 45 LoutGraphic
gsave
0 0 moveto xsize 0 lineto stroke
grestore
grestore
grestore
gsave
2268 3067 translate
180 fnt1 283 0 0 0 180 288 45 LoutGraphic
gsave
0 0 moveto xsize 0 lineto stroke
grestore
grestore
gsave
2268 3067 translate
-30.0000 rotate
gsave
0 1 translate
180 fnt1 68 -2 0 -1 180 288 45 LoutGraphic
gsave
0 0 moveto xsize 0 lineto stroke
grestore
grestore
grestore
2366 3091(b)m gsave
567 1438 translate
180 fnt1 680 340 0 340 180 288 45 LoutGraphic
gsave
0 0 moveto xsize 0 lineto
xsize ysize lineto 0 ysize lineto closepath
gsave 0.9 setgray fill grestore stroke
grestore
grestore
gsave
680 1324 translate
180 fnt1
2722 567 0 567 180 288 45 LoutGraphic
gsave
0 0 moveto 0 ysize lineto [ 3 pt ] 0 setdash stroke
grestore
grestore
gsave
2268 1438 translate
180 fnt1 680 340 0 340 180 288 45 LoutGraphic
gsave
0 0 moveto xsize 0 lineto
xsize ysize lineto 0 ysize lineto closepath
gsave 0.9 setgray fill grestore stroke
grestore
grestore
gsave
2551 1324 translate
180 fnt1 851 567 0 567 180 288 45 LoutGraphic
gsave
0 0 moveto 0 ysize lineto [ 3 pt ] 0 setdash stroke
grestore
grestore
gsave
2268 1234 translate
180.0000 rotate
gsave
0 0 translate
30.0000 rotate
gsave
0 1 translate
180 fnt1 68 -2 0 -1 180 288 45 LoutGraphic
gsave
0 0 moveto xsize 0 lineto stroke
grestore
grestore
grestore
gsave
0 0 translate
180 fnt1 2268 0 0 0 180 288 45 LoutGraphic
gsave
0 0 moveto xsize 0 lineto stroke
grestore
grestore
gsave
0 0 translate
-30.0000 rotate
gsave
0 1 translate
180 fnt1
68 -2 0 -1 180 288 45 LoutGraphic
gsave
0 0 moveto xsize 0 lineto stroke
grestore
grestore
grestore
grestore
gsave
0 1234 translate
30.0000 rotate
gsave
0 1 translate
180 fnt1 68 -2 0 -1 180 288 45 LoutGraphic
gsave
0 0 moveto xsize 0 lineto stroke
grestore
grestore
grestore
gsave
0 1234 translate
180 fnt1 2268 0 0 0 180 288 45 LoutGraphic
gsave
0 0 moveto xsize 0 lineto stroke
grestore
grestore
gsave
0 1234 translate
-30.0000 rotate
gsave
0 1 translate
180 fnt1 68 -2 0 -1 180 288 45 LoutGraphic
gsave
0 0 moveto xsize 0 lineto stroke
grestore
grestore
grestore
1587 1032(length)m gsave
3402 734 translate
180.0000 rotate
gsave
0 0 translate
30.0000 rotate
gsave
0 1 translate
180 fnt1
68 -2 0 -1 180 288 45 LoutGraphic
gsave
0 0 moveto xsize 0 lineto stroke
grestore
grestore
grestore
gsave
0 0 translate
180 fnt1 3402 0 0 0 180 288 45 LoutGraphic
gsave
0 0 moveto xsize 0 lineto stroke
grestore
grestore
gsave
0 0 translate
-30.0000 rotate
gsave
0 1 translate
180 fnt1 68 -2 0 -1 180 288 45 LoutGraphic
gsave
0 0 moveto xsize 0 lineto stroke
grestore
grestore
grestore
grestore
gsave
0 734 translate
30.0000 rotate
gsave
0 1 translate
180 fnt1 68 -2 0 -1 180 288 45 LoutGraphic
gsave
0 0 moveto xsize 0 lineto stroke
grestore
grestore
grestore
gsave
0 734 translate
180 fnt1 3402 0 0 0 180 288 45 LoutGraphic
gsave
0 0 moveto xsize 0 lineto stroke
grestore
grestore
gsave
0 734 translate
-30.0000 rotate
gsave
0 1 translate
180 fnt1
68 -2 0 -1 180 288 45 LoutGraphic
gsave
0 0 moveto xsize 0 lineto stroke
grestore
grestore
grestore
1189 523(curr)m 6(ent)k 1759(bound)s
grestore
end end restore
grestore
[ /Dest /LOUTgapmodes /DEST pdfmark
200 fnt2 180 4638(Figur)m 3(e)k
788(2.)s 200 fnt1 1030 4639(The)m 1386(six)s 1664(g)s 1(ap)k
1995(modes)s 2557(\()s 200 fnt3 2618 4640(length)m 200 fnt1
3162 4639(is)m 3336(an)s 3(y)k 3666(length\).)s 4367(Hyphenation)s
5444(mode)s 5933(has)s 6240(an)s 6475(e)s 3(xtra)k
6919(property)s 7639(not)s 7944(sho)s 5(wn)k 8507(here.)s
240 fnt1 0 4008(has)m 396(the)s 770(desired)s 1545(result,)s
2208(where)s 220 fnt5 2874 4005(2p)m 240 fnt1 3197 4008(is)m
3433(tw)s 2(o)k 3870(points)s 4532(and)s 220 fnt5
4962 4005(@HLine)m 240 fnt1 5836 4008(is)m 6072(an)s 6381(easy)s
6887(combination)s 8166(of)s 8464(Lout')s 13(s)k 0 3720(graphics)m
861(operators.)s 1914(A)s 2144(similar)s 2866(operator)s 9(,)k
220 fnt5 3760 3717(@OneCol)m 240 fnt1 4712 3720(,)m 4819(hides)s
5375(column)s 6150(marks.)s 480 3346(A)m 728(v)s 6(ariant)k
1463(of)s 220 fnt5 1753 3343(/)m 240 fnt1 1895 3346(called)m
220 fnt5 2542 3343(//)m 240 fnt1 2745 3346(is)m 2974(pro)s 3(vided)k
3898(which)s 4558(performs)s 5490(v)s 3(ertical)k 6275(concatenation)s
7679(b)s 4(ut)k 8059(ignores)s 8833(all)s 0 3058(column)m
775(marks)s 1410(and)s 1814(simply)s 2519(left-justi\207es)s 3709(its)s
3985(tw)s 2(o)k 4395(parameters:)s 220 fnt5 480 2557(Heading //0.1i)m
480 2269(A |0.2i B /0.1i)m 480 1981(C | D)m 240 fnt1 0 1526(has)m 370(result)s
480 1073(Heading)m 480 716(A)m 938(B)s 480 410(C)m 938(D)s
grestore
0 0 0 0 240 288 60 1417 -15423 LoutGr2
1 LoutMargSet
grestore
grestore
grestore
grestore
grestore
pgsave restore
showpage
%%Page: 8 9
%%BeginPageSetup
%%PageResources: font Times-Roman
%%+ font Helvetica
%%+ font Times-Bold
%%+ font Times-Italic
%%+ font Symbol
/pgsave save def
%%IncludeResource: font Times-Roman
/Times-Romanfnt1 vec2 /Times-Roman LoutRecode
/fnt1 { /Times-Romanfnt1 LoutFont } def
%%IncludeResource: font Helvetica
/Helveticafnt5 vec2 /Helvetica LoutRecode
/fnt5 { /Helveticafnt5 LoutFont } def
%%IncludeResource: font Times-Bold
/Times-Boldfnt2 vec2 /Times-Bold LoutRecode
/fnt2 { /Times-Boldfnt2 LoutFont } def
%%IncludeResource: font Times-Italic
/Times-Italicfnt3 vec2 /Times-Italic LoutRecode
/fnt3 { /Times-Italicfnt3 LoutFont } def
%%IncludeResource: font Symbol
/fnt4 { /Symbol LoutFont } def
0.0500 dup scale 10 setlinewidth
%%EndPageSetup
gsave
0 0 translate
240 fnt1 0.0 0.0 0.0 LoutSetRGBColor LoutTextureSolid 11900 16840 0 16840 240 288 60 LoutGraphic
gsave
LoutPageSet
grestore
gsave
0 0 translate
1.0 1.0 1.0 LoutSetRGBColor 11900 16840 0 16840 240 288 60 LoutGraphic
gsave
LoutBox gsave 1.0 1.0 1.0 LoutSetRGBColor fill grestore 0 cm setlinewidth stroke
grestore
gsave
0 16840 translate
0.0000 rotate
0.0 0.0 0.0 LoutSetRGBColor
5768 -1579(-)m 5896(8)s 6063(-)s 9066 13416 0 13307 240 288 60 1417 -15423 LoutGr2
0 LoutMargSet
grestore
0 13253(sho)m 6(wing)k
883(that)s 1325(spanning)s 2267(columns)s 3153(in)s 3420(tables)s
4052(moti)s 6(v)k 6(ate)k 4956(the)s 5328(inclusion)s
6286(of)s 6581(this)s 7001(operator)s 13(.)k 7972(There)s
8609(is)s 8843(an)s 0 12965(analogous)m 220 fnt5 1029 12962(||)m
240 fnt1 1191 12965(operator)m 13(.)k 2145(The)s 2581(author)s
3259(w)s 2(ould)k 3922(ha)s 4(v)k 3(e)k
4430(preferred)s 5370(to)s 5616(lea)s 4(v)k 3(e)k
6177(out)s 6550(these)s 7105(operators,)s 8108(since)s 8663(the)s 3(y)k
0 12677(complicate)m 1104(the)s 1452(implementation,)s 3059(and)s 3463(it)s
3655(is)s 3865(interesting)s 4926(to)s 5165(e)s 3(xamine)k
6028(the)s 6376(prospects)s 7330(of)s 7601(doing)s 8200(so.)s
480 12303(The)m 220 fnt5 953 12300(//)m 240 fnt1 1184 12303(operator)m
2086(is)s 2342(formally)s 3263(redundant,)s 4373(because)s 5232(in)s
5521(general)s 6324(the)s 6718(e)s 3(xpression)k 220 fnt5
7841 12300(x // y)m 240 fnt1 8409 12303(can)m 8844(be)s 0 12015(replaced)m
867(by)s 220 fnt5 480 11514(@OneCol { | x } /)m 480 11226(@OneCol { | y })m 240 fnt1
0 10728(for)m 338(an)s 3(y)k 734(objects)s 220 fnt5
1462 10725(x)m 240 fnt1 1629 10728(and)m 220 fnt5 2032 10725(y)m
240 fnt1 2140 10728(.)m 2304(By)s 2637(concatenating)s 4017(an)s
4300(empty)s 4951(object)s 5594(at)s 5826(the)s 6173(left)s
6549(of)s 220 fnt5 6820 10725(x)m 240 fnt1 6987 10728(and)m
7390(hiding)s 8055(all)s 8347(b)s 4(ut)k 8708(that)s
0 10440(empty)m 641(object')s 13(s)k 1423(column)s 2186(mark,)s
2772(we)s 3095(ef)s 6(fecti)k 6(v)k 3(ely)k
4143(shift)s 220 fnt5 4615 10437(x)m 240 fnt1 4723 10440(')m 13(s)k
4921(column)s 5684(mark)s 6224(to)s 6452(its)s 6716(left)s
7081(edge.)s 7685(The)s 8101(same)s 8636(goes)s 0 10152(for)m
220 fnt5 349 10149(y)m 240 fnt1 457 10152(,)m 575(so)s
852(the)s 220 fnt5 1211 10149(/)m 240 fnt1 1347 10152(operator)m
2214(has)s 2595(just)s 3011(one)s 3424(column)s 4211(mark)s
4774(to)s 5024(mer)s 4(ge,)k 5735(at)s 5978(the)s
6338(e)s 3(xtreme)k 7171(left,)s 7606(and)s 8021(its)s
8308(ef)s 6(fect)k 8916(is)s 0 9864(indistinguishable)m 1690(from)s
220 fnt5 2214 9861(//)m 240 fnt1 2339 9864(.)m 480 9490(Unfortunately)m 15(,)k
1915(if)s 220 fnt5 2134 9487(y)m 240 fnt1 2304 9490(consists)m
3114(of)s 3387(tw)s 2(o)k 3799(ro)s 6(ws)k
4311(separated)s 5274(by)s 220 fnt5 5570 9487(/)m 240 fnt1
5634 9490(,)m 5743(as)s 5995(in)s 6240(the)s 6590(e)s 3(xample)k
7455(abo)s 3(v)k 3(e,)k 8130(both)s 8616(ro)s 6(ws)k
0 9202(must)m 533(be)s 823(placed)s 1513(inside)s 2148(the)s
220 fnt5 2504 9199(@OneCol)m 240 fnt1 3456 9202(,)m 3571(and)s
3983(the)s 4340(table)s 4868(cannot)s 5574(be)s 5864(entered)s
6633(in)s 6884(the)s 7240(simple)s 7942(ro)s 6(w-by-ro)k 6(w)k
0 8914(manner)m 777(that)s 1194(non-e)s 3(xpert)k 2287(users)s
2828(naturally)s 3731(e)s 3(xpect.)k 4515(Another)s 5359(adv)s 6(antage)k
6378(of)s 220 fnt5 6649 8911(//)m 240 fnt1 6833 8914(is)m
7043(that)s 7460(its)s 7736(left)s 8112(parameter)s 0 8626(can)m
382(be)s 657(printed)s 1385(before)s 2044(its)s 2313(right)s
2817(parameter)s 3824(is)s 4027(kno)s 6(wn;)k 4779(this)s
5168(is)s 5371(important)s 6353(when)s 6922(the)s 7263(left)s
7633(parameter)s 8640(is)s 8843(an)s 0 8338(entire)m 599(page.)s
480 7964(The)m 960(\207fth)s 1468(and)s 1924(\207nal)s 2457(concatenation)s
3895(operator)s 9(,)k 220 fnt5 4841 7961(&)m 240 fnt1
4983 7964(,)m 5143(is)s 5405(an)s 5741(e)s 3(xplicit)k
6567(v)s 3(ersion)k 7377(of)s 7701(the)s 8102(horizontal)s
0 7676(concatenation)m 1402(operator)s 2275(interpolated)s 3492(when)s 4085(objects)s
4830(are)s 5195(separated)s 6172(by)s 6483(white)s 7088(space.)s
7800(It)s 8022(is)s 8250(formally)s 0 7388(identical)m 907(to)s
220 fnt5 1177 7385(|)m 240 fnt1 1305 7388(e)m 3(xcept)k
2017(for)s 2386(taking)s 3068(higher)s 3770(precedence)s 4932(and)s
5367(being)s 5983(subject)s 6751(to)s 7021(replacement)s 8279(by)s
220 fnt5 8604 7385(//1vx)m 240 fnt1 0 7100(during)m 678(paragraph)s
1691(breaking)s 2581(\(Section)s 3434(2.5\).)s 240 fnt2 0 6451(2.4.)m
471(Implementation)s 2159(of)s 2431(objects)s 3201(and)s 3642(concatenation)s
[ /Dest /LOUTobjects_impl /DEST pdfmark
240 fnt1 480 5974(In)m 738(this)s 1136(section)s 1872(we)s
2210(discuss)s 2954(the)s 3304(implementation)s 4863(of)s 5137(objects)s
5867(and)s 6273(concatenation,)s 7710(and)s 8117(especially)s 0 5686(mark)m
552(alignment.)s 1672(The)s 2100(\207rst)s 2531(step)s 2969(is)s
3179(to)s 3418(use)s 3793(an)s 4076(operator)s 4932(precedence)s
6063(parser)s 6706(to)s 6945(con)s 9(v)k 3(ert)k
7710(input)s 8262(such)s 8758(as)s 220 fnt5 480 5185(a |0.5i b /0.2i c | d)m
240 fnt1 0 4730(into)m 425(parse)s 985(trees)s 1486(such)s
1982(as)s gsave
480 3036 translate
240 fnt3 3396 1354 0 1298 240 288 12 LoutGraphic
gsave
grestore save gsave 200 dict begin lfigdict begin
grestore
1867 338 56 282 240 288 12 1529 1016 LoutGr2
currentdict end 200 dict begin begin
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigcircle ] lfigdopath
pop pop
grestore
192 fnt4 136 106(\244)m
grestore
(T) lfigpromotelabels
grestore
1413 846 0 790 240 288 12 0 0 LoutGr2
currentdict end 200 dict begin begin
grestore
876 338 56 282 240 288 12 537 508 LoutGr2
currentdict end 200 dict begin begin
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigcircle ] lfigdopath
pop pop
grestore
192 fnt4
156 121(|)m
grestore
(T) lfigpromotelabels
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
currentdict end 200 dict begin begin
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
currentdict end 200 dict begin begin
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigcircle ] lfigdopath
pop pop
grestore
192 fnt3 123 128(a)m
grestore
(T) lfigpromotelabels
grestore
(S) lfigpromotelabels
grestore
0 0 0 0 240 288 12 338 282 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ S@T@CTR S@T@CTR T@CTR lfigangle S@T@CIRCUM lfigpadd lfigprevious /FROM lfigpointdef
T@CTR T@CTR S@T@CTR lfigangle T@CIRCUM lfigpadd lfigprevious /TO lfigpointdef ] lfigdopath
pop pop
grestore
grestore
511 338 56 282 240 288 12 451 0 LoutGr2
currentdict end 200 dict begin begin
grestore
511 338 56 282 240 288 12 0 0 LoutGr2
currentdict end 200 dict begin begin
grestore
511 338 56 282 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigellipse ] lfigdopath
pop pop
grestore
192 fnt4 56 105(0)m
192 fnt3 195 111(.)m 192 fnt4 270 105(5)m 192 fnt3
404 111(i)m
grestore
(T) lfigpromotelabels
grestore
(S) lfigpromotelabels
grestore
0 0 0 0 240 288 12 962 282 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ S@T@CTR S@T@CTR T@CTR lfigangle S@T@CIRCUM lfigpadd lfigprevious /FROM lfigpointdef
T@CTR T@CTR S@T@CTR lfigangle T@CIRCUM lfigpadd lfigprevious /TO lfigpointdef ] lfigdopath
pop pop
grestore
grestore
338 338 56 282 240 288 12 1075 0 LoutGr2
currentdict end 200 dict begin begin
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
currentdict end 200 dict begin begin
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigcircle ] lfigdopath
pop pop
grestore
192 fnt3 123 105(b)m
grestore
(T) lfigpromotelabels
grestore
(S) lfigpromotelabels
grestore
0 0 0 0 240 288 12 1413 282 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ S@T@CTR S@T@CTR T@CTR lfigangle S@T@CIRCUM lfigpadd lfigprevious /FROM lfigpointdef
T@CTR T@CTR S@T@CTR lfigangle T@CIRCUM lfigpadd lfigprevious /TO lfigpointdef ] lfigdopath
pop pop
grestore
grestore
(S) lfigpromotelabels
grestore
0 0 0 0 240 288 12 1413 790 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ S@T@CTR S@T@CTR T@CTR lfigangle S@T@CIRCUM lfigpadd lfigprevious /FROM lfigpointdef
T@CTR T@CTR S@T@CTR lfigangle T@CIRCUM lfigpadd lfigprevious /TO lfigpointdef ] lfigdopath
pop pop
grestore
grestore
517 846 56 790 240 288 12 1526 0 LoutGr2
currentdict end 200 dict begin begin
grestore
517 846 56 790 240 288 12 0 0 LoutGr2
currentdict end 200 dict begin begin
grestore
517 338 56 282 240 288 12 0 508 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigellipse ] lfigdopath
pop pop
grestore
192 fnt4 56 105(0)m
192 fnt3 195 111(.)m 192 fnt4 270 105(2)m 192 fnt3
410 111(i)m
grestore
(T) lfigpromotelabels
grestore
(S) lfigpromotelabels
grestore
0 0 0 0 240 288 12 2043 790 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ S@T@CTR S@T@CTR T@CTR lfigangle S@T@CIRCUM lfigpadd lfigprevious /FROM lfigpointdef
T@CTR T@CTR S@T@CTR lfigangle T@CIRCUM lfigpadd lfigprevious /TO lfigpointdef ] lfigdopath
pop pop
grestore
grestore
1240 846 0 790 240 288 12 2156 0 LoutGr2
currentdict end 200 dict begin begin
grestore
789 338 56 282 240 288 12 451 508 LoutGr2
currentdict end 200 dict begin begin
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigcircle ] lfigdopath
pop pop
grestore
192 fnt4 156 121(|)m
grestore
(T) lfigpromotelabels
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
currentdict end 200 dict begin begin
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
currentdict end 200 dict begin begin
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigcircle ] lfigdopath
pop pop
grestore
192 fnt3 128 128(c)m
grestore
(T) lfigpromotelabels
grestore
(S) lfigpromotelabels
grestore
0 0 0 0 240 288 12 338 282 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ S@T@CTR S@T@CTR T@CTR lfigangle S@T@CIRCUM lfigpadd lfigprevious /FROM lfigpointdef
T@CTR T@CTR S@T@CTR lfigangle T@CIRCUM lfigpadd lfigprevious /TO lfigpointdef ] lfigdopath
pop pop
grestore
grestore
338 338 56 282 240 288 12 451 0 LoutGr2
currentdict end 200 dict begin begin
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
currentdict end 200 dict begin begin
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigcircle ] lfigdopath
pop pop
grestore
grestore
(T) lfigpromotelabels
grestore
(S) lfigpromotelabels
grestore
0 0 0 0 240 288 12 789 282 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ S@T@CTR S@T@CTR T@CTR lfigangle S@T@CIRCUM lfigpadd lfigprevious /FROM lfigpointdef
T@CTR T@CTR S@T@CTR lfigangle T@CIRCUM lfigpadd lfigprevious /TO lfigpointdef ] lfigdopath
pop pop
grestore
grestore
338 338 56 282 240 288 12 902 0 LoutGr2
currentdict end 200 dict begin begin
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
currentdict end 200 dict begin begin
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigcircle ] lfigdopath
pop pop
grestore
192 fnt3 118 105(d)m
grestore
(T) lfigpromotelabels
grestore
(S) lfigpromotelabels
grestore
0 0 0 0 240 288 12 1240 282 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ S@T@CTR S@T@CTR T@CTR lfigangle S@T@CIRCUM lfigpadd lfigprevious /FROM lfigpointdef
T@CTR T@CTR S@T@CTR lfigangle T@CIRCUM lfigpadd lfigprevious /TO lfigpointdef ] lfigdopath
pop pop
grestore
grestore
(S) lfigpromotelabels
grestore
0 0 0 0 240 288 12 3396 790 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ S@T@CTR S@T@CTR T@CTR lfigangle S@T@CIRCUM lfigpadd lfigprevious /FROM lfigpointdef
T@CTR T@CTR S@T@CTR lfigangle T@CIRCUM lfigpadd lfigprevious /TO lfigpointdef ] lfigdopath
pop pop
grestore
grestore
end end restore
grestore
0 2585(Missing)m 879(objects)s 1662(are)s
2065(replaced)s 2987(by)s 3336(empty)s 4044(objects,)s 4883(and)s
5342(sequences)s 6419(of)s 6745(concatenation)s 8186(operators)s 0 2297(are)m
347(consolidated:)s gsave
480 648 translate
240 fnt3 2492 1359 0 1298 240 288 12 LoutGraphic
gsave
grestore save gsave 200 dict begin lfigdict begin
grestore
1415 338 56 282 240 288 12 1077 1016 LoutGr2
currentdict end 200 dict begin begin
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigcircle ] lfigdopath
pop pop
grestore
192 fnt4 156 121(|)m
grestore
(T) lfigpromotelabels
grestore
338 846 56 790 240 288 12 0 0 LoutGr2
currentdict end 200 dict begin begin
grestore
338 846 56 790 240 288 12 0 0 LoutGr2
currentdict end 200 dict begin begin
grestore
338 338 56 282 240 288 12 0 508 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigcircle ] lfigdopath
pop pop
grestore
192 fnt3
123 128(a)m
grestore
(T) lfigpromotelabels
grestore
(S) lfigpromotelabels
grestore
0 0 0 0 240 288 12 338 790 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ S@T@CTR S@T@CTR T@CTR lfigangle S@T@CIRCUM lfigpadd lfigprevious /FROM lfigpointdef
T@CTR T@CTR S@T@CTR lfigangle T@CIRCUM lfigpadd lfigprevious /TO lfigpointdef ] lfigdopath
pop pop
grestore
grestore
517 846 56 790 240 288 12 451 0 LoutGr2
currentdict end 200 dict begin begin
grestore
517 846 56 790 240 288 12 0 0 LoutGr2
currentdict end 200 dict begin begin
grestore
517 338 56 282 240 288 12 0 508 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigellipse ] lfigdopath
pop pop
grestore
192 fnt4 56 105(0)m 192 fnt3 195 111(.)m
192 fnt4 270 105(2)m 192 fnt3 410 111(i)m
grestore
(T) lfigpromotelabels
grestore
(S) lfigpromotelabels
grestore
0 0 0 0 240 288 12 968 790 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ S@T@CTR S@T@CTR T@CTR lfigangle S@T@CIRCUM lfigpadd lfigprevious /FROM lfigpointdef
T@CTR T@CTR S@T@CTR lfigangle T@CIRCUM lfigpadd lfigprevious /TO lfigpointdef ] lfigdopath
pop pop
grestore
grestore
1411 846 0 790 240 288 12 1081 0 LoutGr2
currentdict end 200 dict begin begin
grestore
875 338 56 282 240 288 12 536 508 LoutGr2
currentdict end 200 dict begin begin
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigcircle ] lfigdopath
pop pop
grestore
192 fnt4
156 121(|)m
grestore
(T) lfigpromotelabels
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
currentdict end 200 dict begin begin
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
currentdict end 200 dict begin begin
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigcircle ] lfigdopath
pop pop
grestore
192 fnt3 128 128(c)m
grestore
(T) lfigpromotelabels
grestore
(S) lfigpromotelabels
grestore
0 0 0 0 240 288 12 338 282 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ S@T@CTR S@T@CTR T@CTR lfigangle S@T@CIRCUM lfigpadd lfigprevious /FROM lfigpointdef
T@CTR T@CTR S@T@CTR lfigangle T@CIRCUM lfigpadd lfigprevious /TO lfigpointdef ] lfigdopath
pop pop
grestore
grestore
509 338 56 282 240 288 12 451 0 LoutGr2
currentdict end 200 dict begin begin
grestore
509 338 56 282 240 288 12 0 0 LoutGr2
currentdict end 200 dict begin begin
grestore
509 338 56 282 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigellipse ] lfigdopath
pop pop
grestore
192 fnt4 56 105(0)m
192 fnt3 195 111(.)m 192 fnt4 270 105(3)m 192 fnt3
402 111(i)m
grestore
(T) lfigpromotelabels
grestore
(S) lfigpromotelabels
grestore
0 0 0 0 240 288 12 960 282 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ S@T@CTR S@T@CTR T@CTR lfigangle S@T@CIRCUM lfigpadd lfigprevious /FROM lfigpointdef
T@CTR T@CTR S@T@CTR lfigangle T@CIRCUM lfigpadd lfigprevious /TO lfigpointdef ] lfigdopath
pop pop
grestore
grestore
338 338 56 282 240 288 12 1073 0 LoutGr2
currentdict end 200 dict begin begin
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
currentdict end 200 dict begin begin
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigcircle ] lfigdopath
pop pop
grestore
192 fnt3 118 105(d)m
grestore
(T) lfigpromotelabels
grestore
(S) lfigpromotelabels
grestore
0 0 0 0 240 288 12 1411 282 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ S@T@CTR S@T@CTR T@CTR lfigangle S@T@CIRCUM lfigpadd lfigprevious /FROM lfigpointdef
T@CTR T@CTR S@T@CTR lfigangle T@CIRCUM lfigpadd lfigprevious /TO lfigpointdef ] lfigdopath
pop pop
grestore
grestore
(S) lfigpromotelabels
grestore
0 0 0 0 240 288 12 2492 790 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ S@T@CTR S@T@CTR T@CTR lfigangle S@T@CIRCUM lfigpadd lfigprevious /FROM lfigpointdef
T@CTR T@CTR S@T@CTR lfigangle T@CIRCUM lfigpadd lfigprevious /TO lfigpointdef ] lfigdopath
pop pop
grestore
grestore
end end restore
grestore
240 fnt4 3284 1886(\336)m
gsave
3825 648 translate
240 fnt3 2492 1359 0 1298 240 288 12 LoutGraphic
gsave
grestore save gsave 200 dict begin lfigdict begin
grestore
1415 338 56 282 240 288 12 1077 1016 LoutGr2
currentdict end 200 dict begin begin
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigcircle ] lfigdopath
pop pop
grestore
192 fnt4 156 121(|)m
grestore
(T) lfigpromotelabels
grestore
338 846 56 790 240 288 12 0 0 LoutGr2
currentdict end 200 dict begin begin
grestore
338 846 56 790 240 288 12 0 0 LoutGr2
currentdict end 200 dict begin begin
grestore
338 338 56 282 240 288 12 0 508 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigcircle ] lfigdopath
pop pop
grestore
192 fnt3 123 128(a)m
grestore
(T) lfigpromotelabels
grestore
(S) lfigpromotelabels
grestore
0 0 0 0 240 288 12 338 790 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ S@T@CTR S@T@CTR T@CTR lfigangle S@T@CIRCUM lfigpadd lfigprevious /FROM lfigpointdef
T@CTR T@CTR S@T@CTR lfigangle T@CIRCUM lfigpadd lfigprevious /TO lfigpointdef ] lfigdopath
pop pop
grestore
grestore
517 846 56 790 240 288 12 451 0 LoutGr2
currentdict end 200 dict begin begin
grestore
517 846 56 790 240 288 12 0 0 LoutGr2
currentdict end 200 dict begin begin
grestore
517 338 56 282 240 288 12 0 508 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigellipse ] lfigdopath
pop pop
grestore
192 fnt4 56 105(0)m 192 fnt3 195 111(.)m 192 fnt4
270 105(2)m 192 fnt3 410 111(i)m
grestore
(T) lfigpromotelabels
grestore
(S) lfigpromotelabels
grestore
0 0 0 0 240 288 12 968 790 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ S@T@CTR S@T@CTR T@CTR lfigangle S@T@CIRCUM lfigpadd lfigprevious /FROM lfigpointdef
T@CTR T@CTR S@T@CTR lfigangle T@CIRCUM lfigpadd lfigprevious /TO lfigpointdef ] lfigdopath
pop pop
grestore
grestore
338 846 56 790 240 288 12 1081 0 LoutGr2
currentdict end 200 dict begin begin
grestore
338 846 56 790 240 288 12 0 0 LoutGr2
currentdict end 200 dict begin begin
grestore
338 338 56 282 240 288 12 0 508 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigcircle ] lfigdopath
pop pop
grestore
192 fnt3 128 128(c)m
grestore
(T) lfigpromotelabels
grestore
(S) lfigpromotelabels
grestore
0 0 0 0 240 288 12 1419 790 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ S@T@CTR S@T@CTR T@CTR lfigangle S@T@CIRCUM lfigpadd lfigprevious /FROM lfigpointdef
T@CTR T@CTR S@T@CTR lfigangle T@CIRCUM lfigpadd lfigprevious /TO lfigpointdef ] lfigdopath
pop pop
grestore
grestore
509 846 56 790 240 288 12 1532 0 LoutGr2
currentdict end 200 dict begin begin
grestore
509 846 56 790 240 288 12 0 0 LoutGr2
currentdict end 200 dict begin begin
grestore
509 338 56 282 240 288 12 0 508 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigellipse ] lfigdopath
pop pop
grestore
192 fnt4 56 105(0)m 192 fnt3 195 111(.)m 192 fnt4
270 105(3)m 192 fnt3 402 111(i)m
grestore
(T) lfigpromotelabels
grestore
(S) lfigpromotelabels
grestore
0 0 0 0 240 288 12 2041 790 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ S@T@CTR S@T@CTR T@CTR lfigangle S@T@CIRCUM lfigpadd lfigprevious /FROM lfigpointdef
T@CTR T@CTR S@T@CTR lfigangle T@CIRCUM lfigpadd lfigprevious /TO lfigpointdef ] lfigdopath
pop pop
grestore
grestore
338 846 56 790 240 288 12 2154 0 LoutGr2
currentdict end 200 dict begin begin
grestore
338 846 56 790 240 288 12 0 0 LoutGr2
currentdict end 200 dict begin begin
grestore
338 338 56 282 240 288 12 0 508 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigcircle ] lfigdopath
pop pop
grestore
192 fnt3 118 105(d)m
grestore
(T) lfigpromotelabels
grestore
(S) lfigpromotelabels
grestore
0 0 0 0 240 288 12 2492 790 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ S@T@CTR S@T@CTR T@CTR lfigangle S@T@CIRCUM lfigpadd lfigprevious /FROM lfigpointdef
T@CTR T@CTR S@T@CTR lfigangle T@CIRCUM lfigpadd lfigprevious /TO lfigpointdef ] lfigdopath
pop pop
grestore
grestore
end end restore
grestore
grestore
0 0 0 0 240 288 60 1417 -15423 LoutGr2
0 LoutMargSet
grestore
grestore
grestore
grestore
grestore
pgsave restore
showpage
%%Page: 9 10
%%BeginPageSetup
%%PageResources: font Times-Roman
%%+ font Times-Italic
%%+ font Symbol
%%+ font Helvetica
/pgsave save def
%%IncludeResource: font Times-Roman
/Times-Romanfnt1 vec2 /Times-Roman LoutRecode
/fnt1 { /Times-Romanfnt1 LoutFont } def
%%IncludeResource: font Times-Italic
/Times-Italicfnt3 vec2 /Times-Italic LoutRecode
/fnt3 { /Times-Italicfnt3 LoutFont } def
%%IncludeResource: font Symbol
/fnt4 { /Symbol LoutFont } def
%%IncludeResource: font Helvetica
/Helveticafnt5 vec2 /Helvetica LoutRecode
/fnt5 { /Helveticafnt5 LoutFont } def
0.0500 dup scale 10 setlinewidth
%%EndPageSetup
gsave
0 0 translate
240 fnt1 0.0 0.0 0.0 LoutSetRGBColor LoutTextureSolid 11900 16840 0 16840 240 288 60 LoutGraphic
gsave
LoutPageSet
grestore
gsave
0 0 translate
1.0 1.0 1.0 LoutSetRGBColor 11900 16840 0 16840 240 288 60 LoutGraphic
gsave
LoutBox gsave 1.0 1.0 1.0 LoutSetRGBColor fill grestore 0 cm setlinewidth stroke
grestore
gsave
0 16840 translate
0.0000 rotate
0.0 0.0 0.0 LoutSetRGBColor
5766 -1579(-)m 5894(9)s 6065(-)s 9066 13414 0 13305 240 288 60 1417 -15423 LoutGr2
1 LoutMargSet
grestore
0 13251(to)m 239(mak)s 2(e)k
811(manifest)s 1693(their)s 2190(associati)s 6(vity)k 3432(and)s
3836(reduce)s 4529(the)s 4877(depth)s 5466(of)s 5737(the)s
6085(tree)s 6498(for)s 6836(ef\207cienc)s 3(y)k 7829(later)s 13(.)k
480 12877(The)m 970(required)s 1887(semantic)s 2851(information)s 4099(is)s
4371(the)s 4782(size)s 5271(of)s 5605(each)s 6162(subobject,)s
7249(consisting)s 8334(of)s 8668(four)s 0 12589(inte)m 3(gers:)k
920(width)s 1524(to)s 1765(left)s 2144(and)s 2550(right)s
3062(of)s 3335(the)s 3685(distinguished)s 5021(column)s 5798(mark,)s
6397(and)s 6803(height)s 7463(abo)s 3(v)k 3(e)k
8087(and)s 8493(belo)s 6(w)k 0 12301(the)m 368(distinguished)s
1722(ro)s 6(w)k 2162(mark.)s 2837(These)s 3484(numbers)s
4379(are)s 4746(al)s 2(w)k 2(ays)k 5477(non-ne)s 3(g)k 1(ati)k 6(v)k 3(e)k
6789(in)s 7052(Basser)s 7769(Lout,)s 8348(b)s 4(ut)k
8730(this)s 0 12013(restriction)m 1024(is)s 1234(unnecessary)s 2457(and)s
2861(should)s 3558(be)s 3840(dropped.)s 480 11639(F)m 3(or)k
867(the)s 1212(lea)s 4(v)k 3(es,)k 1907(which)s
2546(are)s 2890(simple)s 3581(w)s 2(ords,)k 4268(the)s
4614(numbers)s 5486(are)s 5830(obtained)s 6710(from)s 7231(font)s
7674(tables.)s 8392(F)s 3(or)k 8778(the)s 0 11351(higher)m
678(le)s 6(v)k 3(els)k 1285(we)s 1628(apply)s
2222(recursi)s 6(v)k 3(e)k 3152(rules.)s 3788(Suppose)s
4664(that)s 240 fnt3 5090 11353(hgap)m 240 fnt4 5583 11345(\()m
240 fnt3 5675 11353(x)m 240 fnt4 5801 11345(,)m 240 fnt3
5932 11353(g)m 240 fnt4 6066 11345(,)m 240 fnt3 6197 11353(y)m
240 fnt4 6319 11345(\))m 240 fnt1 6453 11351(returns)m 7175(the)s
7531(desired)s 8287(distance)s 0 11063(between)m 846(the)s 1186(column)s
1952(marks)s 2579(of)s 2841(objects)s 240 fnt3 3561 11065(x)m
240 fnt1 3719 11063(and)m 240 fnt3 4114 11065(y)m 240 fnt1
4268 11063(when)m 4835(the)s 3(y)k 5290(are)s 5629(separated)s
6580(by)s 6866(g)s 1(ap)k 240 fnt3 7255 11065(g)m
240 fnt1 7369 11063(:)m 240 fnt3 7527 11065(right)m 240 fnt4
8000 11057(\()m 240 fnt3 8075 11065(x)m 240 fnt4 8185 11057(\))m
8298(+)s 240 fnt3 8473 11065(length)m 240 fnt4 0 10769(\()m
240 fnt3 89 10777(g)m 240 fnt4 221 10769(\))m 376(+)s
240 fnt3 594 10777(left)m 240 fnt4 920 10769(\()m 240 fnt3
1009 10777(y)m 240 fnt4 1129 10769(\))m 240 fnt1 1261 10775(when)m
1842(the)s 2196(g)s 1(ap)k 2600(mode)s 3193(is)s
3409(edge-to-edge,)s 4770(the)s 5124(lar)s 4(ger)k 5741(of)s
240 fnt3 6018 10777(length)m 240 fnt4 6629 10769(\()m 240 fnt3
6718 10777(g)m 240 fnt4 6850 10769(\))m 240 fnt1 6982 10775(and)m
240 fnt3 7391 10777(right)m 240 fnt4 7878 10769(\()m 240 fnt3
7968 10777(x)m 240 fnt4 8091 10769(\))m 8246(+)s 240 fnt3
8464 10777(left)m 240 fnt4 8790 10769(\()m 240 fnt3 8880 10777(y)m
240 fnt4 9000 10769(\))m 240 fnt1 0 10487(when)m 576(the)s
924(mode)s 1512(is)s 1722(mark-to-mark,)s 3155(and)s 3559(so)s
3825(on.)s 4229(Gi)s 6(v)k 3(en)k 4862(an)s
5145(object)s 240 fnt3 480 9992(X)m 240 fnt4 720 9984(=)m
240 fnt3 933 9992(x)m 168 fnt4 1039 9899(1)m 240 fnt4
1249 9984(|)m 240 fnt3 1294 9992(g)m 168 fnt4 1405 9899(1)m
240 fnt4 1615 9984(\274)m 200 fnt3 1973 10000(^)m 240 fnt4
2069 9984(|)m 240 fnt3 2114 9992(g)m 168 fnt3 2225 9905(i)m
168 fnt4 2291 9899(-)m 2403(1)s 240 fnt3 2613 9992(x)m
168 fnt3 2719 9905(i)m 240 fnt4 2907 9984(\274)m 3265(|)s
240 fnt3 3310 9992(g)m 168 fnt3 3421 9905(n)m 168 fnt4
3523 9899(-)m 3635(1)s 240 fnt3 3845 9992(x)m 168 fnt3
3951 9905(n)m 240 fnt1 0 9448(we)m 335(may)s 801(calculate)s
1705(its)s 1981(size)s 2408(as)s 2658(follo)s 6(ws:)k
240 fnt3 740 8945(left)m 240 fnt4 1060 8937(\()m 240 fnt3
1144 8945(X)m 240 fnt4 1312 8937(\))m 1474(=)s 240 fnt3
1687 8945(left)m 240 fnt4 2007 8937(\()m 240 fnt3 2091 8945(x)m
168 fnt4 2197 8852(1)m 240 fnt4 2275 8937(\))m 2413(+)s
240 fnt3 2614 8945(hgap)m 240 fnt4 3099 8937(\()m 240 fnt3
3183 8945(x)m 168 fnt4 3289 8852(1)m 240 fnt4 3367 8937(,)m
240 fnt3 3474 8945(g)m 168 fnt4 3585 8852(1)m 240 fnt4
3663 8937(,)m 240 fnt3 3770 8945(x)m 168 fnt4 3876 8852(2)m
240 fnt4 3968 8937(\))m 4106(+)s 4307(\274)s 4593(+)s
240 fnt3 4794 8945(hgap)m 240 fnt4 5279 8937(\()m 240 fnt3
5363 8945(x)m 168 fnt3 5469 8858(i)m 168 fnt4 5535 8852(-)m
5647(1)s 240 fnt4 5725 8937(,)m 240 fnt3 5832 8945(g)m
168 fnt3 5943 8858(i)m 168 fnt4 6009 8852(-)m 6121(1)s
240 fnt4 6199 8937(,)m 240 fnt3 6306 8945(x)m 168 fnt3
6412 8858(i)m 240 fnt4 6468 8937(\))m 240 fnt3 579 8542(right)m
240 fnt4 1060 8534(\()m 240 fnt3 1144 8542(X)m 240 fnt4
1312 8534(\))m 1474(=)s 240 fnt3 1687 8542(hgap)m 240 fnt4
2172 8534(\()m 240 fnt3 2256 8542(x)m 168 fnt3 2362 8455(i)m
240 fnt4 2418 8534(,)m 240 fnt3 2525 8542(g)m 168 fnt3
2636 8455(i)m 240 fnt4 2692 8534(,)m 240 fnt3 2799 8542(x)m
168 fnt3 2905 8455(i)m 168 fnt4 2971 8449(+)m 3084(1)s
240 fnt4 3162 8534(\))m 3300(+)s 3501(\274)s 3787(+)s
240 fnt3 3988 8542(hgap)m 240 fnt4 4473 8534(\()m 240 fnt3
4557 8542(x)m 168 fnt3 4663 8455(n)m 168 fnt4 4765 8449(-)m
4877(1)s 240 fnt4 4955 8534(,)m 240 fnt3 5062 8542(g)m
168 fnt3 5173 8455(n)m 168 fnt4 5275 8449(-)m 5387(1)s
240 fnt4 5465 8534(,)m 240 fnt3 5572 8542(x)m 168 fnt3
5678 8455(n)m 240 fnt4 5770 8534(\))m 5908(+)s 240 fnt3
6109 8542(right)m 240 fnt4 6590 8534(\()m 240 fnt3 6674 8542(x)m
168 fnt3 6780 8455(n)m 240 fnt4 6872 8534(\))m 240 fnt3
485 8139(abo)m 2(ve)k 240 fnt4 1060 8131(\()m 240 fnt3
1144 8139(X)m 240 fnt4 1312 8131(\))m 1474(=)s 240 fnt3
1687 8139(abo)m 2(ve)k 240 fnt4 2262 8131(\()m 240 fnt3
2346 8139(x)m 168 fnt4 2452 8044(1)m 240 fnt4 2530 8131(\))m
2680(\255)s 2901(\274)s 3199(\255)s 240 fnt3 3420 8139(abo)m 2(ve)k
240 fnt4 3995 8131(\()m 240 fnt3 4079 8139(x)m 168 fnt3
4185 8050(n)m 240 fnt4 4277 8131(\))m 240 fnt3 480 7736(below)m
240 fnt4 1060 7728(\()m 240 fnt3 1144 7736(X)m 240 fnt4
1312 7728(\))m 1474(=)s 240 fnt3 1687 7736(below)m 240 fnt4
2267 7728(\()m 240 fnt3 2351 7736(x)m 168 fnt4 2457 7641(1)m
240 fnt4 2535 7728(\))m 2685(\255)s 2906(\274)s 3204(\255)s
240 fnt3 3425 7736(below)m 240 fnt4 4005 7728(\()m 240 fnt3
4089 7736(x)m 168 fnt3 4195 7647(n)m 240 fnt4 4287 7728(\))m
240 fnt1 0 7141(where)m 240 fnt4 693 7135(\255)m 240 fnt1
943 7141(returns)m 1678(the)s 2046(lar)s 4(ger)k 2679(of)s
2971(its)s 3267(tw)s 2(o)k 3698(parameters.)s 4930(Similar)s
5712(formulas)s 6633(are)s 7001(easily)s 7632(deri)s 6(v)k 3(ed)k
8419(for)s 8778(the)s 0 6853(other)m 551(operators.)s 480 6479(F)m 3(or)k
866(purposes)s 1765(of)s 2033(e)s 3(xposition)k 3081(we)s
3412(will)s 3835(no)s 6(w)k 4293(mak)s 2(e)k
4862(the)s 5207(simplifying)s 6358(assumptions)s 7589(that)s 8004(all)s
8294(g)s 1(aps)k 8779(are)s 220 fnt5 0 6188(0i)m
240 fnt1 156 6191(,)m 248(all)s 525(column)s 1285(marks)s
1904(lie)s 2183(at)s 2399(the)s 2732(left)s 3093(edge,)s
3637(and)s 4025(all)s 4303(ro)s 6(w)k 4707(marks)s
5327(lie)s 5605(at)s 5822(the)s 6154(top)s 6498(edge.)s
7098(Then)s 7632(the)s 7964(size)s 8376(of)s 8631(each)s
0 5903(object)m 644(can)s 1033(be)s 1315(e)s 3(xpressed)k
2313(by)s 2607(just)s 3012(tw)s 2(o)k 3422(numbers,)s
4353(width)s 4955(and)s 5359(height,)s 6064(and)s 6468(the)s
6816(four)s 7274(formulas)s 8174(reduce)s 8867(to)s 240 fnt3
555 5400(width)m 240 fnt4 1094 5392(\()m 240 fnt3 1178 5400(x)m
168 fnt4 1284 5307(1)m 240 fnt4 1434 5392(|)m 1551(\274)s
1849(|)s 240 fnt3 1966 5400(x)m 168 fnt3 2072 5313(n)m
240 fnt4 2164 5392(\))m 2326(=)s 240 fnt3 2539 5400(width)m
240 fnt4 3078 5392(\()m 240 fnt3 3162 5400(x)m 168 fnt4
3268 5307(1)m 240 fnt4 3346 5392(\))m 3484(+)s 3685(\274)s
3971(+)s 240 fnt3 4172 5400(width)m 240 fnt4 4711 5392(\()m
240 fnt3 4795 5400(x)m 168 fnt3 4901 5313(n)m 240 fnt4
4993 5392(\))m 240 fnt3 480 4997(height)m 240 fnt4 1094 4989(\()m
240 fnt3 1178 4997(x)m 168 fnt4 1284 4904(1)m 240 fnt4
1434 4989(|)m 1551(\274)s 1849(|)s 240 fnt3 1966 4997(x)m
168 fnt3 2072 4910(n)m 240 fnt4 2164 4989(\))m 2326(=)s
240 fnt3 2539 4997(height)m 240 fnt4 3153 4989(\()m 240 fnt3
3237 4997(x)m 168 fnt4 3343 4904(1)m 240 fnt4 3421 4989(\))m
3571(\255)s 3792(\274)s 4090(\255)s 240 fnt3 4311 4997(height)m
240 fnt4 4925 4989(\()m 240 fnt3 5009 4997(x)m 168 fnt3
5115 4910(n)m 240 fnt4 5207 4989(\))m 240 fnt1 0 4453(The)m
428(corresponding)s 1850(formulas)s 2750(for)s 3088(v)s 3(ertical)k
3855(concatenation)s 5240(are)s 240 fnt3 555 3903(width)m 240 fnt4
1094 3895(\()m 240 fnt3 1178 3903(x)m 168 fnt4 1284 3810(1)m
240 fnt3 1434 3903(/)m 240 fnt4 1609 3895(\274)m 240 fnt3
1907 3903(/)m 2082(x)s 168 fnt3 2188 3816(n)m 240 fnt4
2280 3895(\))m 2442(=)s 240 fnt3 2655 3903(width)m 240 fnt4
3194 3895(\()m 240 fnt3 3278 3903(x)m 168 fnt4 3384 3810(1)m
240 fnt4 3462 3895(\))m 3612(\255)s 3833(\274)s 4131(\255)s
240 fnt3 4352 3903(width)m 240 fnt4 4891 3895(\()m 240 fnt3
4975 3903(x)m 168 fnt3 5081 3816(n)m 240 fnt4 5173 3895(\))m
240 fnt3 480 3500(height)m 240 fnt4 1094 3492(\()m 240 fnt3
1178 3500(x)m 168 fnt4 1284 3407(1)m 240 fnt3 1434 3500(/)m
240 fnt4 1609 3492(\274)m 240 fnt3 1907 3500(/)m 2082(x)s
168 fnt3 2188 3413(n)m 240 fnt4 2280 3492(\))m 2442(=)s
240 fnt3 2655 3500(height)m 240 fnt4 3269 3492(\()m 240 fnt3
3353 3500(x)m 168 fnt4 3459 3407(1)m 240 fnt4 3537 3492(\))m
3675(+)s 3876(\274)s 4162(+)s 240 fnt3 4363 3500(height)m
240 fnt4 4977 3492(\()m 240 fnt3 5061 3500(x)m 168 fnt3
5167 3413(n)m 240 fnt4 5259 3492(\))m 240 fnt1 0 2956(According)m
1063(to)s 1302(these)s 1849(formulas,)s 2805(the)s 3153(height)s
3811(of)s gsave
480 1262 translate
240 fnt3 3044 1354 56 1298 240 288 12 LoutGraphic
gsave
grestore save gsave 200 dict begin lfigdict begin
grestore
1240 846 56 790 240 288 12 0 0 LoutGr2
currentdict end 200 dict begin begin
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
currentdict end 200 dict begin begin
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
currentdict end 200 dict begin begin
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigcircle ] lfigdopath
pop pop
grestore
192 fnt3 123 128(a)m
grestore
(T) lfigpromotelabels
grestore
(L) lfigpromotelabels
grestore
338 338 56 282 240 288 12 451 508 LoutGr2
currentdict end 200 dict begin begin
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigcircle ] lfigdopath
pop pop
grestore
192 fnt4
156 121(|)m
grestore
(T) lfigpromotelabels
grestore
0 0 0 0 240 288 12 789 790 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ L@T@CTR L@T@CTR T@CTR lfigangle L@T@CIRCUM lfigpadd lfigprevious /FROM lfigpointdef
T@CTR T@CTR L@T@CTR lfigangle T@CIRCUM lfigpadd lfigprevious /TO lfigpointdef ] lfigdopath
pop pop
grestore
grestore
338 338 56 282 240 288 12 902 0 LoutGr2
currentdict end 200 dict begin begin
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
currentdict end 200 dict begin begin
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigcircle ] lfigdopath
pop pop
grestore
192 fnt3 123 105(b)m
grestore
(T) lfigpromotelabels
grestore
(R) lfigpromotelabels
grestore
0 0 0 0 240 288 12 1240 790 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ R@T@CTR R@T@CTR T@CTR lfigangle R@T@CIRCUM lfigpadd lfigprevious /FROM lfigpointdef
T@CTR T@CTR R@T@CTR lfigangle T@CIRCUM lfigpadd lfigprevious /TO lfigpointdef ] lfigdopath
pop pop
grestore
grestore
(L) lfigpromotelabels
grestore
338 338 56 282 240 288 12 1353 1016 LoutGr2
currentdict end 200 dict begin begin
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigcircle ] lfigdopath
pop pop
grestore
192 fnt4 136 106(\244)m
grestore
(T) lfigpromotelabels
grestore
0 0 0 0 240 288 12 1691 1298 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ L@T@CTR L@T@CTR T@CTR lfigangle L@T@CIRCUM lfigpadd lfigprevious /FROM lfigpointdef
T@CTR T@CTR L@T@CTR lfigangle T@CIRCUM lfigpadd lfigprevious /TO lfigpointdef ] lfigdopath
pop pop
grestore
grestore
1240 846 56 790 240 288 12 1804 0 LoutGr2
currentdict end 200 dict begin begin
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
currentdict end 200 dict begin begin
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
currentdict end 200 dict begin begin
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigcircle ] lfigdopath
pop pop
grestore
192 fnt3 128 128(c)m
grestore
(T) lfigpromotelabels
grestore
(L) lfigpromotelabels
grestore
338 338 56 282 240 288 12 451 508 LoutGr2
currentdict end 200 dict begin begin
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigcircle ] lfigdopath
pop pop
grestore
192 fnt4 156 121(|)m
grestore
(T) lfigpromotelabels
grestore
0 0 0 0 240 288 12 789 790 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ L@T@CTR L@T@CTR T@CTR lfigangle L@T@CIRCUM lfigpadd lfigprevious /FROM lfigpointdef
T@CTR T@CTR L@T@CTR lfigangle T@CIRCUM lfigpadd lfigprevious /TO lfigpointdef ] lfigdopath
pop pop
grestore
grestore
338 338 56 282 240 288 12 902 0 LoutGr2
currentdict end 200 dict begin begin
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
currentdict end 200 dict begin begin
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigcircle ] lfigdopath
pop pop
grestore
192 fnt3
118 105(d)m
grestore
(T) lfigpromotelabels
grestore
(R) lfigpromotelabels
grestore
0 0 0 0 240 288 12 1240 790 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ R@T@CTR R@T@CTR T@CTR lfigangle R@T@CIRCUM lfigpadd lfigprevious /FROM lfigpointdef
T@CTR T@CTR R@T@CTR lfigangle T@CIRCUM lfigpadd lfigprevious /TO lfigpointdef ] lfigdopath
pop pop
grestore
grestore
(R) lfigpromotelabels
grestore
0 0 0 0 240 288 12 3044 1298 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ R@T@CTR R@T@CTR T@CTR lfigangle R@T@CIRCUM lfigpadd lfigprevious /FROM lfigpointdef
T@CTR T@CTR R@T@CTR lfigangle T@CIRCUM lfigpadd lfigprevious /TO lfigpointdef ] lfigdopath
pop pop
grestore
grestore
end end restore
grestore
grestore
0 0 0 0 240 288 60 1417 -15423 LoutGr2
1 LoutMargSet
grestore
grestore
grestore
grestore
grestore
pgsave restore
showpage
%%Page: 10 11
%%BeginPageSetup
%%PageResources: font Times-Roman
%%+ font Symbol
%%+ font Times-Italic
/pgsave save def
%%IncludeResource: font Times-Roman
/Times-Romanfnt1 vec2 /Times-Roman LoutRecode
/fnt1 { /Times-Romanfnt1 LoutFont } def
%%IncludeResource: font Symbol
/fnt4 { /Symbol LoutFont } def
%%IncludeResource: font Times-Italic
/Times-Italicfnt3 vec2 /Times-Italic LoutRecode
/fnt3 { /Times-Italicfnt3 LoutFont } def
0.0500 dup scale 10 setlinewidth
%%EndPageSetup
gsave
0 0 translate
240 fnt1 0.0 0.0 0.0 LoutSetRGBColor LoutTextureSolid 11900 16840 0 16840 240 288 60 LoutGraphic
gsave
LoutPageSet
grestore
gsave
0 0 translate
1.0 1.0 1.0 LoutSetRGBColor 11900 16840 0 16840 240 288 60 LoutGraphic
gsave
LoutBox gsave 1.0 1.0 1.0 LoutSetRGBColor fill grestore 0 cm setlinewidth stroke
grestore
gsave
0 16840 translate
0.0000 rotate
0.0 0.0 0.0 LoutSetRGBColor
5704 -1579(-)m 5832(10)s 6127(-)s 9066 13416 0 13307 240 288 60 1417 -15423 LoutGr2
0 LoutMargSet
grestore
0 13253(is)m 240 fnt4
480 12745([)m 240 fnt3 563 12753(height)m 240 fnt4 1177 12745(\()m
240 fnt3 1261 12753(a)m 240 fnt4 1388 12745(\))m 1538(\255)s
240 fnt3 1759 12753(height)m 240 fnt4 2373 12745(\()m 240 fnt3
2457 12753(b)m 240 fnt4 2583 12745(\))m 2661(])s 2792(+)s
2993([)s 240 fnt3 3076 12753(height)m 240 fnt4 3690 12745(\()m
240 fnt3 3774 12753(c)m 240 fnt4 3888 12745(\))m 4038(\255)s
240 fnt3 4259 12753(height)m 240 fnt4 4873 12745(\()m 240 fnt3
4957 12753(d)m 240 fnt4 5095 12745(\))m 5173(])s 240 fnt1
0 12249(which)m 642(is)s 852(correct,)s 1621(b)s 4(ut)k
1983(for)s 2321(width)s 2923(the)s 3(y)k 3386(yield)s
240 fnt4 480 11691([)m 240 fnt3 563 11699(width)m 240 fnt4
1102 11691(\()m 240 fnt3 1186 11699(a)m 240 fnt4 1313 11691(\))m
1451(+)s 240 fnt3 1652 11699(width)m 240 fnt4 2191 11691(\()m
240 fnt3 2275 11699(b)m 240 fnt4 2401 11691(\))m 2479(])s
2622(\255)s 2843([)s 240 fnt3 2926 11699(width)m 240 fnt4
3465 11691(\()m 240 fnt3 3549 11699(c)m 240 fnt4 3663 11691(\))m
3801(+)s 240 fnt3 4002 11699(width)m 240 fnt4 4541 11691(\()m
240 fnt3 4625 11699(d)m 240 fnt4 4763 11691(\))m 4841(])s
240 fnt1 0 11195(which)m 645(is)s 859(not,)s 1276(since)s
1827(it)s 2023(does)s 2517(not)s 2887(tak)s 2(e)k
3343(the)s 3694(mer)s 4(ging)k 4544(of)s 4819(column)s
5598(marks)s 6237(into)s 6666(account.)s 7578(The)s 8010(asymmetry)s
0 10907(between)m 874(horizontal)s 1918(and)s 2342(v)s 3(ertical)k
3130(has)s 3520(come)s 4114(about)s 4726(because)s 5560(the)s
5928(ro)s 6(w)k 6368(entries,)s 7131(such)s 7648(as)s
240 fnt3 7918 10909(a)m 240 fnt1 8113 10907(and)m 240 fnt3
8537 10909(b)m 240 fnt1 8651 10907(,)m 8779(are)s 0 10619(adjacent)m
849(in)s 1085(the)s 1426(tree,)s 1883(b)s 4(ut)k
2238(the)s 2579(column)s 3346(entries,)s 4082(such)s 4571(as)s
240 fnt3 4814 10621(a)m 240 fnt1 4982 10619(and)m 240 fnt3
5379 10621(c)m 240 fnt1 5481 10619(,)m 5581(are)s 5920(not.)s
6383(It)s 6581(w)s 2(ould)k 7229(be)s 7504(possible)s
8337(to)s 8568(solv)s 3(e)k 0 10331(this)m 395(cross-linking)s
1694(problem)s 2550(by)s 2842(augmenting)s 4024(the)s 4370(size)s
4795(information)s 5979(stored)s 6619(in)s 6861(each)s 7354(node)s
7875(to)s 8112(record)s 8778(the)s 0 10043(number)m 791(of)s
1063(marks)s 1698(and)s 2103(the)s 2451(size)s 2879(of)s
3150(each,)s 3696(b)s 4(ut)k 4058(the)s 4407(author)s
5078(has)s 5449(preferred)s 6381(the)s 6730(follo)s 6(wing)k
7707(method)s 8484(which)s 0 9755(mak)m 2(es)k 660(structural)s
1616(changes)s 2438(to)s 2677(the)s 3025(tree)s 3438(instead.)s
480 9381(If)m 240 fnt3 715 9383(a)m 240 fnt1 896 9381(and)m
240 fnt3 1305 9383(c)m 240 fnt1 1473 9381(share)m 2038(a)s
2210(column)s 2990(mark,)s 3594(the)s 3(y)k 4063(each)s
4563(might)s 5187(as)s 5442(well)s 5914(ha)s 4(v)k 3(e)k
6420(width)s 240 fnt3 7028 9383(width)m 240 fnt4 7572 9375(\()m
240 fnt3 7662 9383(a)m 240 fnt4 7795 9375(\))m 7961(\255)s
240 fnt3 8199 9383(width)m 240 fnt4 8743 9375(\()m 240 fnt3
8833 9383(c)m 240 fnt4 8953 9375(\))m 240 fnt1 9019 9381(,)m
0 9093(since)m 547(all)s 840(width)s 1442(calculations)s 2635(apply)s
3221(to)s 3460(entire)s 4060(columns.)s 5035(Accordingly)s 15(,)k
6323(we)s 6659(introduce)s 7618(a)s 7784(ne)s 6(w)k
8232(operator)s 9(,)k 240 fnt3 0 8807(COL)m 240 fnt1
466 8805(,)m 573(de\207ned)s 1336(by)s 240 fnt3 480 8255(width)m
240 fnt4 1019 8247(\()m 240 fnt3 1103 8255(x)m 168 fnt4
1209 8162(1)m 240 fnt3 1347 8255(COL)m 240 fnt4 1885 8247(\274)m
240 fnt3 2171 8255(COL)m 2709(x)s 168 fnt3 2815 8168(n)m
240 fnt4 2907 8247(\))m 3057(=)s 240 fnt3 3270 8255(width)m
240 fnt4 3809 8247(\()m 240 fnt3 3893 8255(x)m 168 fnt4
3999 8162(1)m 240 fnt4 4077 8247(\))m 4227(\255)s 4448(\274)s
4746(\255)s 240 fnt3 4967 8255(width)m 240 fnt4 5506 8247(\()m
240 fnt3 5590 8255(x)m 168 fnt3 5696 8168(n)m 240 fnt4
5788 8247(\))m 240 fnt1 0 7711(and)m 440(replace)s 1221(both)s
240 fnt3 1741 7713(a)m 240 fnt1 1952 7711(and)m 240 fnt3
2393 7713(c)m 240 fnt1 2591 7711(by)m 240 fnt3 2922 7713(a)m
3218(COL)s 3865(c)s 240 fnt1 3967 7711(.)m 4168(T)s 19(o)k
4504(pre)s 6(v)k 3(ent)k 240 fnt3 5309 7713(COL)m
240 fnt1 5871 7711(operators)m 6848(from)s 7408(disturbing)s 8468(height)s
0 7423(calculations,)m 1248(we)s 1583(de\207ne)s 2224(a)s 2390(binary)s
3055(operator)s 3911(called)s 240 fnt3 4539 7425(SPLIT)m 240 fnt1
5228 7423(by)m 240 fnt3 555 6920(width)m 240 fnt4 1094 6912(\()m
240 fnt3 1178 6920(x)m 1356(SPLIT)s 2057(y)s 240 fnt4
2171 6912(\))m 2333(=)s 240 fnt3 2546 6920(width)m 240 fnt4
3085 6912(\()m 240 fnt3 3169 6920(x)m 240 fnt4 3287 6912(\))m
240 fnt3 480 6517(height)m 240 fnt4 1094 6509(\()m 240 fnt3
1178 6517(x)m 1356(SPLIT)s 2057(y)s 240 fnt4 2171 6509(\))m
2333(=)s 240 fnt3 2546 6517(height)m 240 fnt4 3160 6509(\()m
240 fnt3 3244 6517(y)m 240 fnt4 3358 6509(\))m 240 fnt1
0 6013(which)m 642(switches)s 1516(height)s 2174(and)s 2578(width)s
3180(calculations)s 4372(onto)s 4851(dif)s 6(ferent)k 5726(subtrees.)s
6673(Then)s 7222(the)s 7570(transformation)s gsave
480 4314 translate
240 fnt3 338 1359 56 1298 240 288 12 LoutGraphic
gsave
grestore save gsave 200 dict begin lfigdict begin
grestore
338 1359 56 1298 240 288 12 0 0 LoutGr2
currentdict end 200 dict begin begin
grestore
338 338 56 282 240 288 12 0 1016 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigcircle ] lfigdopath
pop pop
grestore
192 fnt3
123 128(a)m
grestore
(T) lfigpromotelabels
grestore
end end restore
grestore
240 fnt4 1130 5552(\336)m gsave
1671 4314 translate
240 fnt3 2564 1359 56 1298 240 288 12 LoutGraphic
gsave
grestore save gsave 200 dict begin lfigdict begin
grestore
1386 846 56 790 240 288 12 0 0 LoutGr2
currentdict end 200 dict begin begin
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
currentdict end 200 dict begin begin
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
currentdict end 200 dict begin begin
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigcircle ] lfigdopath
pop pop
grestore
192 fnt3
123 128(a)m
grestore
(T) lfigpromotelabels
grestore
(L) lfigpromotelabels
grestore
484 338 56 282 240 288 12 451 508 LoutGr2
currentdict end 200 dict begin begin
grestore
484 338 56 282 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigellipse ] lfigdopath
pop pop
grestore
192 fnt3 56 107(COL)m
grestore
(T) lfigpromotelabels
grestore
0 0 0 0 240 288 12 935 790 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ L@T@CTR L@T@CTR T@CTR lfigangle L@T@CIRCUM lfigpadd lfigprevious /FROM lfigpointdef
T@CTR T@CTR L@T@CTR lfigangle T@CIRCUM lfigpadd lfigprevious /TO lfigpointdef ] lfigdopath
pop pop
grestore
grestore
338 338 56 282 240 288 12 1048 0 LoutGr2
currentdict end 200 dict begin begin
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
currentdict end 200 dict begin begin
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigcircle ] lfigdopath
pop pop
grestore
192 fnt3 128 128(c)m
grestore
(T) lfigpromotelabels
grestore
(R) lfigpromotelabels
grestore
0 0 0 0 240 288 12 1386 790 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ R@T@CTR R@T@CTR T@CTR lfigangle R@T@CIRCUM lfigpadd lfigprevious /FROM lfigpointdef
T@CTR T@CTR R@T@CTR lfigangle T@CIRCUM lfigpadd lfigprevious /TO lfigpointdef ] lfigdopath
pop pop
grestore
grestore
(L) lfigpromotelabels
grestore
614 338 56 282 240 288 12 1499 1016 LoutGr2
currentdict end 200 dict begin begin
grestore
614 338 56 282 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigellipse ] lfigdopath
pop pop
grestore
192 fnt3 56 107(SPLIT)m
grestore
(T) lfigpromotelabels
grestore
0 0 0 0 240 288 12 2113 1298 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ L@T@CTR L@T@CTR T@CTR lfigangle L@T@CIRCUM lfigpadd lfigprevious /FROM lfigpointdef
T@CTR T@CTR L@T@CTR lfigangle T@CIRCUM lfigpadd lfigprevious /TO lfigpointdef ] lfigdopath
pop pop
grestore
grestore
338 846 56 790 240 288 12 2226 0 LoutGr2
currentdict end 200 dict begin begin
grestore
338 846 56 790 240 288 12 0 0 LoutGr2
currentdict end 200 dict begin begin
grestore
338 338 56 282 240 288 12 0 508 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigcircle ] lfigdopath
pop pop
grestore
192 fnt3 123 128(a)m
grestore
(T) lfigpromotelabels
grestore
(R) lfigpromotelabels
grestore
0 0 0 0 240 288 12 2564 1298 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ R@T@CTR R@T@CTR T@CTR lfigangle R@T@CIRCUM lfigpadd lfigprevious /FROM lfigpointdef
T@CTR T@CTR R@T@CTR lfigangle T@CIRCUM lfigpadd lfigprevious /TO lfigpointdef ] lfigdopath
pop pop
grestore
grestore
end end restore
grestore
240 fnt1
0 3814(widens)m 240 fnt3 740 3816(a)m 240 fnt1 926 3814(to)m
240 fnt3 1176 3816(width)m 240 fnt4 1726 3808(\()m 240 fnt3
1821 3816(a)m 240 fnt4 1959 3808(\))m 2142(\255)s 240 fnt3
2396 3816(width)m 240 fnt4 2946 3808(\()m 240 fnt3 3041 3816(c)m
240 fnt4 3166 3808(\))m 240 fnt1 3303 3814(without)m 4105(af)s 6(fecting)k
5011(its)s 5298(height;)s 6019(it)s 6222(is)s 6443(applied)s
7216(to)s 7466(e)s 6(v)k 3(ery)k 8053(object)s
8708(that)s 0 3526(shares)m 638(its)s 904(column)s 1669(mark)s
2211(with)s 2683(at)s 2905(least)s 3392(one)s 3784(other)s
4325(object.)s 5063(A)s 5283(similar)s 5995(transformation)s 7448(in)s 9(v)k 4(olving)k
8396(a)s 240 fnt3 8552 3528(R)m 9(O)k 12(W)k
240 fnt1 0 3238(operator)m 856(deals)s 1398(with)s 1880(shared)s
2562(ro)s 6(w)k 2982(marks.)s 3730(The)s 4158(ef)s 6(fect)k
4754(on)s 5051(our)s 5430(little)s 5922(table)s 6442(is)s
6652(to)s 6891(replace)s gsave
480 1544 translate
240 fnt3 3044 1354 56 1298 240 288 12 LoutGraphic
gsave
grestore save gsave 200 dict begin lfigdict begin
grestore
1240 846 56 790 240 288 12 0 0 LoutGr2
currentdict end 200 dict begin begin
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
currentdict end 200 dict begin begin
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
currentdict end 200 dict begin begin
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigcircle ] lfigdopath
pop pop
grestore
192 fnt3 123 128(a)m
grestore
(T) lfigpromotelabels
grestore
(L) lfigpromotelabels
grestore
338 338 56 282 240 288 12 451 508 LoutGr2
currentdict end 200 dict begin begin
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigcircle ] lfigdopath
pop pop
grestore
192 fnt4 156 121(|)m
grestore
(T) lfigpromotelabels
grestore
0 0 0 0 240 288 12 789 790 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ L@T@CTR L@T@CTR T@CTR lfigangle L@T@CIRCUM lfigpadd lfigprevious /FROM lfigpointdef
T@CTR T@CTR L@T@CTR lfigangle T@CIRCUM lfigpadd lfigprevious /TO lfigpointdef ] lfigdopath
pop pop
grestore
grestore
338 338 56 282 240 288 12 902 0 LoutGr2
currentdict end 200 dict begin begin
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
currentdict end 200 dict begin begin
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigcircle ] lfigdopath
pop pop
grestore
192 fnt3 123 105(b)m
grestore
(T) lfigpromotelabels
grestore
(R) lfigpromotelabels
grestore
0 0 0 0 240 288 12 1240 790 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ R@T@CTR R@T@CTR T@CTR lfigangle R@T@CIRCUM lfigpadd lfigprevious /FROM lfigpointdef
T@CTR T@CTR R@T@CTR lfigangle T@CIRCUM lfigpadd lfigprevious /TO lfigpointdef ] lfigdopath
pop pop
grestore
grestore
(L) lfigpromotelabels
grestore
338 338 56 282 240 288 12 1353 1016 LoutGr2
currentdict end 200 dict begin begin
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigcircle ] lfigdopath
pop pop
grestore
192 fnt4
136 106(\244)m
grestore
(T) lfigpromotelabels
grestore
0 0 0 0 240 288 12 1691 1298 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ L@T@CTR L@T@CTR T@CTR lfigangle L@T@CIRCUM lfigpadd lfigprevious /FROM lfigpointdef
T@CTR T@CTR L@T@CTR lfigangle T@CIRCUM lfigpadd lfigprevious /TO lfigpointdef ] lfigdopath
pop pop
grestore
grestore
1240 846 56 790 240 288 12 1804 0 LoutGr2
currentdict end 200 dict begin begin
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
currentdict end 200 dict begin begin
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
currentdict end 200 dict begin begin
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigcircle ] lfigdopath
pop pop
grestore
192 fnt3 128 128(c)m
grestore
(T) lfigpromotelabels
grestore
(L) lfigpromotelabels
grestore
338 338 56 282 240 288 12 451 508 LoutGr2
currentdict end 200 dict begin begin
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigcircle ] lfigdopath
pop pop
grestore
192 fnt4 156 121(|)m
grestore
(T) lfigpromotelabels
grestore
0 0 0 0 240 288 12 789 790 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ L@T@CTR L@T@CTR T@CTR lfigangle L@T@CIRCUM lfigpadd lfigprevious /FROM lfigpointdef
T@CTR T@CTR L@T@CTR lfigangle T@CIRCUM lfigpadd lfigprevious /TO lfigpointdef ] lfigdopath
pop pop
grestore
grestore
338 338 56 282 240 288 12 902 0 LoutGr2
currentdict end 200 dict begin begin
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
currentdict end 200 dict begin begin
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigcircle ] lfigdopath
pop pop
grestore
192 fnt3 118 105(d)m
grestore
(T) lfigpromotelabels
grestore
(R) lfigpromotelabels
grestore
0 0 0 0 240 288 12 1240 790 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ R@T@CTR R@T@CTR T@CTR lfigangle R@T@CIRCUM lfigpadd lfigprevious /FROM lfigpointdef
T@CTR T@CTR R@T@CTR lfigangle T@CIRCUM lfigpadd lfigprevious /TO lfigpointdef ] lfigdopath
pop pop
grestore
grestore
(R) lfigpromotelabels
grestore
0 0 0 0 240 288 12 3044 1298 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ R@T@CTR R@T@CTR T@CTR lfigangle R@T@CIRCUM lfigpadd lfigprevious /FROM lfigpointdef
T@CTR T@CTR R@T@CTR lfigangle T@CIRCUM lfigpadd lfigprevious /TO lfigpointdef ] lfigdopath
pop pop
grestore
grestore
end end restore
grestore
0 1093(by)m
grestore
0 0 0 0 240 288 60 1417 -15423 LoutGr2
0 LoutMargSet
grestore
grestore
grestore
grestore
grestore
pgsave restore
showpage
%%Page: 11 12
%%BeginPageSetup
%%PageResources: font Times-Roman
%%+ font Times-Italic
%%+ font Symbol
%%+ font Helvetica
/pgsave save def
%%IncludeResource: font Times-Roman
/Times-Romanfnt1 vec2 /Times-Roman LoutRecode
/fnt1 { /Times-Romanfnt1 LoutFont } def
%%IncludeResource: font Times-Italic
/Times-Italicfnt3 vec2 /Times-Italic LoutRecode
/fnt3 { /Times-Italicfnt3 LoutFont } def
%%IncludeResource: font Symbol
/fnt4 { /Symbol LoutFont } def
%%IncludeResource: font Helvetica
/Helveticafnt5 vec2 /Helvetica LoutRecode
/fnt5 { /Helveticafnt5 LoutFont } def
0.0500 dup scale 10 setlinewidth
%%EndPageSetup
gsave
0 0 translate
240 fnt1 0.0 0.0 0.0 LoutSetRGBColor LoutTextureSolid 11900 16840 0 16840 240 288 60 LoutGraphic
gsave
LoutPageSet
grestore
gsave
0 0 translate
1.0 1.0 1.0 LoutSetRGBColor 11900 16840 0 16840 240 288 60 LoutGraphic
gsave
LoutBox gsave 1.0 1.0 1.0 LoutSetRGBColor fill grestore 0 cm setlinewidth stroke
grestore
gsave
0 16840 translate
0.0000 rotate
0.0 0.0 0.0 LoutSetRGBColor
5714 -1579(-)m 5842(11)s 6117(-)s 9066 13419 0 13363 240 288 60 1417 -15423 LoutGr2
1 LoutMargSet
grestore
gsave
480 11049 translate
240 fnt3 6248 2370 0 2314 240 288 12 LoutGraphic
gsave
grestore save gsave 70 dict begin lfigdict begin
grestore
3293 338 56 282 240 288 12 2955 2032 LoutGr2
currentdict end 70 dict begin begin
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigcircle ] lfigdopath
pop pop
grestore
192 fnt4
136 106(\244)m
grestore
(T) lfigpromotelabels
grestore
3096 1862 0 1806 240 288 12 0 0 LoutGr2
currentdict end 70 dict begin begin
grestore
1717 338 56 282 240 288 12 1379 1524 LoutGr2
currentdict end 70 dict begin begin
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigcircle ] lfigdopath
pop pop
grestore
192 fnt4 156 121(|)m
grestore
(T) lfigpromotelabels
grestore
1520 1354 0 1298 240 288 12 0 0 LoutGr2
currentdict end 70 dict begin begin
grestore
1067 338 56 282 240 288 12 453 1016 LoutGr2
currentdict end 70 dict begin begin
grestore
614 338 56 282 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigellipse ] lfigdopath
pop pop
grestore
192 fnt3 56 107(SPLIT)m
grestore
(T) lfigpromotelabels
grestore
732 846 0 790 240 288 12 0 0 LoutGr2
currentdict end 70 dict begin begin
grestore
608 338 56 282 240 288 12 124 508 LoutGr2
currentdict end 70 dict begin begin
grestore
484 338 56 282 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigellipse ] lfigdopath
pop pop
grestore
192 fnt3 56 107(COL)m
grestore
(T) lfigpromotelabels
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
currentdict end 70 dict begin begin
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
currentdict end 70 dict begin begin
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigcircle ] lfigdopath
pop pop
grestore
192 fnt3 123 128(a)m
grestore
(T) lfigpromotelabels
grestore
(S) lfigpromotelabels
grestore
0 0 0 0 240 288 12 338 282 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ S@T@CTR S@T@CTR T@CTR lfigangle S@T@CIRCUM lfigpadd lfigprevious /FROM lfigpointdef
T@CTR T@CTR S@T@CTR lfigangle T@CIRCUM lfigpadd lfigprevious /TO lfigpointdef ] lfigdopath
pop pop
grestore
grestore
338 338 56 282 240 288 12 394 0 LoutGr2
currentdict end 70 dict begin begin
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
currentdict end 70 dict begin begin
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigcircle ] lfigdopath
pop pop
grestore
192 fnt3
128 128(c)m
grestore
(T) lfigpromotelabels
grestore
(S) lfigpromotelabels
grestore
0 0 0 0 240 288 12 732 282 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ S@T@CTR S@T@CTR T@CTR lfigangle S@T@CIRCUM lfigpadd lfigprevious /FROM lfigpointdef
T@CTR T@CTR S@T@CTR lfigangle T@CIRCUM lfigpadd lfigprevious /TO lfigpointdef ] lfigdopath
pop pop
grestore
grestore
(S) lfigpromotelabels
grestore
0 0 0 0 240 288 12 732 790 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ S@T@CTR S@T@CTR T@CTR lfigangle S@T@CIRCUM lfigpadd lfigprevious /FROM lfigpointdef
T@CTR T@CTR S@T@CTR lfigangle T@CIRCUM lfigpadd lfigprevious /TO lfigpointdef ] lfigdopath
pop pop
grestore
grestore
732 846 0 790 240 288 12 788 0 LoutGr2
currentdict end 70 dict begin begin
grestore
628 338 56 282 240 288 12 104 508 LoutGr2
currentdict end 70 dict begin begin
grestore
524 338 56 282 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigellipse ] lfigdopath
pop pop
grestore
192 fnt3 56 107(R)m 7(O)k 9(W)k
grestore
(T) lfigpromotelabels
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
currentdict end 70 dict begin begin
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
currentdict end 70 dict begin begin
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigcircle ] lfigdopath
pop pop
grestore
192 fnt3 123 128(a)m
grestore
(T) lfigpromotelabels
grestore
(S) lfigpromotelabels
grestore
0 0 0 0 240 288 12 338 282 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ S@T@CTR S@T@CTR T@CTR lfigangle S@T@CIRCUM lfigpadd lfigprevious /FROM lfigpointdef
T@CTR T@CTR S@T@CTR lfigangle T@CIRCUM lfigpadd lfigprevious /TO lfigpointdef ] lfigdopath
pop pop
grestore
grestore
338 338 56 282 240 288 12 394 0 LoutGr2
currentdict end 70 dict begin begin
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
currentdict end 70 dict begin begin
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigcircle ] lfigdopath
pop pop
grestore
192 fnt3 123 105(b)m
grestore
(T) lfigpromotelabels
grestore
(S) lfigpromotelabels
grestore
0 0 0 0 240 288 12 732 282 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ S@T@CTR S@T@CTR T@CTR lfigangle S@T@CIRCUM lfigpadd lfigprevious /FROM lfigpointdef
T@CTR T@CTR S@T@CTR lfigangle T@CIRCUM lfigpadd lfigprevious /TO lfigpointdef ] lfigdopath
pop pop
grestore
grestore
(S) lfigpromotelabels
grestore
0 0 0 0 240 288 12 1520 790 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ S@T@CTR S@T@CTR T@CTR lfigangle S@T@CIRCUM lfigpadd lfigprevious /FROM lfigpointdef
T@CTR T@CTR S@T@CTR lfigangle T@CIRCUM lfigpadd lfigprevious /TO lfigpointdef ] lfigdopath
pop pop
grestore
grestore
(S) lfigpromotelabels
grestore
0 0 0 0 240 288 12 1520 1298 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ S@T@CTR S@T@CTR T@CTR lfigangle S@T@CIRCUM lfigpadd lfigprevious /FROM lfigpointdef
T@CTR T@CTR S@T@CTR lfigangle T@CIRCUM lfigpadd lfigprevious /TO lfigpointdef ] lfigdopath
pop pop
grestore
grestore
1520 1354 0 1298 240 288 12 1576 0 LoutGr2
currentdict end 70 dict begin begin
grestore
1067 338 56 282 240 288 12 453 1016 LoutGr2
currentdict end 70 dict begin begin
grestore
614 338 56 282 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigellipse ] lfigdopath
pop pop
grestore
192 fnt3
56 107(SPLIT)m
grestore
(T) lfigpromotelabels
grestore
732 846 0 790 240 288 12 0 0 LoutGr2
currentdict end 70 dict begin begin
grestore
608 338 56 282 240 288 12 124 508 LoutGr2
currentdict end 70 dict begin begin
grestore
484 338 56 282 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigellipse ] lfigdopath
pop pop
grestore
192 fnt3 56 107(COL)m
grestore
(T) lfigpromotelabels
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
currentdict end 70 dict begin begin
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
currentdict end 70 dict begin begin
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigcircle ] lfigdopath
pop pop
grestore
192 fnt3 123 105(b)m
grestore
(T) lfigpromotelabels
grestore
(S) lfigpromotelabels
grestore
0 0 0 0 240 288 12 338 282 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ S@T@CTR S@T@CTR T@CTR lfigangle S@T@CIRCUM lfigpadd lfigprevious /FROM lfigpointdef
T@CTR T@CTR S@T@CTR lfigangle T@CIRCUM lfigpadd lfigprevious /TO lfigpointdef ] lfigdopath
pop pop
grestore
grestore
338 338 56 282 240 288 12 394 0 LoutGr2
currentdict end 70 dict begin begin
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
currentdict end 70 dict begin begin
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigcircle ] lfigdopath
pop pop
grestore
192 fnt3 118 105(d)m
grestore
(T) lfigpromotelabels
grestore
(S) lfigpromotelabels
grestore
0 0 0 0 240 288 12 732 282 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ S@T@CTR S@T@CTR T@CTR lfigangle S@T@CIRCUM lfigpadd lfigprevious /FROM lfigpointdef
T@CTR T@CTR S@T@CTR lfigangle T@CIRCUM lfigpadd lfigprevious /TO lfigpointdef ] lfigdopath
pop pop
grestore
grestore
(S) lfigpromotelabels
grestore
0 0 0 0 240 288 12 732 790 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ S@T@CTR S@T@CTR T@CTR lfigangle S@T@CIRCUM lfigpadd lfigprevious /FROM lfigpointdef
T@CTR T@CTR S@T@CTR lfigangle T@CIRCUM lfigpadd lfigprevious /TO lfigpointdef ] lfigdopath
pop pop
grestore
grestore
732 846 0 790 240 288 12 788 0 LoutGr2
currentdict end 70 dict begin begin
grestore
628 338 56 282 240 288 12 104 508 LoutGr2
currentdict end 70 dict begin begin
grestore
524 338 56 282 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigellipse ] lfigdopath
pop pop
grestore
192 fnt3 56 107(R)m 7(O)k 9(W)k
grestore
(T) lfigpromotelabels
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
currentdict end 70 dict begin begin
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
currentdict end 70 dict begin begin
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigcircle ] lfigdopath
pop pop
grestore
192 fnt3 123 128(a)m
grestore
(T) lfigpromotelabels
grestore
(S) lfigpromotelabels
grestore
0 0 0 0 240 288 12 338 282 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ S@T@CTR S@T@CTR T@CTR lfigangle S@T@CIRCUM lfigpadd lfigprevious /FROM lfigpointdef
T@CTR T@CTR S@T@CTR lfigangle T@CIRCUM lfigpadd lfigprevious /TO lfigpointdef ] lfigdopath
pop pop
grestore
grestore
338 338 56 282 240 288 12 394 0 LoutGr2
currentdict end 70 dict begin begin
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
currentdict end 70 dict begin begin
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigcircle ] lfigdopath
pop pop
grestore
192 fnt3 123 105(b)m
grestore
(T) lfigpromotelabels
grestore
(S) lfigpromotelabels
grestore
0 0 0 0 240 288 12 732 282 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ S@T@CTR S@T@CTR T@CTR lfigangle S@T@CIRCUM lfigpadd lfigprevious /FROM lfigpointdef
T@CTR T@CTR S@T@CTR lfigangle T@CIRCUM lfigpadd lfigprevious /TO lfigpointdef ] lfigdopath
pop pop
grestore
grestore
(S) lfigpromotelabels
grestore
0 0 0 0 240 288 12 1520 790 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ S@T@CTR S@T@CTR T@CTR lfigangle S@T@CIRCUM lfigpadd lfigprevious /FROM lfigpointdef
T@CTR T@CTR S@T@CTR lfigangle T@CIRCUM lfigpadd lfigprevious /TO lfigpointdef ] lfigdopath
pop pop
grestore
grestore
(S) lfigpromotelabels
grestore
0 0 0 0 240 288 12 3096 1298 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ S@T@CTR S@T@CTR T@CTR lfigangle S@T@CIRCUM lfigpadd lfigprevious /FROM lfigpointdef
T@CTR T@CTR S@T@CTR lfigangle T@CIRCUM lfigpadd lfigprevious /TO lfigpointdef ] lfigdopath
pop pop
grestore
grestore
(S) lfigpromotelabels
grestore
0 0 0 0 240 288 12 3096 1806 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ S@T@CTR S@T@CTR T@CTR lfigangle S@T@CIRCUM lfigpadd lfigprevious /FROM lfigpointdef
T@CTR T@CTR S@T@CTR lfigangle T@CIRCUM lfigpadd lfigprevious /TO lfigpointdef ] lfigdopath
pop pop
grestore
grestore
3096 1862 0 1806 240 288 12 3152 0 LoutGr2
currentdict end 70 dict begin begin
grestore
1717 338 56 282 240 288 12 1379 1524 LoutGr2
currentdict end 70 dict begin begin
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigcircle ] lfigdopath
pop pop
grestore
192 fnt4
156 121(|)m
grestore
(T) lfigpromotelabels
grestore
1520 1354 0 1298 240 288 12 0 0 LoutGr2
currentdict end 70 dict begin begin
grestore
1067 338 56 282 240 288 12 453 1016 LoutGr2
currentdict end 70 dict begin begin
grestore
614 338 56 282 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigellipse ] lfigdopath
pop pop
grestore
192 fnt3 56 107(SPLIT)m
grestore
(T) lfigpromotelabels
grestore
732 846 0 790 240 288 12 0 0 LoutGr2
currentdict end 70 dict begin begin
grestore
608 338 56 282 240 288 12 124 508 LoutGr2
currentdict end 70 dict begin begin
grestore
484 338 56 282 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigellipse ] lfigdopath
pop pop
grestore
192 fnt3 56 107(COL)m
grestore
(T) lfigpromotelabels
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
currentdict end 70 dict begin begin
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
currentdict end 70 dict begin begin
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigcircle ] lfigdopath
pop pop
grestore
192 fnt3 123 128(a)m
grestore
(T) lfigpromotelabels
grestore
(S) lfigpromotelabels
grestore
0 0 0 0 240 288 12 338 282 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ S@T@CTR S@T@CTR T@CTR lfigangle S@T@CIRCUM lfigpadd lfigprevious /FROM lfigpointdef
T@CTR T@CTR S@T@CTR lfigangle T@CIRCUM lfigpadd lfigprevious /TO lfigpointdef ] lfigdopath
pop pop
grestore
grestore
338 338 56 282 240 288 12 394 0 LoutGr2
currentdict end 70 dict begin begin
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
currentdict end 70 dict begin begin
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigcircle ] lfigdopath
pop pop
grestore
192 fnt3 128 128(c)m
grestore
(T) lfigpromotelabels
grestore
(S) lfigpromotelabels
grestore
0 0 0 0 240 288 12 732 282 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ S@T@CTR S@T@CTR T@CTR lfigangle S@T@CIRCUM lfigpadd lfigprevious /FROM lfigpointdef
T@CTR T@CTR S@T@CTR lfigangle T@CIRCUM lfigpadd lfigprevious /TO lfigpointdef ] lfigdopath
pop pop
grestore
grestore
(S) lfigpromotelabels
grestore
0 0 0 0 240 288 12 732 790 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ S@T@CTR S@T@CTR T@CTR lfigangle S@T@CIRCUM lfigpadd lfigprevious /FROM lfigpointdef
T@CTR T@CTR S@T@CTR lfigangle T@CIRCUM lfigpadd lfigprevious /TO lfigpointdef ] lfigdopath
pop pop
grestore
grestore
732 846 0 790 240 288 12 788 0 LoutGr2
currentdict end 70 dict begin begin
grestore
628 338 56 282 240 288 12 104 508 LoutGr2
currentdict end 70 dict begin begin
grestore
524 338 56 282 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigellipse ] lfigdopath
pop pop
grestore
192 fnt3
56 107(R)m 7(O)k 9(W)k
grestore
(T) lfigpromotelabels
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
currentdict end 70 dict begin begin
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
currentdict end 70 dict begin begin
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigcircle ] lfigdopath
pop pop
grestore
192 fnt3 128 128(c)m
grestore
(T) lfigpromotelabels
grestore
(S) lfigpromotelabels
grestore
0 0 0 0 240 288 12 338 282 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ S@T@CTR S@T@CTR T@CTR lfigangle S@T@CIRCUM lfigpadd lfigprevious /FROM lfigpointdef
T@CTR T@CTR S@T@CTR lfigangle T@CIRCUM lfigpadd lfigprevious /TO lfigpointdef ] lfigdopath
pop pop
grestore
grestore
338 338 56 282 240 288 12 394 0 LoutGr2
currentdict end 70 dict begin begin
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
currentdict end 70 dict begin begin
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigcircle ] lfigdopath
pop pop
grestore
192 fnt3 118 105(d)m
grestore
(T) lfigpromotelabels
grestore
(S) lfigpromotelabels
grestore
0 0 0 0 240 288 12 732 282 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ S@T@CTR S@T@CTR T@CTR lfigangle S@T@CIRCUM lfigpadd lfigprevious /FROM lfigpointdef
T@CTR T@CTR S@T@CTR lfigangle T@CIRCUM lfigpadd lfigprevious /TO lfigpointdef ] lfigdopath
pop pop
grestore
grestore
(S) lfigpromotelabels
grestore
0 0 0 0 240 288 12 1520 790 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ S@T@CTR S@T@CTR T@CTR lfigangle S@T@CIRCUM lfigpadd lfigprevious /FROM lfigpointdef
T@CTR T@CTR S@T@CTR lfigangle T@CIRCUM lfigpadd lfigprevious /TO lfigpointdef ] lfigdopath
pop pop
grestore
grestore
(S) lfigpromotelabels
grestore
0 0 0 0 240 288 12 1520 1298 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ S@T@CTR S@T@CTR T@CTR lfigangle S@T@CIRCUM lfigpadd lfigprevious /FROM lfigpointdef
T@CTR T@CTR S@T@CTR lfigangle T@CIRCUM lfigpadd lfigprevious /TO lfigpointdef ] lfigdopath
pop pop
grestore
grestore
1520 1354 0 1298 240 288 12 1576 0 LoutGr2
currentdict end 70 dict begin begin
grestore
1067 338 56 282 240 288 12 453 1016 LoutGr2
currentdict end 70 dict begin begin
grestore
614 338 56 282 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigellipse ] lfigdopath
pop pop
grestore
192 fnt3 56 107(SPLIT)m
grestore
(T) lfigpromotelabels
grestore
732 846 0 790 240 288 12 0 0 LoutGr2
currentdict end 70 dict begin begin
grestore
608 338 56 282 240 288 12 124 508 LoutGr2
currentdict end 70 dict begin begin
grestore
484 338 56 282 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigellipse ] lfigdopath
pop pop
grestore
192 fnt3
56 107(COL)m
grestore
(T) lfigpromotelabels
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
currentdict end 70 dict begin begin
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
currentdict end 70 dict begin begin
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigcircle ] lfigdopath
pop pop
grestore
192 fnt3 123 105(b)m
grestore
(T) lfigpromotelabels
grestore
(S) lfigpromotelabels
grestore
0 0 0 0 240 288 12 338 282 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ S@T@CTR S@T@CTR T@CTR lfigangle S@T@CIRCUM lfigpadd lfigprevious /FROM lfigpointdef
T@CTR T@CTR S@T@CTR lfigangle T@CIRCUM lfigpadd lfigprevious /TO lfigpointdef ] lfigdopath
pop pop
grestore
grestore
338 338 56 282 240 288 12 394 0 LoutGr2
currentdict end 70 dict begin begin
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
currentdict end 70 dict begin begin
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigcircle ] lfigdopath
pop pop
grestore
192 fnt3 118 105(d)m
grestore
(T) lfigpromotelabels
grestore
(S) lfigpromotelabels
grestore
0 0 0 0 240 288 12 732 282 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ S@T@CTR S@T@CTR T@CTR lfigangle S@T@CIRCUM lfigpadd lfigprevious /FROM lfigpointdef
T@CTR T@CTR S@T@CTR lfigangle T@CIRCUM lfigpadd lfigprevious /TO lfigpointdef ] lfigdopath
pop pop
grestore
grestore
(S) lfigpromotelabels
grestore
0 0 0 0 240 288 12 732 790 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ S@T@CTR S@T@CTR T@CTR lfigangle S@T@CIRCUM lfigpadd lfigprevious /FROM lfigpointdef
T@CTR T@CTR S@T@CTR lfigangle T@CIRCUM lfigpadd lfigprevious /TO lfigpointdef ] lfigdopath
pop pop
grestore
grestore
732 846 0 790 240 288 12 788 0 LoutGr2
currentdict end 70 dict begin begin
grestore
628 338 56 282 240 288 12 104 508 LoutGr2
currentdict end 70 dict begin begin
grestore
524 338 56 282 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigellipse ] lfigdopath
pop pop
grestore
192 fnt3 56 107(R)m 7(O)k 9(W)k
grestore
(T) lfigpromotelabels
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
currentdict end 70 dict begin begin
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
currentdict end 70 dict begin begin
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigcircle ] lfigdopath
pop pop
grestore
192 fnt3
128 128(c)m
grestore
(T) lfigpromotelabels
grestore
(S) lfigpromotelabels
grestore
0 0 0 0 240 288 12 338 282 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ S@T@CTR S@T@CTR T@CTR lfigangle S@T@CIRCUM lfigpadd lfigprevious /FROM lfigpointdef
T@CTR T@CTR S@T@CTR lfigangle T@CIRCUM lfigpadd lfigprevious /TO lfigpointdef ] lfigdopath
pop pop
grestore
grestore
338 338 56 282 240 288 12 394 0 LoutGr2
currentdict end 70 dict begin begin
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
currentdict end 70 dict begin begin
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigcircle ] lfigdopath
pop pop
grestore
192 fnt3 118 105(d)m
grestore
(T) lfigpromotelabels
grestore
(S) lfigpromotelabels
grestore
0 0 0 0 240 288 12 732 282 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ S@T@CTR S@T@CTR T@CTR lfigangle S@T@CIRCUM lfigpadd lfigprevious /FROM lfigpointdef
T@CTR T@CTR S@T@CTR lfigangle T@CIRCUM lfigpadd lfigprevious /TO lfigpointdef ] lfigdopath
pop pop
grestore
grestore
(S) lfigpromotelabels
grestore
0 0 0 0 240 288 12 1520 790 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ S@T@CTR S@T@CTR T@CTR lfigangle S@T@CIRCUM lfigpadd lfigprevious /FROM lfigpointdef
T@CTR T@CTR S@T@CTR lfigangle T@CIRCUM lfigpadd lfigprevious /TO lfigpointdef ] lfigdopath
pop pop
grestore
grestore
(S) lfigpromotelabels
grestore
0 0 0 0 240 288 12 3096 1298 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ S@T@CTR S@T@CTR T@CTR lfigangle S@T@CIRCUM lfigpadd lfigprevious /FROM lfigpointdef
T@CTR T@CTR S@T@CTR lfigangle T@CIRCUM lfigpadd lfigprevious /TO lfigpointdef ] lfigdopath
pop pop
grestore
grestore
(S) lfigpromotelabels
grestore
0 0 0 0 240 288 12 6248 1806 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ S@T@CTR S@T@CTR T@CTR lfigangle S@T@CIRCUM lfigpadd lfigprevious /FROM lfigpointdef
T@CTR T@CTR S@T@CTR lfigangle T@CIRCUM lfigpadd lfigprevious /TO lfigpointdef ] lfigdopath
pop pop
grestore
grestore
end end restore
grestore
0 10598(In)m 244(f)s 2(act,)k
693(common)s 1576(sube)s 3(xpressions)k 3060(are)s 3395(identi\207ed)s
4343(\(tri)s 6(vially\))k 5286(and)s 5678(the)s 6013(result)s
6591(is)s 6788(a)s 6942(directed)s 7756(ac)s 3(yclic)k
8469(graph;)s 0 10310(each)m 486(af)s 6(fected)k 1296(leaf)s
1716(has)s 2076(tw)s 2(o)k 2477(parents,)s 3264(one)s
3657(for)s 3985(width)s 4578(and)s 4972(one)s 5365(for)s
5693(height;)s 6394(and)s 6788(each)s 240 fnt3 7274 10312(COL)m
240 fnt1 7790 10310(or)m 240 fnt3 8040 10312(R)m 9(O)k 12(W)k
240 fnt1 8604 10310(node)m 0 10022(has)m 360(one)s 752(parent)s
1398(and)s 1792(one)s 2184(child)s 2709(for)s 3037(each)s
3521(object)s 4155(lying)s 4690(on)s 4976(the)s 5314(corresponding)s
6726(mark.)s 7370(The)s 7788(data)s 8235(structure)s 0 9734(roughly)m
799(doubles)s 1595(in)s 1838(size,)s 2316(and)s 2720(this)s
3116(occurs)s 3791(only)s 4271(rarely)s 4881(in)s 5124(practice.)s
480 9360(This)m 956(method)s 1732(can)s 2121(cope)s 2629(with)s
3111(an)s 3(y)k 3508(le)s 3(g)k 1(al)k
4023(input,)s 4622(including)s 220 fnt5 480 8859({ a // c | d } | { b / e })m 480 8571(/ { f / i } | { g | h // j })m
240 fnt1 0 8072(which)m 642(produces)s 1557(o)s 3(v)k 3(erlapping)k
2747(spanning)s 3665(columns:)s gsave
480 5924 translate
240 fnt3 1699 1808 0 1695 240 288 60 LoutGraphic
gsave
grestore save gsave 200 dict begin lfigdict begin
grestore
1133 452 113 339 240 288 60 0 1356 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigbox ] lfigdopath
pop pop
grestore
230 fnt3 511 178(a)m
grestore
566 452 113 339 240 288 60 1133 1356 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigbox ] lfigdopath
pop pop
grestore
230 fnt3 228 150(b)m
grestore
566 452 113 339 240 288 60 0 904 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigbox ] lfigdopath
pop pop
grestore
230 fnt3 234 178(c)m
grestore
566 452 113 339 240 288 60 566 904 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigbox ] lfigdopath
pop pop
grestore
230 fnt3
222 150(d)m
grestore
566 452 113 339 240 288 60 1132 904 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigbox ] lfigdopath
pop pop
grestore
230 fnt3 235 178(e)m
grestore
566 452 113 339 240 288 60 0 452 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigbox ] lfigdopath
pop pop
grestore
230 fnt3 235 173(f)m
grestore
566 452 113 339 240 288 60 566 452 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigbox ] lfigdopath
pop pop
grestore
230 fnt3 228 200(g)m
grestore
566 452 113 339 240 288 60 1132 452 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigbox ] lfigdopath
pop pop
grestore
230 fnt3 228 149(h)m
grestore
566 452 113 339 240 288 60 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigbox ] lfigdopath
pop pop
grestore
230 fnt3
253 153(i)m
grestore
1133 452 113 339 240 288 60 566 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigbox ] lfigdopath
pop pop
grestore
230 fnt3 535 176(j)m
grestore
end end restore
grestore
0 5473(The)m 428(box)s 3(es)k
1035(ha)s 4(v)k 3(e)k 1536(been)s 2045(added)s
2675(to)s 2914(clarify)s 3590(the)s 3938(structure.)s 4937(The)s
5365(width)s 5967(of)s 6238(this)s 6634(object)s 7278(is)s
7488(formally)s 240 fnt4 480 4915(\()m 564(\()s 240 fnt3
648 4923(width)m 240 fnt4 1187 4915(\()m 240 fnt3 1271 4923(a)m
240 fnt4 1398 4915(\))m 1548(\255)s 1769(\()s 240 fnt3
1853 4923(x)m 240 fnt4 2031 4915(+)m 240 fnt3 2232 4923(y)m
240 fnt4 2346 4915(\))m 2424(\))s 2562(+)s 240 fnt3
2763 4923(z)m 240 fnt4 2866 4915(\))m 3016(\255)s 3237(\()s
240 fnt3 3321 4923(x)m 240 fnt4 3499 4915(+)m 3700(\()s
3784(\()s 240 fnt3 3868 4923(y)m 240 fnt4 4042 4915(+)m
240 fnt3 4243 4923(z)m 240 fnt4 4346 4915(\))m 4496(\255)s
240 fnt3 4717 4923(width)m 240 fnt4 5256 4915(\()m 240 fnt3
5340 4923(j)m 240 fnt4 5418 4915(\))m 5496(\))s 5574(\))s
240 fnt1 0 4419(where)m 240 fnt3 480 3918(x)m 240 fnt4
670 3910(=)m 240 fnt3 883 3918(width)m 240 fnt4 1422 3910(\()m
240 fnt3 1506 3918(c)m 240 fnt4 1620 3910(\))m 1770(\255)s
240 fnt3 1991 3918(width)m 240 fnt4 2530 3910(\()m 240 fnt3
2662 3918(f)m 240 fnt4 2823 3910(\))m 2973(\255)s 240 fnt3
3194 3918(width)m 240 fnt4 3733 3910(\()m 240 fnt3 3817 3918(i)m
240 fnt4 3892 3910(\))m
[ /Dest /LOUT12_1748_s2_4_1 /DEST pdfmark
240 fnt3 480 3367(y)m 240 fnt4
666 3359(=)m 240 fnt3 879 3367(width)m 240 fnt4 1418 3359(\()m
240 fnt3 1502 3367(d)m 240 fnt4 1688 3359(\))m 1838(\255)s
240 fnt3 2059 3367(width)m 240 fnt4 2598 3359(\()m 240 fnt3
2682 3367(g)m 240 fnt4 2808 3359(\))m
[ /Dest /LOUT12_1748_s2_4_2 /DEST pdfmark
240 fnt3 480 2816(z)m
240 fnt4 655 2808(=)m 240 fnt3 868 2816(width)m 240 fnt4
1407 2808(\()m 240 fnt3 1491 2816(b)m 240 fnt4 1617 2808(\))m
1767(\255)s 240 fnt3 1988 2816(width)m 240 fnt4 2527 2808(\()m
240 fnt3 2611 2816(e)m 240 fnt4 2722 2808(\))m 2872(\255)s
240 fnt3 3093 2816(width)m 240 fnt4 3632 2808(\()m 240 fnt3
3716 2816(h)m 240 fnt4 3843 2808(\))m
[ /Dest /LOUT12_1748_s2_4_3 /DEST pdfmark
240 fnt1 0 2312(It)m
224(seems)s 878(clear)s 1420(that)s 240 fnt3 1857 2314(y)m
240 fnt1 2038 2312(at)m 2289(least)s 2805(must)s 3349(appear)s
4065(twice)s 4657(in)s 4919(an)s 3(y)k 5335(e)s 3(xpression)k
6431(for)s 6788(the)s 7155(width)s 7776(of)s 8066(this)s
8482(object)s 0 2024(made)m 602(out)s 997(of)s 1297(simple)s
2019(addition)s 2889(and)s 3322(maxing)s 4121(operations,)s 5253(sho)s 6(wing)k
6141(that)s 6588(an)s 6900(ordinary)s 7793(tree)s 8235(structure)s
0 1736(is)m 227(insuf\207cient)s 1379(for)s 1734(o)s 3(v)k 3(erlapping)k
2941(spanning)s 3876(columns.)s 4868(The)s 5313(Basser)s 6027(Lout)s
6556(interpreter)s 7626(actually)s 8453(rejects)s 0 1448(such)m 521(structures,)s
1581(o)s 6(wing)k 2252(to)s 2517(the)s 2890(author')s 13(s)k
3736(doubts)s 4451(about)s 5069(the)s 5442(implementability)s 7153(of)s
240 fnt3 7449 1450(Constr)m 3(ained)k 240 fnt1 8722 1448(and)m
240 fnt3 0 1162(AdjustSize)m 240 fnt1 1049 1160(\(Section)m 1902(5.3\))s
2330(on)s 2627(them;)s 3217(b)s 4(ut)k 3579(with)s
4061(hindsight)s 5012(this)s 5408(caution)s 6169(w)s 2(as)k
6590(unnecessary)s 15(.)k 480 786(The)m 915(directed)s 1749(ac)s 3(yclic)k
2482(graph)s 3091(is)s 3308(ordered)s 4104(in)s 4354(the)s
4709(sense)s 5290(that)s 5715(the)s 6071(order)s 6642(of)s
6920(the)s 7275(edges)s 7878(entering)s 8722(and)s 0 498(lea)m 4(ving)k
746(each)s 1234(node)s 1748(matters.)s 2607(The)s 3028(structure)s
3911(is)s 4114(highly)s 4773(dynamic,)s 5696(and)s 6093(tra)s 4(v)k 3(ersals)k
7044(both)s 7519(with)s 7994(and)s 8390(ag)s 1(ainst)k
grestore
0 0 0 0 240 288 60 1417 -15423 LoutGr2
1 LoutMargSet
grestore
grestore
grestore
grestore
grestore
pgsave restore
showpage
%%Page: 12 13
%%BeginPageSetup
%%PageResources: font Times-Roman
%%+ font Times-Italic
%%+ font Times-Bold
%%+ font Helvetica
/pgsave save def
%%IncludeResource: font Times-Roman
/Times-Romanfnt1 vec2 /Times-Roman LoutRecode
/fnt1 { /Times-Romanfnt1 LoutFont } def
%%IncludeResource: font Times-Italic
/Times-Italicfnt3 vec2 /Times-Italic LoutRecode
/fnt3 { /Times-Italicfnt3 LoutFont } def
%%IncludeResource: font Times-Bold
/Times-Boldfnt2 vec2 /Times-Bold LoutRecode
/fnt2 { /Times-Boldfnt2 LoutFont } def
%%IncludeResource: font Helvetica
/Helveticafnt5 vec2 /Helvetica LoutRecode
/fnt5 { /Helveticafnt5 LoutFont } def
0.0500 dup scale 10 setlinewidth
%%EndPageSetup
gsave
0 0 translate
240 fnt1 0.0 0.0 0.0 LoutSetRGBColor LoutTextureSolid 11900 16840 0 16840 240 288 60 LoutGraphic
gsave
LoutPageSet
grestore
gsave
0 0 translate
1.0 1.0 1.0 LoutSetRGBColor 11900 16840 0 16840 240 288 60 LoutGraphic
gsave
LoutBox gsave 1.0 1.0 1.0 LoutSetRGBColor fill grestore 0 cm setlinewidth stroke
grestore
gsave
0 16840 translate
0.0000 rotate
0.0 0.0 0.0 LoutSetRGBColor
5705 -1579(-)m 5833(12)s 6127(-)s 9066 13419 0 13310 240 288 60 1417 -15423 LoutGr2
0 LoutMargSet
grestore
0 13256(the)m 349(arro)s 6(ws)k
1045(are)s 1394(required.)s 2355(After)s 2920(a)s 3087(fe)s 6(w)k
3494(ad-)s 3788(hoc)s 4189(attempts)s 5050(to)s 5291(e)s 3(xtend)k
5985(the)s 6334(usual)s 6896(tree)s 7310(representation)s 8722(had)s
0 12968(f)m 2(ailed,)k 665(the)s 1030(author)s 1718(de)s 6(v)k 3(eloped)k
2769(a)s 2952(representation)s 4379(based)s 5000(on)s 5314(doubly)s
6051(link)s 2(ed)k 6723(lists)s 7175(of)s 7463(records)s
8235(denoting)s 0 12680(links,)m 578(whose)s 1252(\210e)s 3(xibility)k
2238(more)s 2792(than)s 3267(compensated)s 4580(for)s 4924(the)s
5279(some)s 6(what)k 6309(e)s 3(xcessi)k 6(v)k 3(e)k
7275(memory)s 8133(consump-)s 0 12392(tion.)m 536(F)s 3(or)k
925(e)s 3(xample,)k gsave
480 10526 translate
240 fnt3 3282 1526 0 1470 240 288 12 LoutGraphic
gsave
grestore save gsave 200 dict begin lfigdict begin
grestore
338 338 56 282 240 288 12 0 1188 LoutGr2
currentdict end 200 dict begin begin
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigcircle ] lfigdopath
pop pop
grestore
192 fnt3 123 128(a)m
grestore
(A) lfigpromotelabels
grestore
338 338 56 282 240 288 12 2944 1188 LoutGr2
currentdict end 200 dict begin begin
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigcircle ] lfigdopath
pop pop
grestore
192 fnt3 123 105(b)m
grestore
(B) lfigpromotelabels
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
currentdict end 200 dict begin begin
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigcircle ] lfigdopath
pop pop
grestore
192 fnt3 128 128(c)m
grestore
(C) lfigpromotelabels
grestore
338 338 56 282 240 288 12 1472 0 LoutGr2
currentdict end 200 dict begin begin
grestore
338 338 56 282 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigcircle ] lfigdopath
pop pop
grestore
192 fnt3
118 105(d)m
grestore
(D) lfigpromotelabels
grestore
0 0 0 0 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ A@CTR A@CTR C@CTR lfigangle A@CIRCUM lfigpadd lfigprevious /FROM lfigpointdef
C@CTR C@CTR A@CTR lfigangle C@CIRCUM lfigpadd lfigprevious /TO lfigpointdef ] lfigdopath
0.15 cm /lfigsolid /lfigblack
lfigopen
0.15 cm 0.05 cm lfigforward
grestore
grestore
0 0 0 0 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ A@CTR A@CTR D@CTR lfigangle A@CIRCUM lfigpadd lfigprevious /FROM lfigpointdef
D@CTR D@CTR A@CTR lfigangle D@CIRCUM lfigpadd lfigprevious /TO lfigpointdef ] lfigdopath
0.15 cm /lfigsolid /lfigblack
lfigopen
0.15 cm 0.05 cm lfigforward
grestore
grestore
0 0 0 0 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ B@CTR B@CTR D@CTR lfigangle B@CIRCUM lfigpadd lfigprevious /FROM lfigpointdef
D@CTR D@CTR B@CTR lfigangle D@CIRCUM lfigpadd lfigprevious /TO lfigpointdef ] lfigdopath
0.15 cm /lfigsolid /lfigblack
lfigopen
0.15 cm 0.05 cm lfigforward
grestore
grestore
end end restore
grestore
0 10075(is)m 210(represented)s 1369(by)s gsave
1135 5559 translate
240 fnt3
6796 4176 0 4120 240 288 12 LoutGraphic
gsave
grestore save gsave 300 dict begin lfigdict begin
grestore
452 1014 0 958 240 288 12 0 3162 LoutGr2
currentdict end 300 dict begin begin
grestore
452 338 56 282 240 288 12 0 676 LoutGr2
currentdict end 300 dict begin begin
grestore
452 338 56 282 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigbox ] lfigdopath
pop pop
grestore
grestore
(TOP) lfigpromotelabels
grestore
452 338 56 282 240 288 12 0 338 LoutGr2
currentdict end 300 dict begin begin
grestore
452 338 56 282 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigbox ] lfigdopath
pop pop
grestore
gsave
206 150 translate
192 fnt3 39 39 0 39 192 288 48 LoutGraphic
gsave
/lfigblack [ lfigcircle ] gsave lfigpaintpath grestore
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigcircle ] lfigdopath
pop pop
grestore
grestore
grestore
(MID) lfigpromotelabels
grestore
452 338 56 282 240 288 12 0 0 LoutGr2
currentdict end 300 dict begin begin
grestore
452 338 56 282 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigbox ] lfigdopath
pop pop
grestore
192 fnt3 180 128(a)m
grestore
(BASE) lfigpromotelabels
grestore
(A) lfigpromotelabels
grestore
452 1014 0 958 240 288 12 6344 3162 LoutGr2
currentdict end 300 dict begin begin
grestore
452 338 56 282 240 288 12 0 676 LoutGr2
currentdict end 300 dict begin begin
grestore
452 338 56 282 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigbox ] lfigdopath
pop pop
grestore
grestore
(TOP) lfigpromotelabels
grestore
452 338 56 282 240 288 12 0 338 LoutGr2
currentdict end 300 dict begin begin
grestore
452 338 56 282 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigbox ] lfigdopath
pop pop
grestore
gsave
206 150 translate
192 fnt3 39 39 0 39 192 288 48 LoutGraphic
gsave
/lfigblack [ lfigcircle ] gsave lfigpaintpath grestore
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigcircle ] lfigdopath
pop pop
grestore
grestore
grestore
(MID) lfigpromotelabels
grestore
452 338 56 282 240 288 12 0 0 LoutGr2
currentdict end 300 dict begin begin
grestore
452 338 56 282 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigbox ] lfigdopath
pop pop
grestore
192 fnt3
180 105(b)m
grestore
(BASE) lfigpromotelabels
grestore
(B) lfigpromotelabels
grestore
452 1014 0 958 240 288 12 0 1581 LoutGr2
currentdict end 300 dict begin begin
grestore
452 338 56 282 240 288 12 0 676 LoutGr2
currentdict end 300 dict begin begin
grestore
452 338 56 282 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigbox ] lfigdopath
pop pop
grestore
gsave
206 150 translate
192 fnt3 39 39 0 39 192 288 48 LoutGraphic
gsave
/lfigblack [ lfigcircle ] gsave lfigpaintpath grestore
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigcircle ] lfigdopath
pop pop
grestore
grestore
grestore
(TOP) lfigpromotelabels
grestore
452 338 56 282 240 288 12 0 338 LoutGr2
currentdict end 300 dict begin begin
grestore
452 338 56 282 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigbox ] lfigdopath
pop pop
grestore
gsave
206 150 translate
192 fnt3 39 39 0 39 192 288 48 LoutGraphic
gsave
/lfigblack [ lfigcircle ] gsave lfigpaintpath grestore
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigcircle ] lfigdopath
pop pop
grestore
grestore
grestore
(MID) lfigpromotelabels
grestore
452 338 56 282 240 288 12 0 0 LoutGr2
currentdict end 300 dict begin begin
grestore
452 338 56 282 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigbox ] lfigdopath
pop pop
grestore
192 fnt3 104 107(LK)m
grestore
(BASE) lfigpromotelabels
grestore
(L) lfigpromotelabels
grestore
452 1014 0 958 240 288 12 1586 1581 LoutGr2
currentdict end 300 dict begin begin
grestore
452 338 56 282 240 288 12 0 676 LoutGr2
currentdict end 300 dict begin begin
grestore
452 338 56 282 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigbox ] lfigdopath
pop pop
grestore
gsave
206 150 translate
192 fnt3 39 39 0 39 192 288 48 LoutGraphic
gsave
/lfigblack [ lfigcircle ] gsave lfigpaintpath grestore
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigcircle ] lfigdopath
pop pop
grestore
grestore
grestore
(TOP) lfigpromotelabels
grestore
452 338 56 282 240 288 12 0 338 LoutGr2
currentdict end 300 dict begin begin
grestore
452 338 56 282 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigbox ] lfigdopath
pop pop
grestore
gsave
206 150 translate
192 fnt3 39 39 0 39 192 288 48 LoutGraphic
gsave
/lfigblack [ lfigcircle ] gsave lfigpaintpath grestore
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigcircle ] lfigdopath
pop pop
grestore
grestore
grestore
(MID) lfigpromotelabels
grestore
452 338 56 282 240 288 12 0 0 LoutGr2
currentdict end 300 dict begin begin
grestore
452 338 56 282 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigbox ] lfigdopath
pop pop
grestore
192 fnt3 104 107(LK)m
grestore
(BASE) lfigpromotelabels
grestore
(M) lfigpromotelabels
grestore
452 1014 0 958 240 288 12 4758 1581 LoutGr2
currentdict end 300 dict begin begin
grestore
452 338 56 282 240 288 12 0 676 LoutGr2
currentdict end 300 dict begin begin
grestore
452 338 56 282 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigbox ] lfigdopath
pop pop
grestore
gsave
206 150 translate
192 fnt3
39 39 0 39 192 288 48 LoutGraphic
gsave
/lfigblack [ lfigcircle ] gsave lfigpaintpath grestore
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigcircle ] lfigdopath
pop pop
grestore
grestore
grestore
(TOP) lfigpromotelabels
grestore
452 338 56 282 240 288 12 0 338 LoutGr2
currentdict end 300 dict begin begin
grestore
452 338 56 282 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigbox ] lfigdopath
pop pop
grestore
gsave
206 150 translate
192 fnt3 39 39 0 39 192 288 48 LoutGraphic
gsave
/lfigblack [ lfigcircle ] gsave lfigpaintpath grestore
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigcircle ] lfigdopath
pop pop
grestore
grestore
grestore
(MID) lfigpromotelabels
grestore
452 338 56 282 240 288 12 0 0 LoutGr2
currentdict end 300 dict begin begin
grestore
452 338 56 282 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigbox ] lfigdopath
pop pop
grestore
192 fnt3 104 107(LK)m
grestore
(BASE) lfigpromotelabels
grestore
(N) lfigpromotelabels
grestore
452 1014 0 958 240 288 12 0 0 LoutGr2
currentdict end 300 dict begin begin
grestore
452 338 56 282 240 288 12 0 676 LoutGr2
currentdict end 300 dict begin begin
grestore
452 338 56 282 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigbox ] lfigdopath
pop pop
grestore
gsave
206 150 translate
192 fnt3 39 39 0 39 192 288 48 LoutGraphic
gsave
/lfigblack [ lfigcircle ] gsave lfigpaintpath grestore
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigcircle ] lfigdopath
pop pop
grestore
grestore
grestore
(TOP) lfigpromotelabels
grestore
452 338 56 282 240 288 12 0 338 LoutGr2
currentdict end 300 dict begin begin
grestore
452 338 56 282 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigbox ] lfigdopath
pop pop
grestore
grestore
(MID) lfigpromotelabels
grestore
452 338 56 282 240 288 12 0 0 LoutGr2
currentdict end 300 dict begin begin
grestore
452 338 56 282 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigbox ] lfigdopath
pop pop
grestore
192 fnt3
185 128(c)m
grestore
(BASE) lfigpromotelabels
grestore
(C) lfigpromotelabels
grestore
452 1014 0 958 240 288 12 3172 0 LoutGr2
currentdict end 300 dict begin begin
grestore
452 338 56 282 240 288 12 0 676 LoutGr2
currentdict end 300 dict begin begin
grestore
452 338 56 282 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigbox ] lfigdopath
pop pop
grestore
gsave
206 150 translate
192 fnt3 39 39 0 39 192 288 48 LoutGraphic
gsave
/lfigblack [ lfigcircle ] gsave lfigpaintpath grestore
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigcircle ] lfigdopath
pop pop
grestore
grestore
grestore
(TOP) lfigpromotelabels
grestore
452 338 56 282 240 288 12 0 338 LoutGr2
currentdict end 300 dict begin begin
grestore
452 338 56 282 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigbox ] lfigdopath
pop pop
grestore
grestore
(MID) lfigpromotelabels
grestore
452 338 56 282 240 288 12 0 0 LoutGr2
currentdict end 300 dict begin begin
grestore
452 338 56 282 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigbox ] lfigdopath
pop pop
grestore
192 fnt3 175 105(d)m
grestore
(BASE) lfigpromotelabels
grestore
(D) lfigpromotelabels
grestore
0 0 0 0 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ 0.5 cm 0 A@MID@CTR L@MID@CTR A@MID@CTR M@MID@CTR lfigpmin lfigpmin lfigpmin lfigpsub /BL lfigpointdef
A@MID@CTR L@MID@CTR A@MID@CTR M@MID@CTR lfigpmax lfigpmax lfigpmax 0.5 cm 0 lfigpadd /TR lfigpointdef
BL 0 BL TR lfigydistance lfigpadd /TL lfigpointdef
BL BL TR lfigxdistance 0 lfigpadd /BR lfigpointdef
BL
BR [ BR 0 0.5 cm lfigpadd ]
BR 0.5 cm 0.5 cm lfigpadd
TR 0.5 cm -0.5 cm lfigpadd [ 0 0.5 cm TR lfigpsub ]
TR
TL [ 0 0.5 cm TL lfigpsub ]
0.5 cm 0.5 cm TL lfigpsub
BL -0.5 cm 0.5 cm lfigpadd [ BL 0 0.5 cm lfigpadd ]
BL ] lfigdopath
pop pop
grestore
grestore
0 0 0 0 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ 0.5 cm 0 L@TOP@CTR C@TOP@CTR L@TOP@CTR C@TOP@CTR lfigpmin lfigpmin lfigpmin lfigpsub /BL lfigpointdef
L@TOP@CTR C@TOP@CTR L@TOP@CTR C@TOP@CTR lfigpmax lfigpmax lfigpmax 0.5 cm 0 lfigpadd /TR lfigpointdef
BL 0 BL TR lfigydistance lfigpadd /TL lfigpointdef
BL BL TR lfigxdistance 0 lfigpadd /BR lfigpointdef
BL
BR [ BR 0 0.5 cm lfigpadd ]
BR 0.5 cm 0.5 cm lfigpadd
TR 0.5 cm -0.5 cm lfigpadd [ 0 0.5 cm TR lfigpsub ]
TR
TL [ 0 0.5 cm TL lfigpsub ]
0.5 cm 0.5 cm TL lfigpsub
BL -0.5 cm 0.5 cm lfigpadd [ BL 0 0.5 cm lfigpadd ]
BL ] lfigdopath
pop pop
grestore
grestore
0 0 0 0 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ 0.5 cm 0 M@TOP@CTR D@TOP@CTR N@TOP@CTR D@TOP@CTR lfigpmin lfigpmin lfigpmin lfigpsub /BL lfigpointdef
M@TOP@CTR D@TOP@CTR N@TOP@CTR D@TOP@CTR lfigpmax lfigpmax lfigpmax 0.5 cm 0 lfigpadd /TR lfigpointdef
BL 0 BL TR lfigydistance lfigpadd /TL lfigpointdef
BL BL TR lfigxdistance 0 lfigpadd /BR lfigpointdef
BL
BR [ BR 0 0.5 cm lfigpadd ]
BR 0.5 cm 0.5 cm lfigpadd
TR 0.5 cm -0.5 cm lfigpadd [ 0 0.5 cm TR lfigpsub ]
TR
TL [ 0 0.5 cm TL lfigpsub ]
0.5 cm 0.5 cm TL lfigpsub
BL -0.5 cm 0.5 cm lfigpadd [ BL 0 0.5 cm lfigpadd ]
BL ] lfigdopath
pop pop
grestore
grestore
0 0 0 0 240 288 12 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ 0.5 cm 0 B@MID@CTR N@MID@CTR B@MID@CTR N@MID@CTR lfigpmin lfigpmin lfigpmin lfigpsub /BL lfigpointdef
B@MID@CTR N@MID@CTR B@MID@CTR N@MID@CTR lfigpmax lfigpmax lfigpmax 0.5 cm 0 lfigpadd /TR lfigpointdef
BL 0 BL TR lfigydistance lfigpadd /TL lfigpointdef
BL BL TR lfigxdistance 0 lfigpadd /BR lfigpointdef
BL
BR [ BR 0 0.5 cm lfigpadd ]
BR 0.5 cm 0.5 cm lfigpadd
TR 0.5 cm -0.5 cm lfigpadd [ 0 0.5 cm TR lfigpsub ]
TR
TL [ 0 0.5 cm TL lfigpsub ]
0.5 cm 0.5 cm TL lfigpsub
BL -0.5 cm 0.5 cm lfigpadd [ BL 0 0.5 cm lfigpadd ]
BL ] lfigdopath
pop pop
grestore
grestore
end end restore
grestore
0 5108(where)m
240 fnt3 645 5110(LK)m 240 fnt1 1017 5108(tags)m 1458(a)s
1630(record)s 2304(representing)s 3543(a)s 3715(link.)s 4257(The)s
4690(\207rst)s 5127(list)s 5484(in)s 5732(an)s 3(y)k
6135(node)s 6663(contains)s 7516(all)s 7815(the)s 8169(incoming)s
0 4820(links,)m 577(the)s 931(second)s 1660(contains)s 2514(the)s
2867(outgoing)s 3778(ones.)s 4387(The)s 4821(node)s 5348(serv)s 3(es)k
5999(as)s 6255(the)s 6609(header)s 7311(for)s 7655(both)s
8144(lists.)s 8698(The)s 0 4532(required)m 890(operations)s 1974(reduce)s
2704(to)s 2979(simple)s 3709(appends,)s 4638(deletes,)s 5444(and)s
5885(tra)s 4(v)k 3(ersals)k 6880(of)s 7187(doubly)s
7944(link)s 2(ed)k 8635(lists,)s 0 4244(all)m 325(ha)s 4(ving)k
1058(small)s 1663(constant)s 2552(cost.)s 3133(There)s 3779(is)s
4021(a)s 4219(highly)s 4918(tuned)s 5540(memory)s 6423(allocator)s 9(,)k
7389(and)s 7825(care)s 8310(is)s 8553(tak)s 2(en)k
0 3956(to)m 269(dispose)s 1073(of)s 1374(each)s 1900(node)s
2452(when)s 3058(the)s 3436(last)s 3858(incoming)s 4845(link)s
5308(is)s 5549(deleted,)s 6376(so)s 6672(that)s 7120(there)s
7684(is)s 7924(no)s 8247(need)s 8788(for)s 0 3668(g)m 1(arbage)k
812(collection.)s 480 3294(In)m 739(normal)s 1475(use)s 1854(the)s
2205(number)s 3000(of)s 3275(nodes)s 3888(at)s 4124(higher)s
4799(le)s 6(v)k 3(els)k 5402(of)s 5676(the)s
6028(dag)s 6431(is)s 6644(small)s 7220(in)s 7467(comparison)s
8644(with)s 0 3006(the)m 351(lea)s 4(v)k 3(es)k
995(and)s 1402(their)s 1903(incoming)s 2863(links,)s 3438(so)s
3707(we)s 4046(may)s 4515(estimate)s 5369(the)s 5720(space)s
6311(comple)s 3(xity)k 7441(at)s 7676(about)s 8271(60)s
8570(bytes)s 0 2718(per)m 355(input)s 896(w)s 2(ord)k
1433(\(20)s 1797(bytes)s 2342(per)s 2696(link,)s 3165(40)s
3449(per)s 3803(leaf)s 4222(node\).)s 4920(Careful)s 5680(optimization)s
6935(could)s 7514(easily)s 8114(halv)s 3(e)k 8674(this,)s
0 2430(b)m 4(ut)k 362(since)s 909(memory)s 1760(is)s
1970(reclaimed)s 2969(after)s 3465(printing)s 4275(each)s 4770(page)s
5278(there)s 5811(is)s 6021(little)s 6513(need.)s 240 fnt2
0 1781(2.5.)m 471(Context-sensiti)s 2(v)k 2(e)k 2274(attrib)s 4(utes)k
3318(of)s 3590(objects)s
[ /Dest /LOUTstyle /DEST pdfmark
240 fnt1 480 1305(Although)m 1466(we)s
1826(are)s 2198(free)s 2649(to)s 2913(place)s 3498(an)s 3(y)k
3920(object)s 4588(in)s 4856(an)s 3(y)k 5278(conte)s 3(xt,)k
6111(the)s 6484(conte)s 3(xt)k 7270(must)s 7820(in\210uence)s
8778(the)s 0 1017(appearance)m 1131(of)s 1402(the)s 1750(object,)s
2441(since)s 2988(otherwise)s 220 fnt5 480 518(A shor)m -8(t par)k 2(ag)k 2(r)k 2(aph of te)k 6(xt.)k
grestore
0 0 0 0 240 288 60 1417 -15423 LoutGr2
0 LoutMargSet
grestore
grestore
grestore
grestore
grestore
pgsave restore
showpage
%%Page: 13 14
%%BeginPageSetup
%%PageResources: font Times-Roman
%%+ font Helvetica
%%+ font Times-Italic
/pgsave save def
%%IncludeResource: font Times-Roman
/Times-Romanfnt1 vec2 /Times-Roman LoutRecode
/fnt1 { /Times-Romanfnt1 LoutFont } def
%%IncludeResource: font Helvetica
/Helveticafnt5 vec2 /Helvetica LoutRecode
/fnt5 { /Helveticafnt5 LoutFont } def
%%IncludeResource: font Times-Italic
/Times-Italicfnt3 vec2 /Times-Italic LoutRecode
/fnt3 { /Times-Italicfnt3 LoutFont } def
0.0500 dup scale 10 setlinewidth
%%EndPageSetup
gsave
0 0 translate
240 fnt1 0.0 0.0 0.0 LoutSetRGBColor LoutTextureSolid 11900 16840 0 16840 240 288 60 LoutGraphic
gsave
LoutPageSet
grestore
gsave
0 0 translate
1.0 1.0 1.0 LoutSetRGBColor 11900 16840 0 16840 240 288 60 LoutGraphic
gsave
LoutBox gsave 1.0 1.0 1.0 LoutSetRGBColor fill grestore 0 cm setlinewidth stroke
grestore
gsave
0 16840 translate
0.0000 rotate
0.0 0.0 0.0 LoutSetRGBColor
5710 -1579(-)m 5838(13)s 6122(-)s 9066 13416 0 13307 240 288 60 1417 -15423 LoutGr2
1 LoutMargSet
grestore
0 13253(could)m 588(not)s
952(appear)s 1647(in)s 1887(a)s 2051(v)s 6(ariety)k
2760(of)s 3028(fonts,)s 3611(column)s 4384(widths,)s 5126(etc.)s
5566(This)s 6040(in\210uence)s 6970(cannot)s 7666(tak)s 2(e)k
8116(the)s 8461(purely)s 0 12965(static)m 569(form)s 1106(that)s
1538(block-structured)s 3175(languages)s 4196(use)s 4585(to)s 4837(associate)s
5769(v)s 6(alues)k 6438(with)s 6933(identi\207ers,)s 8009(for)s
8360(then)s 8843(an)s 0 12677(operator)m 850(could)s 1434(not)s
1794(in\210uence)s 2721(the)s 3063(appearance)s 4188(of)s 4453(its)s
4723(parameters;)s 5876(and)s 6274(a)s 6434(state)s 6921(v)s 6(ariable)k
7734(solution)s 8556(is)s 8760(not)s 0 12389(compatible)m 1118(with)s
1600(the)s 1948(o)s 3(v)k 3(erall)k 2660(functional)s
3684(design.)s 480 12015(The)m 914(information)s 2105(needed)s 2848(from)s
3378(the)s 3733(conte)s 3(xt)k 4500(seems)s 5141(quite)s
5682(limited,)s 6471(comprising)s 7607(the)s 7961(font)s 8413(f)s 2(amily)k 15(,)k
0 11727(f)m 2(ace,)k 525(and)s 952(size)s 1402(to)s
1664(use,)s 2114(the)s 2485(style)s 3015(of)s 3309(paragraph)s
4345(breaking)s 5259(required,)s 6185(ho)s 6(w)k 6669(much)s
7281(space)s 7891(to)s 8154(substitute)s 0 11439(between)m 873(the)s
1240(w)s 2(ords)k 1893(of)s 2184(paragraphs,)s 3359(and)s
3782(ho)s 6(w)k 4263(much)s 4871(horizontal)s 5914(and)s
6337(v)s 3(ertical)k 7124(space)s 7730(is)s 7959(a)s 4(v)k 6(ailable)k
8887(to)s 0 11151(recei)m 6(v)k 3(e)k 763(the)s
1139(object.)s 1914(These)s 2569(four)s 3054(items)s 3650(constitute)s
4662(the)s 5038(so-called)s 5985(`style)s 6599(information')s 7866(of)s
8165(Lout.)s 8809(As)s 0 10863(graphics)m 902(rendering)s 1912(hardw)s 2(are)k
2896(impro)s 3(v)k 3(es,)k 3928(the)s 4317(style)s
4865(information)s 6091(will)s 6558(probably)s 7504(gro)s 6(w)k
8085(to)s 8366(include)s 0 10575(colour)m 671(and)s 1075(te)s 3(xture)k
1791(information.)s 480 10201(The)m 908(w)s 2(ay)k 1359(to)s
1598(deal)s 2051(with)s 2533(fonts)s 3062(at)s 3294(least)s
3791(is)s 4001(v)s 3(ery)k 4477(clear:)s 220 fnt5
480 9700({ )m 11(Times Slope 12p } @F)k 6(ont { Hello)k 8(, w)k 2(or)k -3(ld })k
240 fnt1 0 9204(should)m 697(ha)s 4(v)k 3(e)k
1198(result)s 240 fnt3 480 8750(Hello,)m 1104(world)s 240 fnt1
0 8268(Lout)m 528(also)s 983(pro)s 3(vides)k 220 fnt5
1872 8265(@Break)m 240 fnt1 2745 8268(and)m 220 fnt5 3166 8265(@Space)m
240 fnt1 4080 8268(symbols)m 4946(for)s 5301(controlling)s 6420(the)s
6785(paragraph)s 7815(breaking)s 8722(and)s 0 7980(space)m 610(styles)s
1229(mentioned)s 2320(abo)s 3(v)k 3(e.)k 3074(These)s
3724(w)s 2(ork)k 4299(in)s 4565(the)s 4937(same)s
5507(w)s 2(ay)k 15(,)k 6020(returning)s 6972(their)s
7493(right)s 8028(parameters)s 0 7692(in)m 261(the)s 627(style)s
1152(of)s 1441(their)s 1956(left.)s 2455(The)s 2901(implementation)s
4476(is)s 4704(v)s 3(ery)k 5198(simple:)s 6019(one)s
6439(merely)s 7174(broadcasts)s 8252(the)s 8619(style)s 0 7404(information)m
1183(do)s 6(wn)k 1765(into)s 2188(the)s 2533(parse)s
3091(tree)s 3502(of)s 3771(the)s 4116(right)s 4625(parameter)s 13(.)k
5728(A)s 5956(font,)s 6445(for)s 6781(e)s 3(xample,)k
7693(is)s 7901(con)s 9(v)k 3(erted)k 8887(to)s
0 7116(an)m 278(8-bit)s 783(internal)s 1562(name)s 2130(and)s
2529(stored)s 3165(in)s 3403(each)s 3892(leaf,)s 4351(while)s
4932(a)s 5093(breaking)s 5977(style)s 6479(is)s 6683(stored)s
7320(in)s 7557(the)s 7900(root)s 8339(node)s 8855(of)s
0 6828(each)m 495(paragraph.)s 480 6454(The)m 954(same)s 1547(language)s
2514(design)s 3242(can)s 3677(be)s 4006(used)s 4549(for)s
4933(a)s 4(v)k 6(ailable)k 5888(width)s 6536(and)s
6986(height,)s 7738(only)s 8264(here)s 8778(the)s 0 6166(implementation)m
1557(is)s 1767(much)s 2356(more)s 2903(demanding:)s 220 fnt5
480 5665(2i @Wide {)m 480 5377(\(1\) |0.1i An e)m 6(xample)k 480 5089(containing a small)m 480 4801(par)m 2(ag)k 2(r)k 2(aph of \207lled te)k 6(xt.)k
480 4513(})m 240 fnt1 0 4019(is)m 210(guaranteed)s 1317(to)s
1556(be)s 1838(tw)s 2(o)k 2248(inches)s 2910(wide:)s
480 3516(\(1\))m 891(An)s 1270(e)s 3(xample)k 2162(containing)s
3254(a)s 891 3228(small)m 1504(paragraph)s 2558(of)s 2871(\207lled)s
891 2940(te)m 3(xt.)k 0 2487(One)m 448(must)s 966(calculate)s
1863(that)s 2273(1.9)s 2617(inches)s 3272(minus)s 3900(the)s
4241(width)s 4836(of)s 220 fnt5 5100 2484(\(1\))m 240 fnt1
5406 2487(is)m 5609(a)s 4(v)k 6(ailable)k 6510(to)s
6741(the)s 7082(paragraph,)s 8138(and)s 8534(break)s 0 2199(it)m
186(accordingly;)s 1421(Basser)s 2111(Lout)s 2617(does)s 3100(this)s
3490(in)s 3727(tw)s 2(o)k 4130(stages.)s 4872(In)s
5121(the)s 5463(\207rst,)s 5935(upw)s 2(ard-mo)k 3(ving)k
7505(stage,)s 8097(widths)s 8779(are)s 0 1911(calculated)m 1018(using)s
1581(the)s 1920(formulae)s 2829(of)s 3091(Section)s 3856(2.3,)s
4254(which)s 4887(assume)s 5638(that)s 6047(a)s 4(v)k 6(ailable)k
6946(space)s 7524(is)s 7725(in\207nite.)s 8557(If)s 8778(the)s
0 1623(upw)m 2(ard)k 763(mo)s 3(v)k 3(ement)k
1815(reaches)s 2570(a)s 240 fnt3 2724 1625(WIDE)m 240 fnt1
3375 1623(node,)m 3936(corresponding)s 5346(to)s 5573(a)s 220 fnt5
5728 1620(@Wide)m 240 fnt1 6490 1623(operator)m 9(,)k 7372(and)s
7764(the)s 8100(calculated)s 0 1335(width)m 627(e)s 3(xceeds)k
1457(that)s 1900(allo)s 6(wed,)k 2784(a)s 2975(second,)s
3772(do)s 6(wnw)k 2(ard-mo)k 3(ving)k 5661(stage)s
6234(is)s 6469(initiated)s 7334(which)s 8001(attempts)s 8887(to)s
0 1047(reduce)m 681(the)s 1017(width)s 1606(by)s 1888(\207nding)s
2607(and)s 2999(breaking)s 3877(paragraphs.)s 5077(This)s 5541(second)s
6251(stage)s 6786(is)s 6984(quite)s 7505(routine)s 8226(e)s 3(xcept)k
8894(at)s 220 fnt5 0 756(|)m 240 fnt1 84 759(nodes,)m
736(whose)s 1390(children)s 2216(are)s 2549(the)s 2883(columns)s
3731(of)s 3988(a)s 4141(table.)s 4755(It)s 4946(is)s
5142(necessary)s 6111(to)s 6336(apportion)s 7296(the)s 7630(a)s 4(v)k 6(ailable)k
8524(width)s 0 471(\(minus)m 727(inter)s 4(-column)k 2026(g)s 1(aps\))k
2604(among)s 3321(the)s 3681(columns.)s 4668(Basser)s 5377(Lout)s
5901(lea)s 4(v)k 3(es)k 6554(narro)s 6(w)k
7291(columns)s 8166(unbrok)s 2(en)k
grestore
0 0 0 0 240 288 60 1417 -15423 LoutGr2
1 LoutMargSet
grestore
grestore
grestore
grestore
grestore
pgsave restore
showpage
%%Page: 14 15
%%BeginPageSetup
%%PageResources: font Times-Roman
%%+ font Helvetica
%%+ font Times-Bold
%%+ font Symbol
/pgsave save def
%%IncludeResource: font Times-Roman
/Times-Romanfnt1 vec2 /Times-Roman LoutRecode
/fnt1 { /Times-Romanfnt1 LoutFont } def
%%IncludeResource: font Helvetica
/Helveticafnt5 vec2 /Helvetica LoutRecode
/fnt5 { /Helveticafnt5 LoutFont } def
%%IncludeResource: font Times-Bold
/Times-Boldfnt2 vec2 /Times-Bold LoutRecode
/fnt2 { /Times-Boldfnt2 LoutFont } def
%%IncludeResource: font Symbol
/fnt4 { /Symbol LoutFont } def
0.0500 dup scale 10 setlinewidth
%%EndPageSetup
gsave
0 0 translate
240 fnt1 0.0 0.0 0.0 LoutSetRGBColor LoutTextureSolid 11900 16840 0 16840 240 288 60 LoutGraphic
gsave
LoutPageSet
grestore
gsave
0 0 translate
1.0 1.0 1.0 LoutSetRGBColor 11900 16840 0 16840 240 288 60 LoutGraphic
gsave
LoutBox gsave 1.0 1.0 1.0 LoutSetRGBColor fill grestore 0 cm setlinewidth stroke
grestore
gsave
0 16840 translate
0.0000 rotate
0.0 0.0 0.0 LoutSetRGBColor
5705 -1579(-)m 5833(14)s 6127(-)s 9066 13419 0 13310 240 288 60 1417 -15423 LoutGr2
0 LoutMargSet
grestore
0 13256(and)m 404(breaks)s
1079(the)s 1427(remaining)s 2449(columns)s 3311(to)s 3550(equal)s
4123(width,)s 4775(using)s 5347(up)s 5640(all)s 5933(of)s
6204(the)s 6552(a)s 4(v)k 6(ailable)k 7460(space.)s
480 12882(The)m 897(size)s 1313(of)s 1572(an)s 1844(object)s
2476(is)s 2675(not)s 3029(clearly)s 3721(determined)s 4843(when)s
5407(the)s 5744(upw)s 2(ard-mo)k 3(ving)k 7309(size)s
7725(is)s 7923(less)s 8321(than)s 8778(the)s 0 12594(do)m 6(wnw)k 2(ard-mo)k 3(ving)k
1871(a)s 4(v)k 6(ailable)k 2786(space,)s 3431(and)s
3842(the)s 4197(object)s 4849(contains)s 5704(constructs)s 6731(that)s
7156(depend)s 7913(on)s 8218(a)s 4(v)k 6(ailable)k
0 12306(space)m 587(\(e.g.)s 1056(right)s 1567(justi\207cation\).)s 2938(F)s 3(or)k
3327(e)s 3(xample,)k 4241(in)s 220 fnt5 480 11805(2i @Wide { Heading // a |1r)m -8(t b })k
240 fnt1 0 11306(it)m 211(seems)s 865(natural)s 1603(to)s
1861(assign)s 2536(a)s 2721(width)s 3342(of)s 3633(tw)s 2(o)k
4062(inches)s 4744(to)s 5002(the)s 5369(subobject)s 220 fnt5
6366 11303(a |1r)m -8(t b)k 240 fnt1 7124 11306(because)m 7957(of)s
8247(the)s 8615(right)s 0 11018(justi\207cation,)m 1270(b)s 4(ut)k
1667(it)s 1895(w)s 2(ould)k 2585(be)s 2903(equally)s
3696(plausible)s 4650(if)s 4903(the)s 5286(width)s 5924(of)s
220 fnt5 6230 11015(Heading)m 240 fnt1 7129 11018(w)m 2(as)k
7586(assigned)s 8503(to)s 8778(the)s 0 10730(subobject)m 989(instead.)s
1843(The)s 2284(author)s 2968(is)s 3191(conscious)s 4199(of)s
4483(ha)s 4(ving)k 5197(f)s 2(ailed)k 5809(to)s
6061(resolv)s 3(e)k 6817(this)s 7226(matter)s 7908(properly;)s
8843(an)s 0 10442(e)m 3(xtra)k 534(operator)s 1390(for)s
1728(controlling)s 2830(a)s 4(v)k 6(ailable)k 3738(space)s
4325(is)s 4535(probably)s 5440(necessary)s 15(.)k 480 10068(The)m
930(actual)s 1578(paragraph)s 2614(breaking)s 3527(is)s 3759(just)s
4187(a)s 4376(simple)s 5092(transformation)s 6578(on)s 6897(the)s
7268(parse)s 7851(tree;)s 8343(the)s 8714(real)s 0 9780(issue)m
544(is)s 764(ho)s 6(w)k 1235(to)s 1484(describe)s
2346(the)s 2704(v)s 6(arious)k 3463(styles:)s 4183(ragged)s
4902(right,)s 5470(adjusted,)s 6384(outdented,)s 7445(and)s 7859(so)s
8135(on.)s 8549(Their)s 0 9492(di)m 6(v)k 3(ersity)k
874(suggests)s 1729(that)s 2140(the)s 3(y)k 2596(should)s
3286(someho)s 6(w)k 4245(be)s 4519(de\207ned)s 5275(using)s
5840(more)s 6380(basic)s 6917(features;)s 7777(b)s 4(ut)k
8132(then)s 8593(there)s 0 9204(are)m 367(algorithms)s 1461(for)s
1820(high-quality)s 3064(paragraph)s 4098(breaking,)s 5063(which)s 5726(presumably)s
6917(must)s 7463(be)s 7766(b)s 4(uilt-in.)k 8650(This)s
0 8916(dilemma)m 915(w)s 2(as)k 1355(not)s 1741(clearly)s
2463(grasped)s 3285(by)s 3598(the)s 3966(author)s 4656(in)s
4919(1985,)s 5525(and)s 5949(he)s 6250(included)s 7152(a)s
7337(b)s 4(uilt-in)k 8113(paragraph)s 0 8628(break)m 2(er)k 9(,)k
818(with)s 1306(the)s 220 fnt5 1660 8625(@Break)m 240 fnt1
2522 8628(operator)m 3384(selecting)s 4292(from)s 4822(a)s 4995(\207x)s 3(ed)k
5535(set)s 5866(of)s 6143(styles.)s 6857(A)s 7093(much)s
7688(better)s 8298(solution)s 0 8340(based)m 603(on)s 900(g)s 1(alle)k 3(ys)k
1624(will)s 2050(be)s 2332(gi)s 6(v)k 3(en)k
2912(in)s 3155(Section)s 3929(5.5,)s 4336(b)s 4(ut,)k
4745(re)s 3(grettably)k 15(,)k 5868(it)s 6060(is)s
6270(not)s 6636(implemented.)s 240 fnt2 0 7547(3.)m 291(De\207nitions)s
[ /Dest /LOUT18_694_s3_0_1 /DEST pdfmark
240 fnt1 480 7116(The)m 936(need)s 1474(to)s 1741(pro)s 3(vide)k
2554(a)s 2748(means)s 3438(of)s 3737(packaging)s 4803(useful)s
5470(pieces)s 6146(of)s 6445(code)s 6982(for)s 7348(easy)s
7855(repeated)s 8751(use)s 0 6828(w)m 2(as)k 440(recognised)s
1554(in)s 1816(the)s 2184(v)s 3(ery)k 2679(earliest)s
3447(programming)s 4822(languages.)s 5962(This)s 6458(need)s 6987(is)s
7217(e)s 6(v)k 3(en)k 7736(more)s 8303(acute)s
8883(in)s 0 6540(document)m 1004(formatting,)s 2118(if)s 2335(that)s
2752(is)s 2962(possible,)s 3852(because)s 4664(the)s 5012(majority)s
5874(of)s 6145(users)s 6686(are)s 7033(not)s 7398(programmers)s
8722(and)s 0 6252(do)m 293(not)s 659(understand)s 1767(the)s
2115(code)s 2623(the)s 3(y)k 3086(in)s 9(v)k 4(ok)k 2(e.)k
240 fnt2 0 5603(3.1.)m 471(Operators)s
[ /Dest /LOUToperators /DEST pdfmark
240 fnt1 480 5126(It)m
680(is)s 885(e)s 6(vident)k 1637(from)s 2156(the)s
2498(e)s 3(xample)k 3356(of)s 3621(Eqn)s 4059(that)s
4471(user)s 4(-de\207ned)k 5702(operators)s 6636(are)s 6978(needed)s
7708(that)s 8121(mimic)s 8778(the)s 0 4838(primiti)m 6(v)k 3(e)k
929(ones)s 1426(in)s 1677(taking)s 2335(objects)s 3071(as)s
3328(parameters)s 4434(and)s 4845(returning)s 5781(objects)s 6517(as)s
6774(results.)s 7569(F)s 3(or)k 7965(e)s 3(xample,)k
8887(to)s 0 4550(de\207ne)m 641(a)s 807(superscript)s 1915(operator)s
2771(so)s 3037(that)s 220 fnt5 480 4056(2 sup n)m 240 fnt1
0 3531(appears)m 781(as)s 168 fnt1 1145 3647(n)m 240 fnt4
1031 3525(2)m 240 fnt1 1227 3531(,)m 1334(the)s 1682(follo)s 6(wing)k
2659(operator)s 3515(de\207nition)s 4489(may)s 4955(be)s 5237(used:)s
220 fnt5 480 3032(def sup)m 480 2744( precedence 50)m 480 2456( associativity r)m -3(ight)k
480 2168( left x)m 480 1880( r)m -3(ight y)k 480 1592({)m 480 1304( @OneRo)m 3(w { | {-2p @F)k 6(ont y} ^/0.5fk x })k
480 1016(})m 240 fnt1 0 520(The)m 220 fnt5 481 517(sup)m
240 fnt1 940 520(operator)m 1850(has)s 2273(precedence)s 3458(50,)s
3858(is)s 4122(right)s 4686(associati)s 6(v)k 3(e,)k
5886(tak)s 2(es)k 6479(tw)s 2(o)k 6943(objects)s
7724(as)s 8028(parameters)s 0 232(passed)m 720(on)s 1041(the)s
1413(left)s 1814(and)s 2242(right,)s 2825(and)s 3253(returns)s
3991(the)s 4363(object)s 5031(between)s 5910(braces)s 6595(as)s
6869(result.)s 7587(This)s 8087(object)s 8756(has)s
grestore
0 0 0 0 240 288 60 1417 -15423 LoutGr2
0 LoutMargSet
grestore
grestore
grestore
grestore
grestore
pgsave restore
showpage
%%Page: 15 16
%%BeginPageSetup
%%PageResources: font Times-Roman
%%+ font Times-Italic
%%+ font Helvetica
%%+ font Times-Bold
/pgsave save def
%%IncludeResource: font Times-Roman
/Times-Romanfnt1 vec2 /Times-Roman LoutRecode
/fnt1 { /Times-Romanfnt1 LoutFont } def
%%IncludeResource: font Times-Italic
/Times-Italicfnt3 vec2 /Times-Italic LoutRecode
/fnt3 { /Times-Italicfnt3 LoutFont } def
%%IncludeResource: font Helvetica
/Helveticafnt5 vec2 /Helvetica LoutRecode
/fnt5 { /Helveticafnt5 LoutFont } def
%%IncludeResource: font Times-Bold
/Times-Boldfnt2 vec2 /Times-Bold LoutRecode
/fnt2 { /Times-Boldfnt2 LoutFont } def
0.0500 dup scale 10 setlinewidth
%%EndPageSetup
gsave
0 0 translate
240 fnt1 0.0 0.0 0.0 LoutSetRGBColor LoutTextureSolid 11900 16840 0 16840 240 288 60 LoutGraphic
gsave
LoutPageSet
grestore
gsave
0 0 translate
1.0 1.0 1.0 LoutSetRGBColor 11900 16840 0 16840 240 288 60 LoutGraphic
gsave
LoutBox gsave 1.0 1.0 1.0 LoutSetRGBColor fill grestore 0 cm setlinewidth stroke
grestore
gsave
0 16840 translate
0.0000 rotate
0.0 0.0 0.0 LoutSetRGBColor
5709 -1582(-)m 5837(15)s 6123(-)s 9066 13413 0 13304 240 288 60 1417 -15423 LoutGr2
1 LoutMargSet
grestore
0 13250(the)m 348(structure)s
gsave
608 12769 translate
280 fnt3 128 191 0 123 280 288 70 LoutGraphic
gsave
grestore save gsave 200 dict begin lfigdict begin
grestore
128 191 0 123 280 288 70 0 0 LoutGr2
/lfiglightgrey [ lfigbox ] gsave lfigpaintpath grestore
0.015 cm setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigbox ] lfigdopath
pop pop
grestore
128 191 0 123 280 288 70 0 0 LoutGr2
0.015 cm setlinewidth lfiground setlinecap
0.15 cm /lfigdashed [ -0.3 cm ymark xsize ymark 0.3 cm 0 lfigpadd
[]
xmark -0.3 cm xmark ysize 0 0.3 cm lfigpadd ] lfigdopath
pop pop
grestore
260 fnt5 0 56(y)m
grestore
grestore
end end restore
grestore
gsave
480 12634 translate
280 fnt3 128 135 0 67 280 288 70 LoutGraphic
gsave
grestore save gsave 200 dict begin lfigdict begin
grestore
128 135 0 67 280 288 70 0 0 LoutGr2
/lfiglightgrey [ lfigbox ] gsave lfigpaintpath grestore
0.015 cm setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigbox ] lfigdopath
pop pop
grestore
128 135 0 67 280 288 70 0 0 LoutGr2
0.015 cm setlinewidth lfiground setlinecap
0.15 cm /lfigdashed [ -0.3 cm ymark xsize ymark 0.3 cm 0 lfigpadd
[]
xmark -0.3 cm xmark ysize 0 0.3 cm lfigpadd ] lfigdopath
pop pop
grestore
260 fnt5
0 0(x)m
grestore
grestore
end end restore
grestore
0 12183(b)m 4(ut)k 381(with)s 882(the)s
1249(\207rst)s 1699(ro)s 6(w)k 2138(mark)s 2709(hidden)s
3437(by)s 3751(the)s 220 fnt5 4118 12180(@OneRo)m 3(w)k
240 fnt1 5268 12183(operator)m 9(,)k 6181(and)s 220 fnt5
6604 12180(y)m 240 fnt1 6791 12183(tw)m 2(o)k 7220(points)s
7875(smaller)s 8657(than)s 0 11895(it)m 220(w)s 2(ould)k
904(otherwise)s 1917(ha)s 4(v)k 3(e)k 2447(been.)s
3091(The)s 3548(length)s 220 fnt5 4231 11892(0.5f)m 240 fnt1
4683 11895(speci\207es)m 5585(half)s 6057(the)s 6433(current)s 7198(font)s
7671(size;)s 8243(Figure)s 8952(2)s 0 11607(describes)m 936(the)s
220 fnt5 1280 11604(k)m 240 fnt1 1446 11607(g)m 1(ap)k
1840(mode.)s 2532(In)s 2784(the)s 3128(Eq)s 3448(equation)s
4325(formatting)s 5382(package)s 6218([10])s 6651(the)s 6995(equation)s
7872(as)s 8118(a)s 8280(whole)s 8916(is)s 0 11319(set)m
331(in)s 580(italic)s 1116(font,)s 1614(and)s 220 fnt5
2024 11316(2)m 240 fnt1 2203 11319(is)m 2419(an)s 2709(identi\207er)s
3637(whose)s 4311(body)s 4852(contains)s 5706(a)s 5879(font)s
6330(change)s 7070(back)s 7590(to)s 7835(Roman.)s 8698(The)s
0 11031(digits)m 220 fnt5 586 11028(0)m 240 fnt1 765 11031(to)m
220 fnt5 1009 11028(9)m 240 fnt1 1186 11031(are)m 1538(classed)s
2291(as)s 2546(punctuation)s 3737(characters,)s 4816(permitting)s 220 fnt5
5869 11028(234)m 240 fnt1 6293 11031(for)m 6635(e)s 3(xample)k
7503(to)s 7747(be)s 8034(interpreted)s 0 10743(as)m 250(a)s
416(sequence)s 1349(of)s 1620(three)s 2153(identi\207ers.)s 480 10369(These)m
1152(de\207nitions)s 2258(are)s 2650(easily)s 3307(implemented)s 4658(by)s
4997(a)s 5208(standard)s 6122(symbol)s 6927(table)s 7492(and)s
7941(an)s 8270(operator)s 0 10081(precedence)m 1155(parser)s 13(.)k
1914(Algol)s 2539(block)s 3157(structure)s 4073(with)s 4580(the)s
4953(usual)s 5538(scope)s 6164(rules)s 6704(w)s 2(as)k
7150(adopted)s 7991(as)s 8266(a)s 8457(matter)s 0 9793(of)m
271(course.)s 480 9419(Operators)m 1481(are)s 1837(limited)s 2580(to)s
2828(at)s 3069(most)s 3603(tw)s 2(o)k 4022(parameters,)s
5185(left)s 5571(and)s 5984(right,)s 6551(and)s 6964(the)s
7321(parameters)s 8428(cannot)s 0 9131(be)m 282(gi)s 6(v)k 3(en)k
862(def)s 2(ault)k 1583(v)s 6(alues.)k 240 fnt3
2352 9133(Named)m 240 fnt1 3097 9131(parameters)m 4195(solv)s 3(e)k
4753(both)s 5236(problems:)s 220 fnt5 480 8630(def @Pref)m 6(ace)k
480 8342( named @T)m 26(ag {})k 480 8054( named @Title { Pref)m 6(ace })k 480 7766( r)m -3(ight @Body)k
480 7478({)m 480 7190( Bold @F)m 6(ont @Title)k 480 6902( //0.3v @Body)m 480 6614(})m
240 fnt1 0 6120(The)m 452(def)s 2(ault)k 1197(v)s 6(alue)k
1789(appears)s 2594(just)s 3023(after)s 3543(the)s 3915(parameter')s 13(s)k
5103(declaration,)s 6295(between)s 7173(braces.)s 7972(In)s 9(v)k 4(ocations)k
0 5832(ha)m 4(v)k 3(e)k 501(a)s 667(natural)s
1385(syntax:)s 220 fnt5 480 5331(@Pref)m 6(ace)k 480 5043( @Title { About this book })m
480 4755({)m 480 4467( F)m 6(e)k 4(w obser)k -6(v)k 5(ers w)k 2(ould ha)k 4(v)k 5(e supposed in 1984, that ...)k
480 4179(})m 240 fnt1 0 3685(with)m 480(the)s 826(actual)s
1449(named)s 2143(parameters)s 3239(follo)s 6(wing)k 4214(directly)s
4995(after)s 5489(the)s 5835(operator)s 9(,)k 6727(before)s
7391(an)s 3(y)k 7786(right)s 8295(parame-)s 0 3397(ter)m 13(.)k
400(In)s 653(this)s 1046(e)s 3(xample,)k 220 fnt5
1958 3394(@T)m 26(ag)k 240 fnt1 2578 3397(will)m 3001(recei)s 6(v)k 3(e)k
3735(its)s 4008(def)s 2(ault)k 4726(v)s 6(alue,)k
5342(and)s 5744(a)s 5907(less)s 6313(e)s 3(xpert)k
6965(user)s 7420(could)s 8007(safely)s 8628(omit)s 0 3109(the)m
220 fnt5 348 3106(@Title)m 240 fnt1 1036 3109(parameter)m 2050(as)s
2300(well.)s 480 2735(Lout)m 1007(permits)s 1789(named)s 2500(parameters)s
3613(to)s 3867(ha)s 4(v)k 3(e)k 4384(parameters,)s
5553(a)s 5734(feature)s 6467(with)s 6964(applications)s 8185(to)s
8440(biblio-)s 0 2447(graphic)m 781(databases,)s 1816(running)s 2626(headers,)s
3475(and)s 3891(other)s 4454(places)s 5114(where)s 5766(a)s
5944(format)s 6652(has)s 7034(to)s 7285(be)s 7579(supplied)s
8460(before)s 0 2159(content)m 760(is)s 965(kno)s 6(wn.)k
1771(One)s 2221(could)s 2806(go)s 3094(further)s 3798(and)s
4197(pro)s 3(vide)k 4976(a)s 5137(complete)s 6064(lambda)s
6823(calculus,)s 7708(with)s 8185(functions)s 0 1871(as)m 250(\207rst-)s
689(class)s 1204(objects,)s 1988(pro)s 3(vided)k 2894(care)s
3347(w)s 2(as)k 3768(tak)s 2(en)k 4341(not)s
4707(to)s 4946(intimidate)s 5970(the)s 6318(non-)s 6746(e)s 3(xpert)k
7400(user)s 13(.)k 240 fnt2 0 1222(3.2.)m 471(Recursion)s
1563(and)s 2004(page)s 2539(lay)s 6(out)k
[ /Dest /LOUTrecursion /DEST pdfmark
240 fnt1
480 745(Design)m 1302(and)s 1794(implementation)s 3439(should)s 4223(proceed)s
5126(together)s 6057(in)s 6387(e)s 3(xploratory)k 7628(projects,)s
8579(since)s 0 457(otherwise)m 988(the)s 1340(design)s 2025(too)s
2388(easily)s 3003(becomes)s 3894(unrealistic.)s 5056(Sometimes)s 6173(the)s
6524(implementation)s 8085(does)s 8579(more)s
grestore
0 0 0 0 240 288 60 1417 -15423 LoutGr2
1 LoutMargSet
grestore
grestore
grestore
grestore
grestore
pgsave restore
showpage
%%Page: 16 17
%%BeginPageSetup
%%PageResources: font Times-Roman
%%+ font Helvetica
/pgsave save def
%%IncludeResource: font Times-Roman
/Times-Romanfnt1 vec2 /Times-Roman LoutRecode
/fnt1 { /Times-Romanfnt1 LoutFont } def
%%IncludeResource: font Helvetica
/Helveticafnt5 vec2 /Helvetica LoutRecode
/fnt5 { /Helveticafnt5 LoutFont } def
0.0500 dup scale 10 setlinewidth
%%EndPageSetup
gsave
0 0 translate
240 fnt1 0.0 0.0 0.0 LoutSetRGBColor LoutTextureSolid 11900 16840 0 16840 240 288 60 LoutGraphic
gsave
LoutPageSet
grestore
gsave
0 0 translate
1.0 1.0 1.0 LoutSetRGBColor 11900 16840 0 16840 240 288 60 LoutGraphic
gsave
LoutBox gsave 1.0 1.0 1.0 LoutSetRGBColor fill grestore 0 cm setlinewidth stroke
grestore
gsave
0 16840 translate
0.0000 rotate
0.0 0.0 0.0 LoutSetRGBColor
5705 -1581(-)m 5833(16)s 6126(-)s 9066 13414 0 13305 240 288 60 1417 -15423 LoutGr2
0 LoutMargSet
grestore
0 13251(than)m 469(its)s
745(designer)s 1615(intended.)s 2603(The)s 3031(author)s 3702(wrote)s
4302(the)s 4650(follo)s 6(wing)k 5627(purely)s 6292(as)s
6542(a)s 6708(testing)s 7398(scaf)s 6(fold:)k 220 fnt5
480 12750(def @P)m 8(age r)k -3(ight x)k 480 12462({)m 480 12174( 8i @Wide 11i @High)m
480 11886( {)m 480 11598( //1i ||1i x ||1i)m 480 11310( //1i)m 480 11022( })m 480 10734(})m
240 fnt1 0 10240(Only)m 518(afterw)s 2(ards)k 1558(did)s
1906(he)s 2172(realize)s 2848(its)s 3108(signi\207cance:)s 4400(the)s
4732(concept)s 5521(of)s 5776(a)s 5926(page)s 6418(had)s
6807(been)s 7300(de\207ned)s 8047(outside)s 8778(the)s 0 9952(implementation,)m
1619(remo)s 3(ving)k 2598(the)s 2959(need)s 3481(for)s
3831(commands)s 4932(for)s 5282(setting)s 5984(page)s 6505(width)s
7119(and)s 7535(height,)s 8253(mar)s 4(gins,)k 0 9664(and)m
404(so)s 670(on.)s 480 9290(De\207ning)m 1393(a)s 1582(sequence)s
2538(of)s 2831(pages)s 3450(is)s 3683(harder)s 9(,)k
4414(since)s 4983(their)s 5503(number)s 6317(is)s 6550(not)s
6938(kno)s 6(wn)k 7665(in)s 7931(adv)s 6(ance.)k
8896(A)s 0 9002(simple)m 693(v)s 3(ersion)k 1451(of)s
1722(this)s 2118(same)s 2665(problem)s 3522(is)s 3732(af)s 6(forded)k
4593(by)s 4887(the)s 5235(leaders)s 5962(found)s 6579(in)s
6822(tables)s 7430(of)s 7701(contents:)s 480 8497(Chapter)m 1297(7)s
1525(..)s 1809(..)s 2093(..)s 2377(..)s 2661(..)s
2945(..)s 3229(..)s 3513(..)s 3797(..)s 4081(..)s
4365(..)s 4649(..)s 4933(..)s 5217(..)s 5501(..)s
5785(..)s 6009(53)s 0 7994(This)m 476(seemed)s 1251(to)s
1490(require)s 2222(recursion,)s 3218(speci\207cally)s 4360(the)s 4708(de\207nition)s
220 fnt5 480 7493(def @Leaders { ..)m 13( @Leaders })k 240 fnt1 0 6999(Note)m
535(that)s 968(both)s 220 fnt5 1465 6996(..)m 240 fnt1
1643 6999(and)m 220 fnt5 2061 6996(@Leaders)m 240 fnt1 3145 6999(are)m
3506(objects,)s 4305(so)s 4585(the)s 4948(tw)s 2(o)k
5372(spaces)s 6062(separating)s 7111(them)s 7664(are)s 8026(signi\207cant.)s
0 6711(No)m 361(base)s 858(case)s 1341(is)s 1567(gi)s 6(v)k 3(en,)k
2213(and)s 2633(indeed)s 3345(we)s 3696(ha)s 4(v)k 3(e)k
4213(no)s 4522(boolean)s 5353(or)s 5628(conditional)s 6775(operators)s
7731(with)s 8229(which)s 8887(to)s 0 6423(e)m 3(xpress)k
757(it;)s 993(b)s 4(ut)k 1346(we)s 1673(can)s
2053(adopt)s 2637(the)s 2977(implicit)s 3770(base)s 4243(`if)s
4530(space)s 5109(is)s 5311(not)s 5668(suf\207cient,)s 6656(delete)s
220 fnt5 7273 6420(@Leaders)m 240 fnt1 8334 6423(and)m 8729(an)s 3(y)k
0 6135(preceding)m 996(space'.)s 1770(Then)s 2319(the)s 2667(e)s 3(xpression)k
220 fnt5 480 5634(4i @Wide { Chapter 7 @Leaders 53 })m 240 fnt1 0 5138(will)m 416(produce)s
1233(the)s 1571(object)s 2205(sho)s 6(wn)k 2872(abo)s 3(v)k 3(e.)k
3592(It)s 3787(is)s 3987(hard)s 4460(to)s 4689(see)s
5040(ho)s 6(w)k 5491(this)s 5877(base)s 6348(could)s
6928(be)s 7200(made)s 7764(e)s 3(xplicit,)k 8573(with-)s
0 4850(out)m 348(violating)s 1232(the)s 1561(general)s 2301(principle)s
3187(of)s 3439(k)s 2(eeping)k 4230(all)s 4504(size)s
4912(information)s 6079(internal.)s 6953(In)s 7190(the)s 7519(implementation,)s
220 fnt5 0 4559(@Leaders)m 240 fnt1 1071 4562(remains)m 1881(une)s 3(xpanded)k
3097(while)s 3686(sizes)s 4204(are)s 4554(being)s 5142(calculated;)s
6224(then)s 6696(it)s 6891(is)s 7103(treated)s 7813(similarly)s
8718(to)s 8960(a)s 0 4274(recepti)m 6(v)k 3(e)k
922(symbol,)s 1734(with)s 2216(its)s 2492(body)s 3026(as)s
3276(an)s 3559(incoming)s 4516(g)s 1(alle)k 3(y)k
5150(\(Section)s 6003(5.2\).)s 480 3900(W)m 9(ith)k 1014(this)s
1418(settled,)s 2156(it)s 2356(is)s 2574(no)s 6(w)k
3044(clear)s 3575(ho)s 6(w)k 4044(to)s 4291(de\207ne)s
4940(a)s 5115(document)s 6127(which)s 6777(is)s 6995(a)s
7169(numbered)s 8193(sequence)s 0 3612(of)m 271(pages.)s 980(Let)s
220 fnt5 1358 3609(@Ne)m 6(xt)k 240 fnt1 2082 3612(be)m
2364(a)s 2530(pre\207x)s 3143(operator)s 3999(which)s 4641(returns)s
5355(its)s 5631(parameter)s 6645(plus)s 7095(one.)s 7605(Then)s
220 fnt5 480 3111(def @P)m 8(ageList)k 480 2823( r)m -3(ight @P)k 8(ageNum)k
480 2535({)m 480 2247( @P)m 8(age {)k 480 1959( |0.5r)m -8(t - @P)k 8(ageNum -)k
480 1671( //1v @T)m 26(e)k 6(xtPlace)k 480 1383( //1r)m -8(t @F)k 6(ootSect)k
480 1095( })m 480 807( //)m 480 519( @P)m 8(ageList @Ne)k 6(xt @P)k 8(ageNum)k
480 231(})m
grestore
0 0 0 0 240 288 60 1417 -15423 LoutGr2
0 LoutMargSet
grestore
grestore
grestore
grestore
grestore
pgsave restore
showpage
%%Page: 17 18
%%BeginPageSetup
%%PageResources: font Times-Roman
%%+ font Helvetica
/pgsave save def
%%IncludeResource: font Times-Roman
/Times-Romanfnt1 vec2 /Times-Roman LoutRecode
/fnt1 { /Times-Romanfnt1 LoutFont } def
%%IncludeResource: font Helvetica
/Helveticafnt5 vec2 /Helvetica LoutRecode
/fnt5 { /Helveticafnt5 LoutFont } def
0.0500 dup scale 10 setlinewidth
%%EndPageSetup
gsave
0 0 translate
240 fnt1 0.0 0.0 0.0 LoutSetRGBColor LoutTextureSolid 11900 16840 0 16840 240 288 60 LoutGraphic
gsave
LoutPageSet
grestore
gsave
0 0 translate
1.0 1.0 1.0 LoutSetRGBColor 11900 16840 0 16840 240 288 60 LoutGraphic
gsave
LoutBox gsave 1.0 1.0 1.0 LoutSetRGBColor fill grestore 0 cm setlinewidth stroke
grestore
gsave
0 16840 translate
0.0000 rotate
0.0 0.0 0.0 LoutSetRGBColor
5708 -1579(-)m 5836(17)s 6124(-)s 9066 13418 0 13418 240 288 60 1417 -15423 LoutGr2
1 LoutMargSet
grestore
0 13255(when)m 576(in)s 9(v)k 4(ok)k 2(ed)k
1391(in)s 1634(the)s 1982(e)s 3(xpression)k 220 fnt5
3059 13252(@P)m 8(ageList 1)k 240 fnt1 4267 13255(,)m 4374(has)s
4744(for)s 5082(its)s 5358(result)s 5948(the)s 6296(potentially)s
7372(in\207nite)s 8105(object)s 1927 2494 0 2494 240 288 60 480 10421 LoutGr2
0 0 moveto xsize 0 lineto xsize ysize lineto
0 ysize lineto closepath stroke
grestore
160 fnt1 845 2216(-)m 931(1)s
1035(-)s 140 fnt5 170 2000(@T)m 16(e)k 4(xtPlace)k
170 173(@F)m 4(ootSect)k
grestore
1927 2494 0 2494 240 288 60 480 7927 LoutGr2
0 0 moveto xsize 0 lineto xsize ysize lineto
0 ysize lineto closepath stroke
grestore
160 fnt1 839 2216(-)m 925(2)s
1041(-)s 140 fnt5 170 2000(@T)m 16(e)k 4(xtPlace)k
170 173(@F)m 4(ootSect)k
grestore
140 fnt5 480 7712(@P)m 5(ageList 3)k
240 fnt1 0 7230(Similarly)m 15(,)k 980(we)s 1315(may)s
1781(de\207ne)s 220 fnt5 2422 7227(@F)m 6(ootSect)k 240 fnt1
3573 7230(lik)m 2(e)k 3985(this:)s 220 fnt5 480 6729(def @F)m 6(ootSect)k
480 6441({)m 480 6153( def @F)m 6(ootList)k 480 5865( r)m -3(ight @Num)k
480 5577( {)m 480 5289( @F)m 6(ootPlace)k 480 5001( //1v)m 480 4713( @F)m 6(ootList @Ne)k 6(xt @Num)k
480 4425( })m 480 3849( 1i @Wide @HLine)m 480 3561( //1v)m 480 3273( @F)m 6(ootList 1)k
480 2985(})m 240 fnt1 0 2491(so)m 266(that)s 684(an)s
967(in)s 9(v)k 4(ocation)k 2021(of)s 220 fnt5
2292 2488(@F)m 6(ootSect)k 240 fnt1 3443 2491(produces)m gsave
480 2151 translate
220 fnt5
1440 0 0 0 220 288 61 LoutGraphic
gsave
0 0 moveto xsize 0 lineto stroke
grestore
grestore
220 fnt5 480 1806(@F)m 6(ootPlace)k 480 1518(@F)m 6(ootPlace)k
480 1230(@F)m 6(ootPlace)k 480 942(...)m
grestore
0 0 0 0 240 288 60 1417 -15423 LoutGr2
1 LoutMargSet
grestore
grestore
grestore
grestore
grestore
pgsave restore
showpage
%%Page: 18 19
%%BeginPageSetup
%%PageResources: font Times-Roman
%%+ font Helvetica
%%+ font Times-Bold
%%+ font Times-Italic
/pgsave save def
%%IncludeResource: font Times-Roman
/Times-Romanfnt1 vec2 /Times-Roman LoutRecode
/fnt1 { /Times-Romanfnt1 LoutFont } def
%%IncludeResource: font Helvetica
/Helveticafnt5 vec2 /Helvetica LoutRecode
/fnt5 { /Helveticafnt5 LoutFont } def
%%IncludeResource: font Times-Bold
/Times-Boldfnt2 vec2 /Times-Bold LoutRecode
/fnt2 { /Times-Boldfnt2 LoutFont } def
%%IncludeResource: font Times-Italic
/Times-Italicfnt3 vec2 /Times-Italic LoutRecode
/fnt3 { /Times-Italicfnt3 LoutFont } def
0.0500 dup scale 10 setlinewidth
%%EndPageSetup
gsave
0 0 translate
240 fnt1 0.0 0.0 0.0 LoutSetRGBColor LoutTextureSolid 11900 16840 0 16840 240 288 60 LoutGraphic
gsave
LoutPageSet
grestore
gsave
0 0 translate
1.0 1.0 1.0 LoutSetRGBColor 11900 16840 0 16840 240 288 60 LoutGraphic
gsave
LoutBox gsave 1.0 1.0 1.0 LoutSetRGBColor fill grestore 0 cm setlinewidth stroke
grestore
gsave
0 16840 translate
0.0000 rotate
0.0 0.0 0.0 LoutSetRGBColor
5708 -1579(-)m 5836(18)s 6123(-)s 9066 13416 0 13307 240 288 60 1417 -15423 LoutGr2
0 LoutMargSet
grestore
0 13253(The)m 476(e)s 3(xpansion)k
1550(process)s 2367(is)s 2626(v)s 3(ery)k 3150(similar)s
3921(to)s 4209(a)s 4424(BNF)s 4997(deri)s 6(v)k 6(ation,)k
6109(and)s 6562(w)s 2(ould)k 7266(be)s 7597(attempted)s
8646(only)s 0 12965(on)m 297(demand.)s 480 12591(Clearly)m 15(,)k
1276(deciding)s 2154(which)s 2797(e)s 3(xpansions)k 3910(to)s
4150(tak)s 2(e)k 4603(and)s 5008(replacing)s 220 fnt5
5951 12588(@T)m 26(e)k 6(xtPlace)k 240 fnt1 7170 12591(and)m
220 fnt5 7575 12588(@F)m 6(ootPlace)k 240 fnt1 8832 12591(by)m
0 12303(the)m 338(appropriate)s 1471(actual)s 2085(te)s 3(xt)k
2489(will)s 2904(not)s 3259(be)s 3530(easy;)s 4056(this)s
4441(is)s 4640(the)s 4977(subject)s 5703(of)s 5963(Section)s
6726(5.1.)s 7179(The)s 7596(important)s 8574(point)s 0 12015(for)m
331(no)s 6(w)k 784(is)s 986(that)s 1397(we)s
1724(ha)s 4(v)k 3(e)k 2217(here)s 2677(a)s
2835(v)s 3(ery)k 3303(simple)s 3989(and)s 4385(\210e)s 3(xible)k
5147(method)s 5916(of)s 6179(specifying)s 7220(the)s 7561(layout)s
8211(of)s 8474(pages,)s 0 11727(which)m 642(requires)s 1462(no)s
1755(specialized)s 2874(language)s 3794(features.)s 240 fnt2 0 11079(3.3.)m
471(Modules)s
[ /Dest /LOUTmodules /DEST pdfmark
240 fnt1 480 10648(It)m 679(is)s 882(well)s
1342(accepted)s 2229(that)s 2641(the)s 2982(visibility)s 3879(of)s
4143(symbols)s 4986(is)s 5189(not)s 5549(adequately)s 6632(controlled)s
7653(by)s 7940(Algol)s 8533(block)s 0 10360(structure.)m 999(The)s
1427(author)s 2098(is)s 2308(a)s 3(w)k 2(are)k
2929(of)s 3200(se)s 6(v)k 3(eral)k 3922(major)s
4539(problems)s 5480(of)s 5751(this)s 6147(kind)s 6631(in)s
6874(document)s 7878(formatting.)s 480 9986(One)m 976(problem)s 1874(is)s
2126(that)s 2585(some)s 3187(symbols)s 4078(should)s 4816(be)s
5139(visible)s 5874(only)s 6395(within)s 7104(restricted)s 8091(parts)s
8647(of)s 8960(a)s 0 9698(document.)m 1108(F)s 3(or)k
1497(e)s 3(xample,)k 2411(we)s 2746(naturally)s 3649(e)s 3(xpect)k
4330(equation)s 5211(formatting)s 6272(to)s 6511(be)s 6793(accomplished)s
8166(lik)s 2(e)k 8578(this:)s 220 fnt5 480 9201(surrounding te)m 6(xt)k
480 8913(@Eq { {x sup 2 + 1} o)m 3(v)k 5(er 4 })k 480 8625(surrounding te)m 6(xt)k
240 fnt1 0 8126(with)m 482(the)s 830(symbols)s 220 fnt5
1679 8123(sup)m 240 fnt1 2025 8126(,)m 220 fnt5 2132 8123(o)m 3(v)k 5(er)k
240 fnt1 2551 8126(,)m 2658(etc.,)s 3103(visible)s 3796(only)s
4276(within)s 4944(the)s 5292(equation,)s 6223(not)s 6589(in)s
6832(the)s 7180(surrounding)s 8390(te)s 3(xt.)k 480 7752(It)m
695(seems)s 1341(natural)s 2069(to)s 2319(de\207ne)s 2970(these)s
3528(symbols)s 4387(within)s 220 fnt5 5066 7749(@Eq)m 240 fnt1
5544 7752(,)m 5661(since)s 6219(the)s 3(y)k 6692(are)s
7050(local)s 7579(to)s 7829(equations.)s 8921(It)s 0 7464(only)m
494(remains)s 1316(then)s 1799(to)s 2053(decree)s 2746(that)s
3179(symbols)s 4043(local)s 4576(to)s 220 fnt5 4830 7461(@Eq)m
240 fnt1 5382 7464(are)m 5744(to)s 5998(be)s 6294(visible)s
7002(within)s 7684(its)s 7975(actual)s 8615(right)s 0 7176(parameter)m 9(,)k
1052(and)s 1456(this)s 1852(is)s 2062(done)s 2584(by)s
2878(replacing)s 3820(the)s 4168(right)s 4679(formal)s 5370(parameter)s
6384(with)s 6866(a)s 240 fnt3 7032 7178(body)m 240 fnt1
7554 7176(parameter:)m 220 fnt5 480 6690(e)m 6(xpor)k -8(t sup o)k 3(v)k 5(er)k
480 6402(def @Eq)m 480 6114( body @Body)m 480 5826({)m 480 5538( def sup ...)m 480 5250( def o)m 3(v)k 5(er ...)k
480 4674( Slope @F)m 6(ont @Body)k 480 4386(})m 240 fnt1 0 3892(The)m
220 fnt5 426 3889(e)m 6(xpor)k -8(t)k 240 fnt1
1092 3892(clause)m 1743(lists)s 2176(the)s 2522(identi\207ers)s 3526(which)s
4166(are)s 4511(permitted)s 5482(to)s 5719(be)s 5999(visible)s
6690(outside)s 7435(their)s 7930(usual)s 8488(range,)s 0 3604(the)m
359(body)s 905(of)s 220 fnt5 1188 3601(@Eq)m 240 fnt1
1666 3604(;)m 1790(and)s 2206(the)s 220 fnt5 2566 3601(body)m
240 fnt1 3112 3604(declaration)m 4241(imports)s 5034(them)s 5584(into)s
6021(\(mak)s 2(es)k 6772(them)s 7322(visible)s 8027(within\))s
8778(the)s 0 3316(actual)m 614(right)s 1114(parameter)s 2117(of)s
2376(each)s 2860(in)s 9(v)k 4(ocation)k 3903(of)s
220 fnt5 4162 3313(@Eq)m 240 fnt1 4640 3316(.)m 4793(This)s
5258(arrangement)s 6500(has)s 6859(pro)s 3(v)k 3(en)k
7564(v)s 3(ery)k 8028(con)s 9(v)k 3(enient)k
0 3028(for)m 338(de\207ning)s 1176(a)s 1342(v)s 6(ariety)k
2053(of)s 2324(special-purpose)s 3880(packages.)s 480 2654(Another)m 1361(problem)s
2256(arises)s 2888(when)s 3502(global)s 4193(symbols,)s 5136(such)s
5669(as)s 5957(the)s 6343(ones)s 6871(used)s 7406(for)s
7782(headings)s 8722(and)s 0 2366(paragraph)m 1034(separators,)s 2130(call)s
2550(on)s 2868(v)s 6(alues)k 3545(that)s 3984(the)s
4353(non-e)s 3(xpert)k 5468(user)s 5947(will)s 6394(need)s
6925(to)s 7185(modify)s 15(,)k 7989(such)s 8506(as)s
8778(the)s 0 2078(initial)m 605(font)s 1044(or)s 1297(paragraph)s
2303(indent.)s 3059(These)s 3680(v)s 6(alues)k 4329(are)s
4670(lik)s 2(e)k 5076(parameters)s 6167(of)s 6432(the)s
6774(document)s 7771(as)s 8015(a)s 8175(whole,)s 8860(so)s
0 1790(it)m 192(is)s 402(natural)s 1120(to)s 1359(try)s
1678(this:)s
grestore
0 0 0 0 240 288 60 1417 -15423 LoutGr2
0 LoutMargSet
grestore
grestore
grestore
grestore
grestore
pgsave restore
showpage
%%Page: 19 20
%%BeginPageSetup
%%PageResources: font Times-Roman
%%+ font Helvetica
/pgsave save def
%%IncludeResource: font Times-Roman
/Times-Romanfnt1 vec2 /Times-Roman LoutRecode
/fnt1 { /Times-Romanfnt1 LoutFont } def
%%IncludeResource: font Helvetica
/Helveticafnt5 vec2 /Helvetica LoutRecode
/fnt5 { /Helveticafnt5 LoutFont } def
0.0500 dup scale 10 setlinewidth
%%EndPageSetup
gsave
0 0 translate
240 fnt1 0.0 0.0 0.0 LoutSetRGBColor LoutTextureSolid 11900 16840 0 16840 240 288 60 LoutGraphic
gsave
LoutPageSet
grestore
gsave
0 0 translate
1.0 1.0 1.0 LoutSetRGBColor 11900 16840 0 16840 240 288 60 LoutGraphic
gsave
LoutBox gsave 1.0 1.0 1.0 LoutSetRGBColor fill grestore 0 cm setlinewidth stroke
grestore
gsave
0 16840 translate
0.0000 rotate
0.0 0.0 0.0 LoutSetRGBColor
5706 -1579(-)m 5834(19)s 6125(-)s 9066 13414 0 13310 240 288 60 1417 -15423 LoutGr2
1 LoutMargSet
grestore
220 fnt5 480 13253(e)m 6(xpor)k -8(t @Heading @PP ...)k
480 12965(def @BookLa)m 6(y)k 4(out)k 480 12677( named @InitialF)m 6(ont { )k 11(Times Base 12p })k
480 12389( named @InitialBreak { adjust 14p })m 480 12101( named @ColumnWidth { 6i })m 480 11813( ...)m 480 11525({)m 480 11237( def @Heading ...)m
480 10949( def @PP ...)m 480 10661(})m 240 fnt1 0 10167(No)m 6(w)k
220 fnt5 579 10164(@Heading)m 240 fnt1 1732 10167(and)m 220 fnt5
2202 10164(@PP)m 240 fnt1 2833 10167(may)m 3365(in)s 9(v)k 4(ok)k 2(e)k
220 fnt5 4124 10164(@InitialF)m 6(ont)k 240 fnt1 5411 10167(and)m
5881(the)s 6295(other)s 6911(parameters.)s 8188(T)s 19(o)k
8554(mak)s 2(e)k 220 fnt5 0 9876(@Heading)m 240 fnt1
1100 9879(and)m 220 fnt5 1517 9876(@PP)m 240 fnt1 2096 9879(visible)m
2802(throughout)s 3926(the)s 4287(document,)s 5352(we)s 5700(need)s
6223(only)s 6716(add)s 7133(a)s 7312(body)s 7859(parameter)s
8887(to)s 220 fnt5 0 9588(@BookLa)m 6(y)k 4(out)k
240 fnt1 1428 9591(and)m 1832(present)s 2582(the)s 2930(entire)s
3529(document)s 4533(as)s 220 fnt5 480 9090(@BookLa)m 6(y)k 4(out)k
480 8802( @InitialF)m 6(ont { Helv)k 5(etica Base 10p })k 480 8514( @InitialBreak { adjust 12p })m 480 8226({)m
480 7938( )m 11(The document.)k 480 7650(})m 240 fnt1 0 7156(b)m 4(ut)k
383(for)s 742(practical)s 1639(reasons)s 2429(gi)s 6(v)k 3(en)k
3030(belo)s 6(w)k 3684(we)s 4040(prefer)s 4691(not)s
5078(to)s 5338(enclose)s 6132(the)s 6502(entire)s 7122(document)s
8147(in)s 8412(braces.)s 0 6868(Instead,)m 797(we)s 1132(write)s
220 fnt5 480 6386(@Use { @BookLa)m 6(y)k 4(out)k 480 6098( @InitialF)m 6(ont { Helv)k 5(etica Base 10p })k
480 5810( @InitialBreak { adjust 12p })m 480 5522(})m 480 5234(The document.)m 240 fnt1 0 4780(which)m
643(has)s 1015(the)s 1365(same)s 1914(ef)s 6(fect:)k
220 fnt5 2617 4777(@Use)m 240 fnt1 3284 4780(mak)m 2(es)k
3946(the)s 4296(e)s 3(xported)k 5190(symbols)s 6040(of)s
220 fnt5 6313 4777(@BookLa)m 6(y)k 4(out)k 240 fnt1
7743 4780(visible)m 8438(for)s 8778(the)s 0 4492(remainder)m 1028(of)s
1299(the)s 1647(document,)s 2698(and)s 3102(is)s 3312(permitted)s
4285(only)s 4765(at)s 4997(the)s 5345(be)s 3(ginning.)k
480 4118(The)m 925(third)s 1451(feature)s 2187(that)s 2622(af)s 6(fects)k
3319(visibility)s 15(,)k 4278(and)s 4699(which)s 5359(will)s
5802(pro)s 3(v)k 3(e)k 6414(useful)s 7071(for)s
7426(cross)s 7986(referencing)s 0 3830(\(Section)m 851(6.1\),)s 1335(is)s
1543(the)s 220 fnt5 1889 3827(@Open)m 240 fnt1 2693 3830(symbol.)m
3560(It)s 3763(mak)s 2(es)k 4421(the)s 4767(e)s 3(xported)k
5657(symbols)s 6504(of)s 6773(its)s 7047(left)s 7422(parameter)s
8433(visible)s 0 3542(within)m 668(its)s 944(right)s 1455(parameter)s 9(,)k
2507(and)s 2911(is)s 3121(therefore)s 4038(similar)s 4760(to)s
4999(the)s 5347(P)s 3(ascal)k 220 fnt5 6009 3539(with)m
240 fnt1 6444 3542(statement.)m 480 3168(It)m 698(could)s 1301(be)s
1596(ar)s 4(gued)k 2314(that)s 2745(Lout)s 3270(is)s
3493(o)s 3(v)k 3(er)k 4(-supplied)k 4869(with)s
5364(these)s 5924(visibility)s 6840(modifying)s 7903(features:)s 8778(the)s
0 2880(body)m 544(parameter)s 9(,)k 220 fnt5 1606 2877(@Use)m
240 fnt1 2282 2880(and)m 220 fnt5 2696 2877(@Open)m 240 fnt1
3513 2880(do)m 3816(not)s 4193(seem)s 4754(suf\207ciently)s 5894(dif)s 6(ferent)k
6779(from)s 7314(each)s 7819(another)s 13(.)k 8698(The)s
220 fnt5 0 2589(@Open)m 240 fnt1 806 2592(symbol)m 1566(is)s
1776(the)s 2124(most)s 2649(general,)s 3459(being)s 4044(capable)s
4830(of)s 5101(replacing)s 6043(the)s 6391(other)s 6942(tw)s 2(o.)k
7463(F)s 3(or)k 7852(e)s 3(xample,)k 220 fnt5
480 2091(@Use { x })m 480 1803(@Use { y })m 480 1515(Body of document)m 240 fnt1 0 1017(can)m
389(be)s 671(replaced)s 1538(by)s
grestore
0 0 0 0 240 288 60 1417 -15423 LoutGr2
1 LoutMargSet
grestore
grestore
grestore
grestore
grestore
pgsave restore
showpage
%%Page: 20 21
%%BeginPageSetup
%%PageResources: font Times-Roman
%%+ font Helvetica
%%+ font Times-Bold
%%+ font Times-Italic
/pgsave save def
%%IncludeResource: font Times-Roman
/Times-Romanfnt1 vec2 /Times-Roman LoutRecode
/fnt1 { /Times-Romanfnt1 LoutFont } def
%%IncludeResource: font Helvetica
/Helveticafnt5 vec2 /Helvetica LoutRecode
/fnt5 { /Helveticafnt5 LoutFont } def
%%IncludeResource: font Times-Bold
/Times-Boldfnt2 vec2 /Times-Bold LoutRecode
/fnt2 { /Times-Boldfnt2 LoutFont } def
%%IncludeResource: font Times-Italic
/Times-Italicfnt3 vec2 /Times-Italic LoutRecode
/fnt3 { /Times-Italicfnt3 LoutFont } def
0.0500 dup scale 10 setlinewidth
%%EndPageSetup
gsave
0 0 translate
240 fnt1 0.0 0.0 0.0 LoutSetRGBColor LoutTextureSolid 11900 16840 0 16840 240 288 60 LoutGraphic
gsave
LoutPageSet
grestore
gsave
0 0 translate
1.0 1.0 1.0 LoutSetRGBColor 11900 16840 0 16840 240 288 60 LoutGraphic
gsave
LoutBox gsave 1.0 1.0 1.0 LoutSetRGBColor fill grestore 0 cm setlinewidth stroke
grestore
gsave
0 16840 translate
0.0000 rotate
0.0 0.0 0.0 LoutSetRGBColor
5704 -1579(-)m 5832(20)s 6127(-)s 9066 13416 0 13312 240 288 60 1417 -15423 LoutGr2
0 LoutMargSet
grestore
220 fnt5 480 13255(x @Open {)m
480 12967(y @Open {)m 480 12679(Body of document)m 480 12391(}})m 240 fnt1 0 11897(and,)m
453(taking)s 1104(the)s 220 fnt5 1452 11894(@Eq)m 240 fnt1
1990 11897(symbol)m 2750(abo)s 3(v)k 3(e)k 3372(as)s
3622(e)s 3(xample,)k 4536(we)s 4871(could)s 5461(eliminate)s
6405(its)s 6681(body)s 7215(parameter)s 9(,)k 8267(add)s
220 fnt5 480 11396(def @Body r)m -3(ight x { Slope @F)k 6(ont x })k 240 fnt1
0 10897(to)m 239(the)s 587(e)s 3(xported)k 1479(de\207nitions)s
2540(of)s 220 fnt5 2811 10894(@Eq)m 240 fnt1 3289 10897(,)m
3396(and)s 3800(replace)s 220 fnt5 480 10396(@Eq { object })m 240 fnt1
0 9899(by)m 220 fnt5 480 9398(@Eq @Open { @Body { object } })m 240 fnt1 0 8898(If)m
220 fnt5 232 8895(@Eq)m 240 fnt1 772 8898(is)m 985(a)s
1153(g)s 1(alle)k 3(y)k 1790(\(Section)s 2645(5.1\),)s
220 fnt5 3133 8895(@Body)m 240 fnt1 3917 8898(must)m 4444(tak)s 2(e)k
4899(o)s 3(v)k 3(er)k 5380(that)s 5800(function.)s
6764(But)s 7172(one)s 7577(w)s 2(ould)k 8234(not)s
8603(w)s 2(ant)k 0 8610(to)m 253(write)s 813(these)s
1374(clumsy)s 2133(e)s 3(xpressions)k 3311(in)s 3568(practice,)s
4444(and)s 4862(the)s 5224(enclosure)s 6210(of)s 6495(lar)s 4(ge)k
7038(quantities)s 8032(of)s 8317(input)s 8883(in)s 0 8322(e)m 3(xtra)k
534(braces)s 1195(could)s 1785(cause)s 2372(Basser)s 3069(Lout)s
3581(to)s 3820(run)s 4196(out)s 4562(of)s 4833(memory)s
5684(\(Section)s 6537(5.4\).)s 480 7948(A)m 700(quite)s 1224(separate)s
2052(kind)s 2526(of)s 2786(visibility)s 3679(problem)s 4526(arises)s
5110(when)s 5676(e)s 3(xpert)k 6319(users)s 6851(wish)s
7350(to)s 7579(de\207ne)s 8210(an)s 8482(object)s 0 7660(or)m
259(operator)s 1115(for)s 1453(repeated)s 2320(use)s 2695(within,)s
3413(say)s 15(,)k 3824(equations:)s 220 fnt5 480 7161(def isum { sum from i=1 to n })m
240 fnt1 0 6667(As)m 338(it)s 551(stands)s 1221(this)s
1638(can)s 2048(only)s 2549(be)s 2852(placed)s 3555(within)s
4244(the)s 220 fnt5 4613 6664(@Eq)m 240 fnt1 5172 6667(package)m
6033(itself,)s 6637(where)s 220 fnt5 7298 6664(sum)m 240 fnt1
7780 6667(and)m 8205(the)s 8575(other)s 0 6379(symbols)m 841(are)s
1179(visible,)s 1915(b)s 4(ut)k 2268(it)s 2451(is)s
2653(not)s 3010(desirable)s 3919(to)s 4150(modify)s 4886(the)s
5225(source)s 5897(code)s 6396(of)s 6658(a)s 6816(standard)s
7675(package.)s 8614(Lout)s 0 6091(pro)m 3(vides)k 872(an)s
220 fnt5 1155 6088(impor)m -8(t)k 240 fnt1 1828 6091(clause)m
2481(to)s 2720(solv)s 3(e)k 3278(this)s 3674(problem:)s
220 fnt5 480 5590(impor)m -8(t @Eq)k 480 5302(def isum { sum from i=1 to n })m 240 fnt1
0 4808(may)m 469(appear)s 1169(after)s 220 fnt5 1669 4805(@Eq)m
240 fnt1 2210 4808(is)m 2423(de\207ned,)s 3239(and)s 3646(it)s
3842(will)s 4271(mak)s 2(e)k 4846(the)s 5198(e)s 3(xported)k
6093(symbols)s 6945(of)s 220 fnt5 7220 4805(@Eq)m 240 fnt1
7761 4808(visible)m 8458(within)s 0 4520(the)m 335(body)s 855(of)s
220 fnt5 1112 4517(isum)m 240 fnt1 1561 4520(.)m 1711(This)s
2174(feature)s 2878(complicates)s 4056(the)s 4390(treatment)s 5337(of)s
5595(en)s 9(vironments)k 6925(\(Section)s 7764(3.4\),)s 8236(and)s
8626(e)s 6(v)k 3(en)k 0 4232(introduces)m 1050(an)s
1336(insecurity)s 15(,)k 2373(when)s 220 fnt5 2952 4229(isum)m
240 fnt1 3464 4232(is)m 3677(in)s 9(v)k 4(ok)k 2(ed)k
4495(outside)s 5245(an)s 5531(equation.)s 6522(A)s 6755(simpler)s
7534(approach)s 8471(w)s 2(ould)k 0 3944(be)m 290(to)s
538(allo)s 6(w)k 1126(only)s 1615(one)s 2026(symbol)s
2795(in)s 3047(an)s 220 fnt5 3339 3941(impor)m -8(t)k
240 fnt1 4020 3944(clause,)m 4733(and)s 5146(treat)s 5638(the)s
5995(follo)s 6(wing)k 6981(de\207nition)s 7964(e)s 3(xactly)k
8714(lik)s 2(e)k 0 3656(a)m 174(local)s 702(de\207nition)s
1684(of)s 1964(that)s 2390(symbol;)s 3216(b)s 4(ut)k
3587(then)s 4064(it)s 4265(w)s 2(ould)k 4928(not)s
5303(be)s 5594(possible)s 6442(to)s 6690(de\207ne)s 7339(symbols)s
8197(using)s 8778(the)s 0 3368(resources)m 953(of)s 1224(more)s
1771(than)s 2240(one)s 2642(of)s 2913(the)s 3261(standard)s
4129(packages.)s 240 fnt2 0 2719(3.4.)m 471(Implementation)s 2159(of)s
2431(de\207nitions)s
[ /Dest /LOUTdefs_impl /DEST pdfmark
240 fnt1 480 2242(Input)m 1089(is)s 1343(processed)s
2388(by)s 2726(a)s 2936(h)s 1(ybrid)k 3663(parser)s
4350(which)s 5036(emplo)s 2(ys)k 5940(operator)s 6840(precedence)s
8015(for)s 8398(objects)s 0 1954(and)m 433(simple)s 1156(recursi)s 6(v)k 3(e)k
2108(descent)s 2915(for)s 3283(the)s 3661(headers)s 4472(of)s
4772(de\207nitions.)s 5976(A)s 6236(symbol)s 7026(table)s 7576(stores)s
8214(the)s 8592(body)s 0 1666(of)m 278(each)s 780(de\207nition)s
1761(as)s 2018(a)s 2191(parse)s 2758(tree,)s 3229(e)s 3(xcept)k
3917(for)s 4263(macros)s 5011(which)s 5660(are)s 6014(lists)s
6456(of)s 6734(tok)s 2(ens,)k 7471(and)s 7882(manages)s
8778(the)s 0 1378(usual)m 564(stack)s 1121(of)s 1397(static)s
1958(scopes,)s 2708(accepting)s 240 fnt3 3682 1380(PushScope)m 240 fnt1
4791 1378(and)m 240 fnt3 5200 1380(P)m 19(opScope)k 240 fnt1
6197 1378(operations)m 7249(as)s 7504(the)s 7857(parser)s 8505(enters)s
0 1090(and)m 447(lea)s 4(v)k 3(es)k 1131(scope)s
1775(re)s 3(gions,)k 2626(including)s 3627(actual)s 4295(body)s
4872(parameters)s 6013(and)s 6461(the)s 6852(right)s 7406(parameter)s
8463(of)s 8778(the)s 220 fnt5 0 799(@Open)m 240 fnt1
806 802(operator)m 13(.)k 480 428(As)m 818(the)s 1187(parse)s
1769(proceeds,)s 2747(a)s 2934(complete)s 3888(call)s 4308(graph)s
4932(is)s 5163(constructed,)s 6393(recording,)s 7438(for)s 7797(each)s
8314(symbol,)s 0 140(which)m 633(symbols)s 1472(are)s 1809(in)s 9(v)k 4(ok)k 2(ed)k
2615(within)s 3273(its)s 3539(body)s 15(.)k 4159(Immediately)s
5410(after)s 5896(the)s 6235(last)s 6616(de\207nition)s 7580(is)s
7781(read,)s 8289(the)s 8627(tran-)s
grestore
0 0 0 0 240 288 60 1417 -15423 LoutGr2
0 LoutMargSet
grestore
grestore
grestore
grestore
grestore
pgsave restore
showpage
%%Page: 21 22
%%BeginPageSetup
%%PageResources: font Times-Roman
%%+ font Times-Italic
%%+ font Helvetica
%%+ font Times-Bold
/pgsave save def
%%IncludeResource: font Times-Roman
/Times-Romanfnt1 vec2 /Times-Roman LoutRecode
/fnt1 { /Times-Romanfnt1 LoutFont } def
%%IncludeResource: font Times-Italic
/Times-Italicfnt3 vec2 /Times-Italic LoutRecode
/fnt3 { /Times-Italicfnt3 LoutFont } def
%%IncludeResource: font Helvetica
/Helveticafnt5 vec2 /Helvetica LoutRecode
/fnt5 { /Helveticafnt5 LoutFont } def
%%IncludeResource: font Times-Bold
/Times-Boldfnt2 vec2 /Times-Bold LoutRecode
/fnt2 { /Times-Boldfnt2 LoutFont } def
0.0500 dup scale 10 setlinewidth
%%EndPageSetup
gsave
0 0 translate
240 fnt1 0.0 0.0 0.0 LoutSetRGBColor LoutTextureSolid 11900 16840 0 16840 240 288 60 LoutGraphic
gsave
LoutPageSet
grestore
gsave
0 0 translate
1.0 1.0 1.0 LoutSetRGBColor 11900 16840 0 16840 240 288 60 LoutGraphic
gsave
LoutBox gsave 1.0 1.0 1.0 LoutSetRGBColor fill grestore 0 cm setlinewidth stroke
grestore
gsave
0 16840 translate
0.0000 rotate
0.0 0.0 0.0 LoutSetRGBColor
5714 -1579(-)m 5842(21)s 6117(-)s 9066 13419 0 13310 240 288 60 1417 -15423 LoutGr2
1 LoutMargSet
grestore
0 13256(siti)m 6(v)k 3(e)k
565(closure)s 1312(of)s 1584(the)s 1933(call)s 2334(graph)s
2937(is)s 3148(computed,)s 4200(and)s 4605(used)s 5104(to)s
5344(determine)s 6356(whether)s 7187(each)s 7684(non-)s 8112(parameter)s
0 12968(symbol)m 775(is)s 1001(recursi)s 6(v)k 3(e)k
1939(or)s 2214(recepti)s 6(v)k 3(e)k 3151(\(Section)s
4020(5.1\),)s 4522(and)s 4942(whether)s 5787(each)s 6298(parameter)s
7328(is)s 7554(in)s 9(v)k 4(ok)k 2(ed)k
8385(e)s 3(xactly)k 0 12680(once)m 508(or)s 767(not.)s
480 12306(Purely)m 1188(functional)s 2243(systems)s 3082(may)s 3579(e)s 6(v)k 6(aluate)k
4450(symbol)s 5240(in)s 9(v)k 4(ocations)k 6412(in)s
6686(applicati)s 6(v)k 3(e)k 7812(order)s 8407(\(where)s
0 12018(parameters)m 1092(are)s 1433(e)s 6(v)k 6(aluated)k
2389(before)s 3049(substitution)s 4216(into)s 4635(bodies\),)s 5440(or)s
5693(in)s 5930(normal)s 6656(order)s 7214(\(substitution)s 8460(before)s
0 11730(e)m 6(v)k 6(aluation\),)k 1164(and)s 1562(the)s 3(y)k
2018(may)s 2478(also)s 2909(share)s 3463(the)s 3804(v)s 6(alue)k
4366(of)s 4630(a)s 4790(parameter)s 5798(among)s 6496(all)s
6783(uses)s 7239(of)s 7504(it.)s 7793(But)s 8193(in)s
8429(Basser)s 0 11442(Lout,)m 603(the)s 996(presence)s 1932(of)s
2248(conte)s 3(xt-sensiti)k 6(v)k 3(e)k 3955(style)s
4507(information)s 5736(\(Section)s 6634(2.5\))s 7106(forces)s 7785(normal)s
8562(order)s 0 11154(e)m 6(v)k 6(aluation)k 1041(and)s
1445(pre)s 6(v)k 3(ents)k 2297(sharing)s 3054(of)s
3325(parameter)s 4339(v)s 6(alues.)k 480 10780(T)m 19(o)k
780(e)s 6(v)k 6(aluate)k 1620(an)s 1903(unsized)s
2692(object)s 3336(\(pure)s 3896(parse)s 4456(tree\),)s 4999(its)s
240 fnt3 5275 10782(en)m 9(vir)k 10(onment)k 240 fnt1
6456 10780(,)m 6563(the)s 6911(equi)s 6(v)k 6(alent)k
7955(of)s 8226(the)s 8574(stack)s 0 10492(frames)m 728(in)s
999(Algol-lik)s 2(e)k 2064(languages,)s 3156(must)s 3710(be)s
4020(a)s 4(v)k 6(ailable,)k 5008(containing)s 6099(the)s
6476(actual)s 7129(v)s 6(alues)k 7814(of)s 8113(all)s
8435(formal)s 0 10204(parameters)m 1119(that)s 1558(are)s 1927(visible)s
2641(within)s 3330(the)s 3700(unsized)s 4510(object.)s 5279(En)s 9(vironment)k
6601(handling)s 7513(is)s 7744(a)s 7932(well-kno)s 6(wn)k
0 9916(implementation)m 1557(technique,)s 2594(so)s 2860(it)s 3052(will)s
3478(be)s 3760(discussed)s 4735(only)s 5215(brie\210y)s 5893(here.)s
480 9542(En)m 9(vironments)k 1894(are)s 2272(e)s 3(xtra)k
2837(subtrees)s 3702(hung)s 4265(from)s 4820(the)s 5199(objects)s
5958(the)s 3(y)k 6451(refer)s 6991(to.)s 7372(This)s
7879(or)s 4(g)k 1(anization)k 0 9254(mak)m 2(es)k
668(e)s 3(xcellent)k 1595(use)s 1978(of)s 2257(the)s
2613(ordered)s 3409(dag)s 3816(to)s 4063(permit)s 4754(en)s 9(vironments)k
6106(to)s 6353(be)s 6643(shared,)s 7382(and)s 7794(deleted)s
8550(when)s 0 8966(the)m 339(last)s 721(reference)s 1655(to)s
1885(them)s 2413(is)s 2614(remo)s 3(v)k 3(ed.)k
3600(Se)s 6(v)k 3(eral)k 4353(optimizations)s 5695(ha)s 4(v)k 3(e)k
6187(been)s 6687(implemented.)s 8090(Actual)s 8772(pa-)s 0 8678(rameters)m
860(kno)s 6(wn)k 1552(to)s 1778(be)s 2048(in)s 9(v)k 4(ok)k 2(ed)k
2850(only)s 3318(once)s 3814(are)s 4148(mo)s 3(v)k 3(ed)k
4840(in)s 5070(from)s 5582(the)s 5918(en)s 9(vironment,)k
7212(not)s 7566(copied;)s 8303(cop)s 2(ying)k 0 8390(could)m
581(lead)s 1028(to)s 1258(quadratic)s 2191(time)s 2662(comple)s 3(xity)k 15(.)k
3875(Actual)s 4558(parameters)s 5647(of)s 5909(the)s 6248(form)s
220 fnt5 6763 8387(@Ne)m 6(xt)k 240 fnt3 7478 8392(object)m
240 fnt1 8117 8390(recei)m 6(v)k 3(e)k 8843(an)s
0 8102(applicati)m 6(v)k 3(e)k 1105(pre-)s 1478(e)s 6(v)k 6(aluation)k
2529(which)s 3181(pre)s 6(v)k 3(ents)k 4044(long)s
4533(chains)s 5205(of)s 220 fnt5 5486 8099(@Ne)m 6(xt)k
240 fnt1 6221 8102(symbols)m 7080(from)s 7614(forming)s 8448(during)s
0 7814(the)m 359(generation)s 1437(of)s 1719(lar)s 4(ge)k
2260(page)s 2779(numbers.)s 3779(Some)s 4391(en)s 9(vironments)k
5747(which)s 6400(pro)s 3(v)k 6(ably)k 7308(contrib)s 4(ute)k
8341(nothing)s 0 7526(are)m 344(deleted,)s 1137(most)s 1659(notably)s
2427(when)s 3000(a)s 3162(symbol)s 3918(in)s 9(v)k 4(ocation)k
4969(has)s 5335(no)s 5625(symbols)s 6470(within)s 7135(its)s
7407(actual)s 8028(parameters)s 0 7238(and)m 406(no)s 702(import)s
1402(list,)s 1803(so)s 2071(that)s 2492(only)s 2975(the)s
3326(en)s 9(vironment)k 4589(of)s 4862(its)s 5141(body)s
5678(need)s 6191(be)s 6476(k)s 2(ept;)k 7000(this)s
7399(sa)s 4(v)k 3(es)k 7964(a)s 8133(great)s
8673(deal)s 0 6950(of)m 271(space)s 858(when)s 1434(objects)s
2162(with)s 2644(en)s 9(vironments)k 3988(are)s 4335(written)s
5068(to)s 5307(auxiliary)s 6210(\207les)s 6659(\(Section)s 7512(6.1\).)s
240 fnt2 0 6157(4.)m 291(Implementation)s 1979(of)s 2251(the)s
2625(functional)s 3715(subset)s
[ /Dest /LOUTfunctional /DEST pdfmark
240 fnt1 480 5680(The)m 941(objects)s
1702(and)s 2139(de\207nitions)s 3233(of)s 3537(Lout)s 4082(are)s
4462(v)s 3(ery)k 4971(similar)s 5726(to)s 5998(those)s
6592(found)s 7242(in)s 7518(other)s 8102(functional)s 0 5392(languages,)m
1085(and)s 1510(the)s 3(y)k 1994(form)s 2539(a)s
2726(natural)s 3465(subset)s 4144(of)s 4436(the)s 4805(language.)s
5854(So)s 6181(we)s 6537(pause)s 7159(here)s 7647(and)s
8072(present)s 8843(an)s 0 5104(o)m 3(v)k 3(ervie)k 6(w)k
932(of)s 1203(the)s 1551(Basser)s 2248(Lout)s 2760(object)s
3404(e)s 6(v)k 6(aluation)k 4445(algorithm.)s 480 4730(The)m
922(problem)s 1794(is)s 2019(to)s 2272(tak)s 2(e)k
2739(an)s 3037(unsized)s 3841(object)s 4499(\(pure)s 5074(parse)s
5649(tree\),)s 6206(its)s 6497(en)s 9(vironment)k 7772(\(Section)s
8640(3.4\),)s 0 4442(and)m 404(its)s 681(style)s 1188(\(Section)s
2042(2.5\),)s 2528(and)s 2933(to)s 3173(produce)s 4000(a)s
4167(PostScript)s 5209(\207le)s 5571(for)s 5910(rendering)s 6879(the)s
7228(object)s 7872(on)s 8170(an)s 8454(output)s 0 4154(de)m 6(vice.)k
786(This)s 1267(\207le)s 1632(is)s 1847(essentially)s 2914(a)s
3084(sequence)s 4022(of)s 4298(instructions)s 5468(to)s 5712(print)s
6227(a)s 6398(gi)s 6(v)k 3(en)k 6983(string)s
7584(of)s 7860(characters)s 8883(in)s 0 3866(a)m 166(gi)s 6(v)k 3(en)k
746(font)s 1191(at)s 1423(a)s 1589(gi)s 6(v)k 3(en)k
2169(point.)s 480 3492(Before)m 1189(the)s 1541(algorithm)s 2534(be)s 3(gins,)k
3266(the)s 3618(parse)s 4182(tree)s 4599(must)s 5127(be)s
5413(obtained,)s 6348(either)s 6955(by)s 7252(parsing)s 8013(input)s
8569(or)s 8832(by)s 0 3204(cop)m 2(ying)k 823(from)s
1347(the)s 1695(symbol)s 2455(table.)s 3082(Afterw)s 2(ards)k
4205(the)s 4553(data)s 5011(structure)s 5901(must)s 6426(be)s
6708(disposed.)s 7710(The)s 8137(algorithm)s 0 2916(proper)m 692(consists)s
1508(of)s 1787(\207v)s 3(e)k 2207(passes,)s 2933(each)s
3437(a)s 3611(recursi)s 6(v)k 3(e)k 4541(tra)s 4(v)k 3(ersal)k
5418(of)s 5697(the)s 6054(structure)s 6953(from)s 7485(the)s
7841(root)s 8294(do)s 6(wn)k 8887(to)s 0 2628(the)m
348(lea)s 4(v)k 3(es)k 989(and)s 1393(back.)s
240 fnt3 0 2174(1.)m 330(Evaluation)s 1490(of)s 1827(unsized)s
2667(objects.)s 240 fnt1 3554 2172(On)m 3960(the)s 4364(w)s 2(ay)k
4871(do)s 6(wn,)k 5561(calculate)s 6521(en)s 9(vironments)k
7921(and)s 8381(replace)s 0 1884(non-recursi)m 6(v)k 3(e,)k
1404(non-recepti)s 6(v)k 3(e)k 2757(symbols)s 3598(by)s
3884(their)s 4373(bodies)s 5041(\(Section)s 5886(3.4\);)s 6369(broadcast)s
7337(fonts)s 7858(to)s 8089(the)s 8429(lea)s 4(v)k 3(es,)k
0 1596(and)m 409(paragraph)s 1427(breaking)s 2322(and)s 2731(spacing)s
3521(styles)s 4121(to)s 4365(the)s 4718(paragraph)s 5736(nodes.)s
6465(On)s 6820(the)s 7173(w)s 2(ay)k 7629(back)s
8147(up,)s 8500(delete)s 240 fnt3 0 1310(FONT)m 240 fnt1
630 1308(,)m 240 fnt3 737 1310(BREAK)m 240 fnt1 1494 1308(,)m
1601(and)s 240 fnt3 2005 1310(SP)m 21(A)k 7(CE)k
240 fnt1 2760 1308(nodes,)m 3426(and)s 3830(insert)s 240 fnt3
4420 1310(SPLIT)m 240 fnt1 5049 1308(,)m 240 fnt3 5156 1310(COL)m
240 fnt1 5622 1308(,)m 5729(and)s 240 fnt3 6133 1310(R)m 9(O)k 12(W)k
240 fnt1 6707 1308(nodes)m 7317(\(Section)s 8170(2.3\).)s 240 fnt3
0 815(2.)m 293(W)s 13(idth)k 925(calculations)s 2169(and)s
2614(br)s 8(eaking)k 3(.)k 240 fnt1 3628 813(Calculate)m
4605(the)s 4973(width)s 5594(of)s 5885(e)s 6(v)k 3(ery)k
6480(subobject)s 7477(from)s 8020(the)s 8388(bottom)s 0 525(up.)m
404(As)s 720(described)s 1693(in)s 1936(Section)s 2709(2.3,)s
240 fnt3 3115 527(WIDE)m 240 fnt1 3777 525(nodes)m 4386(may)s
4851(trigger)s 5547(object)s 6190(breaking)s 7079(sub-tra)s 4(v)k 3(ersals)k
8448(during)s 0 237(this)m 396(pass.)s
grestore
0 0 0 0 240 288 60 1417 -15423 LoutGr2
1 LoutMargSet
grestore
grestore
grestore
grestore
grestore
pgsave restore
showpage
%%Page: 22 23
%%BeginPageSetup
%%PageResources: font Times-Roman
%%+ font Times-Italic
%%+ font Times-Bold
%%+ font Helvetica
/pgsave save def
%%IncludeResource: font Times-Roman
/Times-Romanfnt1 vec2 /Times-Roman LoutRecode
/fnt1 { /Times-Romanfnt1 LoutFont } def
%%IncludeResource: font Times-Italic
/Times-Italicfnt3 vec2 /Times-Italic LoutRecode
/fnt3 { /Times-Italicfnt3 LoutFont } def
%%IncludeResource: font Times-Bold
/Times-Boldfnt2 vec2 /Times-Bold LoutRecode
/fnt2 { /Times-Boldfnt2 LoutFont } def
%%IncludeResource: font Helvetica
/Helveticafnt5 vec2 /Helvetica LoutRecode
/fnt5 { /Helveticafnt5 LoutFont } def
0.0500 dup scale 10 setlinewidth
%%EndPageSetup
gsave
0 0 translate
240 fnt1 0.0 0.0 0.0 LoutSetRGBColor LoutTextureSolid 11900 16840 0 16840 240 288 60 LoutGraphic
gsave
LoutPageSet
grestore
gsave
0 0 translate
1.0 1.0 1.0 LoutSetRGBColor 11900 16840 0 16840 240 288 60 LoutGraphic
gsave
LoutBox gsave 1.0 1.0 1.0 LoutSetRGBColor fill grestore 0 cm setlinewidth stroke
grestore
gsave
0 16840 translate
0.0000 rotate
0.0 0.0 0.0 LoutSetRGBColor
5705 -1579(-)m 5833(22)s 6127(-)s 9066 13419 0 13308 240 288 60 1417 -15423 LoutGr2
0 LoutMargSet
grestore
240 fnt3 0 13256(3.)m
274(Height)s 989(calculations.)s 240 fnt1 2312 13254(Calculate)m 3270(the)s
3618(height)s 4276(of)s 4547(e)s 6(v)k 3(ery)k
5123(subobject,)s 6147(from)s 6671(the)s 7019(bottom)s 7757(up.)s
240 fnt3 0 12751(4.)m 283(Horizontal)s 1389(coor)s 8(dinates.)k
240 fnt1 2674 12749(Calculate)m 3641(the)s 3998(horizontal)s 5032(coordinate)s
6106(of)s 6386(each)s 6890(subobject)s 7876(from)s 8409(the)s
8767(top)s 0 12461(do)m 6(wn,)k 634(and)s 1038(store)s
1558(each)s 2053(leaf)s -13(')k 13(s)k 2633(coordinate)s
3698(in)s 3941(the)s 4289(leaf.)s 240 fnt3 0 11977(5.)m
295(V)s 26(ertical)k 1119(coor)s 8(dinates)k 2317(and)s
2765(P)s 19(ostScript)k 3827(g)s 2(ener)k 3(ation.)k
240 fnt1 5034 11975(Calculate)m 6013(the)s 6383(v)s 3(ertical)k
7171(coordinate)s 8257(of)s 8550(e)s 6(v)k 3(ery)k
0 11687(subobject)m 981(from)s 1509(the)s 1861(top)s 2224(do)s 6(wn,)k
2862(and)s 3270(at)s 3506(each)s 4005(leaf,)s 4473(retrie)s 6(v)k 3(e)k
5252(the)s 5604(character)s 6542(string,)s 7197(font,)s 7693(and)s
8102(horizontal)s 0 11399(coordinate,)m 1116(and)s 1520(print)s 2031(the)s
2379(PostScript)s 3421(instruction)s 4500(for)s 4838(rendering)s 5807(that)s
6225(leaf.)s 0 10896(Figure)m 692(3)s 869(gi)s 6(v)k 3(es)k
1428(the)s 1789(amount)s 2579(of)s 2863(code)s 3383(required)s
4250(for)s 4600(each)s 5168(pass.)s 5756(Symmetry)s 6819(between)s
7685(horizontal)s 8722(and)s 0 10608(v)m 3(ertical)k 764(is)s
971(e)s 3(xploited)k 1913(throughout)s 3021(Basser)s 3715(Lout,)s
4271(and)s 4672(passes)s 5331(2)s 5502(and)s 5903(3,)s
6127(as)s 6374(well)s 6837(as)s 7084(4)s 7255(and)s
7656(5,)s 7880(are)s 8224(e)s 3(x)k 3(ecuted)k
0 10320(on)m 297(shared)s 979(code.)s 480 9946(The)m 929(author)s
1621(can)s 2031(see)s 2413(no)s 2728(simple)s 3442(w)s 2(ay)k
3914(to)s 4174(reduce)s 4888(the)s 5258(number)s 6070(of)s
6362(passes.)s 7158(The)s 7607(introduction)s 8855(of)s 0 9658(horizontal)m
1027(g)s 1(alle)k 3(ys)k 1755(\(Section)s 2612(5.5\))s
3044(w)s 2(ould)k 3703(remo)s 3(v)k 3(e)k
4474(the)s 4826(need)s 5340(for)s 5682(the)s 6034(object)s
6682(breaking)s 7576(transformations)s 0 9370(within)m 700(this)s 1128(algorithm)s
2149(that)s 2599(are)s 2978(the)s 3359(principal)s 4295(obstacles)s
5254(in)s 5529(the)s 5909(w)s 2(ay)k 6393(of)s
6696(the)s 7076(mer)s 4(ging)k 7954(of)s 8257(passes)s
8952(2)s 0 9082(and)m 404(3.)s 240 fnt2 0 8338(5.)m
291(Galleys)s
[ /Dest /LOUT18_694_s5_0_1 /DEST pdfmark
240 fnt1 480 7861(W)m 9(ith)k 1022(objects)s
1767(and)s 2188(de\207nitions)s 3266(under)s 3888(control,)s 4689(the)s
5053(author)s 5741(f)s 2(aced)k 6331(the)s 6696(problem)s
7570(of)s 7858(getting)s 8592(body)s 0 7573(te)m 3(xt,)k
478(footnotes,)s 1491(\210oating)s 2291(\207gures)s 3009(and)s 3429(tables,)s
4109(references,)s 5213(inde)s 3(x)k 5813(entries,)s 6572(and)s
6992(entries)s 7695(in)s 7954(the)s 8318(table)s 8855(of)s
0 7285(contents)m 844(into)s 1264(their)s 1757(places.)s 2513(The)s
2937(resulting)s 3821(in)s 9(v)k 3(estig)k 1(ation)k
5095(occupied)s 6013(three)s 6541(months)s 7293(of)s 7559(full-time)s
8444(design)s 0 6997(w)m 2(ork,)k 612(and)s 1031(proceeded)s
2088(approximately)s 3538(as)s 3803(described)s 4793(in)s 5051(Section)s
5840(5.1;)s 6268(the)s 6631(implementation)s 8204(occupied)s 0 6709(the)m
348(years)s 903(1987-89.)s 240 fnt2 0 6060(5.1.)m 471(The)s
926(galley)s 1580(abstraction)s
[ /Dest /LOUTgalleys /DEST pdfmark
240 fnt1 480 5583(Let)m 870(us)s
1147(tak)s 2(e)k 1611(the)s 1972(footnote)s 2838(as)s
3100(a)s 3279(representati)s 6(v)k 3(e)k 4677(e)s 3(xample.)k
5661(At)s 5973(some)s 6546(point)s 7111(in)s 7366(the)s
7727(document,)s 8791(we)s 0 5295(wish)m 509(to)s 748(write)s
220 fnt5 480 4847(preceding te)m 6(xt)k 480 4559(@F)m 6(ootNote { f)k 6(ootnote te)k 6(xt })k
480 4271(f)m 6(ollo)k 3(wing te)k 6(xt)k 240 fnt1
0 3772(and)m 406(we)s 744(e)s 3(xpect)k 1428(the)s
1779(formatter)s 2729(to)s 2971(remo)s 3(v)k 3(e)k
3741(the)s 4092(footnote)s 4947(from)s 5474(this)s 5873(conte)s 3(xt)k
6637(and)s 7044(place)s 7607(it)s 7802(at)s 8037(the)s
8388(bottom)s 0 3484(of)m 282(the)s 641(current)s 1388(page,)s
1958(possibly)s 2821(splitting)s 3668(some)s 4240(or)s 4510(all)s
4814(of)s 5096(it)s 5299(onto)s 5789(a)s 5966(follo)s 6(wing)k
6954(page)s 7473(if)s 7701(space)s 8299(is)s 8520(insuf-)s
0 3196(\207cient.)m 480 2822(An)m 844(object)s 1503(appears)s 2298(in)s
2556(the)s 2918(\207nal)s 3413(document)s 4431(at)s 4678(the)s
5040(point)s 5607(it)s 5813(is)s 6038(in)s 9(v)k 4(ok)k 2(ed,)k
6916(b)s 4(ut)k 7293(this)s 7703(basic)s 8262(property)s
0 2534(does)m 503(not)s 882(hold)s 1379(for)s 1730(footnotes:)s
2799(the)s 3160(point)s 3725(of)s 4009(in)s 9(v)k 4(ocation)k
5076(and)s 5493(the)s 5854(point)s 6419(of)s 6703(appearance)s
7847(are)s 8207(dif)s 6(ferent.)k 0 2246(In)m 254(some)s
813(w)s 2(ay)k 15(,)k 1299(the)s 1645(footnote)s
2496(is)s 2703(attached)s 3555(to)s 3791(the)s 4137(document)s
5139(at)s 5368(both)s 5849(points,)s 6539(introducing)s 7692(a)s
7856(cross)s 8395(linking)s 0 1958(\(Section)m 853(2.1\))s 1281(that)s
1699(cannot)s 2397(be)s 2679(described)s 3653(in)s 3896(purely)s
4561(functional)s 5585(terms.)s 480 1584(Since)m 1069(the)s 1420(interpretation)s
2766(of)s 3040(an)s 3(y)k 3440(object)s 4087(depends)s
4926(on)s 5226(an)s 5512(en)s 9(vironment)k 6775(and)s
7182(style)s 7692(inherited)s 8602(from)s 0 1296(the)m 347(conte)s 3(xt,)k
1153(the)s 1499(\207rst)s 1929(question)s 2795(must)s 3318(be)s
3598(whether)s 4427(the)s 4773(footnote)s 5624(inherits)s 6390(them)s
6926(through)s 7726(the)s 8072(in)s 9(v)k 4(ocation)k
0 1008(point)m 552(or)s 811(through)s 1613(the)s 1961(point\(s\))s
2753(of)s 3024(appearance.)s 480 634(If)m 697(symbols)s 1533(are)s
1867(to)s 2092(be)s 2361(interpreted)s 3440(statically)s 4341(as)s
4578(heretofore,)s 5653(then)s 6108(en)s 9(vironments)k 7439(must)s
7951(be)s 8219(inherited)s 0 346(through)m 829(the)s 1204(in)s 9(v)k 4(ocation)k
2285(point)s 2865(alone.)s 3574(Dynamic)s 4531(inheritance)s 5675(through)s
6505(the)s 6880(point)s 7459(of)s 7757(appearance)s 8916(is)s
0 58(enticing)m 836(in)s 1092(some)s 1666(w)s 2(ays:)k
2335(it)s 2541(might)s 3172(replace)s 3930(the)s 4291(body)s
4838(parameter)s 9(,)k 5904(and)s 6321(it)s 6526(might)s
7157(help)s 7635(with)s 8131(automatic)s
grestore
0 0 0 0 240 288 60 1417 -15423 LoutGr2
0 LoutMargSet
grestore
grestore
grestore
grestore
grestore
pgsave restore
showpage
%%Page: 23 24
%%BeginPageSetup
%%PageResources: font Times-Roman
%%+ font Times-Italic
%%+ font Times-Bold
/pgsave save def
%%IncludeResource: font Times-Roman
/Times-Romanfnt1 vec2 /Times-Roman LoutRecode
/fnt1 { /Times-Romanfnt1 LoutFont } def
%%IncludeResource: font Times-Italic
/Times-Italicfnt3 vec2 /Times-Italic LoutRecode
/fnt3 { /Times-Italicfnt3 LoutFont } def
%%IncludeResource: font Times-Bold
/Times-Boldfnt2 vec2 /Times-Bold LoutRecode
/fnt2 { /Times-Boldfnt2 LoutFont } def
0.0500 dup scale 10 setlinewidth
%%EndPageSetup
gsave
0 0 translate
240 fnt1 0.0 0.0 0.0 LoutSetRGBColor LoutTextureSolid 11900 16840 0 16840 240 288 60 LoutGraphic
gsave
LoutPageSet
grestore
gsave
0 0 translate
1.0 1.0 1.0 LoutSetRGBColor 11900 16840 0 16840 240 288 60 LoutGraphic
gsave
LoutBox gsave 1.0 1.0 1.0 LoutSetRGBColor fill grestore 0 cm setlinewidth stroke
grestore
gsave
0 16840 translate
0.0000 rotate
0.0 0.0 0.0 LoutSetRGBColor
5710 -1579(-)m 5838(23)s 6122(-)s 9066 13416 0 13416 240 288 60 1417 -15423 LoutGr2
1 LoutMargSet
grestore
1659 13218(1.)m 2163(Initialization)s
7172(200)s 1659 12930(2.)m 2163(Memory)s 3041(allocation,)s 4090(ordered)s
4878(dag)s 5277(operations)s 7172(400)s 1659 12642(3.)m 2163(Le)s 3(xical)k
2931(analysis,)s 3808(macros,)s 4605(\207le)s 4966(handling)s 6992(1,350)s
1659 12354(4.)m 2163(P)s 3(arsing)k 2930(of)s 3201(objects)s
3929(and)s 4333(de\207nitions)s 6992(1,150)s 1659 12066(5.)m 2163(Symbol)s
2963(table)s 3483(and)s 3887(call)s 4286(graph)s 7172(600)s
1659 11778(6.)m 2163(Ev)s 6(aluation)k 3250(of)s 3521(pure)s
4002(parse)s 4562(trees)s 6992(1,650)s 1659 11490(7.)m 2163(Reading,)s
3068(storing,)s 3839(and)s 4243(scaling)s 4973(of)s 5244(fonts)s
7172(600)s 1659 11202(8.)m 2163(Cross)s 2759(references)s 3790(and)s
4194(databases)s 6992(1,000)s 1659 10914(9.)m 2163(W)s 9(idth)k
2809(and)s 3213(height)s 3871(calculations,)s 5119(and)s 5523(breaking)s
7172(700)s 1539 10626(10.)m 240 fnt3 2163 10628(Constr)m 3(ained)k
240 fnt1 3410 10626(and)m 240 fnt3 3814 10628(AdjustSize)m 240 fnt1
7172 10626(700)m 1539 10338(11.)m 2163(T)s 8(ransfer)k 3023(of)s
3294(sized)s 3843(objects)s 4571(into)s 4996(g)s 1(alle)k 3(y)k
5630(tree)s 7172(450)s 1539 10050(12.)m 2163(Galle)s 3(y)k
2851(\210ushing)s 3676(algorithm)s 6992(1,500)s 1539 9762(13.)m 2163(Coordinate)s
3282(calculations)s 4474(and)s 4878(PostScript)s 5920(output)s 7172(700)s
1539 9474(14.)m 2163(Deb)s 4(ugging)k 3277(and)s 3681(error)s
4204(handling)s 6992(1,200)s 655 0 0 0 240 288 60 6872 9328 LoutGr2
0.5 pt ltabhs
grestore
grestore
6872 9074(12,200)m
[ /Dest /LOUTcomponents /DEST pdfmark
200 fnt2 41 8421(Figur)m 3(e)k
649(3.)s 200 fnt1 891 8422(Major)m 1427(components)s 2432(of)s
2658(the)s 2947(Basser)s 3526(Lout)s 3953(interpreter)s 8(,)k
4861(sho)s 5(wing)k 5576(the)s 5865(approximate)s 6906(number)s
7565(of)s 7791(lines)s 8208(of)s 8434(C)s 8611(code.)s
240 fnt1 0 7791(numbering,)m 1163(since)s 1730(the)s 2097(number)s
2908(of)s 3198(a)s 3384(footnote)s 4256(is)s 4486(kno)s 6(wn)k
5209(only)s 5709(at)s 5960(the)s 6328(point)s 6899(of)s
7190(appearance;)s 8396(b)s 4(ut)k 8778(the)s 0 7503(implementation)m
1606(problems)s 2597(are)s 2993(se)s 6(v)k 3(ere,)k
3751(and)s 4204(static)s 4810(inheritance)s 5976(seems)s 6661(much)s
7299(simpler)s 8125(and)s 8579(more)s 0 7215(comprehensible)m 1572(to)s
1814(the)s 2165(user)s 13(.)k 2716(Style,)s 3317(at)s
3552(least)s 4052(its)s 4330(a)s 4(v)k 6(ailable)k
5241(width)s 5846(and)s 6253(height)s 6913(part,)s 7394(must)s
7922(of)s 8196(necessity)s 0 6927(be)m 268(inherited)s 1160(through)s
1947(the)s 2280(point)s 2817(of)s 3073(appearance.)s 4297(F)s 3(or)k
4671(consistenc)s 3(y)k 15(,)k 5861(the)s 6194(entire)s
6778(style)s 7270(should)s 7952(be)s 8219(inherited)s 0 6639(in)m
256(this)s 666(w)s 2(ay)k 15(.)k 1226(There)s
1853(is)s 2077(a)s 2257(suggesti)s 6(v)k 3(e)k
3328(analogy)s 4154(here)s 4635(with)s 5131(actual)s 5770(parameters,)s
6938(which)s 7594(ha)s 4(v)k 3(e)k 8109(a)s
8289(point)s 8855(of)s 0 6351(in)m 9(v)k 4(ocation)k
1060(from)s 1591(which)s 2240(the)s 3(y)k 2710(inherit)s
3400(an)s 3690(en)s 9(vironment,)k 5004(and)s 5414(a)s
5587(point)s 6146(of)s 6424(appearance)s 7562(within)s 8237(the)s
8592(body)s 0 6063(of)m 265(the)s 606(enclosing)s 1569(de\207nition,)s
2587(from)s 3104(which)s 3739(the)s 3(y)k 4196(inherit)s
4872(a)s 5031(style.)s 5639(It)s 5838(may)s 6297(be)s
6572(possible)s 7406(to)s 7638(treat)s 8114(a)s 8273(footnote)s
0 5775(as)m 250(the)s 598(actual)s 1223(parameter)s 2237(of)s
2508(some)s 3069(symbol,)s 3881(therefore,)s 4849(although)s 5744(the)s
6092(details)s 6766(seem)s 7317(v)s 3(ery)k 7793(obscure.)s
480 5401(But)m 881(the)s 1224(most)s 1744(profound)s 2674(consequence)s
3948(of)s 4214(ha)s 4(ving)k 4910(tw)s 2(o)k
5314(types)s 5865(of)s 6131(attachment)s 7234(point)s 7780(is)s
7985(that)s 8398(it)s 8584(leads)s 0 5113(to)m 261(tw)s 2(o)k
693(distincti)s 6(v)k 3(e)k 1757(tree)s 2192(structures.)s
3306(Considering)s 4551(in)s 9(v)k 4(ocation)k 5627(points)s
6285(only)s 6787(leads)s 7351(to)s 7612(static)s 8190(trees)s
8714(lik)s 2(e)k 0 4825(this)m 396(one:)s gsave
480 2539 translate
240 fnt3
3666 1996 170 1715 240 288 60 LoutGraphic
gsave
grestore save gsave 200 dict begin lfigdict begin
grestore
1117 1273 170 993 240 288 60 0 0 LoutGr2
currentdict end 200 dict begin begin
grestore
1117 1273 170 993 240 288 60 0 0 LoutGr2
currentdict end 200 dict begin begin
grestore
1117 551 170 272 240 288 60 0 721 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigellipse ] lfigdopath
pop pop
grestore
170 220(footnote)m
grestore
(T) lfigpromotelabels
grestore
(L) lfigpromotelabels
grestore
1206 553 170 272 240 288 60 1230 1443 LoutGr2
currentdict end 200 dict begin begin
grestore
1206 553 170 272 240 288 60 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigellipse ] lfigdopath
pop pop
grestore
170 220(body)m 692(te)s 4(xt)k
grestore
(T) lfigpromotelabels
grestore
0 0 0 0 240 288 60 2436 1715 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ L@T@CTR L@T@CTR T@CTR lfigangle L@T@CIRCUM lfigpadd lfigprevious /FROM lfigpointdef
T@CTR T@CTR L@T@CTR lfigangle T@CIRCUM lfigpadd lfigprevious /TO lfigpointdef ] lfigdopath
pop pop
grestore
grestore
1117 1273 0 993 240 288 60 2549 0 LoutGr2
currentdict end 200 dict begin begin
grestore
1001 552 170 272 240 288 60 116 721 LoutGr2
currentdict end 200 dict begin begin
grestore
884 552 170 272 240 288 60 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigellipse ] lfigdopath
pop pop
grestore
170 220(\207gur)m 8(e)k
grestore
(T) lfigpromotelabels
grestore
1117 551 170 272 240 288 60 0 0 LoutGr2
currentdict end 200 dict begin begin
grestore
1117 551 170 272 240 288 60 0 0 LoutGr2
currentdict end 200 dict begin begin
grestore
1117 551 170 272 240 288 60 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigellipse ] lfigdopath
pop pop
grestore
170 220(footnote)m
grestore
(T) lfigpromotelabels
grestore
(S) lfigpromotelabels
grestore
0 0 0 0 240 288 60 1117 272 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ S@T@CTR S@T@CTR T@CTR lfigangle S@T@CIRCUM lfigpadd lfigprevious /FROM lfigpointdef
T@CTR T@CTR S@T@CTR lfigangle T@CIRCUM lfigpadd lfigprevious /TO lfigpointdef ] lfigdopath
pop pop
grestore
grestore
(R) lfigpromotelabels
grestore
0 0 0 0 240 288 60 3666 1715 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ R@T@CTR R@T@CTR T@CTR lfigangle R@T@CIRCUM lfigpadd lfigprevious /FROM lfigpointdef
T@CTR T@CTR R@T@CTR lfigangle T@CIRCUM lfigpadd lfigprevious /TO lfigpointdef ] lfigdopath
pop pop
grestore
grestore
end end restore
grestore
0 2088(which)m 663(sho)s 6(ws)k 1329(that)s
1769(the)s 2139(body)s 2695(te)s 3(xt)k 3131(contains)s
4001(a)s 4189(footnote)s 5064(and)s 5490(a)s 5677(\207gure,)s
6364(the)s 6734(latter)s 7305(itself)s 7875(containing)s 8960(a)s
0 1800(footnote.)m 961(Considering)s 2184(points)s 2820(of)s 3091(appearance)s
4222(only)s 4702(gi)s 6(v)k 3(es)k 5249(a)s
5415(completely)s 6531(dif)s 6(ferent,)k 7453(dynamic)s 8330(tree:)s
gsave
480 186 translate
240 fnt3 4663 1274 0 995 240 288 60 LoutGraphic
gsave
grestore save gsave 200 dict begin lfigdict begin
grestore
3382 551 170 272 240 288 60 1281 723 LoutGr2
currentdict end 200 dict begin begin
grestore
2101 551 170 272 240 288 60 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigellipse ] lfigdopath
pop pop
grestore
170 220(sequence)m 1100(of)s 1381(pa)s 2(g)k 2(es)k
grestore
(T) lfigpromotelabels
grestore
1206 553 170 272 240 288 60 0 0 LoutGr2
currentdict end 200 dict begin begin
grestore
1206 553 170 272 240 288 60 0 0 LoutGr2
currentdict end 200 dict begin begin
grestore
1206 553 170 272 240 288 60 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigellipse ] lfigdopath
pop pop
grestore
170 220(body)m 692(te)s 4(xt)k
grestore
(T) lfigpromotelabels
grestore
(S) lfigpromotelabels
grestore
0 0 0 0 240 288 60 1206 272 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ S@T@CTR S@T@CTR T@CTR lfigangle S@T@CIRCUM lfigpadd lfigprevious /FROM lfigpointdef
T@CTR T@CTR S@T@CTR lfigangle T@CIRCUM lfigpadd lfigprevious /TO lfigpointdef ] lfigdopath
pop pop
grestore
grestore
1117 553 170 272 240 288 60 1319 0 LoutGr2
currentdict end 200 dict begin begin
grestore
1117 553 170 272 240 288 60 0 0 LoutGr2
currentdict end 200 dict begin begin
grestore
1117 551 170 272 240 288 60 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigellipse ] lfigdopath
pop pop
grestore
170 220(footnote)m
grestore
(T) lfigpromotelabels
grestore
(S) lfigpromotelabels
grestore
0 0 0 0 240 288 60 2436 272 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ S@T@CTR S@T@CTR T@CTR lfigangle S@T@CIRCUM lfigpadd lfigprevious /FROM lfigpointdef
T@CTR T@CTR S@T@CTR lfigangle T@CIRCUM lfigpadd lfigprevious /TO lfigpointdef ] lfigdopath
pop pop
grestore
grestore
884 553 170 272 240 288 60 2549 0 LoutGr2
currentdict end 200 dict begin begin
grestore
884 553 170 272 240 288 60 0 0 LoutGr2
currentdict end 200 dict begin begin
grestore
884 552 170 272 240 288 60 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigellipse ] lfigdopath
pop pop
grestore
170 220(\207gur)m 8(e)k
grestore
(T) lfigpromotelabels
grestore
(S) lfigpromotelabels
grestore
0 0 0 0 240 288 60 3433 272 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ S@T@CTR S@T@CTR T@CTR lfigangle S@T@CIRCUM lfigpadd lfigprevious /FROM lfigpointdef
T@CTR T@CTR S@T@CTR lfigangle T@CIRCUM lfigpadd lfigprevious /TO lfigpointdef ] lfigdopath
pop pop
grestore
grestore
1117 553 170 272 240 288 60 3546 0 LoutGr2
currentdict end 200 dict begin begin
grestore
1117 553 170 272 240 288 60 0 0 LoutGr2
currentdict end 200 dict begin begin
grestore
1117 551 170 272 240 288 60 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigellipse ] lfigdopath
pop pop
grestore
170 220(footnote)m
grestore
(T) lfigpromotelabels
grestore
(S) lfigpromotelabels
grestore
0 0 0 0 240 288 60 4663 272 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ S@T@CTR S@T@CTR T@CTR lfigangle S@T@CIRCUM lfigpadd lfigprevious /FROM lfigpointdef
T@CTR T@CTR S@T@CTR lfigangle T@CIRCUM lfigpadd lfigprevious /TO lfigpointdef ] lfigdopath
pop pop
grestore
grestore
end end restore
grestore
grestore
0 0 0 0 240 288 60 1417 -15423 LoutGr2
1 LoutMargSet
grestore
grestore
grestore
grestore
grestore
pgsave restore
showpage
%%Page: 24 25
%%BeginPageSetup
%%PageResources: font Times-Roman
%%+ font Times-Italic
%%+ font Helvetica
%%+ font Times-Bold
/pgsave save def
%%IncludeResource: font Times-Roman
/Times-Romanfnt1 vec2 /Times-Roman LoutRecode
/fnt1 { /Times-Romanfnt1 LoutFont } def
%%IncludeResource: font Times-Italic
/Times-Italicfnt3 vec2 /Times-Italic LoutRecode
/fnt3 { /Times-Italicfnt3 LoutFont } def
%%IncludeResource: font Helvetica
/Helveticafnt5 vec2 /Helvetica LoutRecode
/fnt5 { /Helveticafnt5 LoutFont } def
%%IncludeResource: font Times-Bold
/Times-Boldfnt2 vec2 /Times-Bold LoutRecode
/fnt2 { /Times-Boldfnt2 LoutFont } def
0.0500 dup scale 10 setlinewidth
%%EndPageSetup
gsave
0 0 translate
240 fnt1 0.0 0.0 0.0 LoutSetRGBColor LoutTextureSolid 11900 16840 0 16840 240 288 60 LoutGraphic
gsave
LoutPageSet
grestore
gsave
0 0 translate
1.0 1.0 1.0 LoutSetRGBColor 11900 16840 0 16840 240 288 60 LoutGraphic
gsave
LoutBox gsave 1.0 1.0 1.0 LoutSetRGBColor fill grestore 0 cm setlinewidth stroke
grestore
gsave
0 16840 translate
0.0000 rotate
0.0 0.0 0.0 LoutSetRGBColor
5705 -1579(-)m 5833(24)s 6127(-)s 9066 13419 0 13419 240 288 60 1417 -15423 LoutGr2
0 LoutMargSet
grestore
0 13256(The)m 468(tree)s
921(can)s 1351(be)s 1673(deeper)s 9(,)k 2448(for)s
2827(e)s 3(xample)k 3730(with)s 4253(sections)s 5114(appearing)s
6150(within)s 6859(chapters)s 7746(which)s 8429(appear)s 0 12968(within)m
680(the)s 1041(body)s 1587(te)s 3(xt,)k 2062(which)s
2717(appears)s 3510(within)s 4191(the)s 4551(\207nal)s 5044(sequence)s
5990(of)s 6273(pages.)s 6995(Document)s 8065(formatting)s 0 12680(languages)m
1024(generally)s 1984(shirk)s 2540(the)s 2905(issues)s 3544(raised)s
4189(by)s 4500(this)s 4912(dual)s 5396(tree)s 5826(structure,)s
6785(by)s 7096(making)s 7884(the)s 8249(dynamic)s 0 12392(tree)m
421(b)s 4(uilt-in,)k 1235(by)s 1537(limiting)s 2354(one)s
2764(or)s 3032(both)s 3523(trees)s 4032(to)s 4279(tw)s 2(o)k
4697(le)s 6(v)k 3(els,)k 5360(and)s 5773(so)s
6047(on,)s 6402(pro)s 3(viding)k 7391(a)s 7565(classic)s
8263(e)s 3(xample)k 0 12104(of)m 295(the)s 667(impo)s 3(v)k 3(erishing)k
2120(ef)s 6(fect)k 2740(of)s 3035(f)s 2(ailing)k
3733(to)s 3997(permit)s 4704(language)s 5648(features)s 6478(to)s
6741(attain)s 7352(their)s 7873(natural)s 8616(le)s 6(v)k 3(el)k
0 11816(of)m 271(generality)s 15(.)k 480 11442(W)m 19(e)k
854(are)s 1206(thus)s 1662(led)s 2017(to)s 2261(propose)s
3081(a)s 3252(second)s 3980(abstraction)s 5091(for)s 5434(document)s
6443(formatting,)s 7564(which)s 8211(we)s 8552(name)s 0 11154(the)m
240 fnt3 371 11156(galle)m 7(y)k 240 fnt1 1028 11154(in)m
1294(recognition)s 2464(of)s 2759(its)s 3058(similarity)s 4050(to)s
4312(the)s 4684(g)s 1(alle)k 3(ys)k 5432(used)s
5952(in)s 6219(manual)s 7001(typesetting.)s 8238(A)s 8492(g)s 1(alle)k 3(y)k
0 10866(consists)m 817(of)s 1098(an)s 1391(object)s 2045(\(such)s
2630(as)s 2890(a)s 3066(footnote\))s 4001(together)s 4854(with)s
5346(a)s 5522(sequence)s 6465(of)s 6746(places)s 7404(where)s
8054(that)s 8482(object)s 0 10578(may)m 491(appear)s 1214(\(such)s
1814(as)s 2090(the)s 2464(bottoms)s 3311(of)s 3608(the)s
3982(current)s 4743(and)s 5173(follo)s 6(wing)k 6176(pages\).)s
6989(Splitting)s 7891(occurs)s 8592(quite)s 0 10290(naturally)m 903(when)s
1479(space)s 2066(at)s 2298(an)s 3(y)k 2695(place)s
3255(is)s 3465(insuf\207cient)s 4600(to)s 4839(hold)s 5323(the)s
5671(entire)s 6270(object.)s 480 9916(In)m 736(Lout,)s 1295(a)s
1461(footnote)s 2314(g)s 1(alle)k 3(y)k 2948(and)s
3352(its)s 3628(place)s 4188(of)s 4459(appearance)s 5590(are)s
5937(de\207ned)s 6700(as)s 6950(follo)s 6(ws:)k 220 fnt5
480 9415(def @F)m 6(ootPlace { @Galle)k 4(y })k 480 8839(def @F)m 6(ootNote into { @F)k 6(ootPlace&&f)k 6(ollo)k 3(wing })k
480 8551( r)m -3(ight x)k 480 8263({ x })m 240 fnt1 0 7769(The)m
220 fnt5 445 7766(@F)m 6(ootPlace)k 240 fnt1 1719 7769(symbol)m
2496(contains)s 3362(the)s 3727(special)s 4463(symbol)s 220 fnt5
5240 7766(@Galle)m 4(y)k 240 fnt1 6078 7769(,)m 6203(indicating)s
7229(that)s 7665(it)s 7874(is)s 8102(a)s 8285(point)s
8855(of)s 0 7481(appearance)m 1143(for)s 1493(a)s 1672(g)s 1(alle)k 3(y)k 15(.)k
2413(By)s 2759(placing)s 3529(in)s 9(v)k 4(ocations)k
4682(of)s 220 fnt5 4965 7478(@F)m 6(ootPlace)k 240 fnt1
6234 7481(at)m 6478(the)s 6838(bottoms)s 7673(of)s 7956(pages,)s
8620(as)s 8883(in)s 0 7193(Section)m 801(3.2,)s 1235(we)s
1597(de\207ne)s 2265(the)s 2640(desired)s 3415(points)s 4078(of)s
4376(appearance)s 5534(for)s 5899(footnotes.)s 6980(Symbols)s 7896(whose)s
8592(body)s 0 6905(contains)m 220 fnt5 863 6902(@Galle)m 4(y)k
240 fnt1 1776 6905(either)m 2394(directly)s 3192(or)s 3466(indirectly)s
4450(are)s 4812(called)s 5455(recepti)s 6(v)k 3(e)k
6392(symbols,)s 7312(meaning)s 8204(recepti)s 6(v)k 3(e)k
0 6617(to)m 239(g)s 1(alle)k 3(ys,)k 1019(and)s
1423(the)s 3(y)k 1886(are)s 2233(e)s 3(xpanded)k
3207(only)s 3687(on)s 3984(demand.)s 4906(The)s 5334(ef)s 6(fect)k
5930(of)s 6202(the)s 220 fnt5 6550 6614(into)m 240 fnt1
6956 6617(clause)m 7609(is)s 7819(to)s 8058(mak)s 2(e)k
8631(each)s 0 6329(in)m 9(v)k 4(ocation)k 1057(of)s
220 fnt5 1332 6326(@F)m 6(ootNote)k 240 fnt1 2506 6329(a)m
2676(g)s 1(alle)k 3(y)k 3313(whose)s 3985(object)s
4632(is)s 4846(the)s 5198(result)s 5791(of)s 6066(the)s
6417(in)s 9(v)k 4(ocation)k 7475(in)s 7721(the)s
8073(usual)s 8637(w)s 2(ay)k 15(,)k 0 6041(and)m
406(whose)s 1076(sequence)s 2011(of)s 2285(points)s 2923(of)s
3196(appearance)s 4329(is)s 4542(speci\207ed)s 5452(by)s 5748(the)s
220 fnt5 6098 6038(into)m 240 fnt1 6507 6041(clause;)m 7218(in)s
7463(this)s 7861(e)s 3(xample,)k 8778(the)s 0 5753(sequence)m
933(of)s 1204(all)s 220 fnt5 1497 5750(@F)m 6(ootPlace)k
240 fnt1 2753 5753(symbols)m 3602(follo)s 6(wing)k 4579(the)s
4927(in)s 9(v)k 4(ocation)k 5981(point.)s 480 5379(Lout)m
995(permits)s 1766(g)s 1(alle)k 3(ys)k 2494(to)s
2737(be)s 3023(in)s 9(v)k 4(ok)k 2(ed)k
3842(within)s 4514(other)s 5069(g)s 1(alle)k 3(ys)k
5797(to)s 6040(arbitrary)s 6919(depth,)s 7562(so)s 7832(that)s
8254(one)s 8660(may)s 0 5091(ha)m 4(v)k 3(e)k
514(footnotes)s 1468(within)s 2149(\207gures)s 2864(within)s 3546(the)s
3907(body)s 4454(te)s 3(xt)k 4882(g)s 1(alle)k 3(y)k 15(,)k
5568(for)s 5919(e)s 3(xample,)k 6846(creating)s 7681(arbitrary)s
8570(static)s 0 4803(trees.)m 649(Recepti)s 6(v)k 3(e)k
1688(symbols)s 2573(lik)s 2(e)k 220 fnt5 3021 4800(@F)m 6(ootPlace)k
240 fnt1 4313 4803(may)m 4815(appear)s 5548(within)s 6252(an)s 3(y)k
6685(g)s 1(alle)k 3(y)k 15(,)k 7393(creating)s
8251(arbitrary)s 0 4515(dynamic)m 912(trees)s 1449(as)s 1734(well.)s
2345(The)s 2808(root)s 3289(of)s 3595(the)s 3979(dynamic)s
4891(tree,)s 5391(which)s 6068(w)s 2(ould)k 6759(normally)s
7711(consist)s 8471(of)s 8778(the)s 0 4227(sequence)m 959(of)s
1257(pages)s 1880(of)s 2178(the)s 2553(complete)s 3512(assembled)s
4593(document,)s 5671(is)s 5908(considered)s 7029(to)s 7295(be)s
7604(a)s 7797(g)s 1(alle)k 3(y)k 8458(whose)s
0 3939(point)m 563(of)s 845(appearance)s 1987(is)s 2208(the)s
2567(output)s 3250(\207le.)s 3730(Points)s 4390(of)s 4672(appearance)s
5814(may)s 6291(be)s 220 fnt5 6584 3936(preceding)m 240 fnt1
7606 3939(or)m 220 fnt5 7876 3936(f)m 6(ollo)k 3(wing)k
240 fnt1 8778 3939(the)m 0 3651(in)m 9(v)k 4(ocation)k
1054(point;)s 1658(entries)s 2345(in)s 2588(tables)s 3196(of)s
3467(contents)s 4315(are)s 4662(the)s 5010(main)s 5545(users)s
6087(of)s 220 fnt5 6358 3648(preceding)m 240 fnt1 7309 3651(.)m
480 3277(The)m 913(g)s 1(alle)k 3(y)k 1552(abstraction)s
2662(is)s 2877(adequate)s 3788(for)s 4131(all)s 4429(of)s
4706(the)s 5059(applications)s 6270(listed)s 6850(at)s 7087(the)s
7440(be)s 3(ginning)k 8453(of)s 8730(this)s 0 2989(section,)m
808(e)s 3(xcept)k 1514(that)s 1957(there)s 2515(is)s
2749(no)s 3067(pro)s 3(vision)k 4050(for)s 4413(sorting)s
5155(inde)s 3(x)k 5763(entries)s 6475(and)s 6904(references.)s
8073(Sorting)s 8855(of)s 0 2701(g)m 1(alle)k 3(ys)k
715(has)s 1075(been)s 1574(added)s 2194(to)s 2423(Lout)s
2925(as)s 3165(a)s 3321(b)s 4(uilt-in)k 4068(feature,)s
4827(in)s 9(v)k 4(ok)k 2(ed)k 5632(by)s
5916(adding)s 6611(a)s 6767(special)s 220 fnt5 7475 2698(@K)m 8(e)k 4(y)k
240 fnt1 8112 2701(parameter)m 0 2413(to)m 227(the)s 563(g)s 1(alle)k 3(ys,)k
1330(and)s 1722(using)s 2281(its)s 2545(v)s 6(alue)k
3100(as)s 3338(the)s 3673(sort)s 4079(k)s 2(e)k 3(y)k 15(.)k
4556(The)s 4972(author)s 5631(w)s 2(as)k 6039(at)s
6259(a)s 6412(loss)s 6823(to)s 7049(\207nd)s 7468(an)s 3(y)k
7852(other)s 8391(w)s 2(ay)k 15(,)k 8867(or)s
0 2125(an)m 3(y)k 397(useful)s 1036(generalization)s 2446(of)s
2717(this)s 3113(feature.)s 3939(Its)s 4228(implementation)s 5785(will)s
6211(be)s 6493(discussed)s 7468(in)s 7711(Section)s 8485(6.2.)s
240 fnt2 0 1476(5.2.)m 471(The)s 926(galley)s 1580(\210ushing)s
2447(algorithm)s
[ /Dest /LOUTflushing /DEST pdfmark
240 fnt1 480 999(Galle)m 3(y)k 1177(components)s
2395(are)s 2751(promoted)s 3736(one)s 4148(by)s 4451(one)s
4863(into)s 5298(the)s 5655(point)s 6217(of)s 6498(appearance)s
7638(in)s 7891(the)s 8249(dynamic)s 0 711(parent)m 672(g)s 1(alle)k 3(y)k 15(,)k
1359(then)s 1843(carried)s 2579(along)s 3179(with)s 3676(it,)s
3931(ultimately)s 4968(to)s 5222(the)s 5586(root)s 6046(g)s 1(alle)k 3(y)k
6695(and)s 7115(the)s 7478(output)s 8165(\207le.)s 8650(This)s
0 423(process)m 800(is)s 1042(called)s 240 fnt3 1703 425(galle)m 7(y)k
2368(\210ushing)s 240 fnt1 3121 423(:)m 3259(the)s 3640(g)s 1(alle)k 3(ys)k
4396(are)s 4775(ri)s 6(v)k 3(ers)k 5393(running)s
6223(together)s 7098(to)s 7370(the)s 7750(sea,)s 8194(and)s
8631(each)s 0 135(component)m 1124(is)s 1334(a)s 1500(drop)s
1992(of)s 2263(w)s 2(ater)k 13(.)k
grestore
0 0 0 0 240 288 60 1417 -15423 LoutGr2
0 LoutMargSet
grestore
grestore
grestore
grestore
grestore
pgsave restore
showpage
%%Page: 25 26
%%BeginPageSetup
%%PageResources: font Times-Roman
%%+ font Helvetica
%%+ font Times-Italic
/pgsave save def
%%IncludeResource: font Times-Roman
/Times-Romanfnt1 vec2 /Times-Roman LoutRecode
/fnt1 { /Times-Romanfnt1 LoutFont } def
%%IncludeResource: font Helvetica
/Helveticafnt5 vec2 /Helvetica LoutRecode
/fnt5 { /Helveticafnt5 LoutFont } def
%%IncludeResource: font Times-Italic
/Times-Italicfnt3 vec2 /Times-Italic LoutRecode
/fnt3 { /Times-Italicfnt3 LoutFont } def
0.0500 dup scale 10 setlinewidth
%%EndPageSetup
gsave
0 0 translate
240 fnt1 0.0 0.0 0.0 LoutSetRGBColor LoutTextureSolid 11900 16840 0 16840 240 288 60 LoutGraphic
gsave
LoutPageSet
grestore
gsave
0 0 translate
1.0 1.0 1.0 LoutSetRGBColor 11900 16840 0 16840 240 288 60 LoutGraphic
gsave
LoutBox gsave 1.0 1.0 1.0 LoutSetRGBColor fill grestore 0 cm setlinewidth stroke
grestore
gsave
0 16840 translate
0.0000 rotate
0.0 0.0 0.0 LoutSetRGBColor
5709 -1582(-)m 5837(25)s 6123(-)s 9066 13413 0 13304 240 288 60 1417 -15423 LoutGr2
1 LoutMargSet
grestore
480 13250(Here)m 1057(is)s
1324(a)s 1547(snapshot)s 2502(of)s 2830(a)s 3053(small)s
3682(dynamic)s 4616(tree,)s 5137(based)s 5797(on)s 6151(the)s
220 fnt5 6556 13247(@P)m 8(ageList)k 240 fnt1 7737 13250(de\207nitions)m
8855(of)s 0 12962(Section)m 774(3.2:)s 6982 3257 0 3257 240 288 60 480 9414 LoutGr2
grestore save gsave 200 dict begin lfigdict begin
grestore
200 fnt3 0 3121(output)m
563(\207le)s gsave
860 0 translate
240 fnt1 0 3257 0 3165 240 288 60 LoutGraphic
gsave
currentdict end 200 dict begin begin
grestore
0 0 0 0 240 288 60 0 3165 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfignoline [ lfigbox ] lfigdopath
pop pop
grestore
grestore
(A) lfigpromotelabels
grestore
1994(r)s 9(oot)k 2370(galle)s 6(y)k
gsave
1994 2967 translate
240 fnt1 1927 0 0 0 240 288 60 LoutGraphic
gsave
currentdict end 200 dict begin begin
grestore
0 0 0 0 240 288 60 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfignoline [ lfigbox ] lfigdopath
pop pop
grestore
grestore
(B) lfigpromotelabels
grestore
gsave
1994 473 translate
240 fnt1 1927 2494 0 2494 240 288 60 LoutGraphic
gsave
0 0 moveto xsize 0 lineto xsize ysize lineto
0 ysize lineto closepath stroke
grestore
160 fnt1 845 2216(-)m 931(1)s
1035(-)s 410 2000(A)m 563(small)s 140 fnt5 170 1784(@Galle)m 2(y)k
160 fnt1 743(*)s 904 1617 5 1545 160 180 40 853 275 LoutGr2
currentdict end 200 dict begin begin
grestore
10 10 5 5 160 180 40 0 1540 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfignoline [ lfigbox ] lfigdopath
pop pop
grestore
grestore
(C) lfigpromotelabels
grestore
140 fnt5 170 173(@F)m 4(ootSect)k
grestore
gsave
1994 0 translate
240 fnt1 1927 473 170 237 240 288 60 LoutGraphic
gsave
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigbox ] lfigdopath
pop pop
grestore
140 fnt5 170 201(@P)m 5(ageList 2)k
grestore
5055 2611(body)m
5490(te)s 4(xt)k gsave
5055 1974 translate
240 fnt1 1927 483 170 240 240 288 60 LoutGraphic
gsave
currentdict end 200 dict begin begin
grestore
1927 483 170 240 240 288 60 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigbox ] lfigdopath
pop pop
grestore
160 fnt1 170 204(paragraph)m
grestore
(D) lfigpromotelabels
grestore
gsave
5055 1524 translate
240 fnt1 1927 450 170 207 240 288 60 LoutGraphic
gsave
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigbox ] lfigdopath
pop pop
grestore
160 fnt1 170 171(of)m 351(te)s 2(xt.)k
grestore
gsave
5055 1034 translate
240 fnt1 1927 490 170 244 240 288 60 LoutGraphic
gsave
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigbox ] lfigdopath
pop pop
grestore
160 fnt5 170 203(@Input)m
grestore
gsave
0 0 translate
240 fnt1 0 0 0 0 240 288 60 LoutGraphic
gsave
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ B@W lfigprevious /FROM lfigpointdef
A@E lfigprevious /TO lfigpointdef ] lfigdopath
0.15 cm /lfigsolid /lfigblack
lfigopen
0.15 cm 0.05 cm lfigforward
grestore
grestore
gsave
0 0 translate
240 fnt1
0 0 0 0 240 288 60 LoutGraphic
gsave
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ D@W lfigprevious /FROM lfigpointdef
C@E lfigprevious /TO lfigpointdef ] lfigdopath
0.15 cm /lfigsolid /lfigblack
lfigopen
0.15 cm 0.05 cm lfigforward
grestore
grestore
end end restore
grestore
0 8963(The)m 472(components)s 1724(of)s 2039(the)s 2431(body)s
3009(te)s 3(xt)k 3468(g)s 1(alle)k 3(y)k
4146(are)s 4537(lines,)s 5139(e)s 3(xcept)k 5864(for)s
6246(the)s 6638(special)s 7400(recepti)s 6(v)k 3(e)k
8366(symbol)s 220 fnt5 0 8672(@Input)m 240 fnt1 759 8675(which)m
1393(is)s 1595(a)s 1753(placeholder)s 2920(for)s 3249(as)s
3491(yet)s 3835(unread)s 4536(input)s 5080(\(Section)s 5924(5.4\).)s
6459(The)s 6879(components)s 8079(of)s 8342(the)s 8681(root)s
0 8387(g)m 1(alle)k 3(y)k 646(are)s 1006(pages,)s
1671(e)s 3(xcept)k 2364(for)s 2715(the)s 3076(concluding)s
4205(une)s 3(xpanded)k 5431(in)s 9(v)k 4(ocation)k
6498(of)s 220 fnt5 6781 8384(@P)m 8(ageList)k 240 fnt1
7845 8387(,)m 7965(which)s 8620(is)s 8843(an)s 0 8099(ine)m 3(xhaustible)k
1328(source)s 2008(of)s 2279(more)s 2826(pages,)s 3478(e)s 3(xpanded)k
4451(on)s 4748(demand.)s 480 7725(The)m 923(concrete)s 1804(data)s
2277(structure)s 3184(used)s 3696(by)s 4006(Basser)s 4718(Lout)s
5246(permits)s 6028(the)s 6392(g)s 1(alle)k 3(y)k
7041(\210ushing)s 7882(algorithm)s 8887(to)s 0 7437(na)m 4(vig)k 1(ate)k
861(the)s 1209(dynamic)s 2086(tree)s 2499(and)s 2903(\207nd)s
3334(signi\207cant)s 4390(features)s 5196(quickly:)s gsave
480 78 translate
200 fnt1 8081 7019 226 7019 200 288 50 LoutGraphic
gsave
grestore save gsave 100 dict begin lfigdict begin
grestore
980 7019 226 6704 200 288 50 0 0 LoutGr2
currentdict end 100 dict begin begin
grestore
980 585 226 270 200 288 50 0 6434 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigellipse ] lfigdopath
pop pop
grestore
200 fnt3
226 226(HEAD)m
grestore
(A) lfigpromotelabels
grestore
1927 588 226 273 200 288 50 1830 6431 LoutGr2
currentdict end 100 dict begin begin
grestore
1631 588 226 273 200 288 50 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigellipse ] lfigdopath
pop pop
grestore
200 fnt3 226 229(RECEIVING)m 1306(*)s
grestore
(B) lfigpromotelabels
grestore
0 0 0 0 200 288 50 1830 6431 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ A@CTR A@CTR B@W lfigangle A@CIRCUM lfigpadd lfigprevious /FROM lfigpointdef
B@W lfigprevious /TO lfigpointdef ] lfigdopath
0.15 cm /lfigsolid /lfigblack
lfigopen
0.15 cm 0.05 cm lfigforward
grestore
grestore
1927 588 226 273 200 288 50 1830 5503 LoutGr2
currentdict end 100 dict begin begin
grestore
1498 588 226 273 200 288 50 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigellipse ] lfigdopath
pop pop
grestore
200 fnt3
226 229(RECEPTIVE)m
grestore
(C) lfigpromotelabels
grestore
0 0 0 0 200 288 50 1830 5503 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ A@CTR A@CTR C@W lfigangle A@CIRCUM lfigpadd lfigprevious /FROM lfigpointdef
C@W lfigprevious /TO lfigpointdef ] lfigdopath
0.15 cm /lfigsolid /lfigblack
lfigopen
0.15 cm 0.05 cm lfigforward
grestore
grestore
1927 0 0 0 200 288 50 1830 5163 LoutGr2
currentdict end 100 dict begin begin
grestore
0 0 0 0 200 288 50 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfignoline [ lfigbox ] lfigdopath
pop pop
grestore
grestore
(D) lfigpromotelabels
grestore
0 0 0 0 200 288 50 1830 5163 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ A@CTR A@CTR D@NW lfigangle A@CIRCUM lfigpadd lfigprevious /FROM lfigpointdef
D@NW lfigprevious /TO lfigpointdef ] lfigdopath
0.15 cm /lfigsolid /lfigblack
lfigopen
0.15 cm 0.05 cm lfigforward
grestore
grestore
1927 2494 0 2494 200 288 50 1830 2669 LoutGr2
0 0 moveto xsize 0 lineto xsize ysize lineto
0 ysize lineto closepath stroke
grestore
160 fnt1 845 2216(-)m 931(1)s 1035(-)s
410 2000(A)m 563(small)s 1587 1611 0 1545 160 180 40 170 275 LoutGr2
currentdict end 100 dict begin begin
grestore
572 132 0 66 160 180 40 0 1479 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfignoline [ lfigbox ] lfigdopath
pop pop
grestore
140 fnt5 0 30(@Galle)m 2(y )k
grestore
(E) lfigpromotelabels
grestore
1587 105 0 39 160 180 40 170 170 LoutGr2
currentdict end 100 dict begin begin
grestore
731 105 0 39 160 180 40 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfignoline [ lfigbox ] lfigdopath
pop pop
grestore
140 fnt5 0 3(@F)m 4(ootSect )k
grestore
(F) lfigpromotelabels
grestore
grestore
0 0 0 0 200 288 50 1830 2669 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ B@E B@E 0 B@E E@E lfigydistance lfigpadd E@E ] lfigdopath
0.15 cm /lfigsolid /lfigblack
lfigopen
0.15 cm 0.05 cm lfigforward
grestore
grestore
0 0 0 0 200 288 50 1830 2669 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ C@E C@E 0 C@E F@E lfigydistance lfigpadd F@E ] lfigdopath
0.15 cm /lfigsolid /lfigblack
lfigopen
0.15 cm 0.05 cm lfigforward
grestore
grestore
1927 588 226 273 200 288 50 1830 1741 LoutGr2
currentdict end 100 dict begin begin
grestore
839 588 226 273 200 288 50 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigellipse ] lfigdopath
pop pop
grestore
200 fnt3 226 229(GAP)m
grestore
(C) lfigpromotelabels
grestore
0 0 0 0 200 288 50 1830 1741 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ A@CTR A@CTR C@W lfigangle A@CIRCUM lfigpadd lfigprevious /FROM lfigpointdef
C@W lfigprevious /TO lfigpointdef ] lfigdopath
0.15 cm /lfigsolid /lfigblack
lfigopen
0.15 cm 0.05 cm lfigforward
grestore
grestore
1927 588 226 273 200 288 50 1830 813 LoutGr2
currentdict end 100 dict begin begin
grestore
1498 588 226 273 200 288 50 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigellipse ] lfigdopath
pop pop
grestore
200 fnt3 226 229(RECEPTIVE)m
grestore
(C) lfigpromotelabels
grestore
0 0 0 0 200 288 50 1830 813 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ A@CTR A@CTR C@W lfigangle A@CIRCUM lfigpadd lfigprevious /FROM lfigpointdef
C@W lfigprevious /TO lfigpointdef ] lfigdopath
0.15 cm /lfigsolid /lfigblack
lfigopen
0.15 cm 0.05 cm lfigforward
grestore
grestore
1927 473 170 237 200 288 50 1830 0 LoutGr2
currentdict end 100 dict begin begin
grestore
1927 473 170 237 200 288 50 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigbox ] lfigdopath
pop pop
grestore
140 fnt5 170 201(@P)m 5(ageList 2)k
grestore
(D) lfigpromotelabels
grestore
0 0 0 0 200 288 50 1830 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ A@CTR A@CTR D@NW lfigangle A@CIRCUM lfigpadd lfigprevious /FROM lfigpointdef
D@NW lfigprevious /TO lfigpointdef ] lfigdopath
0.15 cm /lfigsolid /lfigblack
lfigopen
0.15 cm 0.05 cm lfigforward
grestore
grestore
0 0 0 0 200 288 50 1830 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ C@E C@E 0 C@E D@W 1.8 cm 0 lfigpadd lfigydistance lfigpadd D@W 1.8 cm 0 lfigpadd ] lfigdopath
0.15 cm /lfigsolid /lfigblack
lfigopen
0.15 cm 0.05 cm lfigforward
grestore
grestore
980 7019 226 6704 200 288 50 4324 0 LoutGr2
currentdict end 100 dict begin begin
grestore
980 585 226 270 200 288 50 0 6434 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigellipse ] lfigdopath
pop pop
grestore
200 fnt3 226 226(HEAD)m
grestore
(A) lfigpromotelabels
grestore
0 0 0 0 200 288 50 5304 6704 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ B@E lfigprevious /FROM lfigpointdef
A@W lfigprevious /TO lfigpointdef ] lfigdopath
0.15 cm /lfigsolid /lfigblack
lfigopen
0.15 cm 0.05 cm lfigforward
grestore
grestore
1927 483 170 240 200 288 50 6154 6536 LoutGr2
currentdict end 100 dict begin begin
grestore
1927 483 170 240 200 288 50 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigbox ] lfigdopath
pop pop
grestore
160 fnt1 170 204(paragraph)m
grestore
(B) lfigpromotelabels
grestore
0 0 0 0 200 288 50 6154 6536 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ A@CTR A@CTR B@W lfigangle A@CIRCUM lfigpadd lfigprevious /FROM lfigpointdef
B@W lfigprevious /TO lfigpointdef ] lfigdopath
0.15 cm /lfigsolid /lfigblack
lfigopen
0.15 cm 0.05 cm lfigforward
grestore
grestore
1927 588 226 273 200 288 50 6154 5608 LoutGr2
currentdict end 100 dict begin begin
grestore
839 588 226 273 200 288 50 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigellipse ] lfigdopath
pop pop
grestore
200 fnt3
226 229(GAP)m
grestore
(B) lfigpromotelabels
grestore
0 0 0 0 200 288 50 6154 5608 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ A@CTR A@CTR B@W lfigangle A@CIRCUM lfigpadd lfigprevious /FROM lfigpointdef
B@W lfigprevious /TO lfigpointdef ] lfigdopath
0.15 cm /lfigsolid /lfigblack
lfigopen
0.15 cm 0.05 cm lfigforward
grestore
grestore
1927 450 170 207 200 288 50 6154 4818 LoutGr2
currentdict end 100 dict begin begin
grestore
1927 450 170 207 200 288 50 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigbox ] lfigdopath
pop pop
grestore
160 fnt1 170 171(of)m 351(te)s 2(xt.)k
grestore
(B) lfigpromotelabels
grestore
0 0 0 0 200 288 50 6154 4818 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ A@CTR A@CTR B@NW lfigangle A@CIRCUM lfigpadd lfigprevious /FROM lfigpointdef
B@NW lfigprevious /TO lfigpointdef ] lfigdopath
0.15 cm /lfigsolid /lfigblack
lfigopen
0.15 cm 0.05 cm lfigforward
grestore
grestore
1927 588 226 273 200 288 50 6154 3890 LoutGr2
currentdict end 100 dict begin begin
grestore
839 588 226 273 200 288 50 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigellipse ] lfigdopath
pop pop
grestore
200 fnt3 226 229(GAP)m
grestore
(B) lfigpromotelabels
grestore
0 0 0 0 200 288 50 6154 3890 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ A@CTR A@CTR B@W lfigangle A@CIRCUM lfigpadd lfigprevious /FROM lfigpointdef
B@W lfigprevious /TO lfigpointdef ] lfigdopath
0.15 cm /lfigsolid /lfigblack
lfigopen
0.15 cm 0.05 cm lfigforward
grestore
grestore
1927 588 226 273 200 288 50 6154 2962 LoutGr2
currentdict end 100 dict begin begin
grestore
1498 588 226 273 200 288 50 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigellipse ] lfigdopath
pop pop
grestore
200 fnt3 226 229(RECEPTIVE)m
grestore
(B) lfigpromotelabels
grestore
0 0 0 0 200 288 50 6154 2962 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ A@CTR A@CTR B@W lfigangle A@CIRCUM lfigpadd lfigprevious /FROM lfigpointdef
B@W lfigprevious /TO lfigpointdef ] lfigdopath
0.15 cm /lfigsolid /lfigblack
lfigopen
0.15 cm 0.05 cm lfigforward
grestore
grestore
1927 471 170 235 200 288 50 6154 2151 LoutGr2
currentdict end 100 dict begin begin
grestore
1927 471 170 235 200 288 50 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigbox ] lfigdopath
pop pop
grestore
140 fnt5
170 199(@Input)m
grestore
(C) lfigpromotelabels
grestore
0 0 0 0 200 288 50 6154 2151 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ A@CTR A@CTR C@NW lfigangle A@CIRCUM lfigpadd lfigprevious /FROM lfigpointdef
C@NW lfigprevious /TO lfigpointdef ] lfigdopath
0.15 cm /lfigsolid /lfigblack
lfigopen
0.15 cm 0.05 cm lfigforward
grestore
grestore
0 0 0 0 200 288 50 6154 2151 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ B@E B@E 0 B@E C@W 1.2 cm 0 lfigpadd lfigydistance lfigpadd C@W 1.2 cm 0 lfigpadd ] lfigdopath
0.15 cm /lfigsolid /lfigblack
lfigopen
0.15 cm 0.05 cm lfigforward
grestore
grestore
end end restore
grestore
grestore
0 0 0 0 240 288 60 1417 -15423 LoutGr2
1 LoutMargSet
grestore
grestore
grestore
grestore
grestore
pgsave restore
showpage
%%Page: 26 27
%%BeginPageSetup
%%PageResources: font Times-Roman
%%+ font Times-Italic
%%+ font Helvetica
/pgsave save def
%%IncludeResource: font Times-Roman
/Times-Romanfnt1 vec2 /Times-Roman LoutRecode
/fnt1 { /Times-Romanfnt1 LoutFont } def
%%IncludeResource: font Times-Italic
/Times-Italicfnt3 vec2 /Times-Italic LoutRecode
/fnt3 { /Times-Italicfnt3 LoutFont } def
%%IncludeResource: font Helvetica
/Helveticafnt5 vec2 /Helvetica LoutRecode
/fnt5 { /Helveticafnt5 LoutFont } def
0.0500 dup scale 10 setlinewidth
%%EndPageSetup
gsave
0 0 translate
240 fnt1 0.0 0.0 0.0 LoutSetRGBColor LoutTextureSolid 11900 16840 0 16840 240 288 60 LoutGraphic
gsave
LoutPageSet
grestore
gsave
0 0 translate
1.0 1.0 1.0 LoutSetRGBColor 11900 16840 0 16840 240 288 60 LoutGraphic
gsave
LoutBox gsave 1.0 1.0 1.0 LoutSetRGBColor fill grestore 0 cm setlinewidth stroke
grestore
gsave
0 16840 translate
0.0000 rotate
0.0 0.0 0.0 LoutSetRGBColor
5705 -1581(-)m 5833(26)s 6126(-)s 9066 13414 0 13414 240 288 60 1417 -15423 LoutGr2
0 LoutMargSet
grestore
0 13251(Each)m 521(g)s 1(alle)k 3(y)k
1140(has)s 1495(a)s 240 fnt3 1647 13253(HEAD)m 240 fnt1
2325 13251(node)m 2832(whose)s 3485(children)s 4311(are)s 4643(its)s
4904(component)s 6013(objects,)s 6783(separated)s 7728(by)s 240 fnt3
8007 13253(GAP)m 240 fnt1 8516 13251(nodes)m 0 12963(recording)m 969(the)s
1317(inter)s 4(-component)k 2953(g)s 1(aps.)k 480 12589(Each)m
1026(component)s 2161(is)s 2383(preceded)s 3315(by)s 3621(zero)s
4096(or)s 4367(more)s 240 fnt3 4925 12591(galle)m 7(y)k
5569(inde)s 4(x)k 6155(nodes)s 240 fnt1 6780 12589(of)m
7063(v)s 6(arious)k 7823(types.)s 8504(Ev)s 3(ery)k
0 12301(recepti)m 6(v)k 3(e)k 922(symbol)s 1681(has)s
2050(a)s 240 fnt3 2216 12303(RECEPTIVE)m 240 fnt1 3528 12301(inde)m 3(x)k
4111(pointing)s 4962(to)s 5200(it,)s 5438(so)s 5704(that)s
6121(it)s 6312(can)s 6701(be)s 6982(found)s 7598(without)s
8388(search-)s 0 12013(ing)m 355(through)s 1152(its)s 1423(component.)s
2646(If)s 2871(the)s 3215(symbol)s 3970(is)s 4175(currently)s
5086(the)s 5429(tar)s 4(get)k 6023(of)s 6290(a)s
6451(g)s 1(alle)k 3(y)k 15(,)k 7118(it)s
7305(has)s 7670(a)s 240 fnt3 7831 12015(RECEIVING)m 240 fnt1
0 11725(inde)m 3(x)k 595(instead)s 1342(which)s 1995(is)s
2217(also)s 2667(link)s 2(ed)k 3332(to)s 3583(the)s
3942(incoming)s 4911(g)s 1(alle)k 3(y)k 15(.)k
5652(Galle)s 3(ys)k 6441(that)s 6871(are)s 7229(currently)s
8157(without)s 8960(a)s 0 11437(tar)m 4(get)k 586(are)s
920(link)s 2(ed)k 1560(to)s 1786(the)s 2120(dynamic)s
2984(tree)s 3383(by)s 240 fnt3 3664 11439(UN)m 6(A)k 8(TT)k 12(A)k 7(CHED)k
240 fnt1 5215 11437(g)m 1(alle)k 3(y)k 5836(inde)s 3(x)k 3(es,)k
6654(either)s 7244(just)s 7635(after)s 8118(their)s 8601(most)s
0 11149(recent)m 643(tar)s 4(get)k 1242(if)s 1459(there)s
1992(has)s 2362(been)s 2871(one,)s 3324(or)s 3583(else)s
4010(at)s 4242(their)s 4739(point)s 5291(of)s 5562(in)s 9(v)k 4(ocation.)k
480 10775(Each)m 1041(g)s 1(alle)k 3(y)k 1701(should)s
2424(be)s 2732(thought)s 3550(of)s 3847(as)s 4123(a)s
4315(concurrent)s 5423(process,)s 6273(although)s 7194(the)s 7569(implementation)s
0 10487(in)m 268(C)s 506(uses)s 995(coroutines)s 2067(implemented)s
3399(by)s 3719(procedures.)s 4957(A)s 5213(g)s 1(alle)k 3(y)k
5873(may)s 6364(promote)s 7243(its)s 7545(\207rst)s 8002(component)s
0 10199(only)m 499(if)s 735(it)s 946(has)s 1335(a)s
1520(tar)s 4(get,)k 2185(suf\207cient)s 3153(space)s 3759(is)s
3988(a)s 4(v)k 6(ailable)k 4915(at)s 5166(the)s
5533(tar)s 4(get)k 6151(to)s 6409(recei)s 6(v)k 3(e)k
7164(the)s 7531(component,)s 8722(and)s 0 9911(the)m 349(component)s
1475(contains)s 2325(no)s 2620(recepti)s 6(v)k 3(e)k
3544(symbols.)s 4508(This)s 4986(last)s 5379(condition)s 6342(seems)s
6979(to)s 7220(be)s 7504(the)s 7854(k)s 2(e)k 3(y)k
8251(to)s 8492(g)s 1(alle)k 3(y)k 0 9623(synchronization:)m
1722(it)s 1943(forces)s 2606(a)s 2801(bottom-up)s 3880(promotion)s
4963(re)s 3(gime,)k 5759(pre)s 6(v)k 3(enting)k
6855(pages)s 7480(from)s 8033(\210ushing)s 8887(to)s 0 9335(output)m
672(before)s 1338(te)s 3(xt)k 1753(\210ushes)s 2469(into)s
2894(them,)s 3479(for)s 3817(e)s 3(xample.)k 480 8961(Each)m
1022(g)s 1(alle)k 3(y)k 1663(contains)s 2519(a)s
2692(number)s 3490(of)s 3769(binary)s 4441(semaphores,)s 5685(sho)s 6(wn)k
6369(as)s 6626(asterisks)s 7507(in)s 7757(our)s 8144(snapshots)s
0 8673(when)m 583(set.)s 1019(At)s 1325(an)s 3(y)k
1730(gi)s 6(v)k 3(en)k 2317(moment,)s 3215(a)s
3389(g)s 1(alle)k 3(y)k 4030(process)s 4805(is)s
5022(either)s 5633(running)s 6438(or)s 6704(else)s 7139(is)s
7356(suspended)s 8419(on)s 8724(one)s 0 8385(of)m 269(its)s
543(o)s 6(wn)k 1005(semaphores.)s 2296(The)s 240 fnt3
2722 8387(HEAD)m 240 fnt1 3413 8385(node)m 3933(contains)s 4779(a)s
4943(semaphore)s 6033(which)s 6673(is)s 6881(set)s 7204(when)s
7778(the)s 8124(g)s 1(alle)k 3(y)k 8756(has)s
0 8097(tried)m 499(to)s 742(\207nd)s 1177(a)s 1347(tar)s 4(get)k
1950(and)s 2359(f)s 2(ailed.)k 3068(Each)s 3607(recepti)s 6(v)k 3(e)k
4533(symbol)s 5297(has)s 5671(a)s 5842(semaphore)s 6938(which)s
7584(is)s 7798(set)s 8127(when)s 8708(that)s 0 7809(symbol)m
760(is)s 970(pre)s 6(v)k 3(enting)k 2037(the)s
2385(\207rst)s 2816(component)s 3940(from)s 4464(being)s 5049(promoted.)s
480 7435(F)m 3(or)k 859(e)s 3(xample,)k 1762(in)s
1994(the)s 2331(snapshot)s 3218(at)s 3439(the)s 3776(be)s 3(ginning)k
4773(of)s 5033(this)s 5418(section,)s 6191(the)s 6528(root)s
6962(g)s 1(alle)k 3(y)k 7585(is)s 7784(suspended)s
8829(on)s 0 7147(the)m 220 fnt5 351 7144(@Galle)m 4(y)k
240 fnt1 1253 7147(symbol,)m 2069(b)s 4(ut)k 2435(the)s
2787(te)s 3(xt)k 3205(g)s 1(alle)k 3(y)k
3843(is)s 4057(running.)s 4970(It)s 5179(will)s 5608(suspend)s
6442(on)s 6743(the)s 220 fnt5 7095 7144(@Input)m 240 fnt1
7866 7147(symbol)m 8630(after)s 0 6859(the)m 348(\207rst)s 779(tw)s 2(o)k
1189(components)s 2397(are)s 2744(promoted.)s 480 6485(Ev)m 3(ery)k
1145(g)s 1(alle)k 3(y)k 240 fnt3 1822 6487(G)m
240 fnt1 1995 6485(,)m 2145(be)s 2470(it)s 2705(a)s
2914(list)s 3308(of)s 3623(pages,)s 4318(body)s 4895(te)s 3(xt,)k
5400(a)s 5609(footnote,)s 6556(or)s 6858(whate)s 6(v)k 3(er)k 9(,)k
7866(e)s 3(x)k 3(ecutes)k 8778(the)s 0 6197(follo)m 6(wing)k
977(algorithm)s 1966(in)s 2209(parallel)s 2979(with)s 3461(e)s 6(v)k 3(ery)k
4037(other)s 4588(g)s 1(alle)k 3(y:)k 0 5694(1.)m
303(Initially)s 240 fnt3 1132 5696(G)m 240 fnt1 1384 5694(is)m
1614(unattached.)s 2834(Search)s 3560(forw)s 2(ards)k 4478(or)s
4756(backw)s 2(ards)k 5848(from)s 6392(its)s 240 fnt3
6687 5696(UN)m 6(A)k 8(TT)k 12(A)k 7(CHED)k
240 fnt1 8272 5694(inde)m 3(x)k 8876(as)s 0 5406(required,)m
903(to)s 1142(\207nd)s 1573(a)s 1739(recepti)s 6(v)k 3(e)k
2661(symbol)s 240 fnt3 3421 5408(S)m 240 fnt1 3602 5406(which)m
4244(can)s 4633(e)s 3(xpand)k 5380(to)s 5619(re)s 6(v)k 3(eal)k
6248(a)s 6414(tar)s 4(get)k 7013(for)s 240 fnt3
7351 5408(G)m 240 fnt1 7524 5406(.)m 0 4903(2.)m 284(If)s
514(no)s 240 fnt3 807 4905(S)m 240 fnt1 988 4903(can)m
1377(be)s 1659(found,)s 2325(suspend)s 3155(on)s 3452(the)s
3800(attachment)s 4908(semaphore.)s 6108(Resume)s 6935(later)s 7418(from)s
7942(step)s 8380(1.)s 0 4400(3.)m 281(Expand)s 240 fnt3
1068 4402(S)m 240 fnt1 1246 4400(to)m 1482(re)s 6(v)k 3(eal)k
2107(the)s 2452(tar)s 4(get)k 3048(of)s 240 fnt3
3316 4402(G)m 240 fnt1 3489 4400(.)m 3649(Preserv)s 3(e)k
240 fnt3 4521 4402(S)m 240 fnt1 4642 4400(')m 13(s)k
4849(semaphore)s 5938(by)s 6229(mo)s 3(ving)k 7007(it)s
7196(to)s 7432(the)s 7777(\207rst)s 8204(recepti)s 6(v)k 3(e)k
0 4112(symbol)m 760(within)s 1428(the)s 1776(e)s 3(xpansion)k
2801(of)s 240 fnt3 3072 4114(S)m 240 fnt1 3193 4112(.)m
0 3609(4.)m 295(Calculate)s 1264(the)s 1624(a)s 4(v)k 6(ailable)k
2543(width)s 3156(and)s 3572(height)s 4241(at)s 4484(the)s
4844(tar)s 4(get,)k 5501(and)s 5917(if)s 240 fnt3
6145 3611(G)m 240 fnt1 6389 3609(is)m 6611(still)s 7034(a)s
7211(pure)s 7704(parse)s 8275(tree,)s 8751(use)s 0 3321(the)m
377(en)s 9(vironment)k 1667(attached)s 2550(to)s 240 fnt3
2819 3323(G)m 240 fnt1 3081 3321(and)m 3515(the)s 3892(style)s
4429(information)s 5643(from)s 6197(the)s 6574(tar)s 4(get)k
7203(to)s 7471(e)s 6(v)k 6(aluate)k 240 fnt3
8341 3323(G)m 240 fnt1 8603 3321(as)m 8883(in)s 0 3033(Section)m
774(4.)s 0 2577(5.)m 284(Examine)s 1190(the)s 1538(components)s
2746(of)s 240 fnt3 3017 2579(G)m 240 fnt1 3250 2577(one)m
3652(by)s 3946(one.)s 4456(F)s 3(or)k 4845(each)s
5340(component)s 6464(there)s 6997(are)s 7344(three)s 7877(possibilities:)s
240 fnt3 480 2205(A)m 7(CCEPT)k 17(.)k 240 fnt1
1513 2203(If)m 1756(the)s 2116(component)s 3253(\207ts)s 3609(into)s
4046(the)s 4407(a)s 4(v)k 6(ailable)k 5328(space,)s
5978(and)s 6395(has)s 6778(no)s 7083(other)s 7647(problems,)s
8657(then)s 0 1915(promote)m 875(it)s 1090(into)s 1538(the)s
1909(tar)s 4(get.)k 2635(If)s 2888(this)s 3306(is)s
3539(the)s 3910(\207rst)s 4364(component)s 5511(promoted)s 6509(into)s
6956(this)s 7375(tar)s 4(get,)k 8044(and)s 240 fnt3
8471 1917(G)m 240 fnt1 8727 1915(is)m 8960(a)s 0 1627(forcing)m
768(g)s 1(alle)k 3(y)k 1428(\(Section)s 2307(5.4\),)s
2819(delete)s 3470(e)s 6(v)k 3(ery)k 4072(recepti)s 6(v)k 3(e)k
5020(symbol)s 5806(preceding)s 6827(the)s 7201(tar)s 4(get)k
7826(in)s 8095(the)s 8469(parent)s 0 1339(g)m 1(alle)k 3(y)k 15(.)k
729(If)s 240 fnt3 959 1341(G)m 240 fnt1 1192 1339(is)m
1402(the)s 1750(root)s 2195(g)s 1(alle)k 3(y)k 15(,)k
2867(render)s 3537(the)s 3885(component)s 5009(on)s 5306(the)s
5654(output)s 6326(\207le)s 6687(and)s 7091(dispose)s 7865(it;)s
240 fnt3 480 967(REJECT)m 17(.)k 240 fnt1 1490 965(If)m
1756(the)s 2140(component)s 3300(is)s 3546(too)s 3941(lar)s 4(ge)k
4506(for)s 4880(the)s 5264(a)s 4(v)k 6(ailable)k
6208(space,)s 6882(or)s 7177(a)s 240 fnt3 7379 967(FOLLO)m 12(WS)k
240 fnt1 8542 965(inde)m 3(x)k 0 677(\(described)m 1043(belo)s 6(w\))k
1740(forbids)s 2458(its)s 2723(promotion)s 3767(into)s 4182(this)s
4568(tar)s 4(get,)k 5203(then)s 5662(detach)s 240 fnt3
6333 679(G)m 240 fnt1 6556 677(from)m 7069(the)s 7407(tar)s 4(get.)k
8100(If)s 8320(this)s 8705(w)s 2(as)k 0 389(the)m
338(\207rst)s 758(component)s 1872(at)s 2093(this)s 2479(tar)s 4(get,)k
240 fnt3 3114 391(S)m 240 fnt1 3284 389(has)m 3644(been)s
4142(a)s 4298(complete)s 5219(f)s 2(ailure,)k 5936(so)s
6191(undo)s 6713(step)s 7141(3)s 7294(\(Basser)s 8060(Lout)s
8561(is)s 8760(not)s
grestore
0 0 0 0 240 288 60 1417 -15423 LoutGr2
0 LoutMargSet
grestore
grestore
grestore
grestore
grestore
pgsave restore
showpage
%%Page: 27 28
%%BeginPageSetup
%%PageResources: font Times-Roman
%%+ font Times-Italic
%%+ font Helvetica
/pgsave save def
%%IncludeResource: font Times-Roman
/Times-Romanfnt1 vec2 /Times-Roman LoutRecode
/fnt1 { /Times-Romanfnt1 LoutFont } def
%%IncludeResource: font Times-Italic
/Times-Italicfnt3 vec2 /Times-Italic LoutRecode
/fnt3 { /Times-Italicfnt3 LoutFont } def
%%IncludeResource: font Helvetica
/Helveticafnt5 vec2 /Helvetica LoutRecode
/fnt5 { /Helveticafnt5 LoutFont } def
0.0500 dup scale 10 setlinewidth
%%EndPageSetup
gsave
0 0 translate
240 fnt1 0.0 0.0 0.0 LoutSetRGBColor LoutTextureSolid 11900 16840 0 16840 240 288 60 LoutGraphic
gsave
LoutPageSet
grestore
gsave
0 0 translate
1.0 1.0 1.0 LoutSetRGBColor 11900 16840 0 16840 240 288 60 LoutGraphic
gsave
LoutBox gsave 1.0 1.0 1.0 LoutSetRGBColor fill grestore 0 cm setlinewidth stroke
grestore
gsave
0 16840 translate
0.0000 rotate
0.0 0.0 0.0 LoutSetRGBColor
5708 -1579(-)m 5836(27)s 6124(-)s 9066 13418 0 13309 240 288 60 1417 -15423 LoutGr2
1 LoutMargSet
grestore
0 13255(able)m 454(to)s
693(undo)s 1226(step)s 1664(4\);)s 1975(otherwise)s 2960(delete)s
3586(the)s 3934(tar)s 4(get.)k 4637(Return)s 5345(to)s
5584(step)s 6022(1)s 6177(and)s 6581(continue)s 7461(immediately;)s
240 fnt3 480 12883(SUSPEND.)m 240 fnt1 1685 12881(If)m 1928(the)s
2289(component)s 3426(contains)s 4287(a)s 4466(recepti)s 6(v)k 3(e)k
5402(symbol,)s 6227(it)s 6432(cannot)s 7143(be)s 7438(promoted)s
8426(yet.)s 8896(If)s 0 12593(this)m 392(symbol)s 1148(is)s
1354(the)s 1697(tar)s 4(get)k 2292(of)s 2559(a)s
2720(g)s 1(alle)k 3(y)k 3350(that)s 3764(w)s 2(as)k
4180(written)s 4909(to)s 5144(an)s 5423(auxiliary)s 6321(\207le)s
6678(on)s 6971(a)s 7132(pre)s 6(vious)k 7997(run,)s
8419(read)s 8883(in)s 0 12305(that)m 427(g)s 1(alle)k 3(y)k
1071(and)s 1484(\210ush)s 2017(it.)s 2322(Otherwise)s 3370(suspend)s
4209(on)s 4516(the)s 4873(recepti)s 6(v)k 3(e)k
5805(symbol')s 13(s)k 6729(semaphore;)s 7887(resume)s 8643(later)s
0 12017(from)m 524(step)s 962(4.)s 0 11513(6.)m 284(T)s 16(erminate)k
1305(when)s 1881(the)s 2229(g)s 1(alle)k 3(y)k
2863(is)s 3073(empty)s 15(.)k 0 11010(At)m 354(v)s 6(arious)k
1158(points)s 1850(in)s 2148(this)s 2599(algorithm,)s 3691(recepti)s 6(v)k 3(e)k
4668(symbols)s 5572(\(and)s 6111(their)s 6663(semaphores\))s 7975(are)s
8378(deleted)s 0 10722(in)m 273(the)s 652(dynamic)s 1560(parent)s
2247(g)s 1(alle)k 3(y)k 15(,)k 2950(possibly)s
3833(permitting)s 4911(it)s 5134(to)s 5404(resume)s 6180(\210ushing.)s
7147(When)s 7807(this)s 8234(happens,)s 0 10434(Basser)m 701(Lout)s
1218(resumes)s 2057(the)s 2410(parent)s 3071(immediately)s 4324(after)s
240 fnt3 4825 10436(G)m 240 fnt1 5063 10434(suspends)m 5983(or)s
6247(terminates.)s 7410(Also,)s 7974(whene)s 6(v)k 3(er)k
8960(a)s 0 10146(component)m 1140(is)s 1366(promoted,)s 2406(an)s 3(y)k
2819(child)s 3371(g)s 1(alle)k 3(ys)k 4111(connected)s
5156(to)s 5411(it)s 5619(by)s 240 fnt3 5929 10148(UN)m 6(A)k 8(TT)k 12(A)k 7(CHED)k
240 fnt1 7510 10146(inde)m 3(x)k 3(es)k 8302(must)s
8844(be)s 0 9858(resumed,)m 918(since)s 1466(these)s 2014(g)s 1(alle)k 3(ys)k
2739(may)s 3206(be)s 3490(able)s 3945(to)s 4185(\207nd)s
4617(a)s 4784(tar)s 4(get)k 5384(no)s 6(w)k 15(.)k
5942(A)s 6173(good)s 6712(e)s 3(xample)k 7576(of)s
7848(this)s 8246(situation)s 0 9570(occurs)m 664(when)s 1228(a)s
1382(line)s 1785(of)s 2044(body)s 2566(te)s 3(xt)k
2969(with)s 3440(one)s 3830(or)s 4077(more)s 4613(footnotes)s
5542(is)s 5740(promoted)s 6703(onto)s 7171(a)s 7325(page.)s
7929(Basser)s 8614(Lout)s 0 9282(gi)m 6(v)k 3(es)k
547(priority)s 1317(to)s 1556(such)s 2052(children,)s 2942(suspending)s
240 fnt3 4073 9284(G)m 240 fnt1 4306 9282(while)m 4893(each)s
5388(is)s 5598(gi)s 6(v)k 3(en)k 6178(a)s
6344(chance)s 7064(to)s 7303(\210ush.)s 480 8908(Basser)m 1211(Lout)s
1758(searches)s 2653(for)s 3025(the)s 3408(\207rst)s 3874(tar)s 4(get)k
4507(of)s 240 fnt3 4813 8910(G)m 240 fnt1 5081 8908(only)m
5595(in)s 5873(re)s 3(gions)k 6660(of)s 6965(the)s
7348(dynamic)s 8260(tree)s 8708(that)s 0 8620(will)m 437(clearly)s
1152(precede)s 1963(or)s 2233(follo)s 6(w)k 240 fnt3
2917 8622(G)m 240 fnt1 3090 8620(')m 13(s)k 3312(in)s 9(v)k 4(ocation)k
4378(point)s 4941(in)s 5196(the)s 5556(\207nal)s 6047(printed)s
6794(document,)s 7857(whiche)s 6(v)k 3(er)k 8916(is)s
0 8332(speci\207ed)m 904(in)s 1142(the)s 220 fnt5 1486 8329(into)m
240 fnt1 1887 8332(clause;)m 2591(subsequent)s 3711(tar)s 4(gets)k
4389(are)s 4731(sought)s 5426(later)s 5904(in)s 6142(the)s
6486(same)s 7028(g)s 1(alle)k 3(y)k 7657(as)s
7903(the)s 8246(\207rst.)s 8776(An)s 0 8044(e)m 3(xception)k
982(to)s 1219(this)s 1613(rule,)s 2089(whose)s 2755(necessity)s
3683(will)s 4107(be)s 4387(made)s 4959(clear)s 5480(later)s 9(,)k
5999(is)s 6207(that)s 6623(a)s 6787(\207rst)s 220 fnt5
7216 8041(f)m 6(ollo)k 3(wing)k 240 fnt1 8104 8044(tar)m 4(get)k
8700(will)s 0 7756(be)m 282(sought)s 981(within)s 1649(a)s
1815(dynamic)s 2692(sibling)s 3396(g)s 1(alle)k 3(y)k
4030(preceding)s 240 fnt3 5026 7758(G)m 240 fnt1 5199 7756(')m 13(s)k
5409(in)s 9(v)k 4(ocation)k 6463(point:)s gsave
480 2770 translate
200 fnt1
5379 4646 0 4646 200 288 50 LoutGraphic
gsave
grestore save gsave 200 dict begin lfigdict begin
grestore
200 fnt3 0 4510(dynamic)m 722(par)s 7(ent)k gsave
0 1353 translate
200 fnt1
2039 3003 226 2777 200 288 50 LoutGraphic
gsave
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigbox ] lfigdopath
pop pop
grestore
1587 171 0 86 200 288 50 226 2323 LoutGr2
currentdict end 200 dict begin begin
grestore
796 171 0 86 200 288 50 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfignoline [ lfigbox ] lfigdopath
pop pop
grestore
180 fnt5 0 40(@XT)m 21(arget)k
grestore
(A) lfigpromotelabels
grestore
1587 136 0 47 200 288 50 226 1620 LoutGr2
currentdict end 200 dict begin begin
grestore
1254 136 0 47 200 288 50 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfignoline [ lfigbox ] lfigdopath
pop pop
grestore
200 fnt3 0 3(UN)m 5(A)k 7(TT)k 10(A)k 6(CHED)k
grestore
(C) lfigpromotelabels
grestore
180 fnt5 226 752(@XT)m 21(arget)k
grestore
gsave
2889 4135 translate
200 fnt1 2490 171 0 86 200 288 50 LoutGraphic
gsave
currentdict end 200 dict begin begin
grestore
2450 171 0 86 200 288 50 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfignoline [ lfigbox ] lfigdopath
pop pop
grestore
180 fnt5
0 40(X into { @XT)m 21(arget&&f)k 5(ollo)k 2(wing })k
grestore
(B) lfigpromotelabels
grestore
gsave
2889 2720 translate
200 fnt1
2039 1302 226 1076 200 288 50 LoutGraphic
gsave
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigbox ] lfigdopath
pop pop
grestore
180 fnt5 226 492(@GT)m 21(arget)k
grestore
gsave
2889 1982 translate
200 fnt1 2490 171 0 86 200 288 50 LoutGraphic
gsave
currentdict end 200 dict begin begin
grestore
2490 171 0 86 200 288 50 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfignoline [ lfigbox ] lfigdopath
pop pop
grestore
180 fnt5
0 40(G into { @GT)m 21(arget&&f)k 5(ollo)k 2(wing })k
grestore
(D) lfigpromotelabels
grestore
gsave
2889 0 translate
200 fnt1
2039 1869 226 1643 200 288 50 LoutGraphic
gsave
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigbox ] lfigdopath
pop pop
grestore
grestore
gsave
0 0 translate
200 fnt1 0 0 0 0 200 288 50 LoutGraphic
gsave
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ A@E 0.2 cm 0 lfigpadd lfigprevious /FROM lfigpointdef
0.2 cm 0 B@W lfigpsub lfigprevious /TO lfigpointdef ] lfigdopath
0.15 cm /lfigsolid /lfigblack
lfigopen
0.15 cm 0.05 cm lfigforward
grestore
grestore
gsave
0 0 translate
200 fnt1 0 0 0 0 200 288 50 LoutGraphic
gsave
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ C@E 0.2 cm 0 lfigpadd lfigprevious /FROM lfigpointdef
0.2 cm 0 D@W lfigpsub lfigprevious /TO lfigpointdef ] lfigdopath
0.15 cm /lfigsolid /lfigblack
lfigopen
0.15 cm 0.05 cm lfigforward
grestore
grestore
end end restore
grestore
0 2319(Here)m 240 fnt3 524 2321(G)m
240 fnt1 762 2319(will)m 1193(\207nd)s 1629(the)s 220 fnt5
1982 2316(@GT)m 26(arget)k 240 fnt1 3045 2319(tar)m 4(get)k
3649(within)s 240 fnt3 4322 2321(X)m 240 fnt1 4478 2319(.)m
4647(This)s 5128(is)s 5343(dangerous,)s 6439(since)s 6991(if)s
7213(the)s 7566(\207rst)s 8002(component)s 0 2031(of)m 240 fnt3
303 2033(G)m 240 fnt1 568 2031(is)m 811(then)s 1312(promoted)s
2320(via)s 240 fnt3 2704 2033(X)m 240 fnt1 2952 2031(into)m
3410(the)s 3790(\207rst)s 220 fnt5 4254 2028(@XT)m 26(arget)k
240 fnt1 5319 2031(rather)m 5967(than)s 6469(into)s 6926(the)s
7307(second,)s 240 fnt3 8111 2033(G)m 240 fnt1 8284 2031(')m 13(s)k
8527(tar)s 4(get)k 0 1743(will)m 438(not)s 817(appear)s
1526(later)s 2022(in)s 2277(the)s 2638(\207nal)s 3130(printed)s
3878(document)s 4894(than)s 5376(its)s 5664(in)s 9(v)k 4(ocation)k
6731(point,)s 7342(as)s 7605(required)s 8471(by)s 8778(the)s
220 fnt5 0 1452(into)m 240 fnt1 406 1455(clause.)m 480 1081(Accordingly)m 15(,)k
1753(when)s 2313(such)s 2794(a)s 2944(tar)s 4(get)k
3528(is)s 3722(chosen,)s 4478(tw)s 2(o)k 4873(special)s
5575(g)s 1(alle)k 3(y)k 6194(inde)s 3(x)k 3(es)k
6954(are)s 7286(inserted)s 8084(and)s 8472(link)s 2(ed)k
0 793(together:)m 898(a)s 240 fnt3 1074 795(PRECEDES)m 240 fnt1
2327 793(inde)m 3(x)k 2921(at)s 240 fnt3 3163 795(G)m
240 fnt1 3336 793(')m 13(s)k 3555(in)s 9(v)k 4(ocation)k
4619(point,)s 5227(and)s 5641(a)s 240 fnt3 5817 795(FOLLO)m 12(WS)k
240 fnt1 6952 793(inde)m 3(x)k 7546(at)s 7787(the)s
8145(\207rst)s 8586(com-)s 0 505(ponent)m 720(of)s 240 fnt3
1000 507(G)m 240 fnt1 1173 505(.)m 1346(The)s 1783(algorithm)s
2781(checks)s 3492(before)s 4167(promoting)s 5226(an)s 3(y)k
240 fnt3 5632 507(FOLLO)m 12(WS)k 240 fnt1 6767 505(inde)m 3(x)k
7360(that)s 7787(its)s 8072(promotion)s
grestore
0 0 0 0 240 288 60 1417 -15423 LoutGr2
1 LoutMargSet
grestore
grestore
grestore
grestore
grestore
pgsave restore
showpage
%%Page: 28 29
%%BeginPageSetup
%%PageResources: font Times-Roman
%%+ font Times-Italic
%%+ font Helvetica
%%+ font Symbol
/pgsave save def
%%IncludeResource: font Times-Roman
/Times-Romanfnt1 vec2 /Times-Roman LoutRecode
/fnt1 { /Times-Romanfnt1 LoutFont } def
%%IncludeResource: font Times-Italic
/Times-Italicfnt3 vec2 /Times-Italic LoutRecode
/fnt3 { /Times-Italicfnt3 LoutFont } def
%%IncludeResource: font Helvetica
/Helveticafnt5 vec2 /Helvetica LoutRecode
/fnt5 { /Helveticafnt5 LoutFont } def
%%IncludeResource: font Symbol
/fnt4 { /Symbol LoutFont } def
0.0500 dup scale 10 setlinewidth
%%EndPageSetup
gsave
0 0 translate
240 fnt1 0.0 0.0 0.0 LoutSetRGBColor LoutTextureSolid 11900 16840 0 16840 240 288 60 LoutGraphic
gsave
LoutPageSet
grestore
gsave
0 0 translate
1.0 1.0 1.0 LoutSetRGBColor 11900 16840 0 16840 240 288 60 LoutGraphic
gsave
LoutBox gsave 1.0 1.0 1.0 LoutSetRGBColor fill grestore 0 cm setlinewidth stroke
grestore
gsave
0 16840 translate
0.0000 rotate
0.0 0.0 0.0 LoutSetRGBColor
5708 -1579(-)m 5836(28)s 6123(-)s 9066 13416 0 13307 240 288 60 1417 -15423 LoutGr2
0 LoutMargSet
grestore
0 13253(w)m 2(ould)k
661(not)s 1033(place)s 1599(it)s 1797(earlier)s 2471(than)s
2946(the)s 3300(corresponding)s 240 fnt3 4728 13255(PRECEDES)m 240 fnt1
5978 13253(inde)m 3(x)k 6568(in)s 6817(the)s 7171(same)s
7724(g)s 1(alle)k 3(y)k 15(,)k 8402(and)s
8813(re-)s 0 12965(jects)m 486(the)s 831(component)s 1952(if)s
2166(it)s 2355(w)s 2(ould.)k 3113(Since)s 240 fnt3
3697 12967(PRECEDES)m 240 fnt1 4939 12965(and)m 240 fnt3 5340 12967(FOLLO)m 12(WS)k
240 fnt1 6463 12965(inde)m 3(x)k 3(es)k 7236(are)s
7580(rarely)s 8187(used,)s 8730(this)s 0 12677(check)m 619(can)s
1008(be)s 1290(implemented)s 2596(by)s 2890(linear)s 3493(search.)s
480 12303(When)m 1114(tw)s 2(o)k 1529(components)s 2742(are)s
3094(separated)s 4060(by)s 220 fnt5 4359 12300(/)m 240 fnt1
4423 12303(,)m 4535(as)s 4790(opposed)s 5652(to)s 5897(the)s
6250(more)s 6802(usual)s 220 fnt5 7367 12300(//)m 240 fnt1
7492 12303(,)m 7604(each)s 8105(in\210uences)s 0 12015(the)m 358(horizontal)s
1393(position)s 2232(of)s 2514(the)s 2872(other)s 13(.)k
3525(Because)s 4389(of)s 4671(this,)s 5133(the)s 240 fnt3
5492 12017(SUSPEND)m 240 fnt1 6596 12015(action)m 7248(is)s 7468(in)s
7722(f)s 2(act)k 8148(tak)s 2(en)k 8732(if)s
8960(a)s 0 11727(recepti)m 6(v)k 3(e)k 930(symbol)s
1698(occurs)s 2382(in)s 2633(an)s 3(y)k 3039(component)s
4171(separated)s 5140(from)s 5672(the)s 6028(\207rst)s 6468(by)s
220 fnt5 6770 11724(/)m 240 fnt1 6903 11727(operators)m 7851(only)s 15(.)k
8435(Ag)s 1(ain,)k 0 11439(linear)m 603(search)s 1270(forw)s 2(ards)k
2168(to)s 2407(the)s 2755(\207rst)s 220 fnt5 3186 11436(//)m
240 fnt1 3371 11439(suf\207ces)m 4152(for)s 4490(this)s 4886(check.)s
480 11065(A)m 740(good)s 1308(illustration)s 2430(of)s 2731(these)s
3308(unusual)s 4139(cases)s 4724(is)s 4964(af)s 6(forded)k
5856(by)s 6180(the)s 220 fnt5 6558 11062(@Align)m 240 fnt1
7344 11065(symbols)m 8223(from)s 8778(the)s 0 10777(standard)m 867(DocumentLayout)s
2600(package.)s 3546(These)s 4171(are)s 4516(used)s 5012(to)s
5249(produce)s 6074(displayed)s 7047(equations,)s 8069(aligned)s 8829(on)s
0 10489(their)m 497(equals)s 1159(signs)s 1702(despite)s 2435(being)s
3020(separated)s 3980(by)s 4274(arbitrary)s 5149(body)s 5683(te)s 3(xt.)k
480 10115(The)m 220 fnt5 921 10112(@Align)m 240 fnt1 1689 10115(symbols)m
2551(are)s 2911(packaged)s 3886(neatly)s 4537(for)s 4889(the)s
5250(con)s 9(v)k 3(enience)k 6503(of)s 6787(the)s
7148(non-e)s 3(xpert)k 8254(user)s 9(,)k 8764(b)s 4(ut)k
0 9827(we)m 335(will)s 761(sho)s 6(w)k 1315(just)s
1720(the)s 2067(essence)s 2853(of)s 3124(the)s 3472(implementation)s
5029(here.)s 5603(First,)s 6147(an)s 220 fnt5 6430 9824(@AlignList)m
240 fnt1 7536 9827(g)m 1(alle)k 3(y)k 8170(is)s
8379(created)s 0 9539(which)m 642(contains)s 1490(an)s 1773(in\207nite)s
2506(supply)s 3199(of)s 220 fnt5 3470 9536(@AlignPlace)m 240 fnt1
4779 9539(recepti)m 6(v)k 3(e)k 5701(symbols)s 6550(separated)s
7510(by)s 220 fnt5 7804 9536(/)m 240 fnt1 7928 9539(operators:)m
4777 3207 0 3207 240 288 60 480 5992 LoutGr2
grestore save gsave 200 dict begin lfigdict begin
grestore
240 fnt3 0 3044(body)m 522(te)s 4(xt)k 926(galle)s 7(y)k
gsave
0 161 translate
240 fnt1 2039 2720 226 2494 240 288 60 LoutGraphic
gsave
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigbox ] lfigdopath
pop pop
grestore
1587 1418 0 1314 240 288 60 226 226 LoutGr2
currentdict end 200 dict begin begin
grestore
838 208 0 104 240 288 60 0 1210 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfignoline [ lfigbox ] lfigdopath
pop pop
grestore
220 fnt5 0 47(@Galle)m 4(y)k
grestore
(A) lfigpromotelabels
grestore
grestore
gsave
2889 1638 translate
240 fnt1
1888 209 0 105 240 288 60 LoutGraphic
gsave
currentdict end 200 dict begin begin
grestore
1046 209 0 105 240 288 60 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfignoline [ lfigbox ] lfigdopath
pop pop
grestore
220 fnt5 0 48(@AlignList)m
grestore
(B) lfigpromotelabels
grestore
gsave
2889 0 translate
240 fnt1 1888 1525 226 1195 240 288 60 LoutGraphic
gsave
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigbox ] lfigdopath
pop pop
grestore
220 fnt5 226 1138(@AlignPlace)m
226 850(@AlignPlace)m 226 562(...)m 226 274(@EndAlignList)m
grestore
gsave
0 0 translate
240 fnt1 0 0 0 0 240 288 60 LoutGraphic
gsave
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ A@E 0.2 cm 0 lfigpadd lfigprevious /FROM lfigpointdef
0.2 cm 0 B@W lfigpsub lfigprevious /TO lfigpointdef ] lfigdopath
0.15 cm /lfigsolid /lfigblack
lfigopen
0.15 cm 0.05 cm lfigforward
grestore
grestore
end end restore
grestore
0 5541(Then)m
549(equations)s 1517(lik)s 2(e)k 1471 214 393 105 240 288 60 480 4987 LoutGr2
grestore save gsave 200 dict begin lfigdict begin
grestore
1471 214 393 105 240 288 60 0 0 LoutGr2
/lfiglightgrey [ lfigbox ] gsave lfigpaintpath grestore
0.015 cm setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigbox ] lfigdopath
pop pop
grestore
1471 214 393 105 240 288 60 0 0 LoutGr2
0.015 cm setlinewidth lfiground setlinecap
0.15 cm /lfigdashed [ -0.3 cm ymark xsize ymark 0.3 cm 0 lfigpadd
[]
xmark -0.3 cm xmark ysize 0 0.3 cm lfigpadd ] lfigdopath
pop pop
grestore
240 fnt3 0 53(f)m
240 fnt4 113 45(\()m 240 fnt3 197 53(x)m 240 fnt4
315 45(\))m 477(=)s 240 fnt3 690 53(g)m 240 fnt4
816 45(\()m 240 fnt3 900 53(x)m 240 fnt4 1018 45(\))m
1156(+)s 1357(2)s
grestore
grestore
end end restore
grestore
0 4536(are)m 358(created)s 1117(and)s
1532(sent)s 1989(to)s 220 fnt5 2239 4533(@AlignPlace&&f)m 6(ollo)k 3(wing)k
240 fnt1 4690 4536(tar)m 4(gets.)k 5498(The)s 3(y)k
6052(collect)s 6760(in)s 7014(the)s 220 fnt5 7374 4533(@AlignList)m
240 fnt1 8492 4536(g)m 1(alle)k 3(y)k 0 4248(and)m
404(are)s 751(aligned)s 1513(there:)s 5836 3212 0 3212 240 288 60 480 696 LoutGr2
grestore save gsave 200 dict begin lfigdict begin
grestore
240 fnt3 0 3049(body)m
522(te)s 4(xt)k 926(galle)s 7(y)k gsave
0 166 translate
240 fnt1
2039 2720 226 2494 240 288 60 LoutGraphic
gsave
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigbox ] lfigdopath
pop pop
grestore
1587 1418 0 1314 240 288 60 226 226 LoutGr2
currentdict end 200 dict begin begin
grestore
838 208 0 104 240 288 60 0 1210 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfignoline [ lfigbox ] lfigdopath
pop pop
grestore
220 fnt5 0 47(@Galle)m 4(y)k
grestore
(A) lfigpromotelabels
grestore
grestore
gsave
2889 1643 translate
240 fnt1 2947 209 0 105 240 288 60 LoutGraphic
gsave
currentdict end 200 dict begin begin
grestore
1046 209 0 105 240 288 60 0 0 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfignoline [ lfigbox ] lfigdopath
pop pop
grestore
220 fnt5
0 48(@AlignList)m
grestore
(B) lfigpromotelabels
grestore
gsave
2889 0 translate
240 fnt1 2947 1530 1285 1195 240 288 60 LoutGraphic
gsave
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ lfigbox ] lfigdopath
pop pop
grestore
2495 1078 1059 969 240 288 60 226 226 LoutGr2
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigdashed [ xmark ysize lfigprevious /FROM lfigpointdef
xmark 0 lfigprevious /TO lfigpointdef ] lfigdopath
pop pop
grestore
240 fnt3 666 917(f)m 240 fnt4
779 909(\()m 240 fnt3 863 917(x)m 240 fnt4 981 909(\))m
1143(=)s 240 fnt3 1356 917(g)m 240 fnt4 1482 909(\()m
240 fnt3 1566 917(x)m 240 fnt4 1684 909(\))m 1822(+)s
2023(2)s 240 fnt3 0 629(f)m 240 fnt4 113 621(\()m
240 fnt3 197 629(x)m 240 fnt4 315 621(\))m 453(-)s
240 fnt3 653 629(g)m 240 fnt4 779 621(\()m 240 fnt3
863 629(x)m 240 fnt4 981 621(\))m 1143(=)s 1356(2)s
220 fnt5 1059 336(...)m 1059 48(@EndAlignList)m
grestore
grestore
gsave
0 0 translate
240 fnt1 0 0 0 0 240 288 60 LoutGraphic
gsave
0.5 pt setlinewidth lfiground setlinecap
0.15 cm /lfigsolid [ A@E 0.2 cm 0 lfigpadd lfigprevious /FROM lfigpointdef
0.2 cm 0 B@W lfigpsub lfigprevious /TO lfigpointdef ] lfigdopath
0.15 cm /lfigsolid /lfigblack
lfigopen
0.15 cm 0.05 cm lfigforward
grestore
grestore
end end restore
grestore
grestore
0 0 0 0 240 288 60 1417 -15423 LoutGr2
0 LoutMargSet
grestore
grestore
grestore
grestore
grestore
pgsave restore
showpage
%%Page: 29 30
%%BeginPageSetup
%%PageResources: font Times-Roman
%%+ font Helvetica
%%+ font Times-Italic
%%+ font Times-Bold
%%+ font Symbol
/pgsave save def
%%IncludeResource: font Times-Roman
/Times-Romanfnt1 vec2 /Times-Roman LoutRecode
/fnt1 { /Times-Romanfnt1 LoutFont } def
%%IncludeResource: font Helvetica
/Helveticafnt5 vec2 /Helvetica LoutRecode
/fnt5 { /Helveticafnt5 LoutFont } def
%%IncludeResource: font Times-Italic
/Times-Italicfnt3 vec2 /Times-Italic LoutRecode
/fnt3 { /Times-Italicfnt3 LoutFont } def
%%IncludeResource: font Times-Bold
/Times-Boldfnt2 vec2 /Times-Bold LoutRecode
/fnt2 { /Times-Boldfnt2 LoutFont } def
%%IncludeResource: font Symbol
/fnt4 { /Symbol LoutFont } def
0.0500 dup scale 10 setlinewidth
%%EndPageSetup
gsave
0 0 translate
240 fnt1 0.0 0.0 0.0 LoutSetRGBColor LoutTextureSolid 11900 16840 0 16840 240 288 60 LoutGraphic
gsave
LoutPageSet
grestore
gsave
0 0 translate
1.0 1.0 1.0 LoutSetRGBColor 11900 16840 0 16840 240 288 60 LoutGraphic
gsave
LoutBox gsave 1.0 1.0 1.0 LoutSetRGBColor fill grestore 0 cm setlinewidth stroke
grestore
gsave
0 16840 translate
0.0000 rotate
0.0 0.0 0.0 LoutSetRGBColor
5706 -1579(-)m 5834(29)s 6125(-)s 9066 13414 0 13305 240 288 60 1417 -15423 LoutGr2
1 LoutMargSet
grestore
0 13251(The)m 220 fnt5
450 13248(@AlignList)m 240 fnt1 1579 13251(g)m 1(alle)k 3(y)k
2236(does)s 2749(not)s 3138(\210ush,)s 3734(because)s 4570(its)s
4868(\207rst)s 5322(component)s 6469(is)s 6702(connected)s 7753(to)s
8015(a)s 8204(recepti)s 6(v)k 3(e)k 0 12963(symbol)m
760(by)s 220 fnt5 1054 12960(/)m 240 fnt1 1178 12963(operators.)m
480 12589(After)m 1048(the)s 1402(last)s 1799(equation,)s 2736(an)s
3025(empty)s 3683(forcing)s 4432(g)s 1(alle)k 3(y)k
5072(is)s 5288(sent)s 5739(to)s 220 fnt5 5984 12586(@EndAlignList)m
240 fnt1 7420 12589(,)m 7533(deleting)s 8362(the)s 8716(tw)s 2(o)k
0 12301(remaining)m 1028(recepti)s 6(v)k 3(e)k 1957(symbols)s
2813(from)s 3344(the)s 220 fnt5 3699 12298(@AlignList)m 240 fnt1
4812 12301(g)m 1(alle)k 3(y)k 5452(and)s 5863(permitting)s
6918(it)s 7117(to)s 7363(\210ush.)s 240 fnt3 8000 12303(FOLLO)m 12(WS)k
240 fnt1 0 12013(inde)m 3(x)k 3(es)k 797(ensure)s
1499(that)s 1939(each)s 2456(equation)s 3359(\207nds)s 3898(a)s
4086(tar)s 4(get)k 4707(placed)s 5410(in)s 5675(the)s
6045(body)s 6601(te)s 3(xt)k 7038(just)s 7465(after)s
7983(its)s 8281(point)s 8855(of)s 0 11725(in)m 9(v)k 4(ocation,)k
1090(so)s 1341(the)s 1675(equations)s 2628(return,)s 3290(aligned,)s
4087(to)s 4311(approximately)s 5732(the)s 6065(points)s 6686(where)s
7312(the)s 3(y)k 7760(were)s 8265(in)s 9(v)k 4(ok)k 2(ed.)k
0 11437(Notice)m 703(that)s 1131(the)s 1489(\210ushing)s 2324(of)s
2605(body)s 3149(te)s 3(xt)k 3574(is)s 3794(suspended)s
4860(until)s 5363(the)s 5721(list)s 6082(of)s 6363(equations)s
7341(is)s 7561(completed,)s 8674(as)s 8934(it)s 0 11149(must)m
513(be,)s 833(since)s 1367(the)s 1702(horizontal)s 2713(position)s
3528(of)s 3786(the)s 4121(\207rst)s 4539(equation)s 5407(cannot)s
6092(be)s 6361(kno)s 6(wn)k 7052(until)s 7532(the)s
7867(last)s 8245(equation)s 0 10861(is)m 210(added)s 840(to)s
1079(the)s 1427(list.)s 480 10487(Layout)m 1262(quality)s 2025(can)s
2459(occasionally)s 3753(be)s 4080(impro)s 3(v)k 3(ed)k
5094(by)s 5433(rejecting)s 6366(a)s 6577(component)s 7746(that)s
8209(could)s 8844(be)s 0 10199(promoted)m 978(\211)s 1161(for)s
1502(e)s 3(xample,)k 2419(a)s 2588(component)s 3715(of)s
3989(body)s 4526(te)s 3(xt)k 4944(that)s 5365(carries)s
6054(a)s 6223(footnote)s 7079(too)s 7441(lar)s 4(ge)k
7973(to)s 8215(\207t)s 8477(on)s 8778(the)s 0 9911(current)m
747(page.)s 1374(Since)s 1972(Lout)s 2496(does)s 2997(not)s
3374(specify)s 4130(ho)s 6(w)k 4602(breaking)s 5503(decisions)s
6455(are)s 6814(made,)s 7450(be)s 3(yond)k 8222(the)s
8582(basic)s 0 9623(constraints)m 1089(imposed)s 1961(by)s 2258(a)s 4(v)k 6(ailable)k
3169(space)s 3759(and)s 220 fnt5 4166 9620(into)m 240 fnt1
4575 9623(clauses,)m 5375(in)s 5621(principle)s 6529(such)s 7028(high)s
7514(quality)s 8236(breaking)s 0 9335(could)m 592(be)s 877(added)s
1510(to)s 1752(the)s 2102(implementation)s 3662(with)s 4147(no)s
4443(change)s 5180(to)s 5421(the)s 5772(language.)s 6803(Ho)s 6(we)k 6(v)k 3(er)k 9(,)k
7766(the)s 8117(generality)s 0 9047(of)m 280(the)s 637(g)s 1(alle)k 3(y)k
1280(\210ushing)s 2115(algorithm,)s 3160(and)s 3573(its)s 3859(already)s
4625(considerable)s 5898(comple)s 3(xity)k 15(,)k 7073(mak)s 2(e)k
7654(this)s 8059(a)s 8235(daunting)s 0 8759(problem)m 890(in)s
1167(practice,)s 2062(although)s 2991(a)s 3190(f)s 2(ascinating)k
4323(one.)s 4866(T)s 5008 8711(E)m 5151 8759(X)m 5414([9],)s
5832(with)s 6348(its)s 6657(unnested)s 7600(set)s 7958(of)s
8263(`\210oating)s 0 8471(insertions')m 1041(clearly)s 1744(identi\207able)s 2875(as)s
3125(each)s 3620(page)s 4128(is)s 4338(be)s 3(gun,)k
5028(has)s 5398(the)s 5746(adv)s 6(antage)k 6766(in)s
7009(this)s 7405(respect.)s 240 fnt2 0 7822(5.3.)m 471(Size)s
938(constraints)s 2120(and)s 2561(size)s 2988(adjustments)s
[ /Dest /LOUTconstraints /DEST pdfmark
240 fnt1
480 7346(The)m 893(g)s 1(alle)k 3(y)k 1512(\210ushing)s
2321(algorithm)s 3295(needs)s 3876(to)s 4099(kno)s 6(w)k
4665(the)s 4998(a)s 4(v)k 6(ailable)k 5890(width)s
6477(and)s 6866(height)s 7508(at)s 7725(each)s 8204(recepti)s 6(v)k 3(e)k
0 7058(symbol.)m 869(These)s 1496(symbols)s 2346(may)s 2812(lie)s
3106(within)s 3775(arbitrarily)s 4782(comple)s 3(x)k 5659(objects,)s
6443(and)s 6847(the)s 3(y)k 7311(may)s 7777(compete)s
8644(with)s 0 6770(each)m 492(other)s 1040(for)s 1375(a)s 4(v)k 6(ailable)k
2280(space)s 2864(\(as)s 3189(body)s 3720(te)s 3(xt)k
4132(and)s 4533(footnote)s 5383(tar)s 4(gets)k 6062(do\),)s
6485(so)s 6748(this)s 7141(information)s 8323(must)s 8844(be)s
0 6482(e)m 3(xtracted)k 930(from)s 1454(the)s 1802(tree)s
2215(structure)s 3106(when)s 3682(required.)s 480 6108(F)m 3(or)k
869(e)s 3(xample,)k 1783(consider)s 2653(the)s 3001(object)s
220 fnt5 480 5607(5i @Wide { a / b })m 240 fnt1 0 5113(and)m 406(suppose)s
1236(that)s 1656(the)s 2006(width)s 2610(of)s 220 fnt5
2883 5110(a)m 240 fnt1 3062 5113(is)m 240 fnt4 3274 5107(1)m
240 fnt3 3382 5115(i)m 240 fnt4 3459 5107(,)m 3572(2)s
240 fnt3 3700 5115(i)m 240 fnt1 3825 5113(\()m 240 fnt4
3898 5107(1)m 240 fnt3 4006 5115(i)m 240 fnt1 4131 5113(to)m
4372(the)s 4722(left)s 5101(of)s 5374(the)s 5724(mark,)s
240 fnt4 6324 5107(2)m 240 fnt3 6452 5115(i)m 240 fnt1
6577 5113(to)m 6818(the)s 7168(right\).)s 7864(What)s 8444(then)s
8916(is)s 0 4825(the)m 348(a)s 4(v)k 6(ailable)k
1256(width)s 1858(at)s 220 fnt5 2090 4822(b)m 240 fnt1
2204 4825(?)m 2423(If)s 2653(we)s 2988(let)s 3286(the)s
3634(width)s 4236(of)s 220 fnt5 4507 4822(b)m 240 fnt1
4681 4825(be)m 240 fnt3 4963 4827(l)m 240 fnt4 5041 4819(,)m
240 fnt3 5148 4827(r)m 240 fnt1 5246 4825(,)m 5353(we)s
5688(must)s 6213(ha)s 4(v)k 3(e)k 240 fnt4
480 4277(\()m 564(1)s 240 fnt3 670 4285(i)m 240 fnt4
817 4277(\255)m 240 fnt3 1038 4285(l)m 240 fnt4 1116 4277(\))m
1254(+)s 1455(\()s 1539(2)s 240 fnt3 1665 4285(i)m
240 fnt4 1812 4277(\255)m 240 fnt3 2033 4285(r)m 240 fnt4
2143 4277(\))m 2293(\243)s 2503(5)s 240 fnt3 2622 4285(i)m
240 fnt1 0 3732(with)m 482(the)s 240 fnt4 842 3726(\255)m
240 fnt1 1051 3732(\(i.e.)m 1466(max\))s 2006(operations)s 3053(arising)s
3756(from)s 4280(mark)s 4832(alignment.)s 5952(Eliminating)s 7133(them)s
7671(gi)s 6(v)k 3(es)k 240 fnt4 480 3180(1)m
240 fnt3 586 3188(i)m 240 fnt4 721 3180(+)m 922(2)s
240 fnt3 1048 3188(i)m 240 fnt4 1207 3180(\243)m 1417(5)s
240 fnt3 1536 3188(i)m 583 2893(l)m 240 fnt4 721 2885(+)m
922(2)s 240 fnt3 1048 2893(i)m 240 fnt4 1207 2885(\243)m
1417(5)s 240 fnt3 1536 2893(i)m 240 fnt4 571 2597(1)m
240 fnt3 677 2605(i)m 240 fnt4 812 2597(+)m 240 fnt3
1013 2605(r)m 240 fnt4 1207 2597(\243)m 1417(5)s 240 fnt3
1536 2605(i)m 674 2310(l)m 240 fnt4 812 2302(+)m 240 fnt3
1013 2310(r)m 240 fnt4 1207 2302(\243)m 1417(5)s 240 fnt3
1536 2310(i)m 240 fnt1 0 1799(and)m 428(since)s 1000(we)s
1359(assume)s 2144(that)s 220 fnt5 2587 1796(a)m 240 fnt1
2788 1799(\207ts)m 3156(into)s 3606(the)s 3978(a)s 4(v)k 6(ailable)k
4911(space,)s 5573(the)s 5946(\207rst)s 6402(inequality)s 7436(may)s
7927(be)s 8234(dropped,)s 0 1511(lea)m 4(ving)k
grestore
0 0 0 0 240 288 60 1417 -15423 LoutGr2
1 LoutMargSet
grestore
grestore
grestore
grestore
grestore
pgsave restore
showpage
%%Page: 30 31
%%BeginPageSetup
%%PageResources: font Times-Roman
%%+ font Times-Italic
%%+ font Symbol
%%+ font Helvetica
/pgsave save def
%%IncludeResource: font Times-Roman
/Times-Romanfnt1 vec2 /Times-Roman LoutRecode
/fnt1 { /Times-Romanfnt1 LoutFont } def
%%IncludeResource: font Times-Italic
/Times-Italicfnt3 vec2 /Times-Italic LoutRecode
/fnt3 { /Times-Italicfnt3 LoutFont } def
%%IncludeResource: font Symbol
/fnt4 { /Symbol LoutFont } def
%%IncludeResource: font Helvetica
/Helveticafnt5 vec2 /Helvetica LoutRecode
/fnt5 { /Helveticafnt5 LoutFont } def
0.0500 dup scale 10 setlinewidth
%%EndPageSetup
gsave
0 0 translate
240 fnt1 0.0 0.0 0.0 LoutSetRGBColor LoutTextureSolid 11900 16840 0 16840 240 288 60 LoutGraphic
gsave
LoutPageSet
grestore
gsave
0 0 translate
1.0 1.0 1.0 LoutSetRGBColor 11900 16840 0 16840 240 288 60 LoutGraphic
gsave
LoutBox gsave 1.0 1.0 1.0 LoutSetRGBColor fill grestore 0 cm setlinewidth stroke
grestore
gsave
0 16840 translate
0.0000 rotate
0.0 0.0 0.0 LoutSetRGBColor
5704 -1579(-)m 5832(30)s 6127(-)s 9066 13416 0 12991 240 288 60 1417 -15423 LoutGr2
0 LoutMargSet
grestore
240 fnt3 851 13205(l)m
240 fnt4 1013 13197(\243)m 1223(3)s 240 fnt3 1340 13205(i)m
480 12910(l)m 240 fnt4 618 12902(+)m 240 fnt3 819 12910(r)m
240 fnt4 1013 12902(\243)m 1223(5)s 240 fnt3 1342 12910(i)m
819 12622(r)m 240 fnt4 1013 12614(\243)m 1223(4)s 240 fnt3
1348 12622(i)m 240 fnt1 0 12113(Object)m 220 fnt5 697 12110(b)m
240 fnt1 871 12113(may)m 1337(ha)s 4(v)k 3(e)k
1838(width)s 240 fnt3 2440 12115(l)m 240 fnt4 2518 12107(,)m
240 fnt3 2625 12115(r)m 240 fnt1 2783 12113(for)m 3121(an)s 3(y)k
240 fnt3 3518 12115(l)m 240 fnt1 3644 12113(and)m 240 fnt3
4048 12115(r)m 240 fnt1 4206 12113(satisfying)m 5188(these)s 5735(inequalities,)s
6943(and)s 7347(no)s 7640(others.)s 480 11739(Here)m 1000(is)s
1210(another)s 1987(e)s 3(xample:)k 220 fnt5 480 11238(5i @High { a /2ix b })m
240 fnt1 0 10737(Assuming)m 1024(that)s 220 fnt5 1442 10734(a)m
240 fnt1 1619 10737(has)m 1989(height)s 240 fnt4 2647 10731(1)m
240 fnt3 2753 10739(i)m 240 fnt4 2828 10731(,)m 2935(1)s
240 fnt3 3041 10739(i)m 240 fnt1 3104 10737(,)m 3211(the)s
3559(height)s 240 fnt3 4217 10739(l)m 240 fnt4 4295 10731(,)m
240 fnt3 4402 10739(r)m 240 fnt1 4560 10737(of)m 220 fnt5
4831 10734(b)m 240 fnt1 5005 10737(must)m 5530(satisfy)s 240 fnt4
480 10179(1)m 240 fnt3 586 10187(i)m 240 fnt4 721 10179(+)m
922(\()s 1006(\()s 1090(1)s 240 fnt3 1196 10187(i)m
240 fnt4 1331 10179(+)m 240 fnt3 1532 10187(l)m 240 fnt4
1610 10179(\))m 1760(\255)s 1981(2)s 240 fnt3 2107 10187(i)m
240 fnt4 2182 10179(\))m 2320(+)s 240 fnt3 2521 10187(r)m
240 fnt4 2703 10179(\243)m 2913(5)s 240 fnt3 3032 10187(i)m
240 fnt1 0 9634(This)m 478(time)s 960(the)s 240 fnt4
1325 9628(\255)m 240 fnt1 1539 9634(operation)m 2501(arises)s 3098(from)s
3624(the)s 3975(mark-to-mark)s 5364(g)s 1(ap)k 5765(mode,)s
6406(which)s 7050(will)s 7479(widen)s 8123(the)s 240 fnt4
8474 9628(2)m 240 fnt3 8602 9636(i)m 240 fnt1 8728 9634(g)m 1(ap)k
0 9346(if)m 217(necessary)s 1200(to)s 1439(pre)s 6(v)k 3(ent)k
220 fnt5 2207 9343(a)m 240 fnt1 2384 9346(and)m 220 fnt5
2788 9343(b)m 240 fnt1 2962 9346(from)m 3486(o)s 3(v)k 3(erlapping.)k
4787(This)s 5263(inequality)s 6273(can)s 6662(be)s 6944(re)s 6(written)k
7856(as)s 240 fnt3 851 8795(l)m 240 fnt4 1013 8787(\243)m
288 fnt4 1223 8775(\245)m 240 fnt3 480 8504(l)m 240 fnt4
618 8496(+)m 240 fnt3 819 8504(r)m 240 fnt4 1013 8496(\243)m
1223(3)s 240 fnt3 1340 8504(i)m 819 8216(r)m 240 fnt4
1013 8208(\243)m 1223(2)s 240 fnt3 1349 8216(i)m 240 fnt1
0 7709(In)m 263(general,)s 1080(Lout)s 1599(is)s 1816(designed)s
2732(so)s 3005(that)s 3430(the)s 3785(a)s 4(v)k 6(ailable)k
4700(width)s 5309(or)s 5575(height)s 6240(at)s 6479(an)s 3(y)k
6883(point)s 7442(can)s 7838(be)s 8128(e)s 3(xpressed)k
0 7421(by)m 294(three)s 827(inequalities)s 1979(of)s 2250(the)s
2598(form)s 240 fnt3 851 6870(l)m 240 fnt4 1013 6862(\243)m
240 fnt3 1223 6870(x)m 480 6579(l)m 240 fnt4 618 6571(+)m
240 fnt3 819 6579(r)m 240 fnt4 1013 6571(\243)m 240 fnt3
1223 6579(y)m 819 6264(r)m 240 fnt4 1013 6256(\243)m 240 fnt3
1223 6264(z)m 240 fnt1 0 5743(where)m 240 fnt3 641 5745(x)m
240 fnt1 747 5743(,)m 240 fnt3 855 5745(y)m 240 fnt1
1018 5743(and)m 240 fnt3 1423 5745(z)m 240 fnt1 1575 5743(may)m
2042(be)s 288 fnt4 2325 5725(\245)m 240 fnt1 2523 5743(.)m
2688(W)s 19(e)k 3058(abbre)s 6(viate)k 4104(these)s
4652(three)s 5186(inequalities)s 6339(to)s 240 fnt3 6579 5745(l)m
240 fnt4 6658 5737(,)m 240 fnt3 6768 5745(r)m 240 fnt4
6953 5737(\243)m 240 fnt3 7166 5745(x)m 240 fnt4 7285 5737(,)m
240 fnt3 7395 5745(y)m 240 fnt4 7510 5737(,)m 240 fnt3
7620 5745(z)m 240 fnt1 7711 5743(,)m 7819(and)s 8224(we)s
8560(call)s 240 fnt3 8960 5745(x)m 240 fnt4 0 5449(,)m
240 fnt3 107 5457(y)m 240 fnt4 221 5449(,)m 240 fnt3
328 5457(z)m 240 fnt1 479 5455(a)m 240 fnt3 645 5457(size)m
1056(constr)s 3(aint)k 240 fnt1 2027 5455(.)m 480 5081(The)m
920(tw)s 2(o)k 1343(e)s 3(xamples)k 2307(abo)s 3(v)k 3(e)k
2942(sho)s 6(wed)k 3739(ho)s 6(w)k 4213(to)s
4465(propag)s 1(ate)k 5475(the)s 5836(size)s 6276(constraint)s
288 fnt4 7291 5063(\245)m 240 fnt4 7514 5075(,)m 7659(5)s
240 fnt3 7791 5083(i)m 240 fnt4 7879 5075(,)m 288 fnt4
8025 5063(\245)m 240 fnt1 8296 5081(for)m 220 fnt5 8647 5078(a / b)m
240 fnt1 0 4793(do)m 6(wn)k 586(one)s 991(le)s 6(v)k 3(el)k
1504(to)s 1746(the)s 2097(child)s 220 fnt5 2636 4790(b)m
240 fnt1 2750 4793(.)m 2917(Basser)s 3617(Lout)s 4132(contains)s
4982(a)s 5151(complete)s 6086(set)s 6414(of)s 6688(general)s
7449(rules)s 7967(for)s 8308(all)s 8604(node)s 0 4505(types,)m
627(too)s 1002(complicated)s 2244(to)s 2499(gi)s 6(v)k 3(e)k
2974(here.)s 3565(Instead,)s 4378(we)s 4729(gi)s 6(v)k 3(e)k
5203(just)s 5624(one)s 6042(e)s 3(xample)k 6921(of)s
7208(ho)s 6(w)k 7685(these)s 8248(rules)s 8779(are)s
0 4217(deri)m 6(v)k 3(ed,)k 815(using)s 1387(the)s
1735(object)s 240 fnt3 480 3721(x)m 168 fnt4 586 3628(1)m
220 fnt5 772 3716(/)m 240 fnt3 956 3721(x)m 168 fnt4
1062 3628(2)m 220 fnt5 1262 3716(/)m 240 fnt3 1446 3721(.)m
1552(.)s 1658(.)s 220 fnt5 1812 3716(/)m 240 fnt3
1996 3721(x)m 168 fnt3 2102 3634(n)m 240 fnt1 0 3175(where)m
240 fnt3 640 3177(x)m 168 fnt3 746 3090(j)m 240 fnt1
852 3175(has)m 1222(width)s 240 fnt3 1824 3177(l)m 168 fnt3
1890 3090(j)m 240 fnt4 1948 3169(,)m 240 fnt3 2055 3177(r)m
168 fnt3 2127 3090(j)m 240 fnt1 2233 3175(for)m 2571(all)s
240 fnt3 2864 3177(j)m 240 fnt1 2930 3175(.)m 480 2801(Suppose)m
1345(the)s 1689(whole)s 2326(object)s 2966(has)s 3333(width)s
3931(constraint)s 240 fnt3 4929 2803(X)m 240 fnt4 5097 2795(,)m
240 fnt3 5204 2803(Y)m 240 fnt4 5367 2795(,)m 240 fnt3
5474 2803(Z)m 240 fnt1 5619 2801(,)m 5722(and)s 6123(we)s
6454(require)s 7182(the)s 7526(width)s 8124(constraint)s 0 2513(of)m
240 fnt3 271 2515(x)m 168 fnt3 377 2428(i)m 240 fnt1
421 2513(.)m 586(Let)s 240 fnt3 965 2515(L)m 240 fnt4
1185 2507(=)m 240 fnt1 1401 2513(max)m 168 fnt3 1808 2428(j)m
240 fnt3 1917 2515(l)m 168 fnt3 1983 2428(j)m 240 fnt1
2090 2513(and)m 240 fnt3 2495 2515(R)m 240 fnt4 2723 2507(=)m
240 fnt1 2939 2513(max)m 168 fnt3 3346 2428(j)m 240 fnt3
3455 2515(r)m 168 fnt3 3527 2428(j)m 240 fnt1 3573 2513(,)m
3681(so)s 3948(that)s 240 fnt3 4367 2515(L)m 240 fnt4
4512 2507(,)m 240 fnt3 4619 2515(R)m 240 fnt1 4821 2513(is)m
5032(the)s 5381(width)s 5984(of)s 6256(the)s 6605(whole)s
7247(object.)s 7996(W)s 19(e)k 8366(assume)s 240 fnt3
0 2202(L)m 240 fnt4 145 2194(,)m 240 fnt3 252 2202(R)m
240 fnt4 477 2194(\243)m 240 fnt3 687 2202(X)m 240 fnt4
855 2194(,)m 240 fnt3 962 2202(Y)m 240 fnt4 1125 2194(,)m
240 fnt3 1232 2202(Z)m 240 fnt1 1377 2200(.)m 1541(Then)s
240 fnt3 2090 2202(x)m 168 fnt3 2196 2115(i)m 240 fnt1
2300 2200(can)m 2689(be)s 2971(enlar)s 4(ged)k 3848(to)s
4087(an)s 3(y)k 4484(size)s 240 fnt3 4911 2202(l)m
168 fnt3 4977 2115(i)m 240 fnt4 5081 2194(,)m 240 fnt3
5188 2202(r)m 168 fnt3 5260 2115(i)m 240 fnt1 5364 2200(satisfying)m
240 fnt4 480 1607(\()m 240 fnt3 564 1615(l)m 168 fnt3
630 1528(i)m 240 fnt4 758 1607(\255)m 240 fnt3 979 1615(L)m
240 fnt4 1124 1607(\))m 1202(,)s 1309(\()s 240 fnt3
1393 1615(r)m 168 fnt3 1465 1528(i)m 240 fnt4 1593 1607(\255)m
240 fnt3 1814 1615(R)m 240 fnt4 1967 1607(\))m 2117(\243)s
240 fnt3 2327 1615(X)m 240 fnt4 2495 1607(,)m 240 fnt3
2602 1615(Y)m 240 fnt4 2765 1607(,)m 240 fnt3 2872 1615(Z)m
grestore
0 0 0 0 240 288 60 1417 -15423 LoutGr2
0 LoutMargSet
grestore
grestore
grestore
grestore
grestore
pgsave restore
showpage
%%Page: 31 32
%%BeginPageSetup
%%PageResources: font Times-Roman
%%+ font Times-Italic
%%+ font Symbol
%%+ font Times-Bold
%%+ font Helvetica
/pgsave save def
%%IncludeResource: font Times-Roman
/Times-Romanfnt1 vec2 /Times-Roman LoutRecode
/fnt1 { /Times-Romanfnt1 LoutFont } def
%%IncludeResource: font Times-Italic
/Times-Italicfnt3 vec2 /Times-Italic LoutRecode
/fnt3 { /Times-Italicfnt3 LoutFont } def
%%IncludeResource: font Symbol
/fnt4 { /Symbol LoutFont } def
%%IncludeResource: font Times-Bold
/Times-Boldfnt2 vec2 /Times-Bold LoutRecode
/fnt2 { /Times-Boldfnt2 LoutFont } def
%%IncludeResource: font Helvetica
/Helveticafnt5 vec2 /Helvetica LoutRecode
/fnt5 { /Helveticafnt5 LoutFont } def
0.0500 dup scale 10 setlinewidth
%%EndPageSetup
gsave
0 0 translate
240 fnt1 0.0 0.0 0.0 LoutSetRGBColor LoutTextureSolid 11900 16840 0 16840 240 288 60 LoutGraphic
gsave
LoutPageSet
grestore
gsave
0 0 translate
1.0 1.0 1.0 LoutSetRGBColor 11900 16840 0 16840 240 288 60 LoutGraphic
gsave
LoutBox gsave 1.0 1.0 1.0 LoutSetRGBColor fill grestore 0 cm setlinewidth stroke
grestore
gsave
0 16840 translate
0.0000 rotate
0.0 0.0 0.0 LoutSetRGBColor
5714 -1579(-)m 5842(31)s 6117(-)s 9066 13416 0 13307 240 288 60 1417 -15423 LoutGr2
1 LoutMargSet
grestore
0 13253(which)m 642(e)s 3(xpands)k
1475(to)s 1714(eight)s 2252(inequalities:)s 240 fnt3 917 12702(l)m
168 fnt3 983 12615(i)m 240 fnt4 1123 12694(\243)m 240 fnt3
1333 12702(X)m 894 12338(L)m 240 fnt4 1123 12330(\243)m 240 fnt3
1333 12338(X)m 528 12047(l)m 168 fnt3 594 11960(i)m 240 fnt4
710 12039(+)m 240 fnt3 911 12047(r)m 168 fnt3 983 11960(i)m
240 fnt4 1123 12039(\243)m 240 fnt3 1333 12047(Y)m 503 11675(l)m
168 fnt3 569 11588(i)m 240 fnt4 685 11667(+)m 240 fnt3
886 11675(R)m 240 fnt4 1123 11667(\243)m 240 fnt3 1333 11675(Y)m
505 11311(L)m 240 fnt4 710 11303(+)m 240 fnt3 911 11311(r)m
168 fnt3 983 11224(i)m 240 fnt4 1123 11303(\243)m 240 fnt3
1333 11311(Y)m 480 10947(L)m 240 fnt4 685 10939(+)m 240 fnt3
886 10947(R)m 240 fnt4 1123 10939(\243)m 240 fnt3 1333 10947(Y)m
911 10664(r)m 168 fnt3 983 10577(i)m 240 fnt4 1123 10656(\243)m
240 fnt3 1333 10664(Z)m 886 10300(R)m 240 fnt4 1123 10292(\243)m
240 fnt3 1333 10300(Z)m 240 fnt1 0 9793(Three)m 613(are)s
960(already)s 1717(kno)s 6(wn,)k 2471(and)s 2875(slightly)s
3646(rearranging)s 4800(the)s 5148(others)s 5783(gi)s 6(v)k 3(es)k
240 fnt3 869 9242(l)m 168 fnt3 935 9155(i)m 240 fnt4
1075 9234(\243)m 240 fnt3 1285 9242(X)m 869 8870(l)m 168 fnt3
935 8783(i)m 240 fnt4 1075 8862(\243)m 240 fnt3 1285 8870(Y)m
240 fnt4 1508 8862(-)m 240 fnt3 1708 8870(R)m 480 8498(l)m
168 fnt3 546 8411(i)m 240 fnt4 662 8490(+)m 240 fnt3
863 8498(r)m 168 fnt3 935 8411(i)m 240 fnt4 1075 8490(\243)m
240 fnt3 1285 8498(Y)m 863 8134(r)m 168 fnt3 935 8047(i)m
240 fnt4 1075 8126(\243)m 240 fnt3 1285 8134(Z)m 863 7770(r)m
168 fnt3 935 7683(i)m 240 fnt4 1075 7762(\243)m 240 fnt3
1285 7770(Y)m 240 fnt4 1508 7762(-)m 240 fnt3 1708 7770(L)m
240 fnt1 0 7182(Therefore)m 997(the)s 1345(width)s 1947(constraint)s
2949(of)s 240 fnt3 3220 7184(x)m 168 fnt3 3326 7097(i)m
240 fnt1 3430 7182(is)m 480 6644(min)m 240 fnt4 861 6638(\()m
240 fnt3 945 6646(X)m 240 fnt4 1113 6638(,)m 240 fnt3
1220 6646(Y)m 240 fnt4 1443 6638(-)m 240 fnt3 1643 6646(R)m
240 fnt4 1796 6638(\))m 1874(,)s 240 fnt3 1981 6646(Y)m
240 fnt4 2144 6638(,)m 240 fnt1 2251 6644(min)m 240 fnt4
2632 6638(\()m 240 fnt3 2716 6646(Z)m 240 fnt4 2873 6638(,)m
240 fnt3 2980 6646(Y)m 240 fnt4 3203 6638(-)m 240 fnt3
3403 6646(L)m 240 fnt4 3548 6638(\))m 240 fnt1 0 6142(The)m
445(size)s 890(constraint)s 1909(of)s 2198(an)s 3(y)k
2613(node)s 3152(can)s 3559(be)s 3858(found)s 4493(by)s
4805(climbing)s 5725(the)s 6091(tree)s 6521(to)s 6778(a)s
240 fnt3 6962 6144(WIDE)m 240 fnt1 7641 6142(or)m 240 fnt3
7918 6144(HIGH)m 240 fnt1 8604 6142(node)m 0 5854(where)m 636(the)s
980(constraint)s 1978(is)s 2184(tri)s 6(vial,)k 2850(then)s
3315(propag)s 1(ating)k 4506(it)s 4694(back)s 5203(do)s 6(wn)k
5783(to)s 6018(the)s 6362(node,)s 6931(and)s 7331(this)s
7723(is)s 7929(the)s 8272(function)s 0 5566(of)m 271(procedure)s
240 fnt3 1283 5568(Constr)m 3(ained)k 240 fnt1 2530 5566(in)m
2773(Basser)s 3470(Lout.)s 480 5192(After)m 1043(some)s 1604(components)s
2813(ha)s 4(v)k 3(e)k 3314(been)s 3824(promoted)s
4799(into)s 5225(a)s 5391(tar)s 4(get,)k 6038(the)s
6386(sizes)s 6902(stored)s 7544(in)s 7788(its)s 8064(parent)s
8722(and)s 0 4904(higher)m 665(ancestors)s 1598(must)s 2117(be)s
2392(adjusted)s 3241(to)s 3473(re\210ect)s 4122(the)s 4464(increased)s
5417(size.)s 5946(This)s 6415(is)s 6618(done)s 7134(by)s
7421(yet)s 7767(another)s 8537(set)s 8855(of)s 0 4616(recursi)m 6(v)k 3(e)k
925(rules,)s 1500(upw)s 2(ard-mo)k 3(ving)k 3081(this)s
3481(time,)s 4016(which)s 4662(cease)s 5239(as)s 5492(soon)s
6006(as)s 6260(some)s 6825(ancestor')s 13(s)k 7835(size)s
8266(does)s 8760(not)s 0 4328(change.)m 830(These)s 1445(rules)s
1948(are)s 2283(embodied)s 3273(in)s 3504(procedure)s 240 fnt3
4504 4330(AdjustSize)m 240 fnt1 5541 4328(of)m 5800(Basser)s 6485(Lout.)s
7089(The)s 7505(adjustment)s 8601(must)s 0 4040(be)m 282(done)s
804(before)s 1470(relinquishing)s 2785(control)s 3517(to)s 3756(an)s 3(y)k
4153(other)s 4704(g)s 1(alle)k 3(y)k 15(,)k
5376(b)s 4(ut)k 5738(not)s 6104(after)s 6600(e)s 6(v)k 3(ery)k
7176(component.)s 240 fnt2 0 3391(5.4.)m 471(The)s 926(limited)s
1696(lookahead)s 2802(pr)s 4(oblem)k
[ /Dest /LOUTlookahead /DEST pdfmark
240 fnt1 480 2914(Basser)m
1189(Lout)s 1714(assumes)s 2575(that)s 3006(there)s 3552(will)s
3991(be)s 4286(enough)s 5062(internal)s 5859(memory)s 6723(to)s
6975(hold)s 7472(the)s 7833(symbol)s 8606(table)s 0 2626(plus)m
461(a)s 638(fe)s 6(w)k 1055(pages,)s 1719(b)s 4(ut)k
2092(not)s 2469(an)s 2764(entire)s 3374(document.)s 4493(This)s
4980(section)s 5726(describes)s 6677(the)s 7036(consequent)s 8185(problems)s
0 2338(and)m 441(ho)s 6(w)k 940(the)s 3(y)k
1441(were)s 1999(solv)s 3(ed.)k 2763(Other)s 3405(interpreters,)s
4636(notably)s 5446(interacti)s 6(v)k 3(e)k 6538(editors)s
7277(running)s 8113(on)s 8448(virtual)s 0 2050(memory)m 851(systems,)s
1715(w)s 2(ould)k 2370(not)s 2736(necessarily)s 3851(need)s
4361(this)s 4757(assumption.)s 480 1676(Although)m 1434(Basser)s 2122(Lout)s
2625(can)s 3005(read)s 3466(and)s 3861(format)s 4548(an)s 3(y)k
4936(le)s 3(g)k 1(al)k 5442(input,)s 6033(its)s
6300(memory)s 7142(consumption)s 8427(will)s 8844(be)s 0 1388(optimized)m
1004(when)s 1570(the)s 1908(b)s 4(ulk)k 2381(of)s
2642(the)s 2980(document)s 3974(resides)s 4677(in)s 4910(g)s 1(alle)k 3(ys)k
5624(whose)s 6282(tar)s 4(gets)k 6955(can)s 7334(be)s
7606(identi\207ed)s 8557(at)s 8778(the)s 0 1100(moment)m 843(the)s 3(y)k
1304(are)s 1650(encountered.)s 2981(Let)s 3358(us)s 3620(tak)s 2(e)k
4071(the)s 4417(typical)s 5121(e)s 3(xample)k 5982(of)s
6252(a)s 6416(root)s 6860(g)s 1(alle)k 3(y)k
7492(which)s 8133(is)s 8341(a)s 8506(list)s 8855(of)s
0 812(pages,)m 652(a)s 220 fnt5 818 809(@BodyT)m 26(e)k 6(xt)k
240 fnt1 1991 812(g)m 1(alle)k 3(y)k 2625(tar)s 4(geted)k
3448(into)s 3872(the)s 4220(pages,)s 220 fnt5 4872 809(@Chapter)m
240 fnt1 5934 812(g)m 1(alle)k 3(ys)k 6658(tar)s 4(geted)k
7481(into)s 220 fnt5 7905 809(@BodyT)m 26(e)k 6(xt)k
240 fnt1 9019 812(,)m 0 524(and)m 220 fnt5 404 521(@Section)m
240 fnt1 1404 524(g)m 1(alle)k 3(ys)k 2128(tar)s 4(geted)k
2951(into)s 3376(the)s 220 fnt5 3724 521(@Chapter)m 240 fnt1
4787 524(g)m 1(alle)k 3(ys:)k
grestore
0 0 0 0 240 288 60 1417 -15423 LoutGr2
1 LoutMargSet
grestore
grestore
grestore
grestore
grestore
pgsave restore
showpage
%%Page: 32 33
%%BeginPageSetup
%%PageResources: font Times-Roman
%%+ font Helvetica
%%+ font Times-Italic
/pgsave save def
%%IncludeResource: font Times-Roman
/Times-Romanfnt1 vec2 /Times-Roman LoutRecode
/fnt1 { /Times-Romanfnt1 LoutFont } def
%%IncludeResource: font Helvetica
/Helveticafnt5 vec2 /Helvetica LoutRecode
/fnt5 { /Helveticafnt5 LoutFont } def
%%IncludeResource: font Times-Italic
/Times-Italicfnt3 vec2 /Times-Italic LoutRecode
/fnt3 { /Times-Italicfnt3 LoutFont } def
0.0500 dup scale 10 setlinewidth
%%EndPageSetup
gsave
0 0 translate
240 fnt1 0.0 0.0 0.0 LoutSetRGBColor LoutTextureSolid 11900 16840 0 16840 240 288 60 LoutGraphic
gsave
LoutPageSet
grestore
gsave
0 0 translate
1.0 1.0 1.0 LoutSetRGBColor 11900 16840 0 16840 240 288 60 LoutGraphic
gsave
LoutBox gsave 1.0 1.0 1.0 LoutSetRGBColor fill grestore 0 cm setlinewidth stroke
grestore
gsave
0 16840 translate
0.0000 rotate
0.0 0.0 0.0 LoutSetRGBColor
5705 -1579(-)m 5833(32)s 6127(-)s 9066 13416 0 13312 240 288 60 1417 -15423 LoutGr2
0 LoutMargSet
grestore
220 fnt5 480 13255(@P)m 8(ageList)k
480 12967(//)m 480 12679(@BodyT)m 26(e)k 6(xt)k 480 12391(//)m
480 12103(@Chapter {)m 480 11815( @Section { ...)m 13( })k 480 11527( @Section { ...)m 13( })k
480 11239( ...)m 480 10951( @Section { ...)m 13( })k 480 10663(})m 480 10375(@Chapter {)m
480 10087( ...)m 480 9799(})m 240 fnt1 0 9305(Basser)m 702(Lout)s
1220(is)s 1436(able)s 1896(to)s 2141(read)s 2616(and)s
3026(process)s 3800(such)s 4302(g)s 1(alle)k 3(ys)k
5032(one)s 5440(paragraph)s 6459(at)s 6697(a)s 6869(time)s
7355(\(strictly)s 15(,)k 8194(from)s 8724(one)s 220 fnt5
0 9014(//)m 240 fnt1 185 9017(at)m 417(the)s 765(outer)s
1316(le)s 6(v)k 3(el)k 1826(of)s 2097(a)s
2263(g)s 1(alle)k 3(y)k 2897(to)s 3136(the)s
3484(ne)s 3(xt\),)k 4079(as)s 4329(we)s 4664(no)s 6(w)k
5125(describe.)s 480 8643(When)m 1147(the)s 1534(parser)s 2215(encounters)s
3341(the)s 3727(be)s 3(ginning)k 4774(of)s 5083(a)s
5288(g)s 1(alle)k 3(y)k 15(,)k 5998(lik)s 2(e)k
220 fnt5 6449 8640(@Chapter)m 240 fnt1 7550 8643(or)m 220 fnt5
7848 8640(@Section)m 240 fnt1 8788 8643(,)m 8934(it)s 0 8355(initiates)m
831(a)s 1023(ne)s 6(w)k 1495(g)s 1(alle)k 3(y)k
2155(process.)s 3061(The)s 3515(special)s 4258(recepti)s 6(v)k 3(e)k
5206(symbol)s 220 fnt5 5991 8352(@Input)m 240 fnt1 6784 8355(is)m
7019(substituted)s 8139(for)s 8502(the)s 8876(as)s 0 8067(yet)m
357(unread)s 1071(right)s 1588(parameter)s 2607(of)s 2884(the)s
3237(g)s 1(alle)k 3(y)k 15(.)k 3972(As)s
4294(each)s 4795(paragraph)s 5813(of)s 6090(the)s 6443(right)s
6960(parameter)s 7979(is)s 8195(read,)s 8718(it)s 8916(is)s
0 7779(deleted)m 763(from)s 1302(the)s 1665(parse)s 2240(tree)s
2668(and)s 3087(injected)s 3916(into)s 4356(the)s 4719(g)s 1(alle)k 3(y')k 13(s)k
220 fnt5 5524 7776(@Input)m 240 fnt1 6231 7779(.)m 6410(The)s
6853(g)s 1(alle)k 3(y)k 7502(is)s 7727(then)s
8212(resumed.)s 0 7491(The)m 429(parser)s 1074(thus)s 1526(acts)s
1950(as)s 2202(an)s 2487(e)s 3(xtra)k 3022(concurrent)s
4106(process;)s 4937(it)s 5131(has)s 5503(lo)s 6(w)k
5912(priority)s 15(,)k 6721(so)s 6989(that)s 7409(input)s
7963(is)s 8175(read)s 8646(only)s 0 7203(when)m 597(there)s
1151(is)s 1382(nothing)s 2188(else)s 2636(to)s 2897(do.)s
3322(Since)s 3930(g)s 1(alle)k 3(ys)k 4675(may)s
5162(be)s 5465(nested,)s 6205(a)s 6392(stack)s 6965(of)s
220 fnt5 7257 7200(@Input)m 240 fnt1 8045 7203(symbols)m 8916(is)s
0 6915(needed,)m 781(each)s 1271(with)s 1749(its)s 2020(o)s 6(wn)k
2480(en)s 9(vironment)k 3735(and)s 4135(style.)s 4745(If)s
4971(a)s 5132(g)s 1(alle)k 3(y)k 5762(is)s
5967(encountered)s 7190(for)s 7523(which)s 8161(a)s 8322(tar)s 4(get)k
8916(is)s 0 6627(not)m 370(immediately)s 1622(identi\207able)s 2757(\(a)s
3006(footnote,)s 3914(for)s 4257(e)s 3(xample\),)k 5254(it)s
5450(is)s 5664(read)s 6137(in)s 6385(its)s 6665(entirety)s
7452(and)s 7860(hung)s 8397(in)s 8645(pure)s 0 6339(parse)m
551(tree)s 954(form)s 1468(from)s 1983(an)s 240 fnt3
2256 6341(UN)m 6(A)k 8(TT)k 12(A)k 7(CHED)k
240 fnt1 3811 6339(inde)m 3(x)k 4386(in)s 4619(the)s
4957(usual)s 5508(w)s 2(ay)k 15(,)k 5987(with)s
6459(an)s 6733(en)s 9(vironment)k 7983(b)s 4(ut)k
8335(without)s 0 6051(a)m 166(style.)s 781(It)s 986(will)s
1412(be)s 1694(\210ushed)s 2444(later)s 2927(when)s 3503(its)s
3779(component)s 4903(is)s 5113(promoted.)s 480 5677(In)m 735(addition)s
1575(to)s 1813(producing)s 2836(a)s 3001(steady)s 3665(\210o)s 6(w)k
4138(of)s 4407(components)s 5614(from)s 6137(input,)s 6735(we)s
7069(must)s 7593(also)s 8030(ensure)s 8708(that)s 0 5389(recepti)m 6(v)k 3(e)k
928(symbols)s 1783(do)s 2083(not)s 2455(unduly)s 3182(block)s
3781(their)s 4285(promotion.)s 5452(The)s 220 fnt5 5886 5386(@F)m 6(ootSect)k
240 fnt1 7044 5389(symbol)m 7810(at)s 8049(the)s 8403(foot)s
8855(of)s 0 5101(each)m 495(page)s 1003(is)s 1213(a)s
1379(typical)s 2084(e)s 3(xample:)k 3057(until)s 3550(it)s
3742(is)s 3952(deleted)s 4700(the)s 5048(page)s 5556(cannot)s
6254(be)s 6536(printed.)s 480 4727(Recepti)m 6(v)k 3(e)k
1501(symbols)s 2368(are)s 2733(e)s 3(xpanded)k 3724(only)s
4222(on)s 4537(demand,)s 5421(so)s 220 fnt5 5705 4724(@F)m 6(ootSect)k
240 fnt1 6874 4727(can)m 7281(be)s 7581(deleted)s 8347(as)s
8616(soon)s 0 4439(as)m 250(we)s 585(can)s 974(pro)s 3(v)k 3(e)k
1570(that)s 1988(it)s 2180(is)s 2390(not)s 2757(w)s 2(anted.)k
3610(The)s 4038(symbol)s 4799(table)s 5319(can)s 5708(tell)s
6067(us)s 6332(that)s 6750(only)s 220 fnt5 7230 4436(@F)m 6(ootNote)k
240 fnt1 8402 4439(g)m 1(alle)k 3(ys)k 0 4151(\(with)m
220 fnt5 555 4148(@F)m 6(ootPlace&&f)k 6(ollo)k 3(wing)k
240 fnt1 2935 4151(tar)m 4(gets\))k 3688(w)s 2(ant)k
4205(it,)s 4438(so)s 4697(it)s 4883(might)s 5494(be)s
5770(possible)s 6604(to)s 6836(deduce)s 7564(that)s 220 fnt5
7975 4148(@F)m 6(ootSect)k 240 fnt1 0 3863(may)m 466(be)s
748(deleted)s 1496(as)s 1746(soon)s 2256(as)s 2506(body)s
3040(te)s 3(xt)k 3455(enters)s 4076(the)s 4424(follo)s 6(wing)k
5401(page.)s 480 3489(The)m 904(author)s 1571(w)s 2(as)k
1987(unable)s 2677(to)s 2912(mak)s 2(e)k 3479(this)s
3871(w)s 2(ork,)k 4463(so)s 4725(Basser)s 5418(Lout)s
5925(requires)s 6741(the)s 7085(user)s 7538(to)s 7773(identify)s
8565(those)s 0 3201(g)m 1(alle)k 3(ys)k 715(which)s
1348(will)s 1764(carry)s 2299(the)s 2637(b)s 4(ulk)k
3111(of)s 3372(the)s 3711(document)s 4705(\()s 220 fnt5
4778 3198(@Chapter)m 240 fnt1 5781 3201(,)m 220 fnt5 5879 3198(@Section)m
240 fnt1 6819 3201(,)m 220 fnt5 6916 3198(@BodyT)m 26(e)k 6(xt)k
240 fnt1 8030 3201(\))m 8149(as)s 240 fnt3 8389 3203(for)m 8(cing)k
0 2915(galle)m 7(ys)k 240 fnt1 665 2913(,)m 792(by)s
1107(writing)s 220 fnt5 1871 2910(f)m 6(orce into)k 240 fnt1
2841 2913(instead)m 3596(of)s 220 fnt5 3888 2910(into)m 240 fnt1
4315 2913(in)m 4579(their)s 5097(de\207nitions.)s 6291(As)s 6629(described)s
7624(in)s 7888(the)s 8257(pre)s 6(vious)k 0 2625(section,)m
790(when)s 1373(a)s 1546(forcing)s 2296(g)s 1(alle)k 3(y)k
2937(attaches)s 3763(to)s 4009(a)s 4182(tar)s 4(get,)k
4835(all)s 5135(recepti)s 6(v)k 3(e)k 6063(symbols)s
6919(preceding)s 7922(the)s 8277(tar)s 4(get)k 8883(in)s
0 2337(its)m 278(g)s 1(alle)k 3(y)k 914(are)s
1263(deleted,)s 2062(remo)s 3(ving)k 3031(all)s 3326(impediments)s
4614(to)s 4855(\210ushing.)s 5793(F)s 3(or)k 6184(e)s 3(xample,)k
7100(when)s 7678(a)s 7846(forcing)s 8592(body)s 0 2049(te)m 3(xt)k
421(g)s 1(alle)k 3(y)k 1062(enters)s 1690(a)s
1863(ne)s 6(w)k 2317(page,)s 2882(the)s 220 fnt5
3237 2046(@F)m 6(ootSect)k 240 fnt1 4395 2049(symbol)m 5162(on)s
5466(the)s 5820(preceding)s 6823(page)s 7338(will)s 7771(be)s
8060(deleted.)s 8921(It)s 0 1761(seems)m 629(lik)s 2(ely)k
1219(that)s 1631(a)s 1791(system)s 2509(which)s 3145(could)s
3729(af)s 6(ford)k 4358(to)s 4591(w)s 2(ait)k
5054(until)s 5541(all)s 5828(input)s 6374(w)s 2(as)k
6789(read)s 7252(before)s 7912(deleting)s 8729(an)s 3(y)k
0 1473(recepti)m 6(v)k 3(e)k 922(symbols)s 1771(w)s 2(ould)k
2426(not)s 2792(need)s 3302(forcing)s 4045(g)s 1(alle)k 3(ys.)k
480 1099(Galle)m 3(ys)k 1258(whose)s 1925(tar)s 4(gets)k
2607(are)s 2953(a)s 3118(long)s 3597(w)s 2(ay)k
4047(from)s 4570(their)s 5066(in)s 9(v)k 4(ocation)k
6119(points)s 6755(can)s 7143(be)s 7424(a)s 7589(problem.)s
8549(If)s 8778(the)s 0 811(direction)m 917(is)s 220 fnt5
1139 808(f)m 6(ollo)k 3(wing)k 240 fnt1 1969 811(,)m
2087(such)s 2595(g)s 1(alle)k 3(ys)k 3330(are)s
3689(held)s 4170(in)s 4425(internal)s 5221(memory)s 6083(for)s
6433(a)s 6610(long)s 7101(time,)s 7643(unless)s 8304(the)s 3(y)k
8779(are)s 0 523(to)m 248(be)s 539(sorted.)s 1296(If)s
1535(the)s 1892(direction)s 2807(is)s 220 fnt5 3026 520(preceding)m
240 fnt1 3977 523(,)m 4093(then)s 4571(either)s 5183(the)s
5540(entire)s 6148(interv)s 3(ening)k 7296(document)s 8309(must)s
8844(be)s
grestore
0 0 0 0 240 288 60 1417 -15423 LoutGr2
0 LoutMargSet
grestore
grestore
grestore
grestore
grestore
pgsave restore
showpage
%%Page: 33 34
%%BeginPageSetup
%%PageResources: font Times-Roman
%%+ font Times-Bold
%%+ font Times-Italic
%%+ font Helvetica
/pgsave save def
%%IncludeResource: font Times-Roman
/Times-Romanfnt1 vec2 /Times-Roman LoutRecode
/fnt1 { /Times-Romanfnt1 LoutFont } def
%%IncludeResource: font Times-Bold
/Times-Boldfnt2 vec2 /Times-Bold LoutRecode
/fnt2 { /Times-Boldfnt2 LoutFont } def
%%IncludeResource: font Times-Italic
/Times-Italicfnt3 vec2 /Times-Italic LoutRecode
/fnt3 { /Times-Italicfnt3 LoutFont } def
%%IncludeResource: font Helvetica
/Helveticafnt5 vec2 /Helvetica LoutRecode
/fnt5 { /Helveticafnt5 LoutFont } def
0.0500 dup scale 10 setlinewidth
%%EndPageSetup
gsave
0 0 translate
240 fnt1 0.0 0.0 0.0 LoutSetRGBColor LoutTextureSolid 11900 16840 0 16840 240 288 60 LoutGraphic
gsave
LoutPageSet
grestore
gsave
0 0 translate
1.0 1.0 1.0 LoutSetRGBColor 11900 16840 0 16840 240 288 60 LoutGraphic
gsave
LoutBox gsave 1.0 1.0 1.0 LoutSetRGBColor fill grestore 0 cm setlinewidth stroke
grestore
gsave
0 16840 translate
0.0000 rotate
0.0 0.0 0.0 LoutSetRGBColor
5710 -1579(-)m 5838(33)s 6122(-)s 9066 13416 0 13307 240 288 60 1417 -15423 LoutGr2
1 LoutMargSet
grestore
0 13253(held)m 466(in)s
704(memory)s 1551(\(pre)s 6(v)k 3(ented)k 2617(by)s
2907(the)s 3250(tar)s 4(get)k 3844(from)s 4364(\210ushing\),)s
5317(or)s 5572(else)s 5994(some)s 6551(forcing)s 7289(g)s 1(alle)k 3(y)k
7918(prematurely)s 0 12965(deletes)m 714(the)s 1062(tar)s 4(get,)k
1708(lea)s 4(ving)k 2461(the)s 2809(g)s 1(alle)k 3(y)k
3443(bereft.)s 480 12591(The)m 929(typical)s 1655(e)s 3(xample)k
2539(of)s 2832(the)s 3201(latter)s 3771(case)s 4260(occurs)s
4956(when)s 5553(the)s 5922(g)s 1(alle)k 3(y)k
6578(is)s 6809(an)s 7113(entry)s 7680(in)s 7944(the)s
8313(table)s 8855(of)s 0 12303(contents,)m 907(launched)s 1832(backw)s 2(ards)k
2907(from)s 3435(the)s 3786(be)s 3(ginning)k 4797(of)s
5071(a)s 5241(chapter)s 6007(or)s 6269(section.)s 7113(Its)s
7406(tar)s 4(get)k 8008(in)s 8254(the)s 8606(table)s
0 12015(of)m 286(contents)s 1150(will)s 1592(ha)s 4(v)k 3(e)k
2108(been)s 2633(deleted)s 3397(long)s 3891(before,)s 4624(to)s
4879(permit)s 5578(the)s 5941(rest)s 6361(of)s 6648(the)s
7011(document)s 8031(to)s 8286(print,)s 8860(so)s 0 11727(the)m
349(g)s 1(alle)k 3(y)k 985(ultimately)s 2009(emer)s 4(ges)k
2854(as)s 3106(an)s 3391(unattached)s 4487(g)s 1(alle)k 3(y)k
5122(promoted)s 6099(out)s 6467(of)s 6740(the)s 7090(root)s
7537(g)s 1(alle)k 3(y)k 15(.)k 8268(All)s
8630(such)s 0 11439(g)m 1(alle)k 3(ys)k 717(are)s
1056(written)s 1781(to)s 2013(an)s 2288(auxiliary)s 3183(\207le,)s
3588(inde)s 3(x)k 3(ed)k 4390(by)s 4676(the)s
5016(missing)s 5806(tar)s 4(get.)k 6501(On)s 6843(the)s
7184(ne)s 3(xt)k 7645(run,)s 8063(just)s 8460(before)s
0 11151(that)m 418(tar)s 4(get)k 1017(is)s 1227(deleted,)s
2024(the)s 2372(auxiliary)s 3275(\207le)s 3636(is)s 3846(check)s 2(ed)k
4686(and)s 5090(an)s 3(y)k 5487(g)s 1(alle)k 3(ys)k
6211(for)s 6549(it)s 6741(are)s 7088(read)s 7557(in)s
7800(and)s 8204(\210ushed.)s 240 fnt2 0 10502(5.5.)m 471(Horizontal)s
1628(galleys)s
[ /Dest /LOUThorizontal /DEST pdfmark
240 fnt1 480 10025(There)m 1108(is)s 1333(a)s
1514(strong)s 2180(analogy)s 3007(between)s 3876(breaking)s 4781(a)s
4962(column)s 5752(of)s 6038(te)s 3(xt)k 6468(into)s
6908(page-sized)s 8003(pieces,)s 8722(and)s 0 9737(breaking)m 912(a)s
1101(paragraph)s 2137(into)s 2585(line-sized)s 3594(pieces.)s 4378(In)s
4657(f)s 2(act,)k 5142(the)s 5513(tw)s 2(o)k
5946(dif)s 6(fer)k 6552(only)s 7055(in)s 7321(direction:)s
8359(v)s 3(ertical)k 0 9449(for)m 343(body)s 883(te)s 3(xt,)k
1351(horizontal)s 2381(for)s 2724(paragraphs.)s 3943(In)s 4205(this)s
4607(section)s 5347(we)s 5687(de\207ne)s 240 fnt3 6334 9451(horizontal)m
7384(galle)s 7(ys)k 240 fnt1 8049 9449(,)m 8162(and)s
8572(sho)s 6(w)k 0 9161(ho)m 6(w)k 493(the)s 3(y)k
989(pro)s 3(vide)k 1806(an)s 2122(unlimited)s 3129(number)s
3953(of)s 4257(paragraph)s 5302(breaking)s 6225(styles,)s 6909(as)s
7192(well)s 7691(as)s 7974(solv)s 3(e)k 8565(some)s
0 8873(other)m 587(problems.)s 1677(Re)s 3(grettably)k 15(,)k
2917(lack)s 3412(of)s 3719(time)s 4235(has)s 4641(pre)s 6(v)k 3(ented)k
5669(their)s 6202(incorporation)s 7583(into)s 8044(the)s 8429(Basser)s
0 8585(Lout)m 512(interpreter)s 13(.)k 480 8211(Imagine)m 1337(a)s
1521(g)s 1(alle)k 3(y)k 2173(whose)s 2859(components)s
4085(are)s 4450(separated)s 5428(by)s 5740(horizontal)s 6782(concatenation)s
8186(operators)s 0 7923(instead)m 725(of)s 986(v)s 3(ertical)k
1742(ones,)s 2278(perhaps)s 3062(indicated)s 3986(by)s 4269(a)s
220 fnt5 4425 7920(hor)m -3(iz)k 3(ontally)k 5582(into)s
240 fnt1 5977 7923(clause.)m 6728(Then)s 7266(all)s 7549(object)s
8182(breaking,)s 0 7635(including)m 957(paragraph)s 1970(breaking,)s 2914(could)s
3504(be)s 3786(replaced)s 4653(by)s 4947(g)s 1(alle)k 3(y)k
5581(component)s 6705(promotion)s 7759(lik)s 2(e)k 8171(this:)s
220 fnt5 480 7134(def @P)m 8(ar)k 2(ag)k 2(r)k 2(aph r)k -3(ight x)k
480 6846({)m 480 6558( def @LinePlace { @Galle)m 4(y })k 480 5982( def @LineList)m 480 5694( {)m
480 5406( @HExpand @LinePlace)m 480 5118( //1vx @LineList)m 480 4830( })m 480 4254( def @P)m 8(ar hor)k -3(iz)k 3(ontally into { @LinePlace&&preceding })k
480 3966( r)m -3(ight x)k 480 3678( { x })m 480 3102( @LineList // @P)m 8(ar { 0.2i @Wide {} &0i x &1r)k -8(t })k
480 2814(})m 240 fnt1 0 2320(The)m 220 fnt5 431 2317(@HExpand)m
240 fnt1 1607 2320(operator)m 9(,)k 2504(which)s 3149(is)s
3362(a)s 3531(primiti)s 6(v)k 3(e)k 4456(of)s
4730(Basser)s 5430(Lout,)s 5992(horizontally)s 7204(e)s 3(xpands)k
8040(the)s 8391(g)s 1(aps)k 8883(in)s 0 2032(its)m
290(right)s 816(parameter)s 1844(until)s 2352(the)s 2715(result)s
3319(\207lls)s 3743(the)s 4105(a)s 4(v)k 6(ailable)k
5028(space,)s 5681(thus)s 6145(implementing)s 7541(line)s 7970(adjustment,)s
0 1744(e)m 3(xcept)k 689(when)s 1274(the)s 1631(parameter)s
2654(contains)s 3511(tab)s 4(ulation)k 4529(g)s 1(aps)k
5027(lik)s 2(e)k 220 fnt5 5447 1741(&1r)m -8(t)k
240 fnt1 5853 1744(,)m 5969(which)s 6620(cause)s 7216(the)s
7573(parameter)s 8596(to)s 8844(be)s 0 1456(already)m 757(e)s 3(xpanded.)k
1836(The)s 2264(result)s 2854(of)s 220 fnt5 480 955(@P)m 8(ar)k 2(ag)k 2(r)k 2(aph { A shor)k -8(t par)k 2(ag)k 2(r)k 2(aph of te)k 6(xt.)k 13( })k
240 fnt1 0 456(w)m 2(ould)k 655(then)s 1124(be)s
1406(something)s 2456(lik)s 2(e)k
grestore
0 0 0 0 240 288 60 1417 -15423 LoutGr2
1 LoutMargSet
grestore
grestore
grestore
grestore
grestore
pgsave restore
showpage
%%Page: 34 35
%%BeginPageSetup
%%PageResources: font Times-Roman
%%+ font Helvetica
%%+ font Times-Italic
/pgsave save def
%%IncludeResource: font Times-Roman
/Times-Romanfnt1 vec2 /Times-Roman LoutRecode
/fnt1 { /Times-Romanfnt1 LoutFont } def
%%IncludeResource: font Helvetica
/Helveticafnt5 vec2 /Helvetica LoutRecode
/fnt5 { /Helveticafnt5 LoutFont } def
%%IncludeResource: font Times-Italic
/Times-Italicfnt3 vec2 /Times-Italic LoutRecode
/fnt3 { /Times-Italicfnt3 LoutFont } def
0.0500 dup scale 10 setlinewidth
%%EndPageSetup
gsave
0 0 translate
240 fnt1 0.0 0.0 0.0 LoutSetRGBColor LoutTextureSolid 11900 16840 0 16840 240 288 60 LoutGraphic
gsave
LoutPageSet
grestore
gsave
0 0 translate
1.0 1.0 1.0 LoutSetRGBColor 11900 16840 0 16840 240 288 60 LoutGraphic
gsave
LoutBox gsave 1.0 1.0 1.0 LoutSetRGBColor fill grestore 0 cm setlinewidth stroke
grestore
gsave
0 16840 translate
0.0000 rotate
0.0 0.0 0.0 LoutSetRGBColor
5705 -1579(-)m 5833(34)s 6127(-)s 9066 13416 0 13307 240 288 60 1417 -15423 LoutGr2
0 LoutMargSet
grestore
768 13253(A)m 1073(short)s
1687(paragraph)s 480 12965(of)m 751(te)s 3(xt.)k 0 12512(depending)m
1061(on)s 1368(the)s 1726(a)s 4(v)k 6(ailable)k
2645(horizontal)s 3679(space.)s 4384(An)s 4744(unlimited)s 5729(range)s
6326(of)s 6607(paragraph)s 7630(breaking)s 8531(styles)s 0 12224(could)m
590(be)s 872(de\207ned,)s 1684(including)s 2641(ragged)s 3350(right,)s
3908(ragged)s 4617(left,)s 5041(break-and-center)s 9(,)k 6757(and)s
7161(so)s 7427(on.)s 480 11850(In)m 765(Basser)s 1492(Lout,)s
2081(indented)s 2992(paragraphs)s 4122(are)s 4499(produced)s 5477(by)s
5801(preceding)s 6827(them)s 7394(with)s 7906(a)s 8102(horizontal)s
0 11562(concatenation)m 1380(operator)s 9(,)k 2269(for)s 2602(e)s 3(xample)k
220 fnt5 3459 11559(|0.5i)m 240 fnt1 3855 11562(.)m 4014(This)s
4485(has)s 4849(the)s 5192(unfortunate)s 6345(ef)s 6(fect)k
6935(of)s 7201(making)s 7967(an)s 8244(indented)s 0 11274(paragraph)m
1007(into)s 1426(a)s 1586(single)s 2207(component)s 3325(of)s
3590(the)s 3932(enclosing)s 4895(g)s 1(alle)k 3(y)k 15(,)k
5561(so)s 5821(that)s 6233(it)s 6419(will)s 6839(al)s 2(w)k 2(ays)k
7544(be)s 7820(k)s 2(ept)k 8283(together)s 0 10986(on)m
297(one)s 699(page.)s 1315(Horizontal)s 2392(g)s 1(alle)k 3(ys)k
3116(solv)s 3(e)k 3674(this)s 4070(problem)s 4927(with)s
5409(a)s 5575(simple)s 6268(change)s 7002(to)s 220 fnt5
7241 10983(@LineList)m 240 fnt1 8215 10986(:)m 220 fnt5 480 10485(def @LineList)m
480 10197({)m 480 9909( |0.5i @HExpand @LinePlace)m 480 9621( //1vx @LineList)m 480 9333(})m 240 fnt1
0 8839(sho)m 6(wing)k 860(the)s 1210(\210e)s 3(xibility)k
2192(that)s 2611(comes)s 3275(from)s 3801(bringing)s 4666(the)s
5016(full)s 5404(po)s 6(wer)k 6057(of)s 6330(the)s
6680(Lout)s 7193(language)s 8115(to)s 8356(bear)s 8829(on)s
0 8551(paragraph)m 1013(layout.)s 1775(It)s 1980(is)s 2190(easy)s
2669(to)s 2908(mak)s 2(e)k 3480(pro)s 3(vision)k
4438(for)s 4776(a)s 4942(tag)s 5287(on)s 5584(the)s
5932(\207rst)s 6363(line.)s 480 8177(Although)m 1451(Basser)s 2158(Lout)s
2679(permits)s 3456(recepti)s 6(v)k 3(e)k 4387(symbols)s
5246(within)s 5923(paragraphs,)s 7089(the)s 3(y)k 7561(are)s
7918(of)s 8198(little)s 8700(use,)s 0 7889(because)m 835(their)s
1355(a)s 4(v)k 6(ailable)k 2286(width)s 2911(is)s
3144(calculated)s 4193(after)s 4711(paragraph)s 5747(breaking,)s 6714(and)s
7141(the)s 7512(incoming)s 8492(g)s 1(alle)k 3(y)k
0 7601(cannot)m 736(spread)s 1456(o)s 3(v)k 3(er)k
1973(more)s 2558(than)s 3065(one)s 3505(line.)s 4066(W)s 9(ith)k
4630(horizontal)s 5692(g)s 1(alle)k 3(ys,)k 6510(such)s
7044(symbols)s 7931(w)s 2(ould)k 8625(ha)s 4(v)k 3(e)k
0 7313(in\207nite)m 733(a)s 4(v)k 6(ailable)k 1641(width,)s
2293(and)s 2697(we)s 3032(could)s 3622(easily)s 4233(produce)s
5060(a)s 5226(\207lled)s 5775(paragraph)s 6788(of)s 7059(footnotes)s
8000(lik)s 2(e)k 8412(this:)s 200 fnt1 480 6838(1)m
240 fnt1 559 6743(See)m 987(Jones)s 1597(and)s 2028(Saunders)s
2983(\(1982\).)s 200 fnt1 3932 6838(2)m 240 fnt1 4027 6743(Or)m
4366(so)s 4659(Jacobsen)s 480 6443(\(1973\))m 1167(asserts.)s 200 fnt1
2087 6538(3)m 240 fnt3 2174 6445(ibid)m 240 fnt1 2552 6443(,)m
2659(p.)s 2883(327.)s 0 5940(based)m 603(on)s 900(an)s
1183(in\207nite)s 1916(horizontal)s 2940(sequence)s 3873(of)s 220 fnt5
4144 5937(@F)m 6(ootPlace)k 240 fnt1 5400 5940(symbols)m 6249(inside)s
6876(a)s 7042(horizontal)s 8066(g)s 1(alle)k 3(y)k 15(.)k
480 5566(When)m 1133(body)s 1692(te)s 3(xt)k 2132(is)s
2367(placed)s 3074(on)s 3395(pages,)s 4072(the)s 4445(length)s
5125(of)s 5421(each)s 5940(column)s 6740(v)s 6(aries)k
7380(depending)s 8456(on)s 8778(the)s 0 5278(a)m 4(v)k 6(ailable)k
914(v)s 3(ertical)k 1687(space.)s 2389(Horizontal)s 3472(g)s 1(alle)k 3(ys)k
4203(could)s 4799(analogously)s 6017(produce)s 6850(lines)s 7359(of)s
7636(v)s 6(arying)k 8421(length,)s 0 4990(and)m 404(so)s
670(could)s 1260(\207ll)s 1580(non-rectangular)s 3153(shapes.)s 480 4616(An)m
835(important)s 1829(theoretical)s 2896(bene\207t)s 3612(of)s 3888(horizontal)s
4918(g)s 1(alle)k 3(ys)k 5647(is)s 5862(that)s
6285(the)s 3(y)k 6753(w)s 2(ould)k 7413(permit)s
8102(horizontal)s 0 4328(and)m 403(v)s 3(ertical)k 1168(to)s
1405(be)s 1685(treated)s 2390(in)s 2631(a)s 2795(perfectly)s
3695(symmetrical)s 4928(w)s 2(ay)k 15(,)k 5415(whereas)s
6247(at)s 6477(present)s 7225(paragraph)s 8236(breaking)s 0 4040(is)m
243(horizontal)s 1300(only)s 15(,)k 1851(and)s 2288(g)s 1(alle)k 3(y)k
2955(breaking)s 3878(is)s 4121(v)s 3(ertical)k 4921(only)s 15(.)k
5529(This)s 6038(must)s 6596(simplify)s 7479(the)s 7860(treatment)s
8855(of)s 0 3752(non-European)m 1432(languages)s 2459(which)s 3121(\207ll)s
3460(in)s 3722(unusual)s 4542(directions,)s 5610(although)s 6525(it)s
6736(is)s 6965(not)s 7351(itself)s 7918(suf\207cient)s 8887(to)s
0 3464(implement)m 1082(them.)s 480 3090(There)m 1132(are)s 1519(a)s
1725(fe)s 6(w)k 2170(minor)s 2841(problems)s 3822(with)s
4343(horizontal)s 5407(g)s 1(alle)k 3(ys.)k 6284(First,)s
6867(the)s 7255(syntactic)s 8197(o)s 3(v)k 3(erhead)k
0 2802(of)m 319(enclosing)s 1337(each)s 1880(paragraph)s 2941(in)s
220 fnt5 3233 2799(@P)m 8(ar)k 2(ag)k 2(r)k 2(aph { ...)k 13( })k
240 fnt1 5064 2802(or)m 5371(whate)s 6(v)k 3(er)k
6346(is)s 6604(unacceptable.)s 8065(Permitting)s 0 2514(user)m 4(-de\207ned)k
1234(operators)s 2172(to)s 2409(ha)s 4(v)k 3(e)k
2908(lo)s 6(wer)k 3504(precedence)s 4633(than)s 5100(the)s
5446(white)s 6031(space)s 6616(between)s 7468(tw)s 2(o)k
7876(w)s 2(ords)k 8508(might)s 0 2226(help)m 450(here.)s
1009(Second,)s 1805(the)s 2137(b)s 4(uilt-in)k 2877(paragraph)s
3874(break)s 2(er)k 4632(includes)s 5464(h)s 1(yphenation,)k
6738(and)s 7126(it)s 7302(permits)s 8053(line)s 8451(breaks)s
0 1938(in)m 246(the)s 598(input)s 1153(to)s 1396(determine)s
2410(line)s 2828(breaks)s 3506(in)s 3753(the)s 4105(output,)s
4827(if)s 5048(desired.)s 5905(These)s 6536(features)s 7345(must)s
7874(someho)s 6(w)k 8844(be)s 0 1650(preserv)m 3(ed.)k
1081(Finally)s 15(,)k 1841(we)s 2167(ha)s 4(v)k 3(e)k
2659(e)s 3(xplained)k 3634(ho)s 6(w)k 4086(the)s
4425(Basser)s 5113(Lout)s 5616(interpreter)s 6659(assigns)s 7392(equal)s
7956(width)s 8549(to)s 8778(the)s 0 1362(wider)m 607(columns)s
1473(of)s 1748(tables)s 2359(\(Section)s 3216(2.5\).)s 3763(The)s
4194(equi)s 6(v)k 6(alent)k 5242(situation)s 6126(in)s
6372(v)s 3(ertical)k 7143(g)s 1(alle)k 3(ys)k
7871(occurs)s 8550(when)s 0 1074(tw)m 2(o)k 416(recepti)s 6(v)k 3(e)k
1345(symbols)s 2201(compete)s 3074(for)s 3419(v)s 3(ertical)k
4193(space)s 4786(\(e.g.)s 220 fnt5 5262 1071(@T)m 26(e)k 6(xtPlace)k
240 fnt1 6487 1074(and)m 220 fnt5 6898 1071(@F)m 6(ootSect)k
240 fnt1 7989 1074(\),)m 8182(and)s 8593(there)s 0 786(it)m
187(is)s 392(con)s 9(v)k 3(entional)k 1666(to)s
1900(grant)s 2446(as)s 2691(much)s 3274(as)s 3519(required)s
4368(to)s 4602(the)s 4945(\207rst)s 5371(arri)s 6(v)k 6(al.)k
6140(It)s 6339(is)s 6544(not)s 6905(clear)s 7423(to)s
7657(the)s 8000(author)s 8665(ho)s 6(w)k 0 498(these)m
547(dif)s 6(ferent)k 1422(approaches)s 2549(can)s 2938(be)s
3220(reconciled.)s
grestore
0 0 0 0 240 288 60 1417 -15423 LoutGr2
0 LoutMargSet
grestore
grestore
grestore
grestore
grestore
pgsave restore
showpage
%%Page: 35 36
%%BeginPageSetup
%%PageResources: font Times-Roman
%%+ font Times-Bold
%%+ font Helvetica
%%+ font Times-Italic
/pgsave save def
%%IncludeResource: font Times-Roman
/Times-Romanfnt1 vec2 /Times-Roman LoutRecode
/fnt1 { /Times-Romanfnt1 LoutFont } def
%%IncludeResource: font Times-Bold
/Times-Boldfnt2 vec2 /Times-Bold LoutRecode
/fnt2 { /Times-Boldfnt2 LoutFont } def
%%IncludeResource: font Helvetica
/Helveticafnt5 vec2 /Helvetica LoutRecode
/fnt5 { /Helveticafnt5 LoutFont } def
%%IncludeResource: font Times-Italic
/Times-Italicfnt3 vec2 /Times-Italic LoutRecode
/fnt3 { /Times-Italicfnt3 LoutFont } def
0.0500 dup scale 10 setlinewidth
%%EndPageSetup
gsave
0 0 translate
240 fnt1 0.0 0.0 0.0 LoutSetRGBColor LoutTextureSolid 11900 16840 0 16840 240 288 60 LoutGraphic
gsave
LoutPageSet
grestore
gsave
0 0 translate
1.0 1.0 1.0 LoutSetRGBColor 11900 16840 0 16840 240 288 60 LoutGraphic
gsave
LoutBox gsave 1.0 1.0 1.0 LoutSetRGBColor fill grestore 0 cm setlinewidth stroke
grestore
gsave
0 16840 translate
0.0000 rotate
0.0 0.0 0.0 LoutSetRGBColor
5709 -1582(-)m 5837(35)s 6123(-)s 9066 13413 0 13413 240 288 60 1417 -15423 LoutGr2
1 LoutMargSet
grestore
240 fnt2 0 12672(6.)m
291(Cr)s 4(oss)k 926(r)s 4(efer)k 4(ences)k
[ /Dest /LOUT18_694_s6_0_1 /DEST pdfmark
240 fnt1 480 12240(Cross)m 1064(references,)s 2138(such)s 2622(as)s
2859(`see)s 3286(page)s 3782(57')s 4121(and)s 4512(`see)s
4940(Figure)s 5607(5,)s 16(')k 5871(are)s 6205(a)s
6358(useful)s 6985(b)s 4(ut)k 7334(highly)s 7987(error)s 4(-prone)k
0 11952(feature)m 716(of)s 985(documents.)s 2184(Scribe)s 2848([7])s
3163(introduced)s 4242(a)s 4406(method)s 5180(of)s 5449(k)s 2(eeping)k
6256(them)s 6792(up)s 7083(to)s 7320(date)s 7772(automatically)s
0 11664(as)m 245(the)s 587(document)s 1585(changes:)s 2517(the)s
2859(user)s 3311(gi)s 6(v)k 3(es)k 3852(each)s
4342(referenced)s 5401(entity)s 5993(a)s 6153(tag,)s 6547(and)s
6945(operators)s 7879(are)s 8220(pro)s 3(vided)k 0 11376(that)m
418(return)s 1045(the)s 1393(page)s 1901(or)s 2160(sequence)s
3093(number)s 3884(of)s 4155(the)s 4503(entity)s 5101(with)s
5583(a)s 5749(gi)s 6(v)k 3(en)k 6329(tag.)s
480 11002(A)m 712(cross)s 1256(reference)s 2201(tak)s 2(es)k
2743(an)s 3028(object)s 3674(\(such)s 4251(as)s 4503(a)s
4671(page)s 5181(number\))s 6042(from)s 6568(one)s 6972(point)s
7526(in)s 7771(the)s 8122(document)s 0 10714(and)m 435(copies)s
1128(it)s 1351(to)s 1621(another)s 9(,)k 2467(and)s
2902(this)s 3329(generalization)s 4770(suggests)s 5663(other)s 6245(applications.)s
7595(F)s 3(or)k 8015(e)s 3(xample,)k 8960(a)s
0 10426(running)m 831(header)s 1562(is)s 1806(copied)s 2536(from)s
3094(the)s 3475(title)s 3935(of)s 4240(a)s 4440(nearby)s
5179(chapter)s 9(,)k 6013(and)s 6451(a)s 6651(reference)s
7628(is)s 7872(copied)s 8602(from)s 0 10138(a)m 207(bibliographic)s
1576(database.)s 2604(Making)s 3443(the)s 3832(unity)s 4419(of)s
4731(these)s 5319(applications)s 6566(manifest)s 7489(is)s 7740(an)s
8065(interesting)s 0 9850(language)m 920(design)s 1602(problem.)s 240 fnt2
0 9201(6.1.)m 471(The)s 926(cr)s 4(oss)k 1494(r)s 4(efer)k 4(ence)k
2496(abstraction)s
[ /Dest /LOUTcross /DEST pdfmark
240 fnt1 480 8770(In)m 736(de)s 6(v)k 3(eloping)k
1844(the)s 2191(cross)s 2733(reference)s 3675(abstraction,)s 4830(it)s
5021(seemed)s 5796(best)s 6241(to)s 6479(be)s 3(gin)k
7065(with)s 7546(the)s 7894(database)s 8772(ap-)s 0 8482(plication,)m
943(since)s 1490(it)s 1682(is)s 1892(the)s 2240(simplest.)s
3200(Database)s 4132(relations)s 5005(are)s 5352(naturally)s 6255(mapped)s
7071(into)s 7496(Lout)s 8008(de\207nitions:)s 220 fnt5 480 7981(def @Ref)m 6(erence)k
480 7693( named @T)m 26(ag {})k 480 7405( named @A)m 6(uthor {})k 480 7117( named @Title {})m
480 6829( named @Jour)m -5(nal {})k 480 6541({})m 240 fnt1 0 6047(The)m
434(set)s 766(of)s 1043(all)s 1343(in)s 9(v)k 4(ocations)k
2490(of)s 220 fnt5 2768 6044(@Ref)m 6(erence)k 240 fnt1
4055 6047(is)m 4272(a)s 4444(relation)s 5237(whose)s 5911(attrib)s 4(utes)k
6853(are)s 7206(the)s 7561(parameters,)s 8722(and)s 0 5759(whose)m
659(tuples)s 1271(are)s 1608(the)s 1946(in)s 9(v)k 4(ocations.)k
3191(T)s 19(o)k 3481(complete)s 4403(the)s 4741(correspondence,)s
6339(we)s 6665(need)s 7165(only)s 7635(declare)s 8370(that)s
8778(the)s 220 fnt5 0 5468(@T)m 26(ag)k 240 fnt1
623 5471(parameter)m 1637(is)s 1847(special,)s 2617(serving)s 3374(as)s
3624(the)s 3972(k)s 2(e)k 3(y)k 4367(attrib)s 4(ute.)k
480 5097(F)m 3(ollo)k 6(wing)k 1508(the)s 1856(database)s
2735(model,)s 3440(we)s 3775(ne)s 3(xt)k 4244(need)s
4755(a)s 4921(notation)s 5762(for)s 6100(retrie)s 6(ving)k
7075(the)s 7423(in)s 9(v)k 4(ocation)k 8477(with)s
8960(a)s 0 4809(gi)m 6(v)k 3(en)k 580(tag:)s
220 fnt5 480 4308(@Ref)m 6(erence&&kingston91)k 240 fnt1 0 3809(This)m
240 fnt3 534 3811(cr)m 10(oss)k 1143(r)s 8(efer)k 8(ence)k
240 fnt1 2141 3809(is)m 2410(lik)s 2(e)k 2881(an)s
3223(arro)s 6(w)k 3887(pointing)s 4796(to)s 5094(the)s
5501(in)s 9(v)k 4(ocation.)k 6721(T)s 19(o)k
7080(access)s 7800(its)s 8135(attrib)s 4(utes,)k 0 3521(we)m
335(write)s 220 fnt5 480 3069(@Ref)m 6(erence&&kingston91 @Open { @A)k 6(uthor)k 11(, @Title })k
240 fnt1 0 2570(The)m 220 fnt5 484 2567(@Open)m 240 fnt1
1347 2570(operator)m 2260(e)s 6(v)k 6(aluates)k 3245(its)s
3578(right)s 4146(parameter)s 5217(in)s 5517(an)s 5857(en)s 9(vironment)k
7174(which)s 7873(includes)s 8778(the)s 0 2282(e)m 3(xported)k
892(parameters)s 1990(of)s 2261(its)s 2537(left.)s 480 1908(An)m
829(in)s 9(v)k 4(ocation)k 1882(is)s 2091(chosen)s
2812(to)s 3050(be)s 3331(a)s 3496(running)s 4293(header)s
4989(because)s 5801(of)s 6071(its)s 6346(proximity)s 7342(to)s
7580(the)s 7927(place)s 8486(where)s 0 1620(it)m 223(is)s
465(used,)s 1043(rather)s 1691(than)s 2192(by)s 2517(its)s
2825(tag.)s 3313(Such)s 3881(proximity)s 4910(is)s 5151(naturally)s
6086(e)s 3(xpressed)k 7116(by)s 7442(tw)s 2(o)k
7884(special)s 8634(tags,)s 220 fnt5 0 1329(preceding)m 240 fnt1
1049 1332(and)m 220 fnt5 1491 1329(f)m 6(ollo)k 3(wing)k
240 fnt1 2321 1332(;)m 2471(for)s 2848(e)s 3(xample,)k
220 fnt5 3800 1329(@Sym&&f)m 6(ollo)k 3(wing)k 240 fnt1
5682 1332(will)m 6146(point)s 6737(to)s 7014(the)s 7400(closest)s
8149(follo)s 6(wing)k 0 1044(in)m 9(v)k 4(ocation)k
1083(of)s 220 fnt5 1383 1041(@Sym)m 240 fnt1 2121 1044(in)m
2393(the)s 2771(\207nal)s 3280(printed)s 4045(document.)s 5182(This)s
5688(is)s 5927(much)s 6546(simpler)s 7351(conceptually)s 8657(than)s
0 756(reference)m 937(to)s 1169(the)s 1511(internal)s 2288(state)s
2775(of)s 3039(the)s 3381(document)s 4378(formatter)s 5319(at)s
5544(a)s 5704(critical)s 6413(moment,)s 7298(the)s 7639(usual)s
8192(approach)s 0 468(to)m 239(running)s 1037(headers.)s 480 94(It)m
691(turns)s 1227(out)s 1600(that)s 2025(the)s 2380(abo)s 3(v)k 3(e)k
3009(design)s 3698(solv)s 3(es)k 4350(all)s 4650(the)s
5005(cross)s 5554(referencing)s 6701(problems)s 7649(encountered)s 8883(in)s
grestore
0 0 0 0 240 288 60 1417 -15423 LoutGr2
1 LoutMargSet
grestore
grestore
grestore
grestore
grestore
pgsave restore
showpage
%%Page: 36 37
%%BeginPageSetup
%%PageResources: font Times-Roman
%%+ font Helvetica
%%+ font Times-Bold
/pgsave save def
%%IncludeResource: font Times-Roman
/Times-Romanfnt1 vec2 /Times-Roman LoutRecode
/fnt1 { /Times-Romanfnt1 LoutFont } def
%%IncludeResource: font Helvetica
/Helveticafnt5 vec2 /Helvetica LoutRecode
/fnt5 { /Helveticafnt5 LoutFont } def
%%IncludeResource: font Times-Bold
/Times-Boldfnt2 vec2 /Times-Bold LoutRecode
/fnt2 { /Times-Boldfnt2 LoutFont } def
0.0500 dup scale 10 setlinewidth
%%EndPageSetup
gsave
0 0 translate
240 fnt1 0.0 0.0 0.0 LoutSetRGBColor LoutTextureSolid 11900 16840 0 16840 240 288 60 LoutGraphic
gsave
LoutPageSet
grestore
gsave
0 0 translate
1.0 1.0 1.0 LoutSetRGBColor 11900 16840 0 16840 240 288 60 LoutGraphic
gsave
LoutBox gsave 1.0 1.0 1.0 LoutSetRGBColor fill grestore 0 cm setlinewidth stroke
grestore
gsave
0 16840 translate
0.0000 rotate
0.0 0.0 0.0 LoutSetRGBColor
5705 -1581(-)m 5833(36)s 6126(-)s 9066 13414 0 13305 240 288 60 1417 -15423 LoutGr2
0 LoutMargSet
grestore
0 13251(practice)m 825(e)s 3(xcept)k
1521(one,)s 1988(which)s 2645(may)s 3126(be)s 3422(typi\207ed)s
4226(by)s 4535(the)s 4897(problem)s 5769(of)s 6054(\207nding)s
6801(the)s 7164(number)s 7969(of)s 8255(the)s 8618(page)s
0 12963(on)m 303(which)s 952(the)s 1306(chapter)s 2076(whose)s
2750(tag)s 3102(is)s 220 fnt5 3318 12960(intro)m 240 fnt1
3804 12963(be)m 3(gins.)k 4596(T)s 19(w)k 2(o)k
5074(cross)s 5622(referencing)s 6769(steps)s 7304(are)s 7658(needed,)s
8449(\207rst)s 8887(to)s 220 fnt5 0 12672(@Chapter&&intro)m 240 fnt1
1714 12675(,)m 1821(then)s 2290(from)s 2814(there)s 3347(to)s
220 fnt5 3586 12672(@P)m 8(age&&preceding)k 240 fnt1 5556 12675(,)m
5663(where)s 6303(the)s 6651(page)s 7159(number)s 7950(is)s
8160(kno)s 6(wn.)k 480 12301(Gi)m 6(v)k 3(en)k
1113(our)s 1492(success)s 2260(so)s 2526(f)s 2(ar)k 9(,)k
2886(this)s 3282(last)s 3673(problem)s 4530(pro)s 3(v)k 3(es)k
5213(to)s 5452(be)s 5734(surprisingly)s 6930(dif\207cult.)s 7850(W)s 19(e)k
8219(\207rst)s 8650(try)s 220 fnt5 480 11800(@Chapter&&intro @Open {)m 480 11512( @P)m 8(age&&preceding @Open { @P)k 8(ageNum })k
480 11224(})m 240 fnt1 0 10730(b)m 4(ut)k 363(this)s
761(f)s 2(ails)k 1222(because)s 220 fnt5 2037 10727(@P)m 8(age&&preceding)k
240 fnt1 4069 10730(is)m 4281(e)s 6(v)k 6(aluated)k
5245(in)s 5490(the)s 5840(present)s 6592(conte)s 3(xt,)k
7402(not)s 7770(in)s 8015(the)s 8365(conte)s 3(xt)k
0 10442(of)m 220 fnt5 271 10439(@Chapter&&intro)m 240 fnt1 2045 10442(as)m
2295(required.)s 3255(So)s 3561(our)s 3940(ne)s 3(xt)k
4409(attempt)s 5185(is)s 220 fnt5 480 9941(def @Chapter)m 480 9653( named @P)m 8(ageNum { @P)k 8(age&&preceding @Open { @P)k 8(ageNum } })k
480 9365( ...)m 240 fnt1 0 8914(with)m 482(the)s 220 fnt5
830 8911(@P)m 8(age&&preceding)k 240 fnt1 2860 8914(cross)m 3402(reference)s
4345(attached)s 5199(to)s 5438(the)s 5786(chapter;)s 6601(we)s
6936(write)s 220 fnt5 480 8413(@Chapter&&intro @Open { @P)m 8(ageNum })k 240 fnt1
0 7914(This)m 604(also)s 1170(f)s 2(ails,)k 1813(because)s
2754(parameters)s 3980(are)s 4456(e)s 6(v)k 6(aluated)k
5546(after)s 6170(substitution,)s 7521(so)s 7915(once)s 8552(ag)s 1(ain)k
220 fnt5 0 7623(@P)m 8(age&&preceding)k 240 fnt1 2015 7626(is)m
2209(e)s 6(v)k 6(aluated)k 3156(in)s 3383(the)s
3716(wrong)s 4365(conte)s 3(xt.)k 5215(W)s 19(e)k
5568(could)s 6143(of)s 6398(course)s 7063(de\207ne)s 7688(a)s
7839(ne)s 6(w)k 8270(operator)s 0 7338(speci\207cally)m 1142(for)s
1480(this)s 1876(case:)s 220 fnt5 480 6837(@P)m 8(age&&{ @Preceding @Chapter&&intro })k
240 fnt1 0 6338(or)m 267(some)s 836(such.)s 1448(This)s
1932(is)s 2151(free)s 2585(of)s 2864(the)s 3221(anno)s 2(ying)k
4172(conte)s 3(xt-sensiti)k 6(vity)k 15(,)k 6029(b)s 4(ut)k
6399(it)s 6599(seems)s 7243(quite)s 7785(comple)s 3(x,)k
8722(and)s 0 6050(the)m 348(e)s 3(xpected)k 1253(cross)s
1795(reference)s 220 fnt5 2738 6047(@P)m 8(age&&preceding)k 240 fnt1
4768 6050(does)m 5258(not)s 5624(appear)s 13(.)k 480 5676(The)m
939(author)s 1642(w)s 2(as)k 2095(lost)s 2532(in)s
2806(these)s 3385(obscurities)s 4503(for)s 4873(some)s 5465(time,)s
6028(and)s 6464(ultimately)s 7518(rescued)s 8338(himself)s 0 5388(by)m
306(looking)s 1103(ahead)s 1731(to)s 1982(the)s 2342(implementation)s
3912(of)s 4195(the)s 220 fnt5 4555 5385(preceding)m 240 fnt1
5578 5388(and)m 220 fnt5 5994 5385(f)m 6(ollo)k 3(wing)k
240 fnt1 6897 5388(tags,)m 7401(to)s 7652(see)s 8025(if)s
8254(a)s 8433(simple)s 0 5100(e)m 3(xtension)k 971(of)s
1242(it)s 1434(w)s 2(ould)k 2089(solv)s 3(e)k
2647(the)s 2995(problem.)s 3956(This)s 4432(led)s 4782(to)s
5021(the)s 220 fnt5 5369 5097(@T)m 26(agged)k 240 fnt1
6358 5100(operator:)m 220 fnt5 480 4599(@P)m 8(age&&preceding @T)k 26(agged intro)k
240 fnt1 0 4100(placed)m 686(at)s 922(the)s 1274(be)s 3(ginning)k
2286(of)s 2562(the)s 2914(body)s 3452(of)s 3727(the)s
4079(chapter)s 4847(will)s 5277(attach)s 220 fnt5 5908 4097(intro)m
240 fnt1 6391 4100(as)m 6645(an)s 6933(e)s 3(xtra)k
7471(tag)s 7820(to)s 8063(the)s 8416(closest)s 0 3812(preceding)m
996(in)s 9(v)k 4(ocation)k 2050(of)s 220 fnt5
2321 3809(@P)m 8(age)k 240 fnt1 3040 3812(,)m 3147(so)s
3413(that)s 220 fnt5 480 3311(@P)m 8(age&&intro @Open { @P)k 8(ageNum })k
240 fnt1 0 2812(yields)m 635(the)s 996(desired)s 1758(page)s
2279(number)s 13(.)k 3174(There)s 3801(is)s 4024(something)s
5087(lo)s 6(w-le)k 6(v)k 3(el)k 6043(and)s
6460(ad)s 6757(hoc)s 7170(about)s 7775(the)s 220 fnt5
8137 2809(@T)m 26(agged)k 240 fnt1 0 2524(operator)m 9(,)k
894(b)s 4(ut)k 1256(the)s 1604(tw)s 2(o)k
2014(cross)s 2556(references)s 3587(do)s 3880(appear)s 4577(naturally)s 15(,)k
5518(and)s 5922(it)s 6114(w)s 2(orks.)k 240 fnt2
0 1875(6.2.)m 471(Implementation)s 2159(of)s 2431(cr)s 4(oss)k
2999(r)s 4(efer)k 4(ences)k
[ /Dest /LOUTcross_impl /DEST pdfmark
240 fnt1 480 1398(Before)m
1185(an)s 1466(object)s 2109(can)s 2496(be)s 2777(sized)s
3324(and)s 3727(printed,)s 4509(the)s 4855(v)s 6(alues)k
5510(of)s 5779(an)s 3(y)k 6175(cross)s 6715(references)s
7745(within)s 8411(it)s 8601(must)s 0 1110(be)m 279(kno)s 6(wn.)k
1086(If)s 1312(the)s 3(y)k 1772(refer)s 2277(to)s
2512(in)s 9(v)k 4(ocations)k 3650(that)s 4064(ha)s 4(v)k 3(e)k
4561(not)s 4924(yet)s 5272(been)s 5777(read,)s 6292(there)s
6821(is)s 7027(a)s 7190(problem.)s 8147(Scribe)s 8809([7])s
0 822(solv)m 3(es)k 649(it)s 844(by)s 1141(capitalizing)s
2311(on)s 2611(the)s 2962(f)s 2(act)k 3381(that)s
3802(documents)s 4893(are)s 5243(formatted)s 6232(repeatedly)s 7284(during)s
7965(the)s 8317(drafting)s 0 534(process.)m 868(All)s 1214(tagged)s
1897(in)s 9(v)k 4(ocations)k 3024(are)s 3358(copied)s
4040(to)s 4266(an)s 4535(auxiliary)s 5425(\207le)s 5772(during)s
6437(the)s 6771(\207rst)s 7189(run,)s 7601(and)s 7992(inde)s 3(x)k 3(ed)k
8788(for)s 0 246(quick)m 593(retrie)s 6(v)k 6(al)k
1429(on)s 1725(the)s 2072(second.)s 2901(A)s 3130(ne)s 6(w)k
3576(auxiliary)s 4478(\207le)s 4839(is)s 5048(written)s 5780(during)s
6457(the)s 6805(second)s 7527(run,)s 7952(for)s 8289(retrie)s 6(v)k 6(al)k
grestore
0 0 0 0 240 288 60 1417 -15423 LoutGr2
0 LoutMargSet
grestore
grestore
grestore
grestore
grestore
pgsave restore
showpage
%%Page: 37 38
%%BeginPageSetup
%%PageResources: font Times-Roman
%%+ font Times-Italic
%%+ font Helvetica
/pgsave save def
%%IncludeResource: font Times-Roman
/Times-Romanfnt1 vec2 /Times-Roman LoutRecode
/fnt1 { /Times-Romanfnt1 LoutFont } def
%%IncludeResource: font Times-Italic
/Times-Italicfnt3 vec2 /Times-Italic LoutRecode
/fnt3 { /Times-Italicfnt3 LoutFont } def
%%IncludeResource: font Helvetica
/Helveticafnt5 vec2 /Helvetica LoutRecode
/fnt5 { /Helveticafnt5 LoutFont } def
0.0500 dup scale 10 setlinewidth
%%EndPageSetup
gsave
0 0 translate
240 fnt1 0.0 0.0 0.0 LoutSetRGBColor LoutTextureSolid 11900 16840 0 16840 240 288 60 LoutGraphic
gsave
LoutPageSet
grestore
gsave
0 0 translate
1.0 1.0 1.0 LoutSetRGBColor 11900 16840 0 16840 240 288 60 LoutGraphic
gsave
LoutBox gsave 1.0 1.0 1.0 LoutSetRGBColor fill grestore 0 cm setlinewidth stroke
grestore
gsave
0 16840 translate
0.0000 rotate
0.0 0.0 0.0 LoutSetRGBColor
5708 -1579(-)m 5836(37)s 6124(-)s 9066 13416 0 13307 240 288 60 1417 -15423 LoutGr2
1 LoutMargSet
grestore
0 13253(on)m 301(the)s
654(third,)s 1217(and)s 1625(so)s 1896(on.)s 2305(Cross)s
2906(references)s 3941(al)s 2(w)k 2(ays)k 4657(lag)s
5007(one)s 5413(run)s 5794(behind)s 6509(the)s 6862(rest)s
7270(of)s 7546(the)s 7899(document;)s 8960(a)s 0 12965(perfect)m
711(cop)s 2(y)k 1217(may)s 1671(be)s 1942(produced)s
2879(by)s 3161(formatting)s 4210(the)s 4547(same)s 5082(v)s 3(ersion)k
5828(twice,)s 6440(e)s 3(xcept)k 7110(in)s 7341(a)s
7495(fe)s 6(w)k 7889(pathological)s 0 12677(cases)m 555(that)s
973(f)s 2(ail)k 1343(to)s 1582(con)s 9(v)k 3(er)k 4(ge.)k
480 12303(Cross)m 1123(referencing)s 2310(in)s 2600(Lout)s 3159(is)s
3416(implemented)s 4769(on)s 5113(top)s 5519(of)s 5837(a)s
6050(simple)s 6790(database)s 7716(system.)s 8591(Each)s 0 12015(database)m
879(is)s 1089(either)s 1692(writable)s 2530(or)s 2790(readable)s
3655(b)s 4(ut)k 4017(not)s 4383(both)s 4867(at)s
5099(once,)s 5658(and)s 6062(holds)s 6633(a)s 6799(set)s
7124(of)s 7395(k)s 2(e)k 3(y-v)k 6(alue)k
8384(entries:)s 0 11727(the)m 348(k)s 2(e)k 3(ys)k
833(are)s 1180(ASCII)s 1861(strings,)s 2605(and)s 3009(the)s
3358(v)s 6(alues)k 4014(are)s 4361(Lout)s 4873(objects,)s
5658(possibly)s 6510(with)s 6992(en)s 9(vironments,)k 8393(written)s
0 11439(in)m 290(Lout)s 850(source.)s 1685(Operations)s 2833(are)s
3227(pro)s 3(vided)k 4181(for)s 4566(writing)s 5357(an)s
5687(entry)s 15(,)k 6318(con)s 9(v)k 3(erting)k
7429(from)s 8001(writable)s 8887(to)s 0 11151(readable,)m 916(retrie)s 6(v)k 6(al)k
1753(by)s 2047(k)s 2(e)k 3(y)k 15(,)k
2480(and)s 2884(sequential)s 3908(retrie)s 6(v)k 6(al)k
4745(in)s 4988(k)s 2(e)k 3(y)k 5383(order)s 13(.)k
480 10777(The)m 905(implementation,)s 2509(which)s 3148(is)s 3354(quite)s
3885(unsophisticated,)s 5477(emplo)s 2(ys)k 6334(one)s 6732(or)s
6988(more)s 7532(ASCII)s 240 fnt3 8208 10779(database)m 0 10491(\207les)m
240 fnt1 380 10489(,)m 485(containing)s 1545(the)s 1891(v)s 6(alues,)k
2600(and)s 3001(one)s 3401(ASCII)s 240 fnt3 4078 10491(inde)m 4(x)k
4650(\207le)s 240 fnt1 4992 10489(per)m 5354(database,)s 6282(containing)s
7342(the)s 7688(k)s 2(e)k 3(ys.)k 8283(T)s 19(o)k
8580(write)s 0 10201(an)m 283(entry)s 15(,)k 866(the)s
1214(v)s 6(alue)k 1782(is)s 1992(\207rst)s 2423(appended)s
3399(to)s 3638(a)s 3804(database)s 4683(\207le,)s 5095(then)s
5564(a)s 5730(line)s 6144(lik)s 2(e)k 220 fnt5
480 9700(@Chapter&&intro ch1.ld 57)m 240 fnt1 0 9204(is)m 204(appended)s 1174(to)s
1406(the)s 1748(inde)s 3(x)k 2326(\207le,)s 2731(gi)s 6(ving)k
3384(the)s 3725(\207le)s 4080(and)s 4478(of)s 6(fset)k
5068(where)s 5702(the)s 6043(v)s 6(alue)k 6605(is)s
6809(stored.)s 7550(T)s 19(o)k 7844(con)s 9(v)k 3(ert)k
8602(from)s 0 8916(writable)m 831(to)s 1062(readable,)s 1971(the)s
2311(inde)s 3(x)k 2887(\207le)s 3241(is)s 3443(sorted.)s
4183(Then)s 4725(retrie)s 6(v)k 6(al)k 5554(by)s
5840(k)s 2(e)k 3(y)k 6228(requires)s 7040(a)s
7198(binary)s 7856(search)s 8515(of)s 8778(the)s 0 8628(inde)m 3(x)k
584(\207le)s 945(and)s 1349(one)s 1751(seek)s 2237(into)s
2662(a)s 2828(database)s 3707(\207le,)s 4119(and)s 4523(sequential)s
5547(retrie)s 6(v)k 6(al)k 6384(by)s 6678(k)s 2(e)k 3(y)k
7073(is)s 7283(tri)s 6(vial.)k 480 8254(This)m 945(database)s
1813(system)s 2526(is)s 2725(used)s 3211(in)s 3443(se)s 6(v)k 3(eral)k
4154(w)s 2(ays.)k 4797(F)s 3(or)k 5175(an)s
5447(e)s 3(xternal)k 6257(database,)s 7176(say)s 7538(of)s
7798(bibliographic)s 0 7966(references,)m 1093(the)s 1447(user)s 1912(creates)s
2631(the)s 2985(database)s 3871(\207le)s 4238(of)s 4516(v)s 6(alues)k
5178(\(without)s 6054(en)s 9(vironments\),)k 7540(Lout)s 8058(creates)s
8778(the)s 0 7678(inde)m 3(x)k 587(\207le)s 951(whene)s 6(v)k 3(er)k
1935(it)s 2130(cannot)s 2831(\207nd)s 3265(one,)s 3721(and)s
4128(retrie)s 6(v)k 6(als)k 5057(by)s 5354(k)s 2(e)k 3(y)k
5752(proceed)s 6570(as)s 6823(usual.)s 7495(Cross)s 8095(references)s
0 7390(with)m 476(tags)s 906(other)s 1451(than)s 220 fnt5
1913 7387(preceding)m 240 fnt1 2918 7390(and)m 220 fnt5 3316 7387(f)m 6(ollo)k 3(wing)k
240 fnt1 4200 7390(are)m 4540(treated)s 5241(as)s 5485(described)s
6453(abo)s 3(v)k 3(e,)k 7119(by)s 7407(writing)s
8144(all)s 8430(tagged)s 0 7102(in)m 9(v)k 4(ocations)k
1131(\(with)s 1681(en)s 9(vironments\))k 3092(to)s 3320(a)s
3475(single)s 4092(database,)s 5011(which)s 5643(is)s 5842(con)s 9(v)k 3(erted)k
6820(to)s 7049(readable)s 7903(at)s 8125(the)s 8462(end)s
8855(of)s 0 6814(the)m 334(run)s 695(for)s 1018(retrie)s 6(v)k 6(als)k
1930(on)s 2212(the)s 2545(ne)s 3(xt)k 3000(run.)s
3468(Sorted)s 4135(g)s 1(alle)k 3(ys,)k 4900(such)s
5382(as)s 5617(inde)s 3(x)k 6186(entries,)s 6915(are)s
7247(written)s 7965(out)s 8316(inde)s 3(x)k 3(ed)k
0 6526(by)m 307(tar)s 4(get)k 920(and)s 1337(k)s 2(e)k 3(y)k
1746(and)s 2163(retrie)s 6(v)k 3(ed)k 3074(sequentially)s
4297(on)s 4607(the)s 4969(ne)s 3(xt)k 5451(run.)s
5948(Unsorted)s 6896(g)s 1(alle)k 3(ys)k 7634(with)s
8130(preceding)s 0 6238(tar)m 4(gets)k 684(which)s 1327(pop)s
1741(of)s 6(f)k 2086(the)s 2435(top)s 2795(of)s
3067(the)s 3416(root)s 3863(g)s 1(alle)k 3(y)k
4498(without)s 5290(\207nding)s 6023(a)s 6190(tar)s 4(get,)k
6837(such)s 7334(as)s 7585(entries)s 8273(in)s 8518(tables)s
0 5950(of)m 274(contents,)s 1181(are)s 1532(treated)s 2242(similarly)s 15(,)k
3186(e)s 3(xcept)k 3870(that)s 4291(the)s 3(y)k
4758(are)s 5108(inde)s 3(x)k 3(ed)k 5922(by)s
6219(tar)s 4(get)k 6821(and)s 7229(a)s 7398(sequence)s
8335(number)s 0 5662(that)m 418(preserv)s 3(es)k 1368(their)s
1865(relati)s 6(v)k 3(e)k 2627(order)s 3191(during)s
3869(the)s 4217(sort.)s 480 5288(When)m 1107(Lout)s 1617(processes)s
2581(a)s 2745(multi-\207le)s 3687(document,)s 4735(one)s 5135(cross)s
5674(reference)s 6615(database)s 7492(\207le)s 7850(is)s 8058(written)s
8788(for)s 0 5000(each)m 504(input)s 1065(\207le,)s 1486(b)s 4(ut)k
1858(the)s 3(y)k 2330(share)s 2899(a)s 3074(common)s
3979(inde)s 3(x)k 4572(\207le.)s 5050(At)s 5358(end)s
5772(of)s 6052(run,)s 6487(the)s 6844(ne)s 6(w)k
7301(inde)s 3(x)k 7894(\207le)s 8264(is)s 8484(sorted)s
0 4712(and)m 404(mer)s 4(ged)k 1176(with)s 1658(the)s
2007(old)s 2371(one)s 2774(in)s 3017(such)s 3514(a)s
3680(w)s 2(ay)k 4132(as)s 4383(to)s 4622(preserv)s 3(e)k
5485(entries)s 6172(relating)s 6955(to)s 7194(\207les)s 7644(not)s
8010(read)s 8480(on)s 8778(the)s 0 4424(current)m 737(run.)s
1221(This)s 1699(pro)s 3(vides)k 2572(some)s 3135(support)s
3914(for)s 4254(piecemeal)s 5278(formatting,)s 6395(b)s 4(ut)k
6758(e)s 6(v)k 3(entually)k 7801(the)s 8150(\207les)s
8601(must)s 0 4136(all)m 293(be)s 575(formatted)s 1561(together)s 13(.)k
480 3762(When)m 1120(a)s 220 fnt5 1297 3759(preceding)m 240 fnt1
2319 3762(or)m 220 fnt5 2590 3759(f)m 6(ollo)k 3(wing)k
240 fnt1 3491 3762(cross)m 4044(reference)s 4998(is)s 5220(found,)s
5897(it)s 6100(is)s 6321(attached)s 7187(to)s 7437(a)s
7614(g)s 1(alle)k 3(y)k 8259(inde)s 3(x)k
8855(of)s 0 3474(type)m 240 fnt3 474 3476(CR)m 9(OSS_PREC)k
240 fnt1 1973 3474(or)m 240 fnt3 2238 3476(CR)m 9(OSS_FOLL)k
240 fnt1 3653 3474(,)m 3766(together)s 4615(with)s 5103(an)s
5392(automatically)s 6752(generated)s 7745(tag)s 8097(composed)s 0 3186(of)m
258(the)s 593(current)s 1316(\207le)s 1663(name)s 2224(and)s
2615(a)s 2767(sequence)s 3687(number)s 13(.)k 4556(When)s
5172(a)s 5324(tagged)s 6007(in)s 9(v)k 4(ocation)k
7048(is)s 7244(found,)s 7897(it)s 8076(is)s 8272(attached)s
0 2898(to)m 237(a)s 240 fnt3 401 2900(CR)m 9(OSS_T)k 12(ARG)k
240 fnt1 1875 2898(inde)m 3(x.)k 2565(These)s 3190(g)s 1(alle)k 3(y)k
3822(inde)s 3(x)k 3(es)k 4595(are)s 4940(carried)s
5658(along)s 6241(through)s 7040(the)s 7386(dynamic)s 8261(tree,)s
8722(and)s 0 2610(e)m 6(v)k 3(entually)k 1049(pop)s
1470(of)s 6(f)k 1822(the)s 2178(top)s 2545(of)s
2824(the)s 3180(root)s 3633(g)s 1(alle)k 3(y)k 15(,)k
4313(at)s 4553(which)s 5203(point)s 5763(it)s 5963(is)s
6181(easy)s 6668(to)s 6915(determine)s 7934(which)s 8584(cross)s
0 2322(references)m 1029(refer)s 1536(to)s 1773(which)s 2413(in)s 9(v)k 4(ocations,)k
3608(since)s 4153(the)s 4499(inde)s 3(x)k 3(es)k
5273(are)s 5618(no)s 6(w)k 6077(in)s 6318(\207nal)s
6796(printed)s 7529(document)s 8531(order)s 13(.)k 0 2034(Each)m
541(referenced)s 1613(in)s 9(v)k 4(ocation)k 2674(is)s
2891(then)s 3367(written)s 4107(to)s 4353(the)s 4708(cross)s
5257(reference)s 6207(database,)s 7144(multiply)s 8015(inde)s 3(x)k 3(ed)k
8832(by)s 0 1746(the)m 344(generated)s 1327(tags)s 1758(of)s
2025(the)s 2369(associated)s 3404(cross)s 3942(references.)s 5082(On)s
5427(the)s 5771(ne)s 3(xt)k 6236(run,)s 6657(when)s
7229(the)s 7573(same)s 220 fnt5 8115 1743(preceding)m 240 fnt1
0 1458(and)m 220 fnt5 408 1455(f)m 6(ollo)k 3(wing)k
240 fnt1 1302 1458(cross)m 1848(references)s 2883(are)s 3234(found,)s
3904(chances)s 4716(are)s 5067(good)s 5609(that)s 6031(the)s
6383(same)s 6934(tags)s 7374(will)s 7804(be)s 8090(generated,)s
0 1170(and)m 404(the)s 752(appropriate)s 1896(v)s 6(alues)k
2552(can)s 2941(be)s 3223(retrie)s 6(v)k 3(ed)k
4120(from)s 4644(the)s 4992(database)s 5871(immediately)s 15(.)k
480 796(This)m 982(approach)s 1942(w)s 2(as)k 2389(the)s
2763(genesis)s 3544(of)s 3842(the)s 220 fnt5 4216 793(@T)m 26(agged)k
240 fnt1 5231 796(operator)m 9(,)k 6151(whose)s 6845(implementation)s
8428(is)s 8665(no)s 6(w)k 0 508(immediate:)m 1106(for)s
1436(each)s 220 fnt5 1923 505(@T)m 26(agged)k 240 fnt1
2903 508(operator)m 3751(we)s 4078(produce)s 4897(one)s 240 fnt3
5290 510(CR)m 9(OSS_PREC)k 240 fnt1 6775 508(or)m 240 fnt3
7026 510(CR)m 9(OSS_FOLL)k 240 fnt1 8492 508(g)m 1(alle)k 3(y)k
0 220(inde)m 3(x,)k 645(replacing)s 1596(the)s 1953(generated)s
2949(tag)s 3304(with)s 3795(the)s 4152(right)s 4672(parameter)s
5696(of)s 5976(the)s 220 fnt5 6333 217(@T)m 26(agged)k
240 fnt1 7331 220(operator)m 13(.)k 8288(Nothing)s
grestore
0 0 0 0 240 288 60 1417 -15423 LoutGr2
1 LoutMargSet
grestore
grestore
grestore
grestore
grestore
pgsave restore
showpage
%%Page: 38 39
%%BeginPageSetup
%%PageResources: font Times-Roman
%%+ font Times-Bold
%%+ font Times-Italic
/pgsave save def
%%IncludeResource: font Times-Roman
/Times-Romanfnt1 vec2 /Times-Roman LoutRecode
/fnt1 { /Times-Romanfnt1 LoutFont } def
%%IncludeResource: font Times-Bold
/Times-Boldfnt2 vec2 /Times-Bold LoutRecode
/fnt2 { /Times-Boldfnt2 LoutFont } def
%%IncludeResource: font Times-Italic
/Times-Italicfnt3 vec2 /Times-Italic LoutRecode
/fnt3 { /Times-Italicfnt3 LoutFont } def
0.0500 dup scale 10 setlinewidth
%%EndPageSetup
gsave
0 0 translate
240 fnt1 0.0 0.0 0.0 LoutSetRGBColor LoutTextureSolid 11900 16840 0 16840 240 288 60 LoutGraphic
gsave
LoutPageSet
grestore
gsave
0 0 translate
1.0 1.0 1.0 LoutSetRGBColor 11900 16840 0 16840 240 288 60 LoutGraphic
gsave
LoutBox gsave 1.0 1.0 1.0 LoutSetRGBColor fill grestore 0 cm setlinewidth stroke
grestore
gsave
0 16840 translate
0.0000 rotate
0.0 0.0 0.0 LoutSetRGBColor
5708 -1579(-)m 5836(38)s 6123(-)s 9066 13416 0 13307 240 288 60 1417 -15423 LoutGr2
0 LoutMargSet
grestore
0 13253(more)m 547(is)s
757(required.)s 240 fnt2 0 12460(7.)m 291(Conclusion)s
[ /Dest /LOUT18_694_s7_0_1 /DEST pdfmark
240 fnt1
480 12028(Since)m 1054(its)s 1316(public)s 1953(release)s 2657(in)s
2886(October)s 3702(1991,)s 4275(the)s 4609(Basser)s 5292(Lout)s
5790(interpreter)s 6829(has)s 7185(been)s 7680(ported)s 8335(without)s
0 11740(incident)m 819(to)s 1047(a)s 1202(wide)s 1712(v)s 6(ariety)k
2412(of)s 2672(Unix)s 3195(systems)s 3992(and)s 4385(hardw)s 2(are.)k
5425(It)s 5619(w)s 2(as)k 6029(tested)s 6633(e)s 3(xtensi)k 6(v)k 3(ely)k
7753(before)s 8408(release)s 0 11452(on)m 293(its)s 565(o)s 6(wn)k
1025(documentation,)s 2549(and)s 2949(the)s 3293(fe)s 6(w)k
3695(minor)s 4321(b)s 4(ugs)k 4817(which)s 5455(ha)s 4(v)k 3(e)k
5952(emer)s 4(ged)k 6824(since)s 7367(then)s 7832(ha)s 4(v)k 3(e)k
8329(all)s 8617(been)s 0 11164(\207x)m 3(ed)k 534(in)s
777(the)s 1125(second)s 1848(release,)s 2617(scheduled)s 3632(to)s
3871(appear)s 4568(in)s 4811(mid-1992.)s 480 10790(Se)m 6(v)k 3(en)k
1105(substantial)s 2173(packages)s 3093(of)s 3355(de\207nitions)s 4407(are)s
4746(distrib)s 4(uted)k 5813(with)s 6286(Basser)s 6975(Lout.)s
7582(The)s 8001(Document-)s 0 10502(Layout)m 748(package,)s 1649(and)s
2063(its)s 2349(v)s 6(ariants)k 3160(ReportLayout)s 4560(and)s
4974(BookLayout,)s 6289(pro)s 3(vide)k 7083(the)s 7441(standard)s
8320(features)s 0 10214(that)m 411(all)s 696(documents)s 1776(require:)s
2610(pages,)s 3254(columns,)s 4165(paragraphs,)s 5313(headings,)s 6263(footnotes,)s
7252(\210oating)s 8028(\207gures)s 8722(and)s 0 9926(tables,)m 683(chapters)s
1550(and)s 1974(sections,)s 2871(displays)s 3726(and)s 4150(lists,)s
4660(access)s 5341(to)s 5600(bibliographic)s 6948(databases,)s 7991(cross)s
8553(refer)s 4(-)k 0 9638(ences,)m 623(and)s 1012(so)s
1263(on)s 1545([11].)s 2092(The)s 2505(BookLayout)s 3748(package)s
4572(has)s 4927(e)s 3(xtra)k 5446(features)s 6237(needed)s
6958(by)s 7237(books,)s 7902(including)s 8843(an)s 0 9350(automatically)m
1354(generated)s 2342(table)s 2863(of)s 3135(contents,)s 4040(Roman)s
4790(page)s 5298(numbers)s 6174(for)s 6513(the)s 6862(pref)s 2(atory)k
7790(material,)s 8679(run-)s 0 9062(ning)m 468(page)s 965(headers,)s
1790(odd)s 2197(and)s 2589(e)s 6(v)k 3(en)k
3078(page)s 3574(layouts,)s 4361(and)s 4754(a)s 4908(sorted)s
5539(inde)s 3(x.)k 6220(The)s 6637(Eq)s 6949(package)s
7778(formats)s 8546(equa-)s 0 8774(tions,)m 572(and)s 976(P)s 3(as)k
1356(formats)s 2136(P)s 3(ascal)k 2798(programs)s 3752([10];)s
4262(T)s 19(ab)k 4668(formats)s 5448(tables)s 6056([12];)s
6566(and)s 6970(Fig)s 7342(dra)s 3(ws)k 7961(\207gures)s
8663([6].)s 480 8400(The)m 899(non-e)s 3(xpert)k 1983(user)s
2431(who)s 2888(uses)s 3341(these)s 3879(packages)s 4797(percei)s 6(v)k 3(es)k
5732(a)s 5889(system)s 6603(of)s 6865(a)s 7021(standard)s
7880(quite)s 8404(similar)s 0 8112(to)m 246(other)s 804(fully)s
1317(de)s 6(v)k 3(eloped)k 2357(batch)s 2940(formatters,)s
4034(although)s 4936(the)s 5292(interf)s 2(ace)k 6187(is)s
6405(considerably)s 7688(more)s 8243(coherent)s 0 7824(than,)m 525(say)s 15(,)k
942(the)s 1297(trof)s 6(f)k 1792(f)s 2(amily')k 13(s)k
2630([8].)s 3078(The)s 3512(e)s 3(xpert)k 4173(user)s
4637(percei)s 6(v)k 3(es)k 5588(a)s 5760(system)s
6490(which)s 7139(is)s 7355(radically)s 8251(dif)s 6(ferent)k
0 7536(from)m 547(pre)s 6(vious)k 1440(ones,)s 2009(in)s
2276(which)s 2941(a)s 3131(great)s 3691(deal)s 4168(can)s
4580(be)s 4886(achie)s 6(v)k 3(ed)k 5808(v)s 3(ery)k
6308(quickly)s 15(.)k 7198(T)s 19(o)k 7522(tak)s 2(e)k
7997(an)s 8304(e)s 3(xtreme)k 0 7248(e)m 3(xample,)k
936(P)s 3(as)k 1338(w)s 2(as)k 1781(designed,)s
2761(implemented,)s 4138(tested,)s 4825(and)s 5251(documented)s 6501(in)s
6766(one)s 7190(afternoon.)s 8292(Eq)s 8639(took)s 0 6960(about)m
587(a)s 747(week,)s 1353(b)s 4(ut)k 1709(most)s
2229(of)s 2494(that)s 2906(time)s 3380(w)s 2(as)k
3796(spent)s 4355(in)s 4592(marshalling)s 5767(the)s 6110(v)s 6(ast)k
6543(repertoire)s 7520(of)s 7785(mathematical)s 0 6672(symbols,)m 934(and)s
1367(\207ne-tuning)s 2499(the)s 2876(spacing.)s 3800(Most)s 4381(of)s
4681(the)s 5059(ef)s 6(fort)k 5671(seems)s 6335(to)s
6603(go)s 6925(into)s 7379(designing)s 8392(a)s 8588(good)s
0 6384(interf)m 2(ace;)k 944(most)s 1469(symbols)s 2318(are)s
2665(implemented)s 3971(in)s 4214(just)s 4619(one)s 5021(or)s
5280(a)s 5446(fe)s 6(w)k 5852(lines)s 6354(of)s
6625(Lout.)s 480 6010(A)m 698(group)s 1297(of)s 1556(about)s
2135(20)s 2418(satis\207ed)s 3246(non-e)s 3(xpert)k 4327(users)s
4856(has)s 5214(gro)s 6(wn)k 5864(up)s 6145(within)s
6800(the)s 7136(author')s 13(s)k 7944(department,)s 0 5722(mainly)m
703(Honours)s 1563(students)s 2383(with)s 2849(no)s 3127(in)s 9(v)k 3(estment)k
4208(in)s 4436(older)s 4971(systems)s 5764(to)s 5987(hold)s
6456(them)s 6978(back.)s 7579(Basser)s 8260(Lout)s 8756(has)s
0 5434(been)m 511(adv)s 3(ertised)k 1550(on)s 1849(the)s
2199(Internet)s 3003(ne)s 6(ws)k 3542(as)s 3794(a)s 4(v)k 6(ailable)k
4704(via)s 5058(anon)s 3(ymous)k 240 fnt3 6213 5436(ftp)m
240 fnt1 6458 5434(,)m 6567(so)s 6835(the)s 7185(e)s 3(xtent)k
7828(of)s 8101(its)s 8379(outside)s 0 5146(user)m 469(community)s
1624(is)s 1845(hard)s 2339(to)s 2589(g)s 1(auge.)k
3335(About)s 4005(50)s 4311(people)s 5016(ha)s 4(v)k 3(e)k
5528(mailed)s 6247(comments)s 7292(or)s 7562(questions)s 8528(to)s
8778(the)s 0 4858(author;)m 733(man)s 3(y)k 1327(of)s
1608(these)s 2166(people)s 2871(ha)s 4(v)k 3(e)k
3382(ported)s 4062(the)s 4420(program,)s 5348(written)s 6092(small)s
6674(de\207nitions,)s 7802(and)s 8217(modi\207ed)s 0 4570(the)m 348(standard)s
1216(packages.)s 480 4196(Future)m 1160(w)s 2(ork)k 1711(could)s
2300(usefully)s 3124(be)s 3(gin)k 3709(with)s 4191(the)s
4539(impro)s 3(v)k 3(ements)k 5951(suggested)s 6953(in)s
7195(this)s 7591(paper:)s 8287(o)s 3(v)k 3(erlap-)k
0 3908(ping)m 489(spanning)s 1418(columns,)s 2346(better)s 2960(semantics)s
3964(for)s 4312(a)s 4(v)k 6(ailable)k 5231(space,)s
5880(and)s 6294(especially)s 7314(horizontal)s 8349(g)s 1(alle)k 3(ys.)k
0 3620(Support)m 814(for)s 1147(non-)s 1575(European)s 2544(languages)s
3547(is)s 3752(also)s 4185(needed.)s 5022(Ho)s 6(we)k 6(v)k 3(er)k 9(,)k
5977(the)s 6320(main)s 6850(task)s 7291(is)s 7496(the)s
7839(de)s 6(v)k 3(elopment)k 0 3332(of)m 271(an)s
553(interacti)s 6(v)k 3(e)k 1607(document)s 2610(editor)s
3227(based)s 3829(on)s 4126(Lout.)s 4741(A)s 4971(structure)s
5861(editor)s 6478(similar)s 7199(to)s 7438(Lilac)s 7980([13],)s
8484(which)s 0 3044(already)m 753(has)s 1119(objects)s 1843(and)s
2243(user)s 4(-)k 2705(de\207ned)s 3463(symbols,)s 4364(is)s
4570(en)s 9(visaged;)k 5626(since)s 6168(cross)s 6706(references)s
7733(are)s 8076(easy)s 8550(when)s 0 2756(the)m 343(whole)s
979(document)s 1977(is)s 2182(a)s 4(v)k 6(ailable,)k
3135(the)s 3478(only)s 3953(major)s 4564(ne)s 6(w)k
5006(problem)s 5857(is)s 6062(the)s 6405(treatment)s 7360(of)s
7626(g)s 1(alle)k 3(ys,)k 8400(includ-)s 0 2468(ing)m
359(the)s 707(e)s 3(xpansion)k 1732(and)s 2136(retraction)s
3107(of)s 3378(recepti)s 6(v)k 3(e)k 4300(symbols.)s
240 fnt2 0 1719(Note.)m 240 fnt1 657 1720(Since)m 1253(the)s
1610(abo)s 3(v)k 3(e)k 2240(w)s 2(as)k
2670(written)s 3412(the)s 3768(author)s 4448(has)s 4827(completed)s
5889(a)s 6064(re)s 6(vised)k 6815(v)s 3(ersion)k
7581(of)s 7861(Basser)s 8567(Lout,)s 0 1432(in)m 243(which)s
885(the)s 1233(problem)s 2090(concerning)s 3206(a)s 4(v)k 6(ailable)k
4114(space)s 4701(mentioned)s 5769(in)s 6012(Section)s 6786(2.5)s
7132(has)s 7502(been)s 8011(resolv)s 3(ed.)k 240 fnt2
0 683(Ackno)m 2(wledgment.)k 240 fnt1 2027 684(The)m 2534(author)s
3283(gratefully)s 4344(ackno)s 6(wledges)k 5824(man)s 3(y)k
6485(v)s 6(aluable)k 7424(discussions)s 8644(with)s 0 396(Douglas)m
862(W)s 22(.)k 1183(Jones,)s 1835(especially)s 2857(during)s
3548(the)s 3909(de)s 6(v)k 3(elopment)k 5209(of)s
5493(the)s 5854(g)s 1(alle)k 3(y)k 6501(abstraction;)s
7674(and)s 8091(also)s 8543(man)s 3(y)k 0 108(helpful)m
732(comments)s 1766(on)s 2063(presentation)s 3288(by)s 3582(the)s
3930(anon)s 3(ymous)k 5083(referee.)s
grestore
0 0 0 0 240 288 60 1417 -15423 LoutGr2
0 LoutMargSet
grestore
grestore
grestore
grestore
grestore
pgsave restore
showpage
%%Page: 39 40
%%BeginPageSetup
%%PageResources: font Times-Roman
%%+ font Times-Bold
%%+ font Times-Italic
/pgsave save def
%%IncludeResource: font Times-Roman
/Times-Romanfnt1 vec2 /Times-Roman LoutRecode
/fnt1 { /Times-Romanfnt1 LoutFont } def
%%IncludeResource: font Times-Bold
/Times-Boldfnt2 vec2 /Times-Bold LoutRecode
/fnt2 { /Times-Boldfnt2 LoutFont } def
%%IncludeResource: font Times-Italic
/Times-Italicfnt3 vec2 /Times-Italic LoutRecode
/fnt3 { /Times-Italicfnt3 LoutFont } def
0.0500 dup scale 10 setlinewidth
%%EndPageSetup
gsave
0 0 translate
240 fnt1 0.0 0.0 0.0 LoutSetRGBColor LoutTextureSolid 11900 16840 0 16840 240 288 60 LoutGraphic
gsave
LoutPageSet
grestore
gsave
0 0 translate
1.0 1.0 1.0 LoutSetRGBColor 11900 16840 0 16840 240 288 60 LoutGraphic
gsave
LoutBox gsave 1.0 1.0 1.0 LoutSetRGBColor fill grestore 0 cm setlinewidth stroke
grestore
gsave
0 16840 translate
0.0000 rotate
0.0 0.0 0.0 LoutSetRGBColor
5706 -1579(-)m 5834(39)s 6125(-)s 9066 13414 0 13414 240 288 60 1417 -15423 LoutGr2
1 LoutMargSet
grestore
240 fnt2 0 12961(Refer)m 4(ences)k
240 fnt1 0 12507(1.)m 480(Kingston,)s 1501(Jef)s 6(fre)k 3(y)k
2244(H..)s 2677(Document)s 3770(F)s 3(ormatting)k 4918(with)s
5436(Lout)s 5888(.)s 6088(T)s 16(ech.)k 6690(Rep.)s
7216(408)s 7659(\(1991\))s 8286(,)s 8429(Basser)s 480 12219(Department)m
1668(of)s 1939(Computer)s 2956(Science,)s 3806(The)s 4234(Uni)s 6(v)k 3(ersity)k
5288(of)s 5559(Sydne)s 3(y)k 15(,)k 6367(Australia)s
7242(.)s
[ /Dest /LOUT12_1748_s7_0_1 /DEST pdfmark
0 11716(2.)m 480(Kingston,)s 1492(Jef)s 6(fre)k 3(y)k
2227(H..)s 2652(A)s 2910(ne)s 6(w)k 3385(approach)s
4347(to)s 4613(document)s 5645(formatting)s 6646(.)s 6838(T)s 16(ech.)k
7432(Rep.)s 7950(412)s 8392(\(1991\))s 9019(,)s 480 11428(Basser)m
1177(Department)s 2365(of)s 2636(Computer)s 3653(Science,)s 4503(The)s
4931(Uni)s 6(v)k 3(ersity)k 5985(of)s 6256(Sydne)s 3(y)k 15(,)k
7064(Australia)s 7939(.)s
[ /Dest /LOUT12_1748_s7_0_2 /DEST pdfmark
0 10925(3.)m 480(Kingston,)s 1491(Jef)s 6(fre)k 3(y)k
2224(H..)s 2647(The)s 3101(Basser)s 3824(Lout)s 4362(Document)s
5445(F)s 3(ormatter)k 6383(,)s 6516(1991)s 6971(.)s
7161(Computer)s 8204(program;)s 480 10637(V)m 26(ersion)k 1287(2)s
1480(publicly)s 2337(a)s 4(v)k 6(ailable)k 3264(in)s
3526(the)s 240 fnt3 3893 10639(pub)m 240 fnt1 4326 10637(subdirectory)m
5595(of)s 5885(the)s 6252(home)s 6859(directory)s 7794(of)s
240 fnt3 8084 10639(ftp)m 240 fnt1 8408 10637(to)m 8667(host)s
240 fnt3 480 10351(ftp.cs.su.oz.au)m 240 fnt1 1924 10349(with)m 2439(login)s
3021(name)s 240 fnt3 3628 10351(anonymous)m 240 fnt1 4808 10349(and)m
5246(no)s 5572(passw)s 2(ord.)k 6671(Distrib)s 4(ution)k
7912(via)s 8297(email)s 8916(is)s 480 10061(a)m 4(v)k 6(ailable)k
1388(for)s 1726(non-)s 240 fnt3 2154 10063(ftp)m 240 fnt1
2459 10061(sites.)m 3047(All)s 3407(enquiries)s 4334(to)s 4573(jef)s 6(f@cs.su.oz.au.)k
[ /Dest /LOUT12_1748_s7_0_3 /DEST pdfmark
0 9558(4.)m 480(Furuta,)s 1211(Richard,)s 2075(Sco\207eld,)s 2965(Jef)s 6(fre)k 3(y)k 15(,)k
3710(and)s 4113(Sha)s 3(w)k 15(,)k 4734(Alan.)s
5363(Document)s 6419(formatting)s 7480(systems:)s 8402(surv)s 3(e)k 3(y)k 15(,)k
480 9270(concepts,)m 1424(and)s 1828(issues)s 2390(.)s 240 fnt3
2554 9272(Computing)m 3673(Surve)s 7(ys)k 240 fnt2 4465 9269(14)m
240 fnt1 4699 9270(,)m 4806(417\211472)s 5700(\(1982\))s 6327(.)s
[ /Dest /LOUT12_1748_s7_0_4 /DEST pdfmark
0 8765(5.)m 480(K)s 6(ernighan,)k 1645(Brian)s 2287(W)s 22(.)k
2649(and)s 3107(Cherry)s 15(,)k 3917(Lorinda)s 4789(L..)s
5213(A)s 5497(system)s 6275(for)s 6667(typesetting)s 7824(mathematics)s
9022(.)s 240 fnt3 480 8479(Communications)m 2158(of)s 2439(the)s
2784(A)s 7(CM)k 240 fnt2 3351 8476(18)m 240 fnt1
3585 8477(,)m 3692(182\211193)s 4576(\(1975\))s 5203(.)s
[ /Dest /LOUT12_1748_s7_0_5 /DEST pdfmark
0 7977(6.)m
480(Kingston,)s 1488(Jef)s 6(fre)k 3(y)k 2218(H..)s
2638(Fig)s 3033(\211)s 3236(a)s 3425(Lout)s 3961(package)s
4824(for)s 5185(dra)s 3(wing)k 6042(\207gures)s 6684(.)s
6871(T)s 16(ech.)k 7460(Rep.)s 7973(411)s 8392(\(1991\))s
9019(,)s 480 7689(Basser)m 1177(Department)s 2365(of)s 2636(Computer)s
3653(Science,)s 4503(The)s 4931(Uni)s 6(v)k 3(ersity)k
5985(of)s 6256(Sydne)s 3(y)k 15(,)k 7064(Australia)s
7939(.)s
[ /Dest /LOUT12_1748_s7_0_6 /DEST pdfmark
0 7184(7.)m 480(Reid,)s 1042(Brian)s 1634(K..)s
2034(A)s 2268(High-)s 2815(Le)s 6(v)k 3(el)k
3409(Approach)s 4413(to)s 4656(Computer)s 5677(Document)s 6737(Production)s
7784(.)s 7952(In)s 240 fnt3 8212 7186(Pr)m 10(oceed-)k
480 6898(ings)m 934(of)s 1216(the)s 1562(7th)s 1924(Symposium)s
3072(on)s 3367(the)s 3713(Principles)s 4751(of)s 5033(Pr)s 10(o)k 2(gr)k 3(amming)k
6417(Langua)s 2(g)k 2(es)k 7521(\(POPL\),)s 8371(Las)s
8773(V)s 26(e-)k 480 6610(gas)m 868(NV)s 240 fnt1
1192 6608(,)m 1299(pages)s 1895(24\21131)s 2470(,)s 2577(1980)s
3052(.)s
[ /Dest /LOUT12_1748_s7_0_7 /DEST pdfmark
0 6103(8.)m 480(Joseph)s 1207(F)s 19(.)k
1443(Ossanna.)s 2436(Nrof)s 6(f/T)k 8(rof)k 6(f)k
3605(User')s 13(s)k 4284(Manual)s 5010(.)s 5193(T)s 16(ech.)k
5777(Rep.)s 6285(54)s 6597(\(1976\))s 7224(,)s 7349(Bell)s
7821(Laboratories)s 9019(,)s 480 5815(Murray)m 1251(Hill,)s 1729(NJ)s
2051(07974)s 2645(.)s
[ /Dest /LOUT12_1748_s7_0_8 /DEST pdfmark
0 5310(9.)m 480(Knuth,)s 1186(Donald)s
1949(E..)s 240 fnt3 2319 5312(The)m 2731(T)s 2882 5264(E)m
3033 5312(XBook)m 240 fnt1 3675 5310(.)m 3839(Addison-W)s 19(esle)k 3(y)k
5419(,)s 5526(1984)s 6000(.)s
[ /Dest /LOUT12_1748_s7_0_9 /DEST pdfmark
0 4807(10.)m 480(Kingston,)s
1485(Jef)s 6(fre)k 3(y)k 2212(H..)s 2629(Eq)s
2973(\211)s 3173(a)s 3359(Lout)s 3892(package)s 4752(for)s
5110(typesetting)s 6232(mathematics)s 7430(.)s 7614(T)s 16(ech.)k
8200(Rep.)s 8711(410)s 480 4519(\(1991\))m 1107(,)s 1248(Basser)s
1980(Department)s 3203(of)s 3509(Computer)s 4561(Science,)s 5446(The)s
5909(Uni)s 6(v)k 3(ersity)k 6998(of)s 7304(Sydne)s 3(y)k 15(,)k
8147(Australia)s 9022(.)s 480 4231(\(Contains)m 1461(an)s 1744(appendix)s
2677(describing)s 3726(the)s 4074(P)s 3(as)k 4454(P)s 3(ascal)k
5116(formatter)s 13(.\))k
[ /Dest /LOUT12_1748_s7_0_10 /DEST pdfmark
0 3728(11.)m 480(Kingston,)s 1478(Jef)s 6(fre)k 3(y)k
2198(H..)s 2608(A)s 2851(be)s 3(ginners')k 3903(guide)s
4504(to)s 4756(Lout)s 5208(.)s 5385(T)s 16(ech.)k
5964(Rep.)s 6467(409)s 6891(\(1991\))s 7518(,)s 7638(Basser)s
8348(Depart-)s 480 3440(ment)m 1018(of)s 1289(Computer)s 2306(Science,)s
3156(The)s 3584(Uni)s 6(v)k 3(ersity)k 4638(of)s
4909(Sydne)s 3(y)k 15(,)k 5717(Australia)s 6592(.)s
[ /Dest /LOUT12_1748_s7_0_11 /DEST pdfmark
0 2937(12.)m 480(Kingston,)s 1475(Jef)s 6(fre)k 3(y)k
2193(H..)s 2600(T)s 19(ab)k 3017(\211)s 3207(a)s
3384(Lout)s 3907(package)s 4757(for)s 5106(formatting)s 6177(tables)s
6725(.)s 6900(T)s 16(ech.)k 7476(Rep.)s 7977(413)s
8392(\(1991\))s 9019(,)s 480 2649(Basser)m 1177(Department)s 2365(of)s
2636(Computer)s 3653(Science,)s 4503(The)s 4931(Uni)s 6(v)k 3(ersity)k
5985(of)s 6256(Sydne)s 3(y)k 15(,)k 7064(Australia)s
7939(.)s
[ /Dest /LOUT12_1748_s7_0_12 /DEST pdfmark
0 2146(13.)m 480(Brooks,)s 1279(K)s 6(enneth)k
2141(P)s 26(..)k 2472(Lilac:)s 3068(a)s 3234(tw)s 2(o-vie)k 6(w)k
4183(document)s 5187(editor)s 5744(.)s 240 fnt3 5908 2148(IEEE)m
6490(Computer)s 240 fnt1 7453 2146(,)m 7560(7\21119)s 8091(\(1991\))s
8718(.)s
[ /Dest /LOUT12_1748_s7_0_13 /DEST pdfmark
grestore
0 0 0 0 240 288 60 1417 -15423 LoutGr2
1 LoutMargSet
grestore
grestore
grestore
grestore
grestore
pgsave restore
showpage
%%Trailer
%%DocumentNeededResources: font Times-Roman
%%+ font Times-Bold
%%+ font Times-Italic
%%+ font Symbol
%%+ font Helvetica
%%DocumentSuppliedResources: procset LoutStartUp
%%+ procset LoutTabPrependGraphic
%%+ procset LoutFigPrependGraphic
%%+ procset LoutBasicSetup
%%+ encoding vec2
%%Pages: 40
%%EOF