aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeffrey H. Kingston <jeff@it.usyd.edu.au>2010-09-14 20:38:56 +0000
committerJeffrey H. Kingston <jeff@it.usyd.edu.au>2010-09-14 20:38:56 +0000
commit7d292f1247e3287fb07a9a12377217ce8942cf09 (patch)
treeffe937ba04fb59a72b785040cf29db1476f7282a
parent68c155de3c3e83f53404288a318c5e29f0c4610f (diff)
downloadlout-7d292f1247e3287fb07a9a12377217ce8942cf09.tar.gz
Lout 3.29.
git-svn-id: http://svn.savannah.nongnu.org/svn/lout/trunk@27 9365b830-b601-4143-9ba8-b4a8e2c3339c
-rw-r--r--README5
-rw-r--r--blurb15
-rw-r--r--blurb.short5
-rw-r--r--data/standard.ld2
-rw-r--r--doc/design/README2
-rw-r--r--doc/design/outfile.ps4
-rw-r--r--doc/expert/README2
-rw-r--r--doc/expert/all6
-rw-r--r--doc/expert/outfile.ps1124
-rw-r--r--doc/expert/preface2
-rw-r--r--doc/slides/README2
-rw-r--r--doc/slides/outfile.ps104
-rw-r--r--doc/user/README19
-rw-r--r--doc/user/all6
-rw-r--r--doc/user/dia_node17
-rw-r--r--doc/user/dia_summ10
-rw-r--r--doc/user/dia_synt21
-rw-r--r--doc/user/gra_data47
-rw-r--r--doc/user/gra_keys28
-rw-r--r--doc/user/gra_summ2
-rw-r--r--doc/user/preface5
-rw-r--r--doc/user/prg14
-rw-r--r--doc/user/str_cros27
-rw-r--r--doc/user/str_indx68
-rw-r--r--externs.h8
-rw-r--r--include/README2
-rw-r--r--include/book9
-rw-r--r--include/bookf6
-rw-r--r--include/diagf453
-rw-r--r--include/diagf.lpg167
-rw-r--r--include/doc9
-rw-r--r--include/dsf60
-rw-r--r--include/graphf66
-rw-r--r--include/graphf.lpg100
-rw-r--r--include/haskell109
-rw-r--r--include/haskellf467
-rw-r--r--include/picture9
-rw-r--r--include/report9
-rw-r--r--include/rsl110
-rw-r--r--include/rslf448
-rw-r--r--include/save_bookf1358
-rw-r--r--include/save_dsf4930
-rw-r--r--include/slides9
-rw-r--r--makefile2
-rw-r--r--prg2lout.c405
-rw-r--r--whatsnew19
-rw-r--r--z01.c6
-rw-r--r--z02.c6
-rw-r--r--z03.c6
-rw-r--r--z04.c6
-rw-r--r--z05.c6
-rw-r--r--z06.c6
-rw-r--r--z07.c6
-rw-r--r--z08.c47
-rw-r--r--z09.c6
-rw-r--r--z10.c6
-rw-r--r--z11.c6
-rw-r--r--z12.c10
-rw-r--r--z13.c6
-rw-r--r--z14.c6
-rw-r--r--z15.c6
-rw-r--r--z16.c6
-rw-r--r--z17.c6
-rw-r--r--z18.c6
-rw-r--r--z19.c6
-rw-r--r--z20.c6
-rw-r--r--z21.c6
-rw-r--r--z22.c42
-rw-r--r--z23.c6
-rw-r--r--z24.c6
-rw-r--r--z25.c6
-rw-r--r--z26.c6
-rw-r--r--z27.c6
-rw-r--r--z28.c6
-rw-r--r--z29.c6
-rw-r--r--z30.c6
-rw-r--r--z31.c6
-rw-r--r--z32.c6
-rw-r--r--z33.c6
-rw-r--r--z34.c6
-rw-r--r--z35.c6
-rw-r--r--z36.c6
-rw-r--r--z37.c6
-rw-r--r--z38.c6
-rw-r--r--z39.c6
-rw-r--r--z40.c6
-rw-r--r--z41.c6
-rw-r--r--z42.c6
-rw-r--r--z43.c6
-rw-r--r--z44.c6
-rw-r--r--z45.c6
-rw-r--r--z46.c6
-rw-r--r--z47.c6
-rw-r--r--z48.c6
-rw-r--r--z49.c6
-rw-r--r--z50.c6
-rw-r--r--z51.c6
-rw-r--r--z52.c8
98 files changed, 3428 insertions, 7259 deletions
diff --git a/README b/README
index ae36a8b..fcd6513 100644
--- a/README
+++ b/README
@@ -1,9 +1,8 @@
-THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28)
-BASSER LOUT VERSION 3 COPYRIGHT (C) 1994, 2002 Jeffrey H. Kingston
+THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.29)
+BASSER LOUT VERSION 3 COPYRIGHT (C) 1994, 2003 Jeffrey H. Kingston
Jeffrey H. Kingston
School of Information Technologies
-(formerly Basser Department of Computer Science)
The University of Sydney 2006
AUSTRALIA
diff --git a/blurb b/blurb
index 81ef5a4..8e92bb3 100644
--- a/blurb
+++ b/blurb
@@ -1,7 +1,7 @@
- THE LOUT DOCUMENT FORMATTING SYSTEM, VERSION 3.28
+ THE LOUT DOCUMENT FORMATTING SYSTEM, VERSION 3.29
-Version 3.28 of the Lout document formatting system is now available
+Version 3.29 of the Lout document formatting system is now available
(free of charge). The system reads a high-level description of a
document similar in style to LaTeX and produces a PostScript, PDF or
plain text output file.
@@ -21,9 +21,9 @@ project that went back to the beginning.
Lout is written in highly portable ANSI C. It is distributed under the
GNU public license as follows:
- ftp://ftp.it.usyd.edu.au/jeff/lout/lout-3.28.tar.gz
+ ftp://ftp.it.usyd.edu.au/jeff/lout/lout-3.29.tar.gz
-In other words, in a gzipped tar file called "lout-3.28.tar.gz" in the
+In other words, in a gzipped tar file called "lout-3.29.tar.gz" in the
"jeff/lout" subdirectory of the home directory of "ftp ftp.it.usyd.edu.au"
with login name "ftp" or "anonymous" using any non-empty password. The
distribution contains
@@ -44,8 +44,7 @@ distribution contains
For those who want to browse first, a PostScript version of the User's
Guide may be found in the same ftp directory:
- ftp://ftp.it.usyd.edu.au/jeff/lout/lout-3.28.user.ps.gz
+ ftp://ftp.it.usyd.edu.au/jeff/lout/lout-3.29.user.ps.gz
-Lout was designed and implemented by Jeffrey H. Kingston (jeff@it.usyd.edu.au)
-of the School of Information Technologies (formerly Basser Department of
-Computer Science) at the University of Sydney.
+Lout was created by Jeffrey H. Kingston (jeff@it.usyd.edu.au) of the
+School of Information Technologies at the University of Sydney.
diff --git a/blurb.short b/blurb.short
index fe7b899..a4e8d8a 100644
--- a/blurb.short
+++ b/blurb.short
@@ -20,6 +20,5 @@ It is distributed under the GNU public license. Its primary web site is
Consult the README file in that directory for information about the
latest version.
-Lout was designed and implemented by Jeffrey H. Kingston (jeff@it.usyd.edu.au)
-of the School of Information Technologies (formerly Basser Department of
-Computer Science) at the University of Sydney.
+Lout was created by Jeffrey H. Kingston (jeff@it.usyd.edu.au) of the
+School of Information Technologies at the University of Sydney.
diff --git a/data/standard.ld b/data/standard.ld
index d75028a..92b2376 100644
--- a/data/standard.ld
+++ b/data/standard.ld
@@ -567,7 +567,7 @@
Polish @Yield { ?? }
Portuguese @Yield { ?? }
Russian @Yield { ?? }
- Slovak @Yield { ?? }
+ Slovak @Yield { Vecn{@Char yacute} register }
Slovenian @Yield { ?? }
Spanish @Yield { Glosario }
Swedish @Yield { Ordf{@Char odieresis}rklaringar }
diff --git a/doc/design/README b/doc/design/README
index 6c37462..8a5c307 100644
--- a/doc/design/README
+++ b/doc/design/README
@@ -22,4 +22,4 @@ messages (although changing the paper size might
produce one or two benign ones).
Jeffrey H. Kingston
-20 December 2002
+14 August 2003
diff --git a/doc/design/outfile.ps b/doc/design/outfile.ps
index 9fae4d7..bab3694 100644
--- a/doc/design/outfile.ps
+++ b/doc/design/outfile.ps
@@ -1,6 +1,6 @@
%!PS-Adobe-3.0
-%%Creator: Basser Lout Version 3.28 (December 2002)
-%%CreationDate: Fri Dec 20 10:16:39 2002
+%%Creator: Basser Lout Version 3.29 (August 2003)
+%%CreationDate: Thu Aug 14 08:17:36 2003
%%DocumentData: Binary
%%DocumentNeededResources: (atend)
%%DocumentSuppliedResources: (atend)
diff --git a/doc/expert/README b/doc/expert/README
index f9160b2..ad6f5d3 100644
--- a/doc/expert/README
+++ b/doc/expert/README
@@ -20,4 +20,4 @@ which just warns about a figure that is not able to be placed on
the first possible page, and so has to appear on the next page.
Jeffrey H. Kingston
-20 December 2002
+14 August 2003
diff --git a/doc/expert/all b/doc/expert/all
index 7ea71cb..d09716f 100644
--- a/doc/expert/all
+++ b/doc/expert/all
@@ -11,9 +11,9 @@ Lout
Document Formatting System }
@Author { Jeffrey H. Kingston }
- @Edition { Version 3.28
-December, 2002 }
- @Publisher { @I { @CopyRight Copyright 1991, 2002, Jeffrey
+ @Edition { Version 3.29
+August, 2003}
+ @Publisher { @I { @CopyRight Copyright 1991, 2003, Jeffrey
H. Kingston, School of Information Technologies, The University
of Sydney 2006, Australia.} }
@InitialLanguage { English }
diff --git a/doc/expert/outfile.ps b/doc/expert/outfile.ps
index fc7f97b..9558261 100644
--- a/doc/expert/outfile.ps
+++ b/doc/expert/outfile.ps
@@ -1,6 +1,6 @@
%!PS-Adobe-3.0
-%%Creator: Basser Lout Version 3.28 (December 2002)
-%%CreationDate: Fri Dec 20 10:59:34 2002
+%%Creator: Basser Lout Version 3.29 (August 2003)
+%%CreationDate: Thu Aug 14 08:24:21 2003
%%DocumentData: Binary
%%DocumentNeededResources: (atend)
%%DocumentSuppliedResources: (atend)
@@ -1583,9 +1583,9 @@ grestore
2215(Exper)s -24(t')k 30(s)k 4518(Guide)s 6258(to)s
6902(the)s 3956 10685(Lout)m 616 9245(Document)m 3500(F)s 18(or)k -15(matting)k
6490(System)s 240 fnt2 3544 6059(Jeffre)m 4(y)k 4321(H.)s
-4606(Kingston)s 3883 4395(V)m 19(ersion)k 4726(3.28)s 3671 4107(December)m 12(,)k
-4874(2002)s 240 fnt4 0 342(\343)m 240 fnt3 241 340(Cop)m 7(yr)k -3(ight)k
-1345(1991,)s 1991(2002,)s 2638(Jeffre)s 4(y)k 3438(H.)s
+4606(Kingston)s 3884 4395(V)m 19(ersion)k 4727(3.29)s 3846 4107(A)m 7(ugust,)k
+4696(2003)s 240 fnt4 0 342(\343)m 240 fnt3 241 340(Cop)m 7(yr)k -3(ight)k
+1345(1991,)s 1991(2003,)s 2638(Jeffre)s 4(y)k 3438(H.)s
3726(Kingston,)s 4771(School)s 5587(of)s 5882(Inf)s 7(or)k -6(mation)k
7143(T)s 28(echnologies)k 3(,)k 8649(The)s 0 52(Univ)m 6(ersity)k
1134(of)s 1432(Sydne)s 4(y)k 2317(2006,)s 2966(A)s 7(ustr)k 2(alia.)k
@@ -1663,11 +1663,11 @@ grestore
[ /Rect [8510 9328 8614 9493] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUTkingston1995lout_program /ANN pdfmark
8510(3)s 8614(])s 8722(and)s 0 9043(de)m 6(v)k 3(eloped)k
-1042(continuously)s 2342(since)s 2899(then.)s 3484(This)s 3970(manual)s
-4738(w)s 2(as)k 5168(rendered)s 6072(into)s 6506(PostScript)s
+1042(continuously)s 2342(since)s 2898(then.)s 3483(This)s 3968(manual)s
+4736(w)s 2(as)k 5166(rendered)s 6069(into)s 6503(PostScript)s
-[ /Dest /LOUT19_4226_preface_1 /DEST pdfmark
-7558(by)s 7861(V)s 26(ersion)k 8659(3.28)s 0 8755(of)m
+[ /Dest /LOUT19_4244_preface_1 /DEST pdfmark
+7554(by)s 7857(V)s 26(ersion)k 8655(3.29)s 0 8755(of)m
271(the)s 619(Basser)s 1316(Lout)s 1828(interpreter)s 9(,)k
2919(using)s 3491(the)s 3839(symbols)s 4688(described)s 5662(in)s
5905(the)s 6253(User')s 13(s)k 6914(Guide)s 7555([)s
@@ -2572,13 +2572,13 @@ grestore
3251(little)s 3747(more)s 4298(complicated)s 5528(than)s 6001(rectangles:)s
240 fnt6 7079 382(objects.)m 240 fnt1 7914 380(An)m 8268(object)s
-[ /Dest /LOUT19_4226_pri_obje_1 /DEST pdfmark
+[ /Dest /LOUT19_4244_pri_obje_1 /DEST pdfmark
8916(is)s 0 92(a)m 176(rectangle)s 1118(with)s 1611(at)s
1854(least)s 2362(one)s 240 fnt6 2775 94(column)m 3545(mark)s
-[ /Dest /LOUT19_4226_pri_obje_2 /DEST pdfmark
+[ /Dest /LOUT19_4244_pri_obje_2 /DEST pdfmark
-[ /Dest /LOUT19_4226_pri_obje_3 /DEST pdfmark
+[ /Dest /LOUT19_4244_pri_obje_3 /DEST pdfmark
240 fnt1 4112 92(protruding)m 5186(abo)s 3(v)k 3(e)k
5819(and)s 6234(belo)s 6(w)k 6878(it,)s 7128(and)s
7543(at)s 7786(least)s 8294(one)s 240 fnt6 8707 94(r)m 10(ow)k
@@ -2636,7 +2636,7 @@ gsave
0 LoutMargSet
grestore
240 fnt6 0 13205(mark)m
-[ /Dest /LOUT19_4226_pri_obje_4 /DEST pdfmark
+[ /Dest /LOUT19_4244_pri_obje_4 /DEST pdfmark
240 fnt1 557 13203(protruding)m 1621(to)s
1861(the)s 2211(left)s 2589(and)s 2994(right.)s 3611(The)s
4040(simplest)s 4897(objects)s 5627(contain)s 6389(w)s 2(ords)k
@@ -2921,7 +2921,7 @@ grestore
end end restore
grestore
-[ /Dest /LOUT19_4226_pri_obje_5 /DEST pdfmark
+[ /Dest /LOUT19_4244_pri_obje_5 /DEST pdfmark
0 2287(There)m 655(are)s
1044(se)s 6(v)k 3(eral)k 1808(things)s 2486(to)s
2768(note)s 3278(carefully)s 4222(here.)s 4839(White)s 5522(space)s
@@ -3011,7 +3011,7 @@ grestore
840(enclosing)s 1836(an)s 2145(object)s 2815(in)s 3085(braces,)s
3828(it)s 4046(is)s 4282(possible)s 5148(to)s 5414(o)s 3(v)k 3(erride)k
6286(the)s
-[ /Dest /LOUT19_4226_pri_obje_6 /DEST pdfmark
+[ /Dest /LOUT19_4244_pri_obje_6 /DEST pdfmark
6660(set)s 7011(precedences.)s 8369(Here)s 8916(is)s
0 12917(another)m 777(e)s 3(xpression)k 1854(for)s 2192(the)s
2540(table)s 3060(abo)s 3(v)k 3(e,)k 3733(in)s
@@ -3025,7 +3025,7 @@ grestore
1569(br)s 8(eaking)k 240 fnt1 2476 11260(occurs)m 3160(when)s
3746(an)s 4038(object)s 4692(is)s 4911(too)s 5280(wide)s
5810(to)s 6059(\207t)s
-[ /Dest /LOUT19_4226_pri_obje_7 /DEST pdfmark
+[ /Dest /LOUT19_4244_pri_obje_7 /DEST pdfmark
6327(into)s 6762(the)s 7119(space)s
7716(a)s 4(v)k 6(ailable)k 8633(to)s 8882(it;)s
0 10972(by)m 286(breaking)s 1168(its)s 1436(paragraphs)s 2527(into)s
@@ -3152,7 +3152,7 @@ grestore
2252(such)s 2733(things)s 3353(as)s 3588(mar)s 4(gins)k
4389(and)s 4778(footnotes,)s 5759(for)s 6082(e)s 3(xample.)k
240 fnt6 7037 13206(De\207nitions)m
-[ /Dest /LOUT19_4226_pri_defi_1 /DEST pdfmark
+[ /Dest /LOUT19_4244_pri_defi_1 /DEST pdfmark
240 fnt1 8127 13204(bridge)m 8778(the)s
0 12916(g)m 1(ap)k 397(between)s 1249(Lout')s 13(s)k
1910(general)s 2666(features)s 3470(and)s 3873(the)s 4219(special)s
@@ -3188,7 +3188,7 @@ grestore
250(the)s 598(author)s 1269(did)s 1633(earlier)s 2301(in)s
2544(this)s 2940(paragraph.)s 480 8026(A)m 240 fnt6 706 8028(symbol)m
-[ /Dest /LOUT19_4226_pri_defi_2 /DEST pdfmark
+[ /Dest /LOUT19_4244_pri_defi_2 /DEST pdfmark
240 fnt1 1440 8026(is)m 1646(a)s 1808(name,)s 2429(lik)s 2(e)k
220 fnt2 2837 8023(@T)m 26(eX)k 240 fnt1 3432 8026(,)m
3535(which)s 4172(stands)s 4817(for)s 5151(something)s 6197(other)s
@@ -3202,12 +3202,12 @@ grestore
2629(says)s 3090(what)s 3613(the)s 3959(symbol)s 4717(stands)s
5364(for)s 13(.)k 5791(The)s 240 fnt6 6217 7452(body)m
240 fnt1 6737 7450(of)m 7006(a)s 7170(de\207nition)s
-[ /Dest /LOUT19_4226_pri_defi_3 /DEST pdfmark
+[ /Dest /LOUT19_4244_pri_defi_3 /DEST pdfmark
8142(is)s
8350(the)s 8695(part)s 0 7162(follo)m 6(wing)k 977(the)s
1325(name,)s 1950(between)s 2804(the)s 3152(braces.)s 3926(T)s 19(o)k
240 fnt6 4226 7164(in)m 9(vok)k 2(e)k
-[ /Dest /LOUT19_4226_pri_defi_4 /DEST pdfmark
+[ /Dest /LOUT19_4244_pri_defi_4 /DEST pdfmark
240 fnt1
4892 7162(a)m 5058(symbol)s 5818(is)s 6028(to)s 6267(mak)s 2(e)k
6839(use)s 7214(of)s 7485(it.)s 480 6788(Another)m 1324(e)s 3(xpression)k
@@ -3232,7 +3232,7 @@ grestore
1963(that)s 220 fnt2 2398 2202(@Super)m 240 fnt1 3283 2205(has)m
3669(tw)s 2(o)k 240 fnt6 4096 2207(par)m 3(ameter)k 2(s)k
240 fnt1 5176 2205(,)m
-[ /Dest /LOUT19_4226_pri_defi_5 /DEST pdfmark
+[ /Dest /LOUT19_4244_pri_defi_5 /DEST pdfmark
220 fnt2 5300 2202(x)m 240 fnt1
5485 2205(and)m 220 fnt2 5906 2202(y)m 240 fnt1 6014 2205(.)m
6194(When)s 220 fnt2 6840 2202(@Super)m 240 fnt1 7725 2205(is)m
@@ -3311,7 +3311,7 @@ grestore
3765(themselv)s 3(es,)k 4934(a)s 5103(peculiarly)s 6115(circular)s
6905(thing)s 7453(to)s 7695(do)s 7991(which)s 8636(goes)s
0 12489(by)m 294(the)s 642(name)s 1216(of)s
-[ /Dest /LOUT19_4226_pri_defi_6 /DEST pdfmark
+[ /Dest /LOUT19_4244_pri_defi_6 /DEST pdfmark
240 fnt6
1487 12491(r)m 8(ecur)k 2(sion.)k 240 fnt1 2548 12489(Here)m
3068(is)s 3278(an)s 3561(e)s 3(xample)k 4424(of)s
@@ -3387,7 +3387,7 @@ grestore
6918(may)s 7379(be)s 7656(used)s 8148(to)s 8382(specify)s
0 2309(the)m 240 fnt6 348 2311(pa)m 2(g)k 2(e)k
863(layout)s
-[ /Dest /LOUT19_4226_pri_defi_7 /DEST pdfmark
+[ /Dest /LOUT19_4244_pri_defi_7 /DEST pdfmark
240 fnt1 1525 2309(of)m 1796(a)s 1962(document.)s
3070(T)s 19(o)k 3370(be)s 3(gin)k 3956(with,)s
4488(we)s 4823(can)s 5212(de\207ne)s 5853(a)s 6019(page)s
@@ -3708,7 +3708,7 @@ grestore
[ /Dest /LOUTcross /DEST pdfmark
240 fnt1 480 1898(A)m
705(cross)s 1241(reference)s
-[ /Dest /LOUT19_4226_pri_cros_1 /DEST pdfmark
+[ /Dest /LOUT19_4244_pri_cros_1 /DEST pdfmark
2178(in)s 2415(common)s 3304(terminology)s
4521(is)s 4725(something)s 5769(lik)s 2(e)k 6176(`see)s
6610(T)s 19(able)k 7185(6')s 7411(or)s 7664(`see)s
@@ -3725,14 +3725,14 @@ grestore
2002(page)s 2510(63,)s 2857(and)s 3261(all)s 3554(the)s
3902(cross)s 4444(references)s 5475(must)s 6000(be)s 6282(changed.)s
480 660(The)m 918(Scribe)s
-[ /Dest /LOUT19_4226_pri_cros_2 /DEST pdfmark
+[ /Dest /LOUT19_4244_pri_cros_2 /DEST pdfmark
1594(document)s 2608(formatter)s 9(,)k
3603(de)s 6(v)k 3(eloped)k 4647(by)s 4951(Brian)s
5549(K.)s 5836(Reid)s 6357([)s
[ /Rect [6428 657 6541 824] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUTreid1980scribe /ANN pdfmark
6428(6)s 6541(],)s
-[ /Dest /LOUT19_4226_pri_cros_3 /DEST pdfmark
+[ /Dest /LOUT19_4244_pri_cros_3 /DEST pdfmark
6737(introduced)s 7828(a)s 8004(scheme)s 8788(for)s 0 372(k)m 2(eeping)k
804(track)s 1337(of)s 1603(cross)s 2140(references.)s 3279(It)s
3479(allo)s 6(ws)k 4143(you)s 4553(to)s 4787(gi)s 6(v)k 3(e)k
@@ -3846,18 +3846,18 @@ grestore
3169(reference)s 4109(and)s 4511(ending)s 5213(at)s 5443(the)s
5788(top)s 6145(of)s 6413(the)s 6759(tar)s 4(get)k
-[ /Dest /LOUT19_4226_pri_cros_4 /DEST pdfmark
+[ /Dest /LOUT19_4244_pri_cros_4 /DEST pdfmark
7355(in)s 9(v)k 4(ocation.)k 8513(Three)s 0 5859(special)m
715(v)s 6(alues)k 1367(may)s 1830(be)s 2108(gi)s 6(v)k 3(en)k
2685(to)s 2920(the)s 3264(right)s 3772(parameter)s 4782(of)s
220 fnt2 5050 5856(&&)m 240 fnt1 5338 5859(:)m 220 fnt2
5500 5856(preceding)m 240 fnt1 6451 5859(,)m 220 fnt2 6555 5856(f)m 6(ollo)k 3(wing)k
240 fnt1 7385 5859(,)m 7488(and)s
-[ /Dest /LOUT19_4226_pri_cros_5 /DEST pdfmark
+[ /Dest /LOUT19_4244_pri_cros_5 /DEST pdfmark
-[ /Dest /LOUT19_4226_pri_cros_6 /DEST pdfmark
+[ /Dest /LOUT19_4244_pri_cros_6 /DEST pdfmark
-[ /Dest /LOUT19_4226_pri_cros_7 /DEST pdfmark
+[ /Dest /LOUT19_4244_pri_cros_7 /DEST pdfmark
220 fnt2 7888 5856(f)m 6(oll_or_prec)k
240 fnt1 9022 5859(.)m 0 5571(The)m 467(cross)s 1049(reference)s
220 fnt2 2032 5568(@T)m 26(ab)k 4(le&&preceding)k 240 fnt1
@@ -4150,7 +4150,7 @@ grestore
5032(o)s 3(v)k 3(ercome)k 6017(these)s 6557(obstacles,)s
7532(is)s 7734(the)s 240 fnt6 8074 12545(galle)m 7(y)k
-[ /Dest /LOUT19_4226_pri_gall_1 /DEST pdfmark
+[ /Dest /LOUT19_4244_pri_gall_1 /DEST pdfmark
240 fnt1 8699 12543(\(the)m 0 12255(name)m 564(is)s 764(borro)s 6(wed)k
1723(from)s 2237(the)s 2575(g)s 1(alle)k 3(ys)k
3288(used)s 3775(in)s 4008(manual)s 4757(typesetting\).)s 6039(A)s
@@ -4345,7 +4345,7 @@ grestore
780(create)s 1405(a)s 1571(g)s 1(alle)k 3(y)k 15(,)k
2243(\207rst)s 2674(de\207ne)s 3315(a)s 3481(symbol)s 4241(with)s
4723(a)s 4889(special)s 220 fnt2 5607 2102(into)m
-[ /Dest /LOUT19_4226_pri_gall_2 /DEST pdfmark
+[ /Dest /LOUT19_4244_pri_gall_2 /DEST pdfmark
240 fnt1
6013 2105(clause,)m 6717(lik)s 2(e)k 7129(this:)s 220 fnt2
480 1604(def @F)m 6(ootNote into { @F)k 6(ootPlace&&f)k 6(ollo)k 3(wing })k
@@ -4424,7 +4424,7 @@ grestore
3196 12255(which)m 3827(is)s 4027(the)s 240 fnt6 4364 12257(tar)m 8(g)k 2(et)k
240 fnt1 4979 12255(of)m 5239(a)s 5395(g)s 1(alle)k 3(y)k 15(,)k
-[ /Dest /LOUT19_4226_pri_gall_3 /DEST pdfmark
+[ /Dest /LOUT19_4244_pri_gall_3 /DEST pdfmark
6056(must)s 6571(contain)s 7321(the)s 7659(special)s 8366(symbol)s
220 fnt2 0 11964(@Galle)m 4(y)k 240 fnt1 898 11967(e)m 3(xactly)k
1639(once)s 2147(in)s 2390(its)s 2666(body;)s 3258(often)s
@@ -4443,7 +4443,7 @@ grestore
1726(it)s 1916(in)s 9(v)k 4(ok)k 2(es,)k
2752(is)s 2961(called)s 3587(a)s 240 fnt6 3752 10020(r)m 8(eceptive)k
-[ /Dest /LOUT19_4226_pri_gall_4 /DEST pdfmark
+[ /Dest /LOUT19_4244_pri_gall_4 /DEST pdfmark
240 fnt1 4670 10018(symbol,)m 5481(meaning)s 6357(recepti)s 6(v)k 3(e)k
7277(to)s 7515(g)s 1(alle)k 3(ys.)k 220 fnt2
8350 10015(@F)m 6(oot)k 9002(-)s 0 9727(Place)m 240 fnt1
@@ -4468,7 +4468,7 @@ grestore
5233(e)s 3(xample)k 6089(document.)s 7190(Initially)s 7992(there)s
8518(is)s 8721(just)s 0 8204(the)m 348(one)s 240 fnt6
750 8206(r)m 10(oot)k
-[ /Dest /LOUT19_4226_pri_gall_5 /DEST pdfmark
+[ /Dest /LOUT19_4244_pri_gall_5 /DEST pdfmark
240 fnt1 1203 8204(g)m 1(alle)k 3(y)k 15(,)k
1875(containing)s 2938(an)s 3221(une)s 3(xpanded)k 4434(in)s 9(v)k 4(ocation)k
5488(of)s 220 fnt2 5759 8201(@P)m 8(ageList:)k 180 fnt2
@@ -5043,7 +5043,7 @@ grestore
2985(of)s 3249(a)s 3408(sequence)s 4334(of)s 240 fnt6
4598 10657(te)m 4(xtual)k 5297(units)s 240 fnt1 5757 10655(,)m
-[ /Dest /LOUT19_4226_det_lexi_1 /DEST pdfmark
+[ /Dest /LOUT19_4244_det_lexi_1 /DEST pdfmark
5857(which)s 6492(may)s 6951(be)s 7226(either)s 240 fnt6
7822 10657(white)m 8386(spaces)s 240 fnt1 9019 10655(,)m 240 fnt6
0 10369(identi\207er)m 2(s,)k 1047(delimiter)s 2(s,)k 240 fnt1
@@ -5051,17 +5051,17 @@ grestore
240 fnt1 3565 10367(.)m 3729(Each)s 4264(is)s 4474(a)s
4640(sequence)s 5573(of)s 240 fnt6 5844 10369(c)m 3(har)k 3(acter)k 2(s)k
240 fnt1 6914 10367(chosen)m 7636(from:)s
-[ /Dest /LOUT19_4226_det_lexi_2 /DEST pdfmark
+[ /Dest /LOUT19_4244_det_lexi_2 /DEST pdfmark
-[ /Dest /LOUT19_4226_det_lexi_3 /DEST pdfmark
+[ /Dest /LOUT19_4244_det_lexi_3 /DEST pdfmark
-[ /Dest /LOUT19_4226_det_lexi_4 /DEST pdfmark
+[ /Dest /LOUT19_4244_det_lexi_4 /DEST pdfmark
-[ /Dest /LOUT19_4226_det_lexi_5 /DEST pdfmark
+[ /Dest /LOUT19_4244_det_lexi_5 /DEST pdfmark
-[ /Dest /LOUT19_4226_det_lexi_6 /DEST pdfmark
+[ /Dest /LOUT19_4244_det_lexi_6 /DEST pdfmark
-[ /Dest /LOUT19_4226_det_lexi_7 /DEST pdfmark
+[ /Dest /LOUT19_4244_det_lexi_7 /DEST pdfmark
480 9829(letter)m 220 fnt2
1934 9826(@ab-zAB-Z_)m 240 fnt1 480 9541(white)m 1067(space)s 240 fnt6
1934 9543(space)m 2592(formfeed)s 3568(tab)s 3988(ne)s 3(wline)k
@@ -5085,11 +5085,11 @@ grestore
698 6612(white)m 1256(space)s 240 fnt1 1841 6610(is)m 2038(a)s
2191(sequence)s 3111(of)s 3369(one)s 3758(or)s 4005(more)s
4539(white)s 5113(space)s 5687(characters.)s
-[ /Dest /LOUT19_4226_det_lexi_8 /DEST pdfmark
+[ /Dest /LOUT19_4244_det_lexi_8 /DEST pdfmark
-[ /Dest /LOUT19_4226_det_lexi_9 /DEST pdfmark
+[ /Dest /LOUT19_4244_det_lexi_9 /DEST pdfmark
-[ /Dest /LOUT19_4226_det_lexi_10 /DEST pdfmark
+[ /Dest /LOUT19_4244_det_lexi_10 /DEST pdfmark
6805(Lout)s 7304(treats)s
7858(the)s 8193(formfeed)s 0 6322(character)m 931(e)s 3(xactly)k
1668(lik)s 2(e)k 2076(the)s 2420(space)s 3003(character;)s
@@ -5099,7 +5099,7 @@ grestore
240 fnt1 1635 5660(is)m 1844(a)s 2009(sequence)s 2941(of)s
3211(one)s 3612(or)s 3870(more)s 4415(`other')s 5096(characters)s
6113(which)s
-[ /Dest /LOUT19_4226_det_lexi_11 /DEST pdfmark
+[ /Dest /LOUT19_4244_det_lexi_11 /DEST pdfmark
6754(is)s 6963(the)s 7310(name)s 7883(of)s
8153(a)s 8317(symbol.)s 0 5372(F)m 3(or)k 417(e)s 3(xample,)k
220 fnt2 1360 5369({)m 240 fnt1 1512 5372(and)m 220 fnt2
@@ -5127,7 +5127,7 @@ grestore
3192(of)s 3488(one)s 3915(or)s 4199(more)s 4772(letters)s
5430(which)s 6097(is)s 6332(the)s 6705(name)s 7304(of)s
7600(a)s
-[ /Dest /LOUT19_4226_det_lexi_12 /DEST pdfmark
+[ /Dest /LOUT19_4244_det_lexi_12 /DEST pdfmark
7791(symbol.)s 8685(It)s 8916(is)s 0 1033(con)m 9(v)k 3(entional)k
1308(b)s 4(ut)k 1700(not)s 2096(essential)s 3003(to)s
3272(be)s 3(gin)k 3888(identi\207ers)s 4924(with)s 220 fnt2
@@ -5240,15 +5240,15 @@ grestore
5487(symbols)s 220 fnt2 6385 2267(@LClos)m 240 fnt1 7161 2270(,)m
220 fnt2 7316 2267(@LEn)m 4(v)k 240 fnt1 8034 2270(,)m
-[ /Dest /LOUT19_4226_det_lexi_13 /DEST pdfmark
+[ /Dest /LOUT19_4244_det_lexi_13 /DEST pdfmark
-[ /Dest /LOUT19_4226_det_lexi_14 /DEST pdfmark
+[ /Dest /LOUT19_4244_det_lexi_14 /DEST pdfmark
-[ /Dest /LOUT19_4226_det_lexi_15 /DEST pdfmark
+[ /Dest /LOUT19_4244_det_lexi_15 /DEST pdfmark
-[ /Dest /LOUT19_4226_det_lexi_16 /DEST pdfmark
+[ /Dest /LOUT19_4244_det_lexi_16 /DEST pdfmark
-[ /Dest /LOUT19_4226_det_lexi_17 /DEST pdfmark
+[ /Dest /LOUT19_4244_det_lexi_17 /DEST pdfmark
220 fnt2 8190 2267(@LInput)m 240 fnt1 9019 2270(,)m 220 fnt2
0 1979(@L)m 24(Vis)k 240 fnt1 722 1982(and)m 220 fnt2
1170 1979(@LUse)m 240 fnt1 2001 1982(appear)m 2742(in)s 3029(cross)s
@@ -5262,11 +5262,11 @@ grestore
1213 1034(liter)m 3(al)k 1864(wor)s 8(d)k 240 fnt1
2355 1032(,)m 2473(which)s 3126(means)s 3799(that)s 4227(it)s
4430(will)s
-[ /Dest /LOUT19_4226_det_lexi_18 /DEST pdfmark
+[ /Dest /LOUT19_4244_det_lexi_18 /DEST pdfmark
-[ /Dest /LOUT19_4226_det_lexi_19 /DEST pdfmark
+[ /Dest /LOUT19_4244_det_lexi_19 /DEST pdfmark
-[ /Dest /LOUT19_4226_det_lexi_20 /DEST pdfmark
+[ /Dest /LOUT19_4244_det_lexi_20 /DEST pdfmark
4867(pass)s 5341(through)s 6154(Lout)s 6677(unchanged.)s
7890(An)s 8251(arbitrary)s 0 744(sequence)m 926(of)s 1190(characters)s
2201(enclosed)s 3089(in)s 3325(double)s 4026(quotes,)s 4751(for)s
@@ -5344,7 +5344,7 @@ grestore
220 fnt2 1612 11762("\\"@PP\\"")m 240 fnt1 2606 11765(produces)m 220 fnt2
3521 11762("@PP")m 240 fnt1 4177 11765(.)m 480 11391(When)m 1106(the)s
1451(comment)s 2398(character)s
-[ /Dest /LOUT19_4226_det_lexi_21 /DEST pdfmark
+[ /Dest /LOUT19_4244_det_lexi_21 /DEST pdfmark
220 fnt2 3328 11388(#)m 240 fnt1
3502 11391(is)m 3709(encountered,)s 4982(e)s 6(v)k 3(erything)k
6045(from)s 6566(that)s 6981(point)s 7530(to)s 7765(the)s
@@ -5355,7 +5355,7 @@ grestore
240 fnt1 0 9819(for)m 338(temporarily)s 1506(deleting)s 2329(parts)s
2844(of)s 3115(the)s 3463(document,)s 4514(and)s 4918(so)s
5184(on.)s 240 fnt6 480 9447(Macr)m 10(os)k
-[ /Dest /LOUT19_4226_det_lexi_22 /DEST pdfmark
+[ /Dest /LOUT19_4244_det_lexi_22 /DEST pdfmark
240 fnt1
1268 9445(pro)m 3(vide)k 2064(a)s 2242(means)s 2916(of)s
3199(de\207ning)s 4049(symbols)s 4910(which)s 5564(stand)s 6139(for)s
@@ -5413,9 +5413,9 @@ grestore
6496(ha)s 4(v)k 3(e)k 6989(an)s 3(y)k
7377(number)s 8159(of)s 240 fnt6 8421 3555(named)m 0 3267(par)m 3(ameter)k 2(s)k
240 fnt1 1080 3265(:)m
-[ /Dest /LOUT19_4226_det_name_1 /DEST pdfmark
+[ /Dest /LOUT19_4244_det_name_1 /DEST pdfmark
-[ /Dest /LOUT19_4226_det_name_2 /DEST pdfmark
+[ /Dest /LOUT19_4244_det_name_2 /DEST pdfmark
220 fnt2 480 2768(def @Chapter)m 480 2480( named @T)m 26(ag {})k
480 2192( named @Title {})m 480 1904( r)m -3(ight x)k 480 1616({)m 480 1328( ...)m
480 1040(})m 240 fnt1 0 546(Their)m 577(de\207nitions)s 1639(appear)s
@@ -5424,7 +5424,7 @@ grestore
7517(each)s 8013(is)s 8224(follo)s 6(wed)k 0 258(by)m
293(a)s 240 fnt6 457 260(default)m 1183(value)s 240 fnt1
1753 258(between)m
-[ /Dest /LOUT19_4226_det_name_3 /DEST pdfmark
+[ /Dest /LOUT19_4244_det_name_3 /DEST pdfmark
2605(braces.)s 3377(When)s 220 fnt2 4004 255(@Chapter)m
240 fnt1 5066 258(is)m 5274(in)s 9(v)k 4(ok)k 2(ed,)k
6136(its)s 6411(named)s 7105(parameters)s 8201(are)s 8546(gi)s 6(v)k 3(en)k
@@ -5511,7 +5511,7 @@ grestore
8405(def)s 2(ault)k 0 8956(v)m 6(alue)k 568(as)s
818(just)s 1223(described.)s 480 8582(A)m 719(named)s 220 fnt2
1424 8579(@T)m 26(ag)k 240 fnt1 2057 8582(parameter)m
-[ /Dest /LOUT19_4226_det_name_4 /DEST pdfmark
+[ /Dest /LOUT19_4244_det_name_4 /DEST pdfmark
3080(does)s
3580(not)s 3955(tak)s 2(e)k 4417(its)s 4702(def)s 2(ault)k
5433(v)s 6(alue)k 6010(from)s 6544(the)s 6901(de\207nition;)s
@@ -5630,7 +5630,7 @@ grestore
[ /Dest /LOUTvisibility /DEST pdfmark
240 fnt1 480 11359(A)m 710(de\207nition)s 1684(may)s 2150(contain)s
-[ /Dest /LOUT19_4226_det_visi_1 /DEST pdfmark
+[ /Dest /LOUT19_4244_det_visi_1 /DEST pdfmark
2911(other)s 3462(de\207nitions)s 4523(at)s 4755(the)s 5103(be)s 3(ginning)k
6111(of)s 6382(its)s 6658(body:)s 220 fnt2 480 10858(def @NineSquare)m
480 10570( r)m -3(ight x)k 480 10282({)m 480 9994( def @Three { x |0.2i x |0.2i x })m 480 9418( @Three /0.2i @Three /0.2i @Three)m
@@ -5739,9 +5739,9 @@ grestore
7877(and)s 8270(simplest)s 0 2288(of)m 267(these)s 810(features)s
1611(is)s 1817(the)s 240 fnt6 2161 2290(body)m 2678(par)s 3(ameter)k
240 fnt1 3677 2288(,)m
-[ /Dest /LOUT19_4226_det_visi_2 /DEST pdfmark
+[ /Dest /LOUT19_4244_det_visi_2 /DEST pdfmark
-[ /Dest /LOUT19_4226_det_visi_3 /DEST pdfmark
+[ /Dest /LOUT19_4244_det_visi_3 /DEST pdfmark
3780(an)s 4059(alternati)s 6(v)k 3(e)k
5108(form)s 5628(of)s 5895(right)s 6401(parameter)s 13(.)k
7502(The)s 7926(Eq)s 8245(equation)s 0 2000(formatting)m 1053(package)s
@@ -5821,7 +5821,7 @@ grestore
220 fnt2 274 9258(@Eq)m 240 fnt1 815 9261(in)m 1061(an)s
220 fnt2 1347 9258(e)m 6(xpor)k -8(t)k 240 fnt1
2018 9261(clause,)m
-[ /Dest /LOUT19_4226_det_visi_4 /DEST pdfmark
+[ /Dest /LOUT19_4244_det_visi_4 /DEST pdfmark
2725(preceding)s 3724(the)s 4075(de\207nition)s 5052(as)s
5305(sho)s 6(wn.)k 6092(Only)s 6628(e)s 3(xported)k
7523(symbols)s 8375(may)s 8844(be)s 0 8973(in)m 9(v)k 4(ok)k 2(ed)k
@@ -5877,7 +5877,7 @@ grestore
7037(within)s 7770(a)s 8002(subsequent)s 0 3198(de\207nition)m 974(or)s
1233(macro)s 1883(by)s 2177(preceding)s 3173(it)s 3365(with)s
3847(an)s 220 fnt2 4130 3195(impor)m -8(t)k
-[ /Dest /LOUT19_4226_det_visi_5 /DEST pdfmark
+[ /Dest /LOUT19_4244_det_visi_5 /DEST pdfmark
240 fnt1
4803 3198(clause,)m 5507(lik)s 2(e)k 5919(this:)s 220 fnt2
480 2697(impor)m -8(t @Eq)k 480 2409(def p)m 6(ythag { sqr)k -8(t { x sup 2 + y sup 2 } })k
@@ -6415,7 +6415,7 @@ grestore
480 11647(Ev)m 3(ery)k 1131(symbol)s 1920(in)s 2192(Lout)s
2733(has)s 3132(a)s 240 fnt6 3327 11649(pr)m 8(ecedence)k
240 fnt1 4401 11647(,)m
-[ /Dest /LOUT19_4226_det_prec_1 /DEST pdfmark
+[ /Dest /LOUT19_4244_det_prec_1 /DEST pdfmark
4538(which)s 5209(is)s 5448(a)s
5643(positi)s 6(v)k 3(e)k 6476(whole)s 7146(number)s 13(.)k
8057(When)s 8716(tw)s 2(o)k 0 11359(symbols)m 849(compete)s
@@ -6437,7 +6437,7 @@ grestore
7887(second)s 8651(rule.)s 0 9453(Each)m 545(symbol)s 1316(is)s
1537(either)s 240 fnt6 2151 9455(left-associative)m 240 fnt1 3659 9453(or)m
-[ /Dest /LOUT19_4226_det_prec_2 /DEST pdfmark
+[ /Dest /LOUT19_4244_det_prec_2 /DEST pdfmark
240 fnt6 3929 9455(right-associative)m 240 fnt1 5528 9453(.)m 5703(The)s
6142(v)s 6(alue)k 6720(of)s 220 fnt2 7002 9450(a)m
7180(op1)s 7564(b)s 7739(op2)s 8156(c)s 240 fnt1
@@ -6588,7 +6588,7 @@ grestore
0 7039(attrib)m 4(utes)k 935(determine)s 1946(the)s 2294(object')s 13(s)k
3088(\207nal)s 3568(appearance)s 4699(in)s 4942(the)s 5290(output.)s
-[ /Dest /LOUT19_4226_det_size_1 /DEST pdfmark
+[ /Dest /LOUT19_4244_det_size_1 /DEST pdfmark
480 6665(The)m 908(style)s 1415(of)s 1686(an)s 1969(object)s
2613(comprises)s 3633(the)s 3981(follo)s 6(wing:)k 0 6162(\213)m
480(Which)s 1175(font)s 1620(f)s 2(amily)k 15(,)k
@@ -6781,11 +6781,11 @@ grestore
220 fnt2 4743 7743(s)m 240 fnt1 4906 7746(unit)m 5338(is)s
5548(also)s 5986(set)s 6311(by)s 220 fnt2 6605 7743(@F)m 6(ont)k
240 fnt1 7317 7746(\(Section)m 8170(3.5\).)s
-[ /Dest /LOUT19_4226_det_size_2 /DEST pdfmark
+[ /Dest /LOUT19_4244_det_size_2 /DEST pdfmark
-[ /Dest /LOUT19_4226_det_size_3 /DEST pdfmark
+[ /Dest /LOUT19_4244_det_size_3 /DEST pdfmark
-[ /Dest /LOUT19_4226_det_size_4 /DEST pdfmark
+[ /Dest /LOUT19_4244_det_size_4 /DEST pdfmark
536 7372(The)m 959(remainder)s
1983(of)s 2249(this)s 2641(section)s 3370(e)s 3(xplains)k
4210(ho)s 6(w)k 4667(the)s 5010(size)s 5433(of)s
@@ -6984,7 +6984,7 @@ grestore
348(root)s 793(g)s 1(alle)k 3(y)k 15(.)k
1522(Each)s 2057(is)s 2267(considered)s 3361(to)s 3600(be)s
3882(enclosed)s
-[ /Dest /LOUT19_4226_det_size_5 /DEST pdfmark
+[ /Dest /LOUT19_4244_det_size_5 /DEST pdfmark
4777(in)s 220 fnt2 5020 3044(@HContr)m 2(act)k
240 fnt1 6284 3047(and)m 220 fnt2 6688 3044(@VContr)m 2(act)k
240 fnt1 7940 3047(symbols.)m 480 2673(Up)m 836(to)s 1086(this)s
@@ -7079,9 +7079,9 @@ grestore
2197(g)s 1(alle)k 3(ys)k 2923(and)s 3328(their)s
3827(tar)s 4(gets,)k 4568(as)s 4820(described)s 5796(in)s
6040(Section)s
-[ /Dest /LOUT19_4226_det_gall_1 /DEST pdfmark
+[ /Dest /LOUT19_4244_det_gall_1 /DEST pdfmark
-[ /Dest /LOUT19_4226_det_gall_2 /DEST pdfmark
+[ /Dest /LOUT19_4244_det_gall_2 /DEST pdfmark
6816(1.4,)s 7225(can)s 7616(be)s 7900(summarized)s
0 11359(in)m 243(three)s 776(la)s 3(ws:)k 240 fnt6
0 10907(F)m 10(ir)k 2(st)k 540(Law)s 240 fnt1
@@ -7124,7 +7124,7 @@ grestore
3161(lying)s 3705(between)s 4558(tw)s 2(o)k 4966(neighbouring)s
6295(potential)s 7185(split)s 7655(points)s 8290(is)s 8498(called)s
0 6714(a)m 240 fnt6 166 6716(component)m
-[ /Dest /LOUT19_4226_det_gall_3 /DEST pdfmark
+[ /Dest /LOUT19_4244_det_gall_3 /DEST pdfmark
240 fnt1 1281 6714(of)m
1552(the)s 1900(g)s 1(alle)k 3(y)k 15(.)k
2629(By)s 2963(de\207nition,)s 3987(a)s 4153(component)s 5277(cannot)s
@@ -7311,7 +7311,7 @@ grestore
2480(a)s 2675(mark)s 2(ed)k 3477(ef)s 6(fect)k
4103(on)s 4429(the)s 4806(v)s 3(ertical)k 5603(concatenation)s
-[ /Dest /LOUT19_4226_det_gall_4 /DEST pdfmark
+[ /Dest /LOUT19_4244_det_gall_4 /DEST pdfmark
7017(symbol)s 220 fnt2 7806 49(//1.1b)m 240 fnt1 8347 52(,)m
8484(which)s
grestore
@@ -7417,7 +7417,7 @@ grestore
8110(alignment)s 0 9528(becomes)m 882(v)s 3(ery)k 1351(doubtful.)s
2319(F)s 3(or)k 2702(e)s 3(xample,)k 3609(what)s
4127(if)s 4338(the)s 4679(tar)s 4(gets)k
-[ /Dest /LOUT19_4226_det_gall_5 /DEST pdfmark
+[ /Dest /LOUT19_4244_det_gall_5 /DEST pdfmark
5355(are)s
5696(in)s 5932(dif)s 6(ferent)k 6800(columns)s 7656(of)s
7920(one)s 8315(page,)s 8867(or)s 0 9240(what)m 525(if)s
@@ -7510,7 +7510,7 @@ grestore
480 2374(The)m 906(root)s 1348(g)s 1(alle)k 3(y)k 15(,)k
2018(where)s 2655(e)s 6(v)k 3(erything)k 3720(collects)s
4497(immediately)s 5742(prior)s 6264(to)s 6500(output,)s
-[ /Dest /LOUT19_4226_det_gall_6 /DEST pdfmark
+[ /Dest /LOUT19_4244_det_gall_6 /DEST pdfmark
7217(is)s
7424(created)s 8168(automati)s 8998(-)s 0 2086(cally)m 15(,)k
556(not)s 921(by)s 1214(a)s 1379(de\207nition.)s 2459(Its)s
@@ -7605,7 +7605,7 @@ grestore
2112(g)s 1(alle)k 3(y)k 2751(on)s 3054(the)s
3407(output)s 4085(\207le)s 4451(is)s 4666(some)s 6(what)k
5696(problematical,)s
-[ /Dest /LOUT19_4226_det_gall_7 /DEST pdfmark
+[ /Dest /LOUT19_4244_det_gall_7 /DEST pdfmark
7121(because)s 7940(Lout)s 8457(has)s 8833(no)s
0 8956(w)m 2(ay)k 461(of)s 742(kno)s 6(wing)k
1638(ho)s 6(w)k 2109(lar)s 4(ge)k 2648(the)s
@@ -7623,9 +7623,9 @@ grestore
1744(will)s 2198(promote)s 3079(a)s 3273(component)s 4425(only)s
4933(after)s 5457(an)s 3(y)k 5882(recepti)s 6(v)k 3(e)k
6832(symbols)s
-[ /Dest /LOUT19_4226_det_gall_8 /DEST pdfmark
+[ /Dest /LOUT19_4244_det_gall_8 /DEST pdfmark
-[ /Dest /LOUT19_4226_det_gall_9 /DEST pdfmark
+[ /Dest /LOUT19_4244_det_gall_9 /DEST pdfmark
7709(within)s 8405(it)s 8625(ha)s 4(v)k 3(e)k
0 7430(been)m 509(replaced,)s 1426(either)s 2029(by)s 2324(g)s 1(alle)k 3(ys)k
3048(or)s 3308(by)s 220 fnt2 3602 7427(@Null)m 240 fnt1
@@ -7659,7 +7659,7 @@ grestore
5819(the)s 6156(g)s 1(alle)k 3(y)k 6778(concept,)s
7618(called)s 8235(a)s 240 fnt6 8389 5244(for)m 8(cing)k
0 4956(galle)m 7(y)k 240 fnt1 573 4954(,)m
-[ /Dest /LOUT19_4226_det_gall_10 /DEST pdfmark
+[ /Dest /LOUT19_4244_det_gall_10 /DEST pdfmark
[ /Dest /LOUTforcing /DEST pdfmark
680(is)s
@@ -7798,7 +7798,7 @@ grestore
2586(the)s 2928(symbol)s 3682(that)s 4094(is)s 4297(to)s
4530(be)s 4806(a)s 4966(g)s 1(alle)k 3(y)k
5594(a)s 5753(parameter)s 6761(or)s 7014(nested)s
-[ /Dest /LOUT19_4226_det_gall_11 /DEST pdfmark
+[ /Dest /LOUT19_4244_det_gall_11 /DEST pdfmark
7677(de\207nition)s
8644(with)s 0 11391(the)m 348(special)s 1066(name)s 220 fnt2
1640 11388(@T)m 26(arget)k 240 fnt1 2467 11391(:)m 220 fnt2
@@ -7937,7 +7937,7 @@ grestore
2045(a)s 2216(symbol)s 2981(whose)s 3654(name)s 4233(is)s
220 fnt2 4448 13202(@Enclose)m 240 fnt1 5508 13205(has)m 5883(a)s
6054(special)s
-[ /Dest /LOUT19_4226_det_gall_12 /DEST pdfmark
+[ /Dest /LOUT19_4244_det_gall_12 /DEST pdfmark
6777(meaning:)s 7772(when)s 8353(compo)s 8998(-)s
0 12917(nents)m 556(of)s 827(the)s 1175(g)s 1(alle)k 3(y)k
1810(replace)s 2555(a)s 220 fnt2 2721 12914(@Galle)m 4(y)k
@@ -8099,13 +8099,13 @@ grestore
674(order)s 13(.)k 1324(T)s 19(o)k 1618(mak)s 2(e)k
2185(g)s 1(alle)k 3(ys)k 2903(appear)s 3595(in)s
3832(sorted)s 4469(order)s 9(,)k 5065(as)s
-[ /Dest /LOUT19_4226_det_sort_1 /DEST pdfmark
+[ /Dest /LOUT19_4244_det_sort_1 /DEST pdfmark
5310(is)s
5514(needed)s 6245(in)s 6482(bibliographies)s 7896(and)s 8294(inde)s 3(x)k 3(es,)k
0 9711(a)m 178(parameter)s 1205(or)s 1477(nested)s 2158(de\207nition)s
3145(with)s 3640(the)s 4000(special)s 4731(name)s 220 fnt2
5318 9708(@K)m 8(e)k 4(y)k
-[ /Dest /LOUT19_4226_det_sort_2 /DEST pdfmark
+[ /Dest /LOUT19_4244_det_sort_2 /DEST pdfmark
240 fnt1 5977 9711(is)m
6200(added)s 6843(to)s 7094(the)s 7455(g)s 1(alle)k 3(y)k
8102(de\207nition,)s 0 9423(lik)m 2(e)k 412(this:)s 220 fnt2
@@ -8239,7 +8239,7 @@ grestore
5406 9169(must)m 5922(ha)s 4(v)k 3(e)k 6414(just)s
6809(tw)s 2(o)k 7210(parameters,)s 8355(left)s 8722(and)s
0 8881(right\),)m
-[ /Dest /LOUT19_4226_det_sort_3 /DEST pdfmark
+[ /Dest /LOUT19_4244_det_sort_3 /DEST pdfmark
643(and)s 1054(if)s 1277(that)s 1702(sorted)s
2350(g)s 1(alle)k 3(y)k 2991(is)s 3207(preceded)s
4135(in)s 4384(the)s 4739(list)s 5096(of)s 5374(sorted)s
@@ -8582,7 +8582,7 @@ grestore
1817(in)s 2077(Section)s 2869(2.7,)s 3294(the)s 3659(components)s
4885(of)s 5174(a)s 5357(g)s 1(alle)k 3(y)k
-[ /Dest /LOUT19_4226_det_opti_1 /DEST pdfmark
+[ /Dest /LOUT19_4244_det_opti_1 /DEST pdfmark
6009(are)s 6373(promoted)s 7366(one)s 7786(by)s 8097(one)s
8517(into)s 8960(a)s 0 9919(tar)m 4(get.)k 703(When)s
1332(space)s 1919(runs)s 2382(out)s 2748(there,)s 3332(the)s
@@ -8619,7 +8619,7 @@ grestore
240 fnt1 4599 7069(whose)m 5290(v)s 6(alue)k 5880(is)s
220 fnt2 6112 7066(Y)m 30(es)k 240 fnt1 6453 7069(.)m
6639(Lik)s 2(e)k 7153(cross)s 7717(referencing,)s
-[ /Dest /LOUT19_4226_det_opti_2 /DEST pdfmark
+[ /Dest /LOUT19_4244_det_opti_2 /DEST pdfmark
8934(it)s
0 6781(tak)m 2(es)k 539(tw)s 2(o)k 947(runs)s
1409(to)s 1646(ha)s 4(v)k 3(e)k 2145(ef)s 6(fect.)k
@@ -8712,9 +8712,9 @@ grestore
220 fnt2 2620 10653(@Sym)m 240 fnt1 3324 10656(may)m 3786(be)s
4064(enclosed)s 4955(in)s 220 fnt2 5194 10653(@Begin)m 240 fnt1
6019 10656(and)m
-[ /Dest /LOUT19_4226_pre_begi_1 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_begi_1 /DEST pdfmark
-[ /Dest /LOUT19_4226_pre_begi_2 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_begi_2 /DEST pdfmark
220 fnt2 6419 10653(@End)m 7076(@Sym)s 240 fnt1
7780 10656(instead)m 8511(of)s 8778(the)s 0 10368(more)m 547(usual)s
1107(braces:)s 220 fnt2 480 9917(def @Section)m 480 9629( named @Title {})m 480 9341( r)m -3(ight @Body)k
@@ -8740,7 +8740,7 @@ grestore
240 fnt1
480 3739(There)m 1093(are)s 1440(ten)s 1789(concatenation)s 3174(symbols,)s
4079(in)s 4322(three)s 4855(f)s 2(amilies:)k
-[ /Dest /LOUT19_4226_pre_conc_1 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_conc_1 /DEST pdfmark
220 fnt2
480 3198(/)m 962(^/)s 1547(//)s 2012(^//)s 240 fnt1
2580 3201(V)m 26(ertical)k 3377(concatenation)s 220 fnt2 480 2910(|)m
@@ -8755,7 +8755,7 @@ grestore
480 1422(The)m 906(v)s 3(ertical)k 1670(concatenation)s 3052(symbol)s
220 fnt2 3809 1419(/)m 240 fnt1 3930 1422(places)m 4575(its)s
4848(left)s 5222(parameter)s
-[ /Dest /LOUT19_4226_pre_conc_2 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_conc_2 /DEST pdfmark
6233(abo)s 3(v)k 3(e)k
6852(its)s 7125(right)s 7633(parameter)s 8644(with)s 0 1134(their)m
519(column)s 1317(marks)s 1975(aligned.)s 2866(If)s 3119(one)s
@@ -8769,7 +8769,7 @@ grestore
1908(concatenation)s 3280(symbols)s 220 fnt2 4117 181(|)m 240 fnt1
4201 184(and)m 220 fnt2 4593 181(||)m 240 fnt1 4734 184(are)m
5069(horizontal)s
-[ /Dest /LOUT19_4226_pre_conc_3 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_conc_3 /DEST pdfmark
6080(analogues)s 7076(of)s 220 fnt2 7334 181(/)m
240 fnt1 7446 184(and)m 220 fnt2 7837 181(//)m 240 fnt1
7962 184(:)m 8116(the)s 3(y)k 8566(place)s
@@ -8831,7 +8831,7 @@ grestore
3646(ro)s 6(w)k 4056(mark)s 4599(alignment)s 5605(or)s
5854(top-justi\207cation)s 7414(respecti)s 6(v)k 3(ely)k 15(.)k
8698(The)s
-[ /Dest /LOUT19_4226_pre_conc_4 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_conc_4 /DEST pdfmark
0 12917(in-paragraph)m 1278(concatenation)s 2663(symbol)s 220 fnt2
3423 12914(&)m 240 fnt1 3625 12917(produces)m 4540(horizontal)s 5564(concatenation)s
6949(within)s 7617(a)s 7783(paragraph;)s 8850(its)s 0 12629(special)m
@@ -8873,7 +8873,7 @@ grestore
938(mark)s 1494(is)s 1708(designated)s 2793(as)s 3047(the)s
240 fnt6 3398 9025(principal)m 4339(mark)s 240 fnt1 4835 9023(,)m
4946(usually)s 5695(the)s 6047(mark)s 6602(of)s
-[ /Dest /LOUT19_4226_pre_conc_5 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_conc_5 /DEST pdfmark
6877(the)s
7229(\207rst)s 7664(component.)s 8896(A)s 0 8735(later)m 486(mark)s
1042(can)s 1435(be)s 1721(chosen)s 2447(for)s 2789(this)s
@@ -8882,7 +8882,7 @@ grestore
8317(symbol.)s 0 8447(See)m 401(Section)s 1175(3.11)s 1630(for)s
1968(e)s 3(xamples.)k 480 8073(A)m 240 fnt6 712 8075(gap)m
240 fnt1 1065 8073(,)m
-[ /Dest /LOUT19_4226_pre_conc_6 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_conc_6 /DEST pdfmark
1175(specifying)s 2227(the)s 2578(distance)s
3420(between)s 4277(the)s 4627(tw)s 2(o)k 5040(parameters,)s
6197(may)s 6666(follo)s 6(w)k 7341(an)s 3(y)k
@@ -8914,7 +8914,7 @@ grestore
3966(mode)s 4548(plus)s 4992(an)s 5268(optional)s 6101(indication)s
7108(of)s 7373(unbreakability)s 15(.)k 8896(A)s 240 fnt6
0 4973(length)m
-[ /Dest /LOUT19_4226_pre_conc_7 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_conc_7 /DEST pdfmark
240 fnt1 659 4971(is)m 875(represented)s 2040(by)s
2341(an)s 2630(decimal)s 3447(number)s 4244(\(which)s 4972(may)s
5444(not)s 5816(be)s 6104(ne)s 3(g)k 1(ati)k 6(v)k 3(e\))k
@@ -8925,29 +8925,29 @@ grestore
7847(gi)s 6(v)k 3(es)k 8393(the)s 8740(full)s
0 4395(selection)m 906(of)s 1177(units)s 1693(of)s 1964(measurement.)s
-[ /Dest /LOUT19_4226_pre_conc_8 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_conc_8 /DEST pdfmark
-[ /Dest /LOUT19_4226_pre_conc_9 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_conc_9 /DEST pdfmark
-[ /Dest /LOUT19_4226_pre_conc_10 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_conc_10 /DEST pdfmark
-[ /Dest /LOUT19_4226_pre_conc_11 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_conc_11 /DEST pdfmark
-[ /Dest /LOUT19_4226_pre_conc_12 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_conc_12 /DEST pdfmark
-[ /Dest /LOUT19_4226_pre_conc_13 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_conc_13 /DEST pdfmark
-[ /Dest /LOUT19_4226_pre_conc_14 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_conc_14 /DEST pdfmark
-[ /Dest /LOUT19_4226_pre_conc_15 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_conc_15 /DEST pdfmark
-[ /Dest /LOUT19_4226_pre_conc_16 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_conc_16 /DEST pdfmark
-[ /Dest /LOUT19_4226_pre_conc_17 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_conc_17 /DEST pdfmark
480 4021(After)m 1045(the)s 1396(length)s 2054(comes)s 2718(an)s
3004(optional)s 240 fnt6 3846 4023(gap)m 4261(mode)s 240 fnt1
4773 4021(,)m
-[ /Dest /LOUT19_4226_pre_conc_18 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_conc_18 /DEST pdfmark
4883(which)s 5528(is)s 5740(a)s 5909(single)s
6539(letter)s 7090(follo)s 6(wing)k 8070(the)s 8421(length,)s
0 3733(indicating)m 1031(ho)s 6(w)k 1514(the)s 1884(length)s
@@ -8955,9 +8955,9 @@ grestore
4801(sho)s 6(wn)k 5500(in)s 5765(Figure)s 6468(3.2,)s
6897(with)s 7401(edge-to-edge)s 8728(g)s 1(ap)k 0 3445(mode)m
-[ /Dest /LOUT19_4226_pre_conc_19 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_conc_19 /DEST pdfmark
-[ /Dest /LOUT19_4226_pre_conc_20 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_conc_20 /DEST pdfmark
603(the)s 967(length)s 240 fnt6 1638 3447(l)m 240 fnt1
1780 3445(is)m 2006(measured)s 2996(from)s 3536(the)s 3900(trailing)s
4658(edge)s 5181(of)s 5468(the)s 5832(\207rst)s 6279(object)s
@@ -8967,24 +8967,24 @@ grestore
4833 3154(e)m 240 fnt1 5005 3157(may)m 5469(be)s 5749(omitted.)s
6642(Hyphenation)s 7934(g)s 1(ap)k 8330(mode)s 8916(is)s
-[ /Dest /LOUT19_4226_pre_conc_21 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_conc_21 /DEST pdfmark
-[ /Dest /LOUT19_4226_pre_conc_22 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_conc_22 /DEST pdfmark
0 2869(similar)m 9(,)k 760(e)s 3(xcept)k 1441(as)s
1691(e)s 3(xplained)k 2676(at)s 2908(the)s 3256(end)s
3660(of)s 3931(this)s 4327(section.)s 480 2495(Mark-to-mark,)m
-[ /Dest /LOUT19_4226_pre_conc_23 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_conc_23 /DEST pdfmark
-[ /Dest /LOUT19_4226_pre_conc_24 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_conc_24 /DEST pdfmark
1957(o)s 3(v)k 3(erstrik)k 2(e,)k
-[ /Dest /LOUT19_4226_pre_conc_25 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_conc_25 /DEST pdfmark
-[ /Dest /LOUT19_4226_pre_conc_26 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_conc_26 /DEST pdfmark
3028(and)s 3450(k)s 2(erning)k
-[ /Dest /LOUT19_4226_pre_conc_27 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_conc_27 /DEST pdfmark
-[ /Dest /LOUT19_4226_pre_conc_28 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_conc_28 /DEST pdfmark
4249(measure)s 5118(the)s
5484(length)s 6156(from)s 6698(the)s 7063(last)s 7471(mark)s
8041(of)s 8329(the)s 8695(\207rst)s 0 2207(object)m 648(to)s
@@ -9005,13 +9005,13 @@ grestore
4673(other)s 5248(object;)s 5969(this)s 6389(mode)s 7001(is)s
7235(used)s 7756(for)s 8119(subscripts)s 0 1055(and)m 404(superscripts.)s
-[ /Dest /LOUT19_4226_pre_conc_29 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_conc_29 /DEST pdfmark
-[ /Dest /LOUT19_4226_pre_conc_30 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_conc_30 /DEST pdfmark
-[ /Dest /LOUT19_4226_pre_conc_31 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_conc_31 /DEST pdfmark
-[ /Dest /LOUT19_4226_pre_conc_32 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_conc_32 /DEST pdfmark
558 681(T)m 19(ab)k 4(ulation)k 1646(ignores)s 2419(the)s
2785(\207rst)s 3234(object)s 3896(and)s 4318(places)s 4984(the)s
5350(leading)s 6125(edge)s 6651(of)s 6940(the)s 7306(second)s
@@ -9663,9 +9663,9 @@ grestore
1523(objects)s 2254(are)s 2603(separated)s 3566(only)s 4048(by)s
4345(zero)s 4811(or)s 5072(more)s 5622(white)s 6211(space)s
-[ /Dest /LOUT19_4226_pre_conc_33 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_conc_33 /DEST pdfmark
-[ /Dest /LOUT19_4226_pre_conc_34 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_conc_34 /DEST pdfmark
6801(characters)s 7821(\(spaces,)s 8634(tabs,)s 0 1044(ne)m 6(wlines,)k
983(and)s 1420(formfeeds\),)s 2607(Lout)s 3152(inserts)s 220 fnt2
3859 1041(&)m 240 fnt6 4001 1046(k)m 220 fnt2 4111 1041(s)m
@@ -10778,7 +10778,7 @@ grestore
1672(of)s 1958(tw)s 2(o)k 2383(or)s 2657(more)s
3219(objects)s 3962(separated)s 4936(by)s 220 fnt2 5245 4686(&)m
240 fnt1 5462 4689(symbols)m 6326(is)s 6551(a)s
-[ /Dest /LOUT19_4226_pre_conc_35 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_conc_35 /DEST pdfmark
240 fnt6
6732 4691(par)m 3(a)k 2(gr)k 3(aph)k 240 fnt1
7745 4689(.)m 7924(Lout)s 8451(breaks)s 0 4401(paragraphs)m 1100(into)s
@@ -10794,13 +10794,13 @@ grestore
[ /Rect [2605 3822 2711 3990] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUTknuth1984tex /ANN pdfmark
2605(5)s
2711(].)s
-[ /Dest /LOUT19_4226_pre_conc_36 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_conc_36 /DEST pdfmark
480 3451(If)m 735(an)s 220 fnt2 1043 3448(&)m
240 fnt1 1271 3451(symbol)m 2056(whose)s 2750(g)s 1(ap)k
3173(has)s 3568(h)s 1(yphenation)k 4834(mode)s
-[ /Dest /LOUT19_4226_pre_conc_37 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_conc_37 /DEST pdfmark
-[ /Dest /LOUT19_4226_pre_conc_38 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_conc_38 /DEST pdfmark
5447(is)s
5683(chosen)s 6430(for)s 6793(replacement)s 8046(by)s 220 fnt2
8365 3448(//1vx)m 240 fnt1 8827 3451(,)m 8960(a)s 0 3163(h)m 1(yphen)k
@@ -10895,15 +10895,15 @@ grestore
[ /Dest /LOUTfont /DEST pdfmark
240 fnt1 480 11939(A)m
240 fnt6 728 11941(font)m
-[ /Dest /LOUT19_4226_pre_font_1 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_font_1 /DEST pdfmark
240 fnt1 1182 11939(is)m 1410(a)s
1594(collection)s 2611(of)s 2900(characters)s 3936(which)s 4596(may)s
5080(be)s 5380(printed.)s 6239(Man)s 3(y)k 6867(fonts)s
7414(come)s 8006(in)s 240 fnt6 8268 11941(families)m 240 fnt1
9019 11939(,)m
-[ /Dest /LOUT19_4226_pre_font_2 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_font_2 /DEST pdfmark
-[ /Dest /LOUT19_4226_pre_font_3 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_font_3 /DEST pdfmark
0 11651(which)m 634(are)s 973(groups)s 1667(of)s
1930(fonts)s 2450(that)s 2860(ha)s 4(v)k 3(e)k
3352(been)s 3853(designed)s 4754(to)s 4984(go)s 5269(together)s 13(.)k
@@ -10928,9 +10928,9 @@ grestore
0 8629(be)m 282(applied)s 1044(to)s 1283(man)s 3(y)k
1866(font)s 2311(f)s 2(amilies.)k 480 8255(Lig)m 1(atures,)k
-[ /Dest /LOUT19_4226_pre_font_4 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_font_4 /DEST pdfmark
-[ /Dest /LOUT19_4226_pre_font_5 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_font_5 /DEST pdfmark
1488(such)s 1984(as)s 2234(\210)s 2420(for)s 2758(f)s
2849(l)s 2970(and)s 3375(\207)s 3560(for)s 3898(f)s
3989(i,)s 4163(are)s 4510(considered)s 5604(by)s 5899(Basser)s
@@ -10949,7 +10949,7 @@ grestore
690(disable)s 1423(a)s 1589(lig)s 1(ature)k 2373(or)s
2632(k)s 2(ern.)k 480 6729(The)m 220 fnt2 908 6726(@F)m 6(ont)k
240 fnt1 1620 6729(symbol)m
-[ /Dest /LOUT19_4226_pre_font_6 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_font_6 /DEST pdfmark
2380(returns)s 3094(its)s 3370(right)s
3881(parameter)s 4895(in)s 5138(a)s 5304(font)s 5749(and)s
6153(size)s 6580(speci\207ed)s 7488(by)s 7782(its)s 8058(left:)s
@@ -11077,7 +11077,7 @@ grestore
220 fnt2 908 12828(@F)m 6(ont)k 240 fnt1 1620 12831(symbol)m
2380(also)s 2818(switches)s 3692(to)s 3931(and)s 4335(from)s
4859(small)s 5431(capitals:)s
-[ /Dest /LOUT19_4226_pre_font_7 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_font_7 /DEST pdfmark
220 fnt2 480 12330(smallcaps @F)m 6(ont ...)k
480 12042(nosmallcaps @F)m 6(ont ...)k 240 fnt1 0 11546(These)m 639(may)s
1118(be)s 1412(nested,)s 2143(and)s 2559(the)s 3(y)k
@@ -11239,7 +11239,7 @@ grestore
240 fnt1 800 12543(,)m 908(a)s 1076(PostScript)s 2120(font)s
2567(name;)s 220 fnt2 3198 12540(@Metr)m -3(ics)k 240 fnt1
4124 12543(,)m 4293(an)s
-[ /Dest /LOUT19_4226_pre_font_8 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_font_8 /DEST pdfmark
4578(Adobe)s 5275(font)s 5721(metrics)s
6476(\(formerly)s 7446(AFM\))s 8095(\207le)s 8458(whose)s 0 12255(F)m 3(ontName)k
1070(entry)s 1622(must)s 2154(agree)s 2734(with)s 3223(the)s
@@ -11255,7 +11255,7 @@ grestore
4339(for)s 4685(general)s 5451(information)s 6645(about)s 7245(fonts)s
7782(and)s 8195(encoding)s 0 11391(v)m 3(ectors;)k 795(brie\210y)s 15(,)k
1506(an)s 1785(8-bit)s
-[ /Dest /LOUT19_4226_pre_font_9 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_font_9 /DEST pdfmark
2291(character)s 3221(code)s 240 fnt6
3724 11393(c)m 240 fnt1 3882 11391(in)m 4120(Lout')s 13(s)k
4778(input)s 5325(is)s 5531(mapped)s 6342(to)s 6577(the)s
@@ -11329,7 +11329,7 @@ grestore
7690(or)s 7975(dif)s 6(ferent)k 8876(as)s 0 5949(desired.)m
480 5575(The)m 220 fnt2 917 5572(@Char)m 240 fnt1 1685 5575(symbol)m
-[ /Dest /LOUT19_4226_pre_font_10 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_font_10 /DEST pdfmark
2454(allo)s 6(ws)k 3133(a)s 3309(character)s 4252(to)s
4501(be)s 4792(speci\207ed)s 5710(by)s 6014(its)s 6299(name)s
6883(\(its)s 7247(PostScript)s 8299(name)s 8883(in)s 0 5287(Basser)m
@@ -11355,7 +11355,7 @@ grestore
7155(3.2\),)s 7631(of)s 6(fering)k 8437(a)s 8592(\207x)s 3(ed)k
0 2242(set)m 325(of)s 596(styles:)s 220 fnt2 1275 1734(adjust)m
1916(@Break)s 240 fnt6 2772 1739(object)m
-[ /Dest /LOUT19_4226_pre_brea_1 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_brea_1 /DEST pdfmark
240 fnt1 3600 1737(Break)m
4301(the)s 4718(paragraphs)s 5887(of)s 240 fnt6 6228 1739(object)m
240 fnt1 6945 1737(into)m 7439(lines,)s 8066(and)s 8540(apply)s
@@ -11366,7 +11366,7 @@ grestore
[ /Dest /LOUT16_1490_pre_brea_1 /DEST pdfmark
220 fnt2 1128 653(outdent)m
1916(@Break)s 240 fnt6 2772 658(object)m
-[ /Dest /LOUT19_4226_pre_brea_2 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_brea_2 /DEST pdfmark
240 fnt1 3600 656(Lik)m 2(e)k
220 fnt2 4122 653(adjust)m 240 fnt1 4703 656(,)m 4840(e)s 3(xcept)k
5551(that)s 220 fnt2 6000 653(2.0f @Wide {} &0i)m 240 fnt1 7809 656(is)m
@@ -11435,7 +11435,7 @@ grestore
[ /Dest /LOUT16_1490_pre_brea_2 /DEST pdfmark
220 fnt2 1187 12751(r)m 2(agged)k
1916(@Break)s 240 fnt6 2772 12756(object)m
-[ /Dest /LOUT19_4226_pre_brea_3 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_brea_3 /DEST pdfmark
240 fnt1 3600 12754(Break)m
4222(the)s 4559(paragraphs)s 5648(of)s 240 fnt6 5908 12756(object)m
240 fnt1 6545 12754(into)m 6960(lines,)s 7507(b)s 4(ut)k
@@ -11444,7 +11444,7 @@ grestore
[ /Dest /LOUT16_1490_pre_brea_3 /DEST pdfmark
220 fnt2 1077 11958(cr)m 2(agged)k
1916(@Break)s 240 fnt6 2772 11963(object)m
-[ /Dest /LOUT19_4226_pre_brea_4 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_brea_4 /DEST pdfmark
240 fnt1 3600 11961(Lik)m 2(e)k
220 fnt2 4125 11958(r)m 2(agged)k 240 fnt1 4794 11961(,)m
4934(e)s 3(xcept)k 5648(that)s 6099(each)s 6628(line)s
@@ -11453,7 +11453,7 @@ grestore
[ /Dest /LOUT16_1490_pre_brea_4 /DEST pdfmark
220 fnt2 1114 11165(rr)m 2(agged)k
1916(@Break)s 240 fnt6 2772 11170(object)m
-[ /Dest /LOUT19_4226_pre_brea_5 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_brea_5 /DEST pdfmark
240 fnt1 3600 11168(Lik)m 2(e)k
220 fnt2 4115 11165(r)m 2(agged)k 240 fnt1 4784 11168(,)m
4914(e)s 3(xcept)k 5618(that)s 6059(each)s 6577(line)s
@@ -11463,7 +11463,7 @@ grestore
[ /Dest /LOUT16_1490_pre_brea_5 /DEST pdfmark
220 fnt2 1065 10372(or)m 2(agged)k 1916(@Break)s 240 fnt6
2772 10377(object)m
-[ /Dest /LOUT19_4226_pre_brea_6 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_brea_6 /DEST pdfmark
240 fnt1 3600 10375(The)m 4028(ob)s 3(vious)k
4835(combination)s 6088(of)s 220 fnt2 6359 10372(r)m 2(agged)k
240 fnt1 7088 10375(and)m 220 fnt2 7492 10372(outdent)m 240 fnt1
@@ -11471,7 +11471,7 @@ grestore
[ /Dest /LOUT16_1490_pre_brea_6 /DEST pdfmark
220 fnt2 1413 9868(lines)m 1916(@Break)s 240 fnt6
2772 9873(object)m
-[ /Dest /LOUT19_4226_pre_brea_7 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_brea_7 /DEST pdfmark
240 fnt1 3600 9871(Break)m 4284(the)s 4685(paragraphs)s
5837(of)s 240 fnt6 6161 9873(object)m 240 fnt1 6861 9871(into)m
7339(lines)s 7893(at)s 8178(the)s 8579(same)s 3600 9583(points)m
@@ -11490,7 +11490,7 @@ grestore
[ /Dest /LOUT16_1490_pre_brea_7 /DEST pdfmark
220 fnt2 1303 8211(clines)m 1916(@Break)s
240 fnt6 2772 8216(object)m
-[ /Dest /LOUT19_4226_pre_brea_8 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_brea_8 /DEST pdfmark
240 fnt1 3600 8214(Break)m 4288(the)s
4693(paragraphs)s 5849(of)s 240 fnt6 6177 8216(object)m 240 fnt1
6881 8214(into)m 7363(lines)s 7921(as)s 8228(for)s 220 fnt2
@@ -11500,7 +11500,7 @@ grestore
[ /Dest /LOUT16_1490_pre_brea_8 /DEST pdfmark
220 fnt2 1337 7418(r)m -3(lines)k
1916(@Break)s 240 fnt6 2772 7423(object)m
-[ /Dest /LOUT19_4226_pre_brea_9 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_brea_9 /DEST pdfmark
240 fnt1 3600 7421(Break)m
4288(the)s 4693(paragraphs)s 5849(of)s 240 fnt6 6177 7423(object)m
240 fnt1 6881 7421(into)m 7363(lines)s 7921(as)s 8228(for)s
@@ -11523,7 +11523,7 @@ grestore
240 fnt1 231 5442(.)m 395(Ho)s 6(we)k 6(v)k 3(er)k 9(,)k
1355(the)s 220 fnt2 1703 5439(v)m 240 fnt1 1872 5442(unit)m
2304(itself)s 2852(and)s 3256(the)s
-[ /Dest /LOUT19_4226_pre_brea_10 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_brea_10 /DEST pdfmark
3604(g)s 1(ap)k
4002(mode)s 4590(may)s 5056(be)s 5338(changed:)s 240 fnt6
1503 4939(gap)m 220 fnt2 1916 4934(@Break)m 240 fnt6 2772 4939(object)m
@@ -11562,14 +11562,14 @@ grestore
240 fnt1 1764 2188(symbol)m 2524(also)s 2962(controls)s 3783(h)s 1(yphenation:)k
220 fnt2 1141 1680(h)m 6(yphen @Break)k 240 fnt6 2772 1685(object)m
-[ /Dest /LOUT19_4226_pre_brea_11 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_brea_11 /DEST pdfmark
240 fnt1 3600 1683(Permit)m 4296(h)s 1(yphenation)k 5536(within)s
6204(the)s 6552(paragraphs)s 7652(of)s 240 fnt6 7923 1685(object)m
240 fnt1 8511 1683(;)m
[ /Dest /LOUT16_1490_pre_brea_13 /DEST pdfmark
220 fnt2 897 1175(noh)m 6(yphen @Break)k
240 fnt6 2772 1180(object)m
-[ /Dest /LOUT19_4226_pre_brea_12 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_brea_12 /DEST pdfmark
240 fnt1 3600 1178(Prohibit)m 4440(h)s 1(yphenation)k
5691(within)s 6370(the)s 6729(paragraphs)s 7840(of)s 240 fnt6
8122 1180(object)m 240 fnt1 8710 1178(;)m 8833(all)s 3600 890(h)m 1(yphenation)k
@@ -11638,7 +11638,7 @@ gsave
grestore
220 fnt2 480 13200(unbreakab)m 4(le\207rst @Break)k
240 fnt6 3059 13205(ob)m 3293(-)s 480 12917(ject)m
-[ /Dest /LOUT19_4226_pre_brea_13 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_brea_13 /DEST pdfmark
240 fnt1
3600 13203(Pre)m 6(v)k 3(ent)k 4431(column)s 5256(and)s
5710(page)s 6268(breaks)s 6993(\(i.e.)s 7458(pre)s 6(v)k 3(ent)k
@@ -11650,7 +11650,7 @@ grestore
[ /Dest /LOUT16_1490_pre_brea_15 /DEST pdfmark
220 fnt2 480 12119(unbreakab)m 4(lelast @Break)k 240 fnt6 3059 12124(ob)m
3293(-)s 480 11836(ject)m
-[ /Dest /LOUT19_4226_pre_brea_14 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_brea_14 /DEST pdfmark
240 fnt1 3600 12122(Pre)m 6(v)k 3(ent)k
4429(column)s 5252(and)s 5704(page)s 6261(breaks)s 6984(between)s
7886(the)s 8282(last)s 8722(and)s 3600 11834(second)m 4323(last)s
@@ -11701,11 +11701,11 @@ grestore
[ /Dest /LOUTspace /DEST pdfmark
240 fnt1 480 5246(The)m 220 fnt2 911 5243(@Space)m 240 fnt1
1812 5246(symbol)m
-[ /Dest /LOUT19_4226_pre_spac_1 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_spac_1 /DEST pdfmark
2576(changes)s 3402(the)s 3754(v)s 6(alue)k
4326(of)s 4601(the)s 220 fnt2 4953 5243(s)m 240 fnt1
5120 5246(unit)m 5556(of)s 5831(measurement)s 7169(\(Section)s
-[ /Dest /LOUT19_4226_pre_spac_2 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_spac_2 /DEST pdfmark
8026(3.2\))s
8458(within)s 0 4958(its)m 276(right)s 787(parameter)s 1801(to)s
2040(the)s 2388(v)s 6(alue)k 2956(gi)s 6(v)k 3(en)k
@@ -11861,9 +11861,9 @@ grestore
[ /Dest /LOUTyunit /DEST pdfmark
240 fnt1 480 8077(The)m 220 fnt2
917 8074(@YUnit)m 240 fnt1 1741 8077(symbol)m
-[ /Dest /LOUT19_4226_pre_yuni_1 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_yuni_1 /DEST pdfmark
-[ /Dest /LOUT19_4226_pre_yuni_2 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_yuni_2 /DEST pdfmark
2510(changes)s 3342(the)s
3699(v)s 6(alue)k 4277(of)s 4557(the)s 220 fnt2
4915 8074(y)m 240 fnt1 5092 8077(unit)m 5534(of)s 5814(measurement)s
@@ -11925,9 +11925,9 @@ grestore
240 fnt1 480 800(The)m 220 fnt2 927 797(@SetColour)m
240 fnt1 2204 800(and)m 220 fnt2 2628 797(@SetColor)m 240 fnt1
3783 800(symbols,)m
-[ /Dest /LOUT19_4226_pre_colo_1 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_colo_1 /DEST pdfmark
-[ /Dest /LOUT19_4226_pre_colo_2 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_colo_2 /DEST pdfmark
4708(which)s 5370(ha)s 4(v)k 3(e)k
5891(identical)s 6788(ef)s 6(fect,)k 7451(return)s 8098(their)s
8615(right)s 0 512(parameter)m 1047(in)s 1323(the)s 1704(colour)s
@@ -12184,7 +12184,7 @@ grestore
240 fnt1
480 11737(The)m 220 fnt2 943 11734(@SetT)m 26(e)k 6(xture)k
240 fnt1 2295 11737(symbol)m
-[ /Dest /LOUT19_4226_pre_text_1 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_text_1 /DEST pdfmark
3091(returns)s 3841(its)s 4152(right)s
4699(parameter)s 5749(in)s 6028(the)s 6411(te)s 3(xture)k
7163(speci\207ed)s 8107(by)s 8437(its)s 8749(left)s 0 11449(parameter)m 13(.)k
@@ -12424,7 +12424,7 @@ grestore
240 fnt1
480 7690(The)m 220 fnt2 895 7687(@Outline)m 240 fnt1 1850 7690(symbol)m
-[ /Dest /LOUT19_4226_pre_outl_1 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_outl_1 /DEST pdfmark
2597(causes)s 3258(all)s 3537(the)s 3872(w)s 2(ords)k
4492(in)s 4722(the)s 5056(right)s 5553(parameter)s 6554(\(which)s
7261(may)s 7714(be)s 7982(an)s 8251(arbitrary)s 0 7402(object\))m
@@ -12463,7 +12463,7 @@ grestore
240 fnt1 480 2731(The)m 220 fnt2 905 2728(@Language)m 240 fnt1
2153 2731(symbol)m 2910(informs)s 3701(Lout)s 4210(that)s 4625(its)s
4898(right)s 5406(parameter)s 6417(is)s 6624(written)s
-[ /Dest /LOUT19_4226_pre_lang_1 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_lang_1 /DEST pdfmark
7354(in)s
7594(the)s 7939(language)s 8855(of)s 0 2443(its)m 276(left)s
653(parameter:)s 220 fnt2 480 1942(Danish @Language { ...)m 13( })k 240 fnt1
@@ -12484,7 +12484,7 @@ grestore
2051(must)s 2578(ha)s 4(v)k 3(e)k 3080(been)s
3591(gi)s 6(v)k 3(en)k 4173(in)s 4418(a)s
220 fnt2 4586 202(langdef)m
-[ /Dest /LOUT19_4226_pre_lang_2 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_lang_2 /DEST pdfmark
240 fnt1 5363 205(language)m 6285(de\207nition)s
7261(at)s 7495(the)s 7845(be)s 3(ginning)k 8855(of)s
@@ -12579,7 +12579,7 @@ grestore
913 8806(@CurrLang)m 240 fnt1 2103 8809(symbol,)m 2920(which)s 3567(has)s
3942(no)s 4240(parameters,)s 5399(e)s 6(v)k 6(aluates)k
6332(to)s 6576(the)s 6929(\207rst)s
-[ /Dest /LOUT19_4226_pre_lang_3 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_lang_3 /DEST pdfmark
7365(name)s 7944(gi)s 6(v)k 3(en)k
8529(in)s 8778(the)s 220 fnt2 0 8518(langdef)m 240 fnt1
776 8521(of)m 1047(the)s 1395(language)s 2315(in)s 2558(force)s
@@ -12616,9 +12616,9 @@ grestore
[ /Dest /LOUTonerow /DEST pdfmark
240 fnt1 480 2005(The)m 220 fnt2
913 2002(@OneRo)m 3(w)k 240 fnt1 2049 2005(symbol)m
-[ /Dest /LOUT19_4226_pre_oner_1 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_oner_1 /DEST pdfmark
-[ /Dest /LOUT19_4226_pre_oner_2 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_oner_2 /DEST pdfmark
2814(returns)s
3533(its)s 3814(right)s 4330(parameter)s 5350(modi\207ed)s 6264(so)s
6535(that)s 6958(only)s 7443(the)s 7796(principal)s 8706(ro)s 6(w)k
@@ -12751,7 +12751,7 @@ grestore
end end restore
grestore
-[ /Dest /LOUT19_4226_pre_oner_3 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_oner_3 /DEST pdfmark
220 fnt2
0 9851(@OneCol)m 240 fnt1 1016 9854(has)m 1391(the)s 1744(same)s
2296(ef)s 6(fect)k 2897(on)s 3198(columns)s 4065(as)s
@@ -12766,7 +12766,7 @@ grestore
240 fnt1
480 8296(The)m 220 fnt2 910 8293(@Wide)m 240 fnt1 1687 8296(symbol)m
-[ /Dest /LOUT19_4226_pre_wide_1 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_wide_1 /DEST pdfmark
2450(returns)s 3167(its)s 3446(right)s 3960(parameter)s 4977(modi\207ed)s
5888(to)s 6130(ha)s 4(v)k 3(e)k 6634(the)s
6985(width)s 7590(gi)s 6(v)k 3(en)k 8173(by)s
@@ -12793,7 +12793,7 @@ grestore
4595(sense)s 5184(for)s 5537(an)s 5835(object)s 6494(of)s
6780(\207x)s 3(ed)k 7329(width)s 7946(to)s 8200(ha)s 4(v)k 3(e)k
8716(tw)s 2(o)k 0 6856(column)m 775(marks.)s
-[ /Dest /LOUT19_4226_pre_wide_2 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_wide_2 /DEST pdfmark
552 6482(The)m
220 fnt2 993 6479(@High)m 240 fnt1 1725 6482(symbol)m 2498(similarly)s
3413(ensures)s 4194(that)s 4625(its)s 4914(result)s 5517(is)s
@@ -12809,7 +12809,7 @@ grestore
[ /Dest /LOUThshift /DEST pdfmark
240 fnt1 480 4681(The)m 220 fnt2
917 4678(@HShift)m 240 fnt1 1802 4681(symbol)m
-[ /Dest /LOUT19_4226_pre_hshi_1 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_hshi_1 /DEST pdfmark
2572(returns)s 3296(its)s
3582(right)s 4103(parameter)s 5127(with)s 5619(principal)s 6533(mark)s
7095(shifted)s 7813(as)s 8073(prescribed)s 0 4393(by)m 294(its)s
@@ -12852,7 +12852,7 @@ grestore
220 fnt2 6294 1422(0.5w @HShift)m 240 fnt1 7699 1425(will)m 8132(centre)s
8778(the)s 0 1137(principal)m 904(column)s 1679(mark)s 2231(within)s
2899(the)s 3247(right)s 3758(parameter)s 13(.)k
-[ /Dest /LOUT19_4226_pre_hshi_2 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_hshi_2 /DEST pdfmark
548 763(The)m
220 fnt2 984 760(@VShift)m 240 fnt1 1855 763(symbol)m 2624(is)s
2842(similar)s 3572(e)s 3(xcept)k 4261(that)s 4688(it)s
@@ -12929,11 +12929,11 @@ grestore
2295(@VExpand)s
[ /Dest /LOUThexpand /DEST pdfmark
-[ /Dest /LOUT19_4226_pre_hexp_1 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_hexp_1 /DEST pdfmark
-[ /Dest /LOUT19_4226_pre_hexp_2 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_hexp_2 /DEST pdfmark
-[ /Dest /LOUT19_4226_pre_hexp_3 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_hexp_3 /DEST pdfmark
240 fnt1 558 12726(The)m 220 fnt2 1004 12723(@HExpand)m
240 fnt1 2195 12726(symbol)m 2973(causes)s 3666(its)s 3961(right)s
4490(parameter)s 5522(to)s 5779(be)s 6079(as)s 6348(wide)s
@@ -12977,11 +12977,11 @@ grestore
[ /Dest /LOUThcontract /DEST pdfmark
-[ /Dest /LOUT19_4226_pre_hcon_1 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_hcon_1 /DEST pdfmark
-[ /Dest /LOUT19_4226_pre_hcon_2 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_hcon_2 /DEST pdfmark
-[ /Dest /LOUT19_4226_pre_hcon_3 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_hcon_3 /DEST pdfmark
240 fnt1 542 7544(The)m 220 fnt2 972 7541(@HContr)m 2(act)k
240 fnt1 2239 7544(symbol)m 3001(reduces)s 3784(the)s 4135(size)s
4564(of)s 4837(its)s 5116(right)s 5629(parameter)s 6645(to)s
@@ -13001,9 +13001,9 @@ grestore
2305(@VLimited)s
[ /Dest /LOUThlimited /DEST pdfmark
-[ /Dest /LOUT19_4226_pre_hlim_1 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_hlim_1 /DEST pdfmark
-[ /Dest /LOUT19_4226_pre_hlim_2 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_hlim_2 /DEST pdfmark
240 fnt1 579 3895(The)m 220 fnt2 1047 3892(@HLimited)m
240 fnt1 2221 3895(symbol)m 3021(limits)s 3654(the)s 4042(width)s
4684(a)s 4(v)k 6(ailable)k 5631(to)s 5910(recursi)s 6(v)k 3(e)k
@@ -13030,13 +13030,13 @@ grestore
[ /Dest /LOUThadjust /DEST pdfmark
-[ /Dest /LOUT19_4226_pre_hadj_1 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_hadj_1 /DEST pdfmark
-[ /Dest /LOUT19_4226_pre_hadj_2 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_hadj_2 /DEST pdfmark
-[ /Dest /LOUT19_4226_pre_hadj_3 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_hadj_3 /DEST pdfmark
-[ /Dest /LOUT19_4226_pre_hadj_4 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_hadj_4 /DEST pdfmark
240 fnt1 551 812(These)m 1189(symbols)s 2050(spread)s 2743(their)s
3252(right)s 3774(parameter)s 4800(apart)s 5348(until)s 5852(it)s
6056(occupies)s 6955(all)s 7260(the)s 7619(space)s 8218(a)s 4(v)k 6(ailable)k
@@ -13135,11 +13135,11 @@ grestore
[ /Dest /LOUThscale /DEST pdfmark
-[ /Dest /LOUT19_4226_pre_hsca_1 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_hsca_1 /DEST pdfmark
-[ /Dest /LOUT19_4226_pre_hsca_2 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_hsca_2 /DEST pdfmark
-[ /Dest /LOUT19_4226_pre_hsca_3 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_hsca_3 /DEST pdfmark
220 fnt2 538 8759(@HScale)m 240 fnt1 1516 8762(causes)m 2189(its)s
2462(right)s 2970(parameter)s 3982(to)s 4218(e)s 3(xpand)k
4962(to)s 5199(\207ll)s 5516(the)s 5861(space)s 6446(a)s 4(v)k 6(ailable,)k
@@ -13184,9 +13184,9 @@ grestore
[ /Dest /LOUThcover /DEST pdfmark
-[ /Dest /LOUT19_4226_pre_cove_1 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_cove_1 /DEST pdfmark
-[ /Dest /LOUT19_4226_pre_cove_2 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_cove_2 /DEST pdfmark
240 fnt1 529 2010(The)m 220 fnt2 946 2007(@VCo)m 3(v)k 5(er)k
240 fnt1 1941 2010(symbol)m 2690(v)s 3(ertically)k 3631(scales)s
4241(its)s 4506(right)s 5006(parameter)s 6009(so)s 6264(that)s
@@ -13353,15 +13353,15 @@ grestore
6857(@VSpan)s
[ /Dest /LOUThspan /DEST pdfmark
-[ /Dest /LOUT19_4226_pre_span_1 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_span_1 /DEST pdfmark
-[ /Dest /LOUT19_4226_pre_span_2 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_span_2 /DEST pdfmark
-[ /Dest /LOUT19_4226_pre_span_3 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_span_3 /DEST pdfmark
-[ /Dest /LOUT19_4226_pre_span_4 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_span_4 /DEST pdfmark
-[ /Dest /LOUT19_4226_pre_span_5 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_span_5 /DEST pdfmark
240 fnt1 556 5810(These)m 1199(symbols)s 2065(w)s 2(ork)k
2632(together)s 3492(to)s 3747(produce)s 4591(spanning)s 5525(columns)s
6403(and)s 6824(ro)s 6(ws)k 7350(in)s 7610(a)s
@@ -13527,7 +13527,7 @@ grestore
0 8012(3.21.)m 591(@Scale)s
[ /Dest /LOUTscale /DEST pdfmark
-[ /Dest /LOUT19_4226_pre_scal_1 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_scal_1 /DEST pdfmark
240 fnt1 588 7580(This)m 1112(symbol)s
1920(geometrically)s 3335(scales)s 4004(its)s 4328(right)s 4887(parameter)s
5949(by)s 6291(the)s 6687(scale)s 7268(f)s 2(actor)k
@@ -13643,9 +13643,9 @@ grestore
0 12169(3.22.)m 591(@Rotate)s
[ /Dest /LOUTrotate /DEST pdfmark
-[ /Dest /LOUT19_4226_pre_rota_1 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_rota_1 /DEST pdfmark
-[ /Dest /LOUT19_4226_pre_rota_2 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_rota_2 /DEST pdfmark
240 fnt1 542 11737(The)m 220 fnt2
973 11734(@Rotate)m 240 fnt1 1897 11737(symbol)m 2660(will)s 3089(rotate)s
3691(its)s 3970(right)s 4484(parameter)s 5501(counterclockwise)s 7233(an)s
@@ -13781,7 +13781,7 @@ grestore
[ /Dest /LOUTbackground /DEST pdfmark
-[ /Dest /LOUT19_4226_pre_back_1 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_back_1 /DEST pdfmark
240 fnt1 577 1198(The)m 220 fnt2 1042 1195(@Bac)m 4(kg)k 2(round)k
240 fnt1 2515 1198(symbol)m 3312(will)s 3775(print)s 4323(its)s
4637(left)s 5051(parameter)s 6102(in)s 6382(the)s 6767(background)s
@@ -13853,7 +13853,7 @@ grestore
[ /Dest /LOUTkernshrink /DEST pdfmark
-[ /Dest /LOUT19_4226_pre_kshr_1 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_kshr_1 /DEST pdfmark
240 fnt1 541 12771(This)m 1018(symbol)s 1779(returns)s 2495(its)s
2772(right)s 3284(parameter)s 4300(unchanged)s 5397(in)s 5641(appearance)s
6774(b)s 4(ut)k 7137(occup)s 2(ying)k 8187(a)s
@@ -13897,11 +13897,11 @@ grestore
3288(@Meld)s
[ /Dest /LOUTrump /DEST pdfmark
-[ /Dest /LOUT19_4226_pre_rump_1 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_rump_1 /DEST pdfmark
-[ /Dest /LOUT19_4226_pre_rump_2 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_rump_2 /DEST pdfmark
-[ /Dest /LOUT19_4226_pre_rump_3 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_rump_3 /DEST pdfmark
240 fnt1 540 6932(The)m 220 fnt2 968 6929(@Common)m
240 fnt1 2127 6932(and)m 220 fnt2 2531 6929(@Rump)m 240 fnt1
3391 6932(symbols)m 4240(compare)s 5119(tw)s 2(o)k 5529(paragraph)s
@@ -14181,7 +14181,7 @@ grestore
[ /Dest /LOUTinsert /DEST pdfmark
-[ /Dest /LOUT19_4226_pre_inse_1 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_inse_1 /DEST pdfmark
240 fnt1 541 12771(The)m 220 fnt2 970 12768(@Inser)m -8(t)k
240 fnt1 1808 12771(symbol)m 2569(inserts)s 3245(its)s 3522(left)s
3901(parameter)s 4916(at)s 5149(the)s 5499(be)s 3(ginning)k
@@ -14207,7 +14207,7 @@ grestore
1596(caption.)s 240 fnt5 0 8462(3.27.)m 591(@OneOf)s
[ /Dest /LOUToneof /DEST pdfmark
-[ /Dest /LOUT19_4226_pre_oneo_1 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_oneo_1 /DEST pdfmark
240 fnt1
534 8030(The)m 220 fnt2 956 8027(@OneOf)m 240 fnt1 1877 8030(symbol)m
2631(returns)s 3339(one)s 3734(of)s 3999(the)s 4341(sequence)s
@@ -14334,7 +14334,7 @@ grestore
240 fnt5 0 7485(3.28.)m 591(@Next)s
[ /Dest /LOUTnext /DEST pdfmark
-[ /Dest /LOUT19_4226_pre_next_1 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_next_1 /DEST pdfmark
240 fnt1 535 7053(The)m
220 fnt2 957 7050(@Ne)m 6(xt)k 240 fnt1 1676 7053(symbol)m
2430(returns)s 3138(its)s 3409(parameter)s 4417(plus)s 4861(one.)s
@@ -14356,9 +14356,9 @@ grestore
240 fnt5 0 4449(3.29.)m 591(@Case)s
[ /Dest /LOUTcase /DEST pdfmark
-[ /Dest /LOUT19_4226_pre_case_1 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_case_1 /DEST pdfmark
-[ /Dest /LOUT19_4226_pre_case_2 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_case_2 /DEST pdfmark
240 fnt1 540 4017(The)m
220 fnt2 968 4014(@Case)m 240 fnt1 1755 4017(symbol)m 2515(selects)s
3202(its)s 3478(result)s 4068(from)s 4592(a)s 4758(list)s
@@ -14495,7 +14495,7 @@ grestore
[ /Dest /LOUTmoment /DEST pdfmark
240 fnt1 480 7069(The)m 908(prede\207ned)s
1976(symbol)s 220 fnt2 2736 7066(@Moment)m
-[ /Dest /LOUT19_4226_pre_mome_1 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_mome_1 /DEST pdfmark
240 fnt1 3808 7069(has)m
4178(the)s 4526(follo)s 6(wing)k 5503(de\207nition:)s 220 fnt2
480 6568(def @Moment)m 480 6280( named @T)m 26(ag {})k 480 5992( named @Second {})m 480 5704( named @Min)m 2(ute {})k
@@ -14593,7 +14593,7 @@ grestore
240 fnt1 2482 10265(an)m 2784(implementation-dependent)s 5427(number)s 6237(that)s
6675(may)s 7160(encode)s 7914(the)s 8282(daylight)s 2482 9977(sa)m 4(ving)k
3156(currently)s 4072(in)s 4315(ef)s 6(fect)k
-[ /Dest /LOUT19_4226_pre_mome_2 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_mome_2 /DEST pdfmark
0 9416(Unix)m
519(manual)s 1262(entries)s 1934(state)s 2411(that)s 220 fnt2
2814 9413(@Second)m 240 fnt1 3813 9416(can)m 4186(be)s 4453(as)s
@@ -14604,13 +14604,13 @@ grestore
5908(F)s 3(or)k 6297(e)s 3(xample,)k 220 fnt2
480 8627(@Moment&&no)m 3(w @Open { @Da)k 6(y {@Months&&@Month}, @Centur)k -6(y{@Y)k 30(ear} })k
240 fnt1 0 8129(produces)m 915(something)s 1965(lik)s 2(e)k
-2377(20)s 2672(December)s 9(,)k 3752(2002)s 4286(gi)s 6(v)k 3(en)k
-4866(a)s 5032(suitable)s 5831(database)s 6710(of)s 6981(months.)s
+2377(14)s 2671(August,)s 3470(2003)s 3994(gi)s 6(v)k 3(en)k
+4574(a)s 4740(suitable)s 5539(database)s 6418(of)s 6689(months.)s
240 fnt5 0 7336(3.31.)m 591(@Null)s
[ /Dest /LOUTnull /DEST pdfmark
240 fnt1 480 6904(This)m
979(symbol)s
-[ /Dest /LOUT19_4226_pre_null_1 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_null_1 /DEST pdfmark
1762(pro)s 3(vides)k 2657(a)s 2846(con)s 9(v)k 3(enient)k
3967(w)s 2(ay)k 4441(to)s 4703(remo)s 3(v)k 3(e)k
5493(unw)s 2(anted)k 6503(concatenation)s 7911(symbols.)s 8896(If)s
@@ -14639,9 +14639,9 @@ grestore
[ /Dest /LOUTgalley /DEST pdfmark
240 fnt1 480 2157(These)m
1131(symbols)s
-[ /Dest /LOUT19_4226_pre_gall_1 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_gall_1 /DEST pdfmark
-[ /Dest /LOUT19_4226_pre_gall_2 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_gall_2 /DEST pdfmark
2004(both)s 2511(act)s 2874(as)s 3148(a)s
3338(placeholder)s 4538(for)s 4900(a)s 5090(g)s 1(alle)k 3(y)k 15(.)k
5844(That)s 6366(is,)s 6656(the)s 3(y)k 7144(may)s
@@ -14724,7 +14724,7 @@ grestore
480 12438(Informally)m 15(,)k 1597(header)s 2298(components)s 3510(are)s
3861(running)s 4663(headers)s 5448(that)s 5871(appear)s 6572(at)s
6808(the)s
-[ /Dest /LOUT19_4226_pre_head_1 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_head_1 /DEST pdfmark
7160(top)s 7523(of)s 7798(the)s 8151(displayed)s
0 12150(se)m 3(gments)k 936(of)s 1204(g)s 1(alle)k 3(ys.)k
2039(The)s 3(y)k 2579(are)s 2923(used,)s 3467(for)s
@@ -14833,7 +14833,7 @@ grestore
240 fnt1 0 2522(That)m 478(is,)s 220 fnt2 723 2519(@BeginHeaderComponent)m
240 fnt1 3394 2522(occup)m 2(ying)k 4422(an)s 4684(entire)s
-[ /Dest /LOUT19_4226_pre_head_2 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_head_2 /DEST pdfmark
5263(component)s 6366(appends)s 7181(a)s 7326(header)s 8002(component)s
0 2234(to)m 255(the)s 619(sequence)s 1568(of)s 1856(the)s
2220(follo)s 6(wing)k 3213(ordinary)s 4093(components.)s 5431(When)s
@@ -14931,7 +14931,7 @@ grestore
0 11226(That)m 520(is,)s 220 fnt2 809 11223(@EndHeaderComponent)m 240 fnt1
3353 11226(\(which)m 4097(has)s 4490(no)s 4805(parameters\))s 6003(occup)s 2(ying)k
7074(an)s
-[ /Dest /LOUT19_4226_pre_head_3 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_head_3 /DEST pdfmark
7380(entire)s 8002(component)s 0 10938(deletes)m 722(the)s
1078(last)s 1477(header)s 2182(component.)s 3418(If)s 3656(the)s
4012(sequence)s 4953(is)s 5171(empty)s 15(,)k 5869(a)s
@@ -14956,7 +14956,7 @@ grestore
167 fnt4 1386 8249(+)m 1498(1)s 220 fnt2 0 7795(@SetHeaderComponent)m
240 fnt1 2461 7798(clears)m 3068(an)s 3(y)k 3465(current)s
4201(header)s 4898(components)s
-[ /Dest /LOUT19_4226_pre_head_4 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_head_4 /DEST pdfmark
6107(and)s 6511(replaces)s 7344(them)s
7882(by)s 8176(one)s 8578(of)s 8850(its)s 0 7510(o)m 6(wn.)k
571(Finally)s 1302(we)s 1637(ha)s 4(v)k 3(e)k
@@ -14972,7 +14972,7 @@ grestore
1216(clears)s 1813(an)s 3(y)k 2200(header)s 2886(components,)s
4140(lea)s 4(ving)k 4883(the)s 5221(sequence)s 6143(empty)s 15(.)k
6880(These)s
-[ /Dest /LOUT19_4226_pre_head_5 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_head_5 /DEST pdfmark
7497(last)s 7878(tw)s 2(o)k 8277(symbols)s
0 5028(combine)m 880(less)s 1288(cleanly)s 2031(than)s 2499(the)s
2846(\207rst)s 3276(tw)s 2(o)k 3685(\(either)s 4366(will)s
@@ -15023,7 +15023,7 @@ grestore
[ /Dest /LOUTnotrevealed /DEST pdfmark
240 fnt1 480 185(The)m 220 fnt2 938 182(@NotRe)m 6(v)k 5(ealed)k
240 fnt1 2495 185(symbol)m
-[ /Dest /LOUT19_4226_pre_notr_1 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_notr_1 /DEST pdfmark
3285(e)s 3(x)k 3(erts)k
3931(\207ne)s 4376(control)s 5138(o)s 3(v)k 3(er)k
5647(the)s 6026(process)s 6824(of)s 7125(e)s 3(xpanding)k
@@ -15310,7 +15310,7 @@ grestore
[ /Dest /LOUTtagged /DEST pdfmark
240 fnt1 480 7275(The)m 220 fnt2 924 7272(@T)m 26(agged)k
-[ /Dest /LOUT19_4226_pre_tagg_1 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_tagg_1 /DEST pdfmark
240 fnt1 1929 7275(symbol)m 2705(tak)s 2(es)k 3261(a)s
3444(cross)s 4002(reference)s 4961(for)s 5315(its)s 5607(left)s
6001(parameter)s 7031(and)s 7451(an)s 7750(object,)s 8458(whose)s
@@ -15336,7 +15336,7 @@ grestore
[ /Dest /LOUTopen /DEST pdfmark
240 fnt1 480 4853(The)m 220 fnt2 904 4850(@Open)m 240 fnt1
1706 4853(symbol)m
-[ /Dest /LOUT19_4226_pre_open_1 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_open_1 /DEST pdfmark
2462(tak)s 2(es)k 2998(a)s 3159(cross)s
3697(reference)s 4636(or)s 4891(symbol)s 5647(in)s 9(v)k 4(ocation)k
6696(for)s 7030(its)s 7302(left)s 7675(parameter)s 9(,)k
@@ -15363,7 +15363,7 @@ grestore
7268 3413(will)m 7695(be)s 7978(una)s 4(v)k 6(ailable)k
0 3125(within)m 668(the)s 220 fnt2 1016 3122(@Open)m 240 fnt1
1762 3125(.)m
-[ /Dest /LOUT19_4226_pre_open_2 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_open_2 /DEST pdfmark
538 2751(The)m 220 fnt2 963 2748(@Use)m 240 fnt1
1625 2751(symbol)m 2382(is)s 2589(an)s 220 fnt2 2869 2748(@Open)m
240 fnt1 3672 2751(symbol)m 4429(in)s 4669(a)s 4832(dif)s 6(ferent)k
@@ -15453,9 +15453,9 @@ grestore
240 fnt1 480 9426(The)m
949(tw)s 2(o)k 1400(symbols)s 220 fnt2 2290 9423(@LinkSource)m
240 fnt1 3703 9426(and)m 220 fnt2 4148 9423(@LinkDest)m
-[ /Dest /LOUT19_4226_pre_link_1 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_link_1 /DEST pdfmark
-[ /Dest /LOUT19_4226_pre_link_2 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_link_2 /DEST pdfmark
240 fnt1
5322 9426(w)m 2(ork)k 5914(together)s 6798(to)s 7078(create)s
240 fnt6 7744 9428(cr)m 10(oss)k 8335(links)s 240 fnt1
@@ -15673,7 +15673,7 @@ grestore
240 fnt5 0 4448(3.39.)m 591(@Database and @SysDatabase)s
[ /Dest /LOUTdatabase /DEST pdfmark
-[ /Dest /LOUT19_4226_pre_data_1 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_data_1 /DEST pdfmark
240 fnt1 529 3971(The)m
220 fnt2 945 3968(@Database)m 240 fnt1 2148 3971(symbol)m 2896(is)s
3095(used)s 3580(to)s 3808(declare)s 4541(the)s 4877(e)s 3(xistence)k
@@ -15712,7 +15712,7 @@ grestore
7875(in)s 8118(braces.)s 480 582(Basser)m 1198(Lout)s 1732(constructs)s
2773(an)s 240 fnt6 3078 584(inde)m 4(x)k 3674(\207le)s
240 fnt1 3959 582(,)m
-[ /Dest /LOUT19_4226_pre_data_2 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_data_2 /DEST pdfmark
4087(which)s 4751(in)s 5016(this)s
5433(e)s 3(xample)k 6318(is)s 6550(called)s 220 fnt2
7199 579(standard.li)m 240 fnt1 8196 582(,)m 8325(the)s 8695(\207rst)s
@@ -15790,14 +15790,14 @@ grestore
0 11967(standard)m 868(places.)s 1629(T)s 19(o)k 1929(search)s
2596(the)s 2944(standard)s 3812(places)s 4460(only)s 15(,)k
4978(use)s
-[ /Dest /LOUT19_4226_pre_data_3 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_data_3 /DEST pdfmark
220 fnt2 5353 11964(@SysDatabase)m 240 fnt1 6873 11967(.)m
240 fnt5 0 11174(3.40.)m 591(@Graphic)s
[ /Dest /LOUTgraphic /DEST pdfmark
-[ /Dest /LOUT19_4226_pre_grap_1 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_grap_1 /DEST pdfmark
-[ /Dest /LOUT19_4226_pre_grap_2 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_grap_2 /DEST pdfmark
240 fnt1 556 10697(Lout)m
1084(does)s 1590(not)s 1972(pro)s 3(vide)k 2772(the)s
3136(v)s 6(ast)k 3592(repertoire)s 4591(of)s 4878(graphical)s
@@ -15808,7 +15808,7 @@ grestore
7734(that)s 8144(does)s 8625(ha)s 4(v)k 3(e)k
0 10121(these)m 547(features,)s 1409(via)s 1761(its)s 220 fnt2
2037 10118(@Gr)m 2(aphic)k 240 fnt1 3081 10121(symbol:)m
-[ /Dest /LOUT19_4226_pre_grap_3 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_grap_3 /DEST pdfmark
220 fnt2
480 9623({ 0 0 mo)m 3(v)k 5(eto)k 480 9335( 0 ysiz)m 3(e lineto)k
480 9047( xsiz)m 3(e ysiz)k 3(e lineto)k 480 8759( xsiz)m 3(e 0 lineto)k
@@ -16270,7 +16270,7 @@ grestore
[ /Rect [6410 5262 6524 5424] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUTkingston1995lout_user /ANN pdfmark
6410(4)s 6524(,)s 6652(Chapter)s
7490(9],)s
-[ /Dest /LOUT19_4226_pre_grap_4 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_grap_4 /DEST pdfmark
7817(to)s 8077(be)s 8380(sure)s 8855(of)s
0 4974(a)m 4(v)k 4(oiding)k 883(these)s 1430(errors.)s
480 4600(PostScript)m 1543(e)s 3(xperts)k 2302(may)s 2789(\207nd)s
@@ -16378,7 +16378,7 @@ grestore
0 11836(3.41.)m 591(@PlainGraphic)s
[ /Dest /LOUTplaingraphic /DEST pdfmark
-[ /Dest /LOUT19_4226_pre_plai_1 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_plai_1 /DEST pdfmark
240 fnt1 567 11359(The)m 220 fnt2
1023 11356(@PlainGr)m 2(aphic)k 240 fnt1 2580 11359(symbol)m 3368(is)s
3606(a)s 4(v)k 3(ery)k 4211(rudimentary)s 5461(analogue)s
@@ -16400,11 +16400,11 @@ grestore
2932(@SysIncludeGraphic)s
[ /Dest /LOUTincludegraphic /DEST pdfmark
-[ /Dest /LOUT19_4226_pre_incg_1 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_incg_1 /DEST pdfmark
-[ /Dest /LOUT19_4226_pre_incg_2 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_incg_2 /DEST pdfmark
-[ /Dest /LOUT19_4226_pre_incg_3 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_incg_3 /DEST pdfmark
240 fnt1 540 8217(These)m 1167(symbols)s 2016(instruct)s
2792(Lout)s 3304(to)s 3543(incorporate)s 4687(a)s 4853(separately)s
5875(created)s 6622(illustration:)s 220 fnt2 480 7716(@IncludeGr)m 2(aphic "m)k 3(ypor)k -8(tr)k 2(ait.eps")k
@@ -16465,11 +16465,11 @@ grestore
0 2135(3.43.)m 591(@IncludeGraphicRepeated)s 3445(and)s 3886(@SysIncludeGraphicRepeated)s
[ /Dest /LOUTincludegraphicrepeated /DEST pdfmark
-[ /Dest /LOUT19_4226_pre_incr_1 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_incr_1 /DEST pdfmark
-[ /Dest /LOUT19_4226_pre_incr_2 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_incr_2 /DEST pdfmark
-[ /Dest /LOUT19_4226_pre_incr_3 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_incr_3 /DEST pdfmark
240 fnt1
548 1658(These)m 1183(symbols,)s 2097(which)s 2747(are)s 3103(allo)s 6(wed)k
3920(only)s 4409(at)s 4649(the)s 5006(start)s 5484(of)s
@@ -16613,11 +16613,11 @@ grestore
[ /Dest /LOUTprependgraphic /DEST pdfmark
-[ /Dest /LOUT19_4226_pre_prep_1 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_prep_1 /DEST pdfmark
-[ /Dest /LOUT19_4226_pre_prep_2 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_prep_2 /DEST pdfmark
-[ /Dest /LOUT19_4226_pre_prep_3 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_prep_3 /DEST pdfmark
240 fnt1 582 5967(These)m 1252(symbols,)s 2200(which)s 2885(may)s
3394(appear)s 4134(an)s 3(ywhere)k 5160(that)s 5621(a)s
5830(de\207nition)s 6847(or)s 220 fnt2 7149 5964(@Use)m 240 fnt1
@@ -16664,9 +16664,9 @@ grestore
591(@Include and @SysInclude)s
[ /Dest /LOUTinclude /DEST pdfmark
-[ /Dest /LOUT19_4226_pre_incl_1 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_incl_1 /DEST pdfmark
-[ /Dest /LOUT19_4226_pre_incl_2 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_incl_2 /DEST pdfmark
240 fnt1 562 731(These)m 1212(symbols)s 2083(instruct)s
2882(Lout)s 3417(to)s 3678(temporarily)s 4869(switch)s 5572(to)s
5834(reading)s 6627(another)s 7426(\207le,)s 7861(whose)s 8552(name)s
@@ -16798,7 +16798,7 @@ grestore
5172(ends)s
[ /Dest /LOUTbackend /DEST pdfmark
-[ /Dest /LOUT19_4226_pre_bend_1 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_bend_1 /DEST pdfmark
240 fnt1 547 5416(The)m 220 fnt2 983 5413(@Bac)m 4(kEnd)k
240 fnt1 2136 5416(symbol,)m 2955(which)s 3605(tak)s 2(es)k
4153(no)s 4454(parameters,)s 5615(has)s 5993(for)s 6339(its)s
@@ -16967,9 +16967,9 @@ grestore
[ /Dest /LOUTverbatim /DEST pdfmark
-[ /Dest /LOUT19_4226_pre_verb_1 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_verb_1 /DEST pdfmark
-[ /Dest /LOUT19_4226_pre_verb_2 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_verb_2 /DEST pdfmark
240 fnt1 543 5842(These)m 1173(symbols)s 2026(instruct)s 2805(Lout)s
3321(to)s 3563(read)s 4036(the)s 4387(follo)s 6(wing)k
5367(te)s 3(xt)k 5786(\(enclosed)s 6763(in)s 7010(braces\))s
@@ -17063,7 +17063,7 @@ grestore
[ /Dest /LOUTunderline /DEST pdfmark
-[ /Dest /LOUT19_4226_pre_unde_1 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_unde_1 /DEST pdfmark
240 fnt1 533 12771(The)m 220 fnt2 953 12768(@Under)m -3(line)k
240 fnt1 2160 12771(symbol)m 2912(underlines)s 3951(its)s 4219(right)s
4722(parameter)s 9(,)k 5767(b)s 4(ut)k 6121(only)s
@@ -17118,7 +17118,7 @@ grestore
[ /Dest /LOUTpagelabel /DEST pdfmark
-[ /Dest /LOUT19_4226_pre_page_1 /DEST pdfmark
+[ /Dest /LOUT19_4244_pre_page_1 /DEST pdfmark
240 fnt1 533 5782(The)m 220 fnt2 953 5779(@P)m 8(ageLabel)k
240 fnt1 2255 5782(symbol)m 3007(associates)s 4005(a)s 4164(page)s
4664(label)s 5176(in)s 5411(the)s 5751(PostScript)s 6786(output)s
@@ -17229,7 +17229,7 @@ grestore
240 fnt1 480 8654(In)m 751(this)s 1162(section)s
1911(we)s 2261(describe)s 3128(the)s 3491(design)s 4189(and)s
4608(implementation)s 6180(of)s 6466(the)s 6829(Eq)s
-[ /Dest /LOUT19_4226_exa_equa_1 /DEST pdfmark
+[ /Dest /LOUT19_4244_exa_equa_1 /DEST pdfmark
7168(equation)s
8065(formatting)s 0 8366(package.)m 976(Equation)s 1925(formatting)s 3014(mak)s 2(es)k
3702(a)s 3896(natural)s 4642(\207rst)s 5101(e)s 3(xample,)k
@@ -17263,9 +17263,9 @@ grestore
[ /Rect [5571 5890 5685 6052] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUTkernighan1975eqn /ANN pdfmark
5571(2)s 5685(]:)s
-[ /Dest /LOUT19_4226_exa_equa_2 /DEST pdfmark
+[ /Dest /LOUT19_4244_exa_equa_2 /DEST pdfmark
-[ /Dest /LOUT19_4226_exa_equa_3 /DEST pdfmark
+[ /Dest /LOUT19_4244_exa_equa_3 /DEST pdfmark
220 fnt2 480 5389(@Eq { { x sup 2 + y sup 2 } o)m 3(v)k 5(er 2 })k 240 fnt1
0 4891(The)m 428(result)s 1018(is)s 167 fnt4 586 4488(2)m
240 fnt6 480 4428(x)m 240 fnt4 737 4420(+)m 167 fnt4
@@ -17278,7 +17278,7 @@ grestore
240 fnt1 0 3591(In)m 256(outline,)s 1027(the)s 1375(de\207nition)s
2349(of)s 2620(the)s 220 fnt2 2968 3588(@Eq)m 240 fnt1
3506 3591(symbol)m 4266(is)s
-[ /Dest /LOUT19_4226_exa_equa_4 /DEST pdfmark
+[ /Dest /LOUT19_4244_exa_equa_4 /DEST pdfmark
220 fnt2 480 3094(e)m 6(xpor)k -8(t sup o)k 3(v)k 5(er "+" "2" "<=")k
480 2806(def @Eq)m 480 2518( body @Body)m 480 2230({)m 480 1942( def sup precedence 60 left x r)m -3(ight y { ...)k 13( })k
480 1654( def o)m 3(v)k 5(er precedence 54 left x r)k -3(ight y { ...)k 13( })k
@@ -17377,7 +17377,7 @@ grestore
6428(e)s 3(xample,)k 7356(the)s 7719(superscripting)s 0 9085(symbol)m
760(is)s 970(de\207ned)s 1733(as)s 1983(follo)s 6(ws:)k
-[ /Dest /LOUT19_4226_exa_equa_5 /DEST pdfmark
+[ /Dest /LOUT19_4244_exa_equa_5 /DEST pdfmark
220 fnt2 480 8586(def sup)m 480 8298( precedence 60)m 480 8010( associativity left)m 480 7722( left x)m
480 7434( named gap { @SupGap })m 480 7146( r)m -3(ight y)k 480 6858({)m 480 6570( @HContr)m 2(act @VContr)k 2(act {)k
480 6282( | @Smaller y)m 480 5994( ^/gap x)m 480 5706( })m 480 5418(})m 240 fnt1
@@ -17404,7 +17404,7 @@ grestore
6457(and)s 6865(assists)s 7529(when)s 8109(tuning)s 8778(the)s
0 3484(v)m 6(alues.)k 769(Here)s 1289(is)s 1499(another)s
2276(characteristic)s 3600(de\207nition:)s
-[ /Dest /LOUT19_4226_exa_equa_6 /DEST pdfmark
+[ /Dest /LOUT19_4244_exa_equa_6 /DEST pdfmark
220 fnt2 480 3034(def o)m 3(v)k 5(er)k
480 2746( precedence 54)m 480 2458( associativity left)m 480 2170( left x)m 480 1882( named gap { 0.2f })m 480 1594( r)m -3(ight y)k
480 1306({)m 480 1018( @HContr)m 2(act @VContr)k 2(act {)k 480 730( |0.5r)m -8(t @OneCol x)k
@@ -17485,7 +17485,7 @@ grestore
240 fnt1 3690 11564(is)m 3900(a)s 4066(horizontal)s 5090(line)s
5504(of)s 5775(the)s 6123(width)s 6725(of)s 6996(the)s
7344(column:)s
-[ /Dest /LOUT19_4226_exa_equa_7 /DEST pdfmark
+[ /Dest /LOUT19_4244_exa_equa_7 /DEST pdfmark
220 fnt2 480 11063(def @HLine)m 480 10775( named line { "0.05 ft setline)m 4(width" })k
480 10487({ )m 480 10199( { "0 0 mo)m 3(v)k 5(eto xsiz)k 3(e 0 lineto" line "strok)k 4(e" } @Gr)k 2(aphic {})k
480 9911(})m 240 fnt1 0 9417(Here)m 520(we)s 855(are)s
@@ -17500,7 +17500,7 @@ grestore
[ /Rect [7208 8752 7314 8920] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUTknuth1984tex /ANN pdfmark
7208(5)s
7314(].)s
-[ /Dest /LOUT19_4226_exa_equa_8 /DEST pdfmark
+[ /Dest /LOUT19_4244_exa_equa_8 /DEST pdfmark
480 8381(Some)m 1090(symbols,)s 2004(such)s 2509(as)s
240 fnt4 2768 8375(\243)m 240 fnt1 2963 8381(and)m 240 fnt4
3376 8375(\271)m 240 fnt1 3505 8381(,)m 3621(should)s 4327(ha)s 4(v)k 3(e)k
@@ -17555,7 +17555,7 @@ grestore
5364(is)s 5566(described)s 6533(from)s 7050(the)s 7391(user')s 13(s)k
7991(perspecti)s 6(v)k 3(e)k 0 1126(in)m 250(the)s
-[ /Dest /LOUT19_4226_exa_para_1 /DEST pdfmark
+[ /Dest /LOUT19_4244_exa_para_1 /DEST pdfmark
605(User')s 13(s)k 1274(Guide)s 1922([)s
[ /Rect [1993 1126 2107 1288] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUTkingston1995lout_user /ANN pdfmark
1993(4)s
@@ -17628,7 +17628,7 @@ grestore
480 13205(The)m 939(symbols)s 1819(used)s 2347(for)s 2716(separating)s
3782(paragraphs)s 4913(and)s 5348(producing)s 6403(displays)s 7269(and)s
-[ /Dest /LOUT19_4226_exa_para_2 /DEST pdfmark
+[ /Dest /LOUT19_4244_exa_para_2 /DEST pdfmark
7704(lists)s 8170(may)s 8667(lack)s 0 12917(the)m 351(e)s 3(xcitement)k
1459(of)s 1733(more)s 2284(e)s 3(xotic)k 2921(features,)s
3786(b)s 4(ut)k 4152(the)s 3(y)k 4618(can)s
@@ -17670,7 +17670,7 @@ grestore
7592(better)s 8195(placed)s 8876(as)s 0 8870(symbols,)m 905(possibly)s
1757(parameters)s 2855(of)s 3126(the)s 3474(enclosing)s 4444(package:)s
220 fnt2 480 8369(def @DocumentLa)m 6(y)k 4(out)k
-[ /Dest /LOUT19_4226_exa_para_3 /DEST pdfmark
+[ /Dest /LOUT19_4244_exa_para_3 /DEST pdfmark
480 8081( named @P)m 8(ar)k 2(aGap { 1.3vx })k
480 7793( named @P)m 8(ar)k 2(aIndent { 2f })k 480 7505( ...)m 480 7217(@Begin)m
480 6641( macro @PP { //@P)m 8(ar)k 2(aGap @P)k 8(ar)k 2(aIndent @Wide &0i })k
@@ -17682,7 +17682,7 @@ grestore
6170(DocumentLayout)s 7905(package.)s 480 4905(A)m 710(display)s 1455(is)s
1665(a)s 1831(table)s 2351(in)s 2594(which)s 3236(the)s
3584(\207rst)s 4015(column)s 4790(is)s 5000(blank:)s
-[ /Dest /LOUT19_4226_exa_para_4 /DEST pdfmark
+[ /Dest /LOUT19_4244_exa_para_4 /DEST pdfmark
240 fnt6
480 4402(pr)m 8(eceding)k 1483(te)s 4(xt)k 220 fnt2
480 4109(//@DispGap |@DispIndent)m 240 fnt6 3183 4114(display)m 220 fnt2 480 3821(//@DispGap)m
@@ -17700,7 +17700,7 @@ grestore
5617(Lout)s 6179(source)s 6908(sho)s 6(wn)k 7635(abo)s 3(v)k 3(e;)k
8363(a)s 8579(more)s 0 1799(appropriate)m 1144(syntax)s 1824(is)s
-[ /Dest /LOUT19_4226_exa_para_5 /DEST pdfmark
+[ /Dest /LOUT19_4244_exa_para_5 /DEST pdfmark
240 fnt6 480 1296(pr)m 8(eceding)k 1483(te)s 4(xt)k
220 fnt2 480 1003(@IndentedDispla)m 6(y {)k 240 fnt6 2514 1008(display)m
220 fnt2 3321 1003(})m 240 fnt6 480 720(following)m 1438(te)s 4(xt)k
@@ -17799,9 +17799,9 @@ grestore
7519 6022(when)m 8094(there)s 8625(is)s 8833(no)s 0 5734(follo)m 6(wing)k
977(te)s 3(xt.)k 480 5360(An)m 858(automatically)s 2240(numbered)s
3283(list)s
-[ /Dest /LOUT19_4226_exa_para_6 /DEST pdfmark
+[ /Dest /LOUT19_4244_exa_para_6 /DEST pdfmark
-[ /Dest /LOUT19_4226_exa_para_7 /DEST pdfmark
+[ /Dest /LOUT19_4244_exa_para_7 /DEST pdfmark
3662(could)s 4280(ha)s 4(v)k 3(e)k
4809(an)s 5121(arbitrarily)s 6156(lar)s 4(ge)k 6713(number)s
7532(of)s 7831(items,)s 8483(so,)s 8832(by)s 0 5072(analogy)m
@@ -17900,7 +17900,7 @@ grestore
7571 12629(.)m 7735(This)s 8212(brings)s 8862(us)s 0 12341(to)m
239(the)s 587(de\207nitions)s 1648(as)s 1898(the)s 3(y)k
2361(appear)s 3058(in)s 3301(DocumentLayout:)s
-[ /Dest /LOUT19_4226_exa_para_8 /DEST pdfmark
+[ /Dest /LOUT19_4244_exa_para_8 /DEST pdfmark
220 fnt2 480 11840(def @ItemPlace { @Galle)m 4(y })k
480 11552(def @ListItem into { @ItemPlace&&preceding })m 480 11264( r)m -3(ight x)k 480 10976({ x })m
[ /Dest /LOUT16_1490_exa_para_1 /DEST pdfmark
@@ -18018,7 +18018,7 @@ grestore
480 11466(macro @P)m 8(arenNumberedList { //@DispGap @Ra)k 4(wP)k 8(arenNumberedList //@DispGap })k 240 fnt1
0 10970(and)m 404(so)s 670(on.)s 480 10596(Lists)m 994(numbered)s
2007(by)s 2300(Roman)s 3047(numerals)s
-[ /Dest /LOUT19_4226_exa_para_9 /DEST pdfmark
+[ /Dest /LOUT19_4244_exa_para_9 /DEST pdfmark
3973(present)s 4721(a)s
4886(problem,)s 5788(because)s 220 fnt2 6600 10593(@Ne)m 6(xt)k
240 fnt1 7322 10596(will)m 7747(not)s 8111(increment)s 0 10308(Roman)m
@@ -18053,9 +18053,9 @@ grestore
[ /Dest /LOUTpagelayout /DEST pdfmark
240 fnt1 480 2608(The)m 921(page)s 1443(layout)s
-[ /Dest /LOUT19_4226_exa_page_1 /DEST pdfmark
+[ /Dest /LOUT19_4244_exa_page_1 /DEST pdfmark
-[ /Dest /LOUT19_4226_exa_page_2 /DEST pdfmark
+[ /Dest /LOUT19_4244_exa_page_2 /DEST pdfmark
2115(de\207nitions)s
3190(gi)s 6(v)k 3(en)k 3783(in)s 4040(Section)s
4828(1.2,)s 5249(although)s 6158(correct,)s 6940(are)s 7301(v)s 3(ery)k
@@ -18082,7 +18082,7 @@ grestore
6017(and)s 6420(refers)s 7012(to)s 7250(the)s 7597(mark)s 2(ed)k
8369(page)s 8876(as)s 220 fnt2 0 503(@P)m 8(ageOf intro)k
240 fnt1 1499 506(else)m 6(where:)k
-[ /Dest /LOUT19_4226_exa_page_3 /DEST pdfmark
+[ /Dest /LOUT19_4244_exa_page_3 /DEST pdfmark
grestore
gsave
@@ -18209,7 +18209,7 @@ grestore
4793(at)s 5015(the)s 5354(foot)s 5790(of)s 6052(the)s
6390(page)s 6889(for)s 7218(footnotes,)s 8205(preceded)s 0 597(by)m
294(a)s 460(short)s 998(horizontal)s 2022(line:)s
-[ /Dest /LOUT19_4226_exa_page_4 /DEST pdfmark
+[ /Dest /LOUT19_4244_exa_page_4 /DEST pdfmark
220 fnt2
480 96(e)m 6(xpor)k -8(t @T)k 26(ag)k
grestore
@@ -18289,7 +18289,7 @@ grestore
1871(pro)s 3(vides)k 2743(a)s 2909(horizontal)s 3933(sequence)s
4866(of)s 5137(one)s 5539(or)s 5798(more)s 6345(columns:)s
-[ /Dest /LOUT19_4226_exa_page_5 /DEST pdfmark
+[ /Dest /LOUT19_4244_exa_page_5 /DEST pdfmark
220 fnt2 480 5015(def @ColList r)m -3(ight col)k 480 4727({)m 480 4439( def @Column)m
480 4151( { @VExpand { @ColPlace //1r)m -8(t @OneRo)k 3(w { //@MidGap @ColF)k 6(ootSect } } })k 480 3575( col @Case {)m
480 3287( Single @Y)m 4(ield @Column)k 480 2999( Doub)m 4(le @Y)k 4(ield { @Doub)k 4(leColWidth @Wide @Column ||@ColGap @ColList col })k
@@ -18314,7 +18314,7 @@ grestore
4385(in)s 4628(a)s 4794(page)s 5302(of)s 5573(\207x)s 3(ed)k
6107(width,)s 6759(height,)s 7464(and)s 7868(mar)s 4(gins:)k
-[ /Dest /LOUT19_4226_exa_page_6 /DEST pdfmark
+[ /Dest /LOUT19_4244_exa_page_6 /DEST pdfmark
grestore
gsave
@@ -18390,7 +18390,7 @@ grestore
3079(de\207ning)s 3917(a)s 4083(typical)s 4788(page)s 5296(of)s
5567(a)s 5733(book)s 6274(or)s 6533(other)s 7084(document:)s
-[ /Dest /LOUT19_4226_exa_page_7 /DEST pdfmark
+[ /Dest /LOUT19_4244_exa_page_7 /DEST pdfmark
220 fnt2 480 9246(def @OneP)m 8(age)k 480 8958( named @Columns {})m 480 8670( named @P)m 8(ageT)k 26(op {})k
480 8382( named @P)m 8(ageF)k 6(oot {})k 480 8094({)m 480 7806( @P)m 8(age {)k
480 7518( @P)m 8(ageT)k 26(op)k 480 7230( //@MidGap @T)m 26(opList)k
@@ -18424,7 +18424,7 @@ grestore
7085(produced.)s 8146(These)s 8779(are)s 0 3194(based)m 603(on)s
900(the)s 220 fnt2 1248 3191(@Runner)m 240 fnt1 2250 3194(symbol:)m
-[ /Dest /LOUT19_4226_exa_page_8 /DEST pdfmark
+[ /Dest /LOUT19_4244_exa_page_8 /DEST pdfmark
220 fnt2 480 2693(e)m 6(xpor)k -8(t @T)k 26(opOdd @T)k 26(opEv)k 5(en @F)k 6(ootOdd @F)k 6(ootEv)k 5(en)k
480 2405(def @Runner)m 480 2117( named @T)m 26(opOdd r)k -3(ight @P)k 8(ageNum { @Null })k
480 1829( named @T)m 26(opEv)k 5(en r)k -3(ight @P)k 8(ageNum { @Null })k
@@ -18512,7 +18512,7 @@ grestore
3872 10391(,)m 3973(whose)s 4635(result)s 5219(is)s 5423(a)s
5583(sequence)s 6510(of)s 6775(pages)s 7365(be)s 3(ginning)k
8367(with)s 8843(an)s 0 10103(odd-numbered)m 1454(page:)s
-[ /Dest /LOUT19_4226_exa_page_9 /DEST pdfmark
+[ /Dest /LOUT19_4244_exa_page_9 /DEST pdfmark
220 fnt2
480 9602(def @OddP)m 8(ageList)k 480 9314( named @Columns {})m 480 9026( r)m -3(ight @P)k 8(ageNum)k
480 8738({)m 480 8450( def @Ev)m 5(enP)k 8(ageList ...)k 480 7874( @P)m 8(ageMar)k -3(k)k 4(er @P)k 8(ageNum)k
@@ -18551,7 +18551,7 @@ grestore
220 fnt2 4428 2683(@OddP)m 8(ageList)k 240 fnt1 5967 2686(in)m 9(v)k 4(ok)k 2(es)k
220 fnt2 6748 2683(@Ev)m 5(enP)k 8(ageList)k 240 fnt1
8307 2686(:)m
-[ /Dest /LOUT19_4226_exa_page_10 /DEST pdfmark
+[ /Dest /LOUT19_4244_exa_page_10 /DEST pdfmark
220 fnt2 480 2185(def @Ev)m 5(enP)k 8(ageList)k
480 1897( named @Columns {})m 480 1609( r)m -3(ight @P)k 8(ageNum)k 480 1321({)m
480 1033( @P)m 8(ageMar)k -3(k)k 4(er @P)k 8(ageNum)k
@@ -18643,7 +18643,7 @@ grestore
240 fnt1 480 8189(The)m 905(de\207nitions)s
1962(of)s 2229(chapters)s 3073(and)s 3473(sections)s 4290(from)s
4811(the)s 5155(DocumentSetup)s 6746(package)s
-[ /Dest /LOUT19_4226_exa_chap_1 /DEST pdfmark
+[ /Dest /LOUT19_4244_exa_chap_1 /DEST pdfmark
7583(of)s 7850(V)s 26(ersion)k
8634(2)s 8804(\(in)s 0 7901(V)m 26(ersion)k 793(3,)s
1026(the)s 1379(BookSetup)s 2503(e)s 3(xtension)k 3480(of)s
@@ -18651,7 +18651,7 @@ grestore
7334(this)s 7736(section.)s 8583(The)s 3(y)k 0 7613(allo)m 6(w)k
579(a)s 745(chapter)s 1508(to)s 1747(be)s 2029(entered)s
2790(lik)s 2(e)k 3202(this:)s
-[ /Dest /LOUT19_4226_exa_chap_2 /DEST pdfmark
+[ /Dest /LOUT19_4244_exa_chap_2 /DEST pdfmark
220 fnt2 480 7112(@Chapter)m
480 6824( @Title { ...)m 13( })k 480 6536( @T)m 26(ag { ...)k 13( })k
480 6248(@Begin)m 480 5960( ...)m 480 5672(@End @Chapter)m 240 fnt1 0 5176(W)m 9(ithin)k
@@ -18671,7 +18671,7 @@ grestore
5050(in)s 5304(the)s 5662(document.)s 6780(This)s 7267(feature)s
7995(is)s 8215(based)s 8829(on)s 0 2118(the)m 348(follo)s 6(wing)k
1325(de\207nitions:)s
-[ /Dest /LOUT19_4226_exa_chap_3 /DEST pdfmark
+[ /Dest /LOUT19_4244_exa_chap_3 /DEST pdfmark
220 fnt2 480 1617(e)m 6(xpor)k -8(t @T)k 26(ag)k
480 1329(def @NumberMar)m -3(k)k 4(er r)k -3(ight @T)k 26(ag { @Null })k
480 753(def @NumberOf r)m -3(ight x)k 480 465({ @NumberMar)m -3(k)k 4(er&&x @Open { @T)k 26(ag } })k
@@ -18748,7 +18748,7 @@ grestore
220 fnt2 0 9817(@Chapter)m 240 fnt1 1063 9820(g)m 1(alle)k 3(y)k
1697(itself)s 2245(is)s 2455(de\207ned)s 3218(as)s 3468(follo)s 6(ws:)k
-[ /Dest /LOUT19_4226_exa_chap_4 /DEST pdfmark
+[ /Dest /LOUT19_4244_exa_chap_4 /DEST pdfmark
220 fnt2 480 9319(e)m 6(xpor)k -8(t @F)k 6(ootNote @BeginSections @EndSections @Section)k
480 9031(def @Chapter f)m 6(orce into { @ChapterList&&preceding })k 480 8743( named @T)m 26(ag {})k 480 8455( named @Title {})m
480 8167( named @RunningTitle { dft })m 480 7879( body @Body)m 480 7591({)m 480 7303( def @F)m 6(ootNote r)k -3(ight x { @ColF)k 6(ootNote x })k
@@ -19046,7 +19046,7 @@ grestore
8558(v)s 6(alue)k 220 fnt2 0 5515(dft)m 240 fnt1
240 5518(,)m 347(or)s 220 fnt2 606 5515(@Title)m 240 fnt1
1294 5518(otherwise:)m
-[ /Dest /LOUT19_4226_exa_chap_5 /DEST pdfmark
+[ /Dest /LOUT19_4244_exa_chap_5 /DEST pdfmark
220 fnt2 480 5036(def @OrElse)m 480 4748( left x)m 480 4460( r)m -3(ight y)k
480 4172({)m 480 3884( x @Case {)m 480 3596( dft @Y)m 4(ield y)k 480 3308( else @Y)m 4(ield x)k
480 3020( })m 480 2732(})m 240 fnt1 0 2238(This)m 476(produces)s
@@ -19059,7 +19059,7 @@ grestore
240 fnt1 3004 950(.)m 480 576(Finally)m 15(,)k 1249(the)s
1597(de\207nitions)s 2658(for)s 2996(sections)s 3817(omitted)s 4605(earlier)s
5273(are)s 5620(as)s 5870(follo)s 6(ws:)k
-[ /Dest /LOUT19_4226_exa_chap_6 /DEST pdfmark
+[ /Dest /LOUT19_4244_exa_chap_6 /DEST pdfmark
220 fnt2
480 75(def @EndSectionsPlace { @Galle)m 4(y })k
grestore
@@ -19241,14 +19241,14 @@ grestore
240 fnt5 0 12412(4.5.)m 471(Bibliographies)s
[ /Dest /LOUTbiblio /DEST pdfmark
-[ /Dest /LOUT19_4226_exa_bibl_1 /DEST pdfmark
+[ /Dest /LOUT19_4244_exa_bibl_1 /DEST pdfmark
240 fnt1 533 11935(The)m
953(\207rst)s 1376(step)s 1806(in)s 2041(the)s 2382(production)s
3468(of)s 3731(a)s 3889(bibliograph)s 1(y)k 5157(is)s
5359(to)s 5591(create)s 6208(a)s 6366(database)s 7237(of)s
7500(references)s 8523(based)s 0 11647(on)m 297(the)s 645(de\207nition)s
-[ /Dest /LOUT19_4226_exa_bibl_2 /DEST pdfmark
+[ /Dest /LOUT19_4244_exa_bibl_2 /DEST pdfmark
220 fnt2 480 11196(e)m 6(xpor)k -8(t @T)k 26(ype @A)k 6(uthor @Title @Institution @Number @Pub)k 4(lisher)k
480 10908( @Y)m 30(ear @Proceedings @Jour)k -5(nal @V)k 17(olume @P)k 8(ages @Comment)k
480 10332(def @Ref)m 6(erence)k 480 10044( named @T)m 26(ag)k 3270({ )s 11(T)k 26(A)k 6(G? })k
@@ -19480,7 +19480,7 @@ grestore
7285(a)s 7463(numbered)s 8491(list)s 8855(of)s 0 7265(places)m
648(that)s 1066(g)s 1(alle)k 3(ys)k 1790(containing)s
2853(references)s 3884(may)s 4350(attach)s 4977(to:)s
-[ /Dest /LOUT19_4226_exa_bibl_3 /DEST pdfmark
+[ /Dest /LOUT19_4244_exa_bibl_3 /DEST pdfmark
220 fnt2
480 6764(def @Ref)m 6(erenceSection)k 480 6476( named @T)m 26(ag {})k 480 6188( named @Title { Ref)m 6(erences })k
480 5900( named @RunningTitle { dft })m 480 5612( named style r)m -3(ight tag { tag.)k 13( })k 480 5324( named headstyle r)m -3(ight @Title { @Heading @Title })k
@@ -19568,7 +19568,7 @@ grestore
0 9454(Section)m 240 fnt1 777 9457(at)m 1009(each)s 1504(point.)s
480 9083(Our)m 912(task)s 1358(is)s 1568(completed)s 2622(by)s
2916(the)s 3264(follo)s 6(wing)k 4241(de\207nition:)s
-[ /Dest /LOUT19_4226_exa_bibl_4 /DEST pdfmark
+[ /Dest /LOUT19_4244_exa_bibl_4 /DEST pdfmark
220 fnt2
480 8582(def @Ref r)m -3(ight x)k 480 8294({)m 480 8006( def sendref into { @RefPlace&&f)m 6(ollo)k 3(wing })k
480 7718( r)m -3(ight @K)k 8(e)k 4(y)k 480 7430( {)m
@@ -20939,235 +20939,235 @@ grestore
[ /Dest /LOUT20_492_all_1 /DEST pdfmark
220 fnt2 0 11807(adjust)m 641(@Break)s 240 fnt1 1444 11810(,)m
-[ /Rect [1551 11810 1785 11972] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_brea_1 /ANN pdfmark
+[ /Rect [1551 11810 1785 11972] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_brea_1 /ANN pdfmark
1551(42)s 0 11522(Adjustment)m 1176(of)s 1447(object)s 2038(,)s
-[ /Rect [2145 11519 2360 11687] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_hadj_4 /ANN pdfmark
+[ /Rect [2145 11519 2360 11687] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_hadj_4 /ANN pdfmark
2145(51)s 0 11234(Adobe)m 695(Systems,)s 1599(Inc.)s 1955(,)s
-[ /Rect [2062 11234 2296 11396] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_font_8 /ANN pdfmark
+[ /Rect [2062 11234 2296 11396] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_font_8 /ANN pdfmark
2062(42)s 0 10946(Alignment)m 240 fnt6 1083 10948(see)m 240 fnt1
1441 10946(mark)m 1993(alignment)s 0 10658(Associati)m 6(vity)k 1256(,)s
-[ /Rect [1363 10658 1597 10820] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_det_prec_2 /ANN pdfmark
+[ /Rect [1363 10658 1597 10820] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_det_prec_2 /ANN pdfmark
1363(22)s 220 fnt2 0 10079(@Bac)m 4(kEnd)k 240 fnt1
1145 10082(symbol)m 1852(,)s
-[ /Rect [1959 10081 2193 10244] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_bend_1 /ANN pdfmark
+[ /Rect [1959 10081 2193 10244] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_bend_1 /ANN pdfmark
1959(74)s 220 fnt2 0 9791(@Bac)m 4(kg)k 2(round)k
240 fnt1 1436 9794(symbol)m 2143(,)s
-[ /Rect [2250 9791 2476 9959] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_back_1 /ANN pdfmark
+[ /Rect [2250 9791 2476 9959] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_back_1 /ANN pdfmark
2250(55)s 220 fnt2
0 9503(@Begin)m 240 fnt1 829 9506(symbol)m 1536(,)s
-[ /Rect [1643 9503 1876 9670] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_begi_1 /ANN pdfmark
+[ /Rect [1643 9503 1876 9670] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_begi_1 /ANN pdfmark
1643(36)s
220 fnt2 0 9215(@BeginHeaderComponent)m 240 fnt1 2692 9218(symbol)m 3399(,)s
-[ /Rect [3506 9215 3740 9382] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_head_2 /ANN pdfmark
+[ /Rect [3506 9215 3740 9382] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_head_2 /ANN pdfmark
3506(62)s 0 8930(Bibliographies)m 1406(,)s
-[ /Rect [1513 8925 1737 9092] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_exa_bibl_1 /ANN pdfmark
+[ /Rect [1513 8925 1737 9092] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_exa_bibl_1 /ANN pdfmark
1513(93)s 0 8642(Body)m
574(of)s 845(a)s 1011(de\207nition)s 1932(,)s
-[ /Rect [2039 8642 2153 8804] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pri_defi_3 /ANN pdfmark
+[ /Rect [2039 8642 2153 8804] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pri_defi_3 /ANN pdfmark
2039(4)s
220 fnt2 0 8351(body)m 240 fnt1 534 8354(parameter)m 1495(,)s
-[ /Rect [1602 8353 1830 8516] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_det_visi_3 /ANN pdfmark
+[ /Rect [1602 8353 1830 8516] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_det_visi_3 /ANN pdfmark
1602(17)s 0 8066(Braces)m 648(,)s
-[ /Rect [755 8063 859 8228] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pri_obje_6 /ANN pdfmark
+[ /Rect [755 8063 859 8228] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pri_obje_6 /ANN pdfmark
755(3)s 220 fnt2
0 7775(b)m 240 fnt1 174 7778(unit)m 553(,)s
-[ /Rect [660 7775 888 7940] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_conc_15 /ANN pdfmark
+[ /Rect [660 7775 888 7940] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_conc_15 /ANN pdfmark
660(37)s
240 7490(use)m 615(in)s 220 fnt2 858 7487(//1.1b)m 240 fnt1
1406 7490(,)m
-[ /Rect [1513 7489 1741 7652] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_det_gall_4 /ANN pdfmark
+[ /Rect [1513 7489 1741 7652] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_det_gall_4 /ANN pdfmark
1513(27)s 220 fnt2 0 6911(@Case)m 240 fnt1
787 6914(symbol)m 1494(,)s
-[ /Rect [1601 6909 1832 7079] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_case_1 /ANN pdfmark
+[ /Rect [1601 6909 1832 7079] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_case_1 /ANN pdfmark
1601(59)s 0 6626(Centring)m 837(,)s
-[ /Rect [944 6623 1172 6788] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_conc_31 /ANN pdfmark
+[ /Rect [944 6623 1172 6788] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_conc_31 /ANN pdfmark
944(37)s 220 fnt2 0 6335(@Chapter)m 240 fnt1 1063 6338(e)m 3(xample)k
1873(,)s
-[ /Rect [1980 6333 2211 6500] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_exa_chap_4 /ANN pdfmark
+[ /Rect [1980 6333 2211 6500] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_exa_chap_4 /ANN pdfmark
1980(89)s 0 6050(Chapters)m 901(and)s 1305(sections)s
2073(,)s
-[ /Rect [2180 6047 2407 6212] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_exa_chap_1 /ANN pdfmark
+[ /Rect [2180 6047 2407 6212] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_exa_chap_1 /ANN pdfmark
2180(88)s 220 fnt2 0 5759(@Char)m 240 fnt1
758 5762(symbol)m 1465(,)s
-[ /Rect [1572 5762 1806 5924] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_font_10 /ANN pdfmark
+[ /Rect [1572 5762 1806 5924] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_font_10 /ANN pdfmark
1572(42)s 0 5474(Cherry)m 15(,)k
756(L.)s 953(,)s
-[ /Rect [1060 5473 1288 5632] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_exa_equa_3 /ANN pdfmark
+[ /Rect [1060 5473 1288 5632] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_exa_equa_3 /ANN pdfmark
1060(77)s 220 fnt2 0 5183(@ClearHeaderComponent)m
240 fnt1 2655 5186(symbol)m 3362(,)s
-[ /Rect [3469 5183 3693 5350] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_head_5 /ANN pdfmark
+[ /Rect [3469 5183 3693 5350] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_head_5 /ANN pdfmark
3469(63)s 220 fnt2
0 4895(clines)m 613(@Break)s 240 fnt1 1416 4898(,)m
-[ /Rect [1523 4895 1747 5060] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_brea_8 /ANN pdfmark
+[ /Rect [1523 4895 1747 5060] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_brea_8 /ANN pdfmark
1523(43)s
220 fnt2 0 4607(@ColList)m 240 fnt1 948 4610(e)m 3(xample)k
1758(,)s
-[ /Rect [1865 4607 2091 4775] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_exa_page_5 /ANN pdfmark
+[ /Rect [1865 4607 2091 4775] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_exa_page_5 /ANN pdfmark
1865(85)s 0 4322(Column)m 829(mark)s 1328(,)s
-[ /Rect [1435 4322 1530 4484] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pri_obje_2 /ANN pdfmark
+[ /Rect [1435 4322 1530 4484] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pri_obje_2 /ANN pdfmark
1435(1)s 0 4034(Comment)m 951(,)s
-[ /Rect [1058 4031 1284 4199] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_det_lexi_21 /ANN pdfmark
+[ /Rect [1058 4031 1284 4199] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_det_lexi_21 /ANN pdfmark
1058(15)s 0 3746(Comment)m
1004(character)s 1885(,)s
-[ /Rect [1992 3743 2216 3908] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_det_lexi_6 /ANN pdfmark
+[ /Rect [1992 3743 2216 3908] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_det_lexi_6 /ANN pdfmark
1992(13)s 220 fnt2 0 3455(@Common)m
240 fnt1 1159 3458(symbol)m 1866(,)s
-[ /Rect [1973 3455 2206 3623] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_rump_1 /ANN pdfmark
+[ /Rect [1973 3455 2206 3623] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_rump_1 /ANN pdfmark
1973(56)s 0 3170(Components)m
1262(of)s 1533(a)s 1699(g)s 1(alle)k 3(y)k
2280(,)s
-[ /Rect [2387 3167 2620 3334] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_det_gall_3 /ANN pdfmark
+[ /Rect [2387 3167 2620 3334] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_det_gall_3 /ANN pdfmark
2387(26)s 240 2882(promotion)m 1294(of)s 1512(,)s
-[ /Rect [1619 2877 1850 3044] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_det_gall_8 /ANN pdfmark
+[ /Rect [1619 2877 1850 3044] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_det_gall_8 /ANN pdfmark
1619(29)s 0 2594(Concatenation)m 1439(symbols)s 2235(,)s
-[ /Rect [2342 2591 2575 2758] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_conc_1 /ANN pdfmark
+[ /Rect [2342 2591 2575 2758] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_conc_1 /ANN pdfmark
2342(36)s
0 2306(Contraction)m 1186(of)s 1457(object)s 2048(,)s
-[ /Rect [2155 2303 2370 2471] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_hcon_3 /ANN pdfmark
+[ /Rect [2155 2303 2370 2471] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_hcon_3 /ANN pdfmark
2155(51)s
220 fnt2 0 2015(cr)m 2(agged)k 839(@Break)s 240 fnt1
1642 2018(,)m
-[ /Rect [1749 2015 1973 2180] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_brea_4 /ANN pdfmark
+[ /Rect [1749 2015 1973 2180] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_brea_4 /ANN pdfmark
1749(43)s 0 1730(Cross)m 596(reference)s 1486(,)s
-[ /Rect [1593 1729 1701 1888] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pri_cros_1 /ANN pdfmark
+[ /Rect [1593 1729 1701 1888] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pri_cros_1 /ANN pdfmark
1593(7)s 220 fnt2 0 1439(c)m 240 fnt1 165 1442(unit)m
544(,)s
-[ /Rect [651 1439 879 1604] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_conc_8 /ANN pdfmark
+[ /Rect [651 1439 879 1604] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_conc_8 /ANN pdfmark
651(37)s 220 fnt2 0 1151(@CurrLang)m 240 fnt1
1185 1154(symbol)m 1892(,)s
-[ /Rect [1999 1149 2230 1316] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_lang_3 /ANN pdfmark
+[ /Rect [1999 1149 2230 1316] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_lang_3 /ANN pdfmark
1999(49)s 220 fnt2 0 575(@Database)m
240 fnt1 1214 578(symbol)m 1921(,)s
-[ /Rect [2028 575 2256 742] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_data_1 /ANN pdfmark
+[ /Rect [2028 575 2256 742] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_data_1 /ANN pdfmark
2028(67)s 0 290(Date,)m
558(printing)s 1368(of)s 1639(current)s 2322(,)s
-[ /Rect [2429 287 2644 454] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_mome_2 /ANN pdfmark
+[ /Rect [2429 287 2644 454] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_mome_2 /ANN pdfmark
2429(61)s
4816 11807(Def)m 2(ault)k 5590(v)s 6(alue)k 6158(of)s
6429(parameter)s 7390(,)s
-[ /Rect [7497 11804 7723 11972] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_det_name_3 /ANN pdfmark
+[ /Rect [7497 11804 7723 11972] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_det_name_3 /ANN pdfmark
7497(15)s 4816 11519(De\207nitions)m 5877(,)s
-[ /Rect [5984 11519 6098 11681] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pri_defi_1 /ANN pdfmark
+[ /Rect [5984 11519 6098 11681] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pri_defi_1 /ANN pdfmark
5984(4)s 4816 11231(Delimiter)m 5737(,)s
-[ /Rect [5844 11228 6068 11393] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_det_lexi_11 /ANN pdfmark
+[ /Rect [5844 11228 6068 11393] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_det_lexi_11 /ANN pdfmark
5844(13)s 4816 10943(Diag)m
5334(diagram-dra)s 3(wing)k 7030(package)s 7817(,)s
-[ /Rect [7924 10942 8139 11105] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_grap_4 /ANN pdfmark
+[ /Rect [7924 10942 8139 11105] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_grap_4 /ANN pdfmark
7924(71)s
4816 10655(Diagrams)m 5743(,)s
-[ /Rect [5850 10652 6077 10819] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_grap_2 /ANN pdfmark
+[ /Rect [5850 10652 6077 10819] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_grap_2 /ANN pdfmark
5850(68)s 4816 10367(DocumentLayout)m 6551(package)s
7338(,)s
-[ /Rect [7445 10362 7676 10529] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_exa_para_1 /ANN pdfmark
+[ /Rect [7445 10362 7676 10529] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_exa_para_1 /ANN pdfmark
7445(79)s 5056 10079(chapters)m 5903(and)s 6307(sections)s
7075(,)s
-[ /Rect [7182 10076 7409 10241] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_exa_chap_2 /ANN pdfmark
+[ /Rect [7182 10076 7409 10241] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_exa_chap_2 /ANN pdfmark
7182(88)s 5056 9791(displays)m 5838(,)s
-[ /Rect [5945 9788 6180 9953] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_exa_para_4 /ANN pdfmark
+[ /Rect [5945 9788 6180 9953] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_exa_para_4 /ANN pdfmark
5945(80)s
5056 9503(lists)m 5438(,)s
-[ /Rect [5545 9500 5760 9665] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_exa_para_6 /ANN pdfmark
+[ /Rect [5545 9500 5760 9665] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_exa_para_6 /ANN pdfmark
5545(81)s 5056 9215(page)m 5564(layout)s
6169(,)s
-[ /Rect [6276 9212 6500 9377] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_exa_page_2 /ANN pdfmark
+[ /Rect [6276 9212 6500 9377] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_exa_page_2 /ANN pdfmark
6276(83)s 5056 8927(paragraphs)m 6103(,)s
-[ /Rect [6210 8924 6445 9089] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_exa_para_2 /ANN pdfmark
+[ /Rect [6210 8924 6445 9089] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_exa_para_2 /ANN pdfmark
6210(80)s
220 fnt2 4816 8636(d)m 240 fnt1 4986 8639(unit)m 5365(,)s
-[ /Rect [5472 8636 5700 8801] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_conc_17 /ANN pdfmark
+[ /Rect [5472 8636 5700 8801] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_conc_17 /ANN pdfmark
5472(37)s 4816 8063(Edge-to-edge)m 6160(g)s 1(ap)k 6558(mode)s
7093(,)s
-[ /Rect [7200 8060 7428 8225] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_conc_19 /ANN pdfmark
+[ /Rect [7200 8060 7428 8225] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_conc_19 /ANN pdfmark
7200(37)s 220 fnt2 4816 7772(e)m 240 fnt1
4990 7775(g)m 1(ap)k 5388(mode)s 5923(,)s
-[ /Rect [6030 7772 6258 7937] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_conc_20 /ANN pdfmark
+[ /Rect [6030 7772 6258 7937] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_conc_20 /ANN pdfmark
6030(37)s
220 fnt2 4816 7484(@Enclose)m 240 fnt1 5818 7487(,)m
-[ /Rect [5925 7484 6140 7649] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_det_gall_12 /ANN pdfmark
+[ /Rect [5925 7484 6140 7649] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_det_gall_12 /ANN pdfmark
5925(31)s
220 fnt2 4816 7196(@End)m 240 fnt1 5477 7199(symbol)m 6184(,)s
-[ /Rect [6291 7196 6524 7363] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_begi_2 /ANN pdfmark
+[ /Rect [6291 7196 6524 7363] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_begi_2 /ANN pdfmark
6291(36)s 220 fnt2 4816 6908(@EndHeaderComponent)m 240 fnt1 7338 6911(symbol)m
8045(,)s
-[ /Rect [8152 6908 8376 7075] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_head_3 /ANN pdfmark
+[ /Rect [8152 6908 8376 7075] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_head_3 /ANN pdfmark
8152(63)s 4816 6623(Eq)m 5140(equation)s 6021(formatting)s
7082(package)s 7869(,)s
-[ /Rect [7976 6622 8204 6781] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_exa_equa_1 /ANN pdfmark
+[ /Rect [7976 6622 8204 6781] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_exa_equa_1 /ANN pdfmark
7976(77)s 220 fnt2 4816 6332(@Eq)m
240 fnt1 5354 6335(e)m 3(xample)k 6164(,)s
-[ /Rect [6271 6334 6499 6493] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_exa_equa_4 /ANN pdfmark
+[ /Rect [6271 6334 6499 6493] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_exa_equa_4 /ANN pdfmark
6271(77)s
4816 6047(Escape)m 5549(character)s 6430(,)s
-[ /Rect [6537 6044 6761 6209] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_det_lexi_5 /ANN pdfmark
+[ /Rect [6537 6044 6761 6209] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_det_lexi_5 /ANN pdfmark
6537(13)s 220 fnt2
4816 5756(@Ev)m 5(enP)k 8(ageList)k 240 fnt1 6435 5759(e)m 3(xample)k
7245(,)s
-[ /Rect [7352 5756 7580 5921] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_exa_page_10 /ANN pdfmark
+[ /Rect [7352 5756 7580 5921] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_exa_page_10 /ANN pdfmark
7352(87)s 4816 5471(Expansion)m 5884(of)s 6155(object)s
6746(,)s
-[ /Rect [6853 5468 7068 5636] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_hexp_3 /ANN pdfmark
+[ /Rect [6853 5468 7068 5636] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_hexp_3 /ANN pdfmark
6853(51)s 220 fnt2 4816 5180(e)m 6(xpor)k -8(t)k
240 fnt1 5484 5183(clause)m 6084(,)s
-[ /Rect [6191 5180 6418 5345] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_det_visi_4 /ANN pdfmark
+[ /Rect [6191 5180 6418 5345] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_det_visi_4 /ANN pdfmark
6191(18)s 4816 4607(F)m 3(ace)k
5320(of)s 5591(a)s 5757(font)s 6149(,)s
-[ /Rect [6256 4604 6491 4769] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_font_3 /ANN pdfmark
+[ /Rect [6256 4604 6491 4769] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_font_3 /ANN pdfmark
6256(40)s
4816 4319(F)m 3(amily)k 5544(of)s 5815(a)s 5981(font)s
6373(,)s
-[ /Rect [6480 4316 6715 4481] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_font_2 /ANN pdfmark
+[ /Rect [6480 4316 6715 4481] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_font_2 /ANN pdfmark
6480(40)s 220 fnt2 4816 4028(f)m 6(ollo)k 3(wing)k
240 fnt1 5653 4031(,)m
-[ /Rect [5760 4028 5867 4193] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pri_cros_7 /ANN pdfmark
+[ /Rect [5760 4028 5867 4193] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pri_cros_7 /ANN pdfmark
5760(8)s 220 fnt2 4816 3740(f)m 6(ollo)k 3(wing)k
240 fnt1 5653 3743(,)m
-[ /Rect [5760 3740 5867 3905] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pri_cros_6 /ANN pdfmark
+[ /Rect [5760 3740 5867 3905] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pri_cros_6 /ANN pdfmark
5760(8)s 4816 3455(F)m 3(onts)k
5343(,)s
-[ /Rect [5450 3452 5685 3617] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_font_1 /ANN pdfmark
+[ /Rect [5450 3452 5685 3617] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_font_1 /ANN pdfmark
5450(40)s 220 fnt2 4816 3164(@F)m 6(ont)k
240 fnt1 5528 3167(symbol)m 6235(,)s
-[ /Rect [6342 3164 6577 3329] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_font_6 /ANN pdfmark
+[ /Rect [6342 3164 6577 3329] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_font_6 /ANN pdfmark
6342(40)s 220 fnt2
4816 2876(@F)m 6(ootSect)k 240 fnt1 5967 2879(e)m 3(xample)k
6777(,)s
-[ /Rect [6884 2876 7118 3041] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_exa_page_4 /ANN pdfmark
+[ /Rect [6884 2876 7118 3041] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_exa_page_4 /ANN pdfmark
6884(84)s 220 fnt2 4816 2588(@F)m 6(orceGalle)k 4(y)k
240 fnt1 6269 2591(symbol)m 6976(,)s
-[ /Rect [7083 2588 7298 2755] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_gall_2 /ANN pdfmark
+[ /Rect [7083 2588 7298 2755] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_gall_2 /ANN pdfmark
7083(61)s 4816 2303(F)m 3(orcing)k
5610(g)s 1(alle)k 3(y)k 6191(,)s
-[ /Rect [6298 2298 6529 2465] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_det_gall_10 /ANN pdfmark
+[ /Rect [6298 2298 6529 2465] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_det_gall_10 /ANN pdfmark
6298(29)s
4816 2015(F)m 3(ormfeed)k 5747(,)s
-[ /Rect [5854 2012 6078 2177] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_det_lexi_9 /ANN pdfmark
+[ /Rect [5854 2012 6078 2177] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_det_lexi_9 /ANN pdfmark
5854(13)s 220 fnt2
4816 1724(f)m 240 fnt1 4934 1727(unit)m 5313(,)s
-[ /Rect [5420 1724 5648 1889] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_conc_11 /ANN pdfmark
+[ /Rect [5420 1724 5648 1889] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_conc_11 /ANN pdfmark
5420(37)s
4816 1151(Galle)m 3(ys)k 5541(,)s
-[ /Rect [5648 1148 5883 1313] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pri_gall_1 /ANN pdfmark
+[ /Rect [5648 1148 5883 1313] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pri_gall_1 /ANN pdfmark
5648(10)s 5056 863(in)m
5299(detail)s 5831(,)s
-[ /Rect [5938 860 6171 1027] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_det_gall_1 /ANN pdfmark
+[ /Rect [5938 860 6171 1027] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_det_gall_1 /ANN pdfmark
5938(26)s 220 fnt2 4816 572(@Galle)m 4(y)k
240 fnt1 5714 575(symbol)m 6421(,)s
-[ /Rect [6528 572 6743 739] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_gall_1 /ANN pdfmark
+[ /Rect [6528 572 6743 739] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_gall_1 /ANN pdfmark
6528(61)s 4816 287(Gap)m
5215(,)s
-[ /Rect [5322 284 5550 449] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_conc_6 /ANN pdfmark
+[ /Rect [5322 284 5550 449] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_conc_6 /ANN pdfmark
5322(37)s
grestore
0 0 0 0 240 288 60 1417 -14865 LoutGr2
@@ -21222,276 +21222,276 @@ gsave
grestore
0 13249(Gap)m
452(mode)s 987(,)s
-[ /Rect [1094 13246 1322 13411] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_conc_18 /ANN pdfmark
+[ /Rect [1094 13246 1322 13411] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_conc_18 /ANN pdfmark
1094(37)s 220 fnt2 0 12958(@Gr)m 2(aphic)k
240 fnt1 1044 12961(symbol)m 1751(,)s
-[ /Rect [1858 12958 2085 13125] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_grap_1 /ANN pdfmark
+[ /Rect [1858 12958 2085 13125] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_grap_1 /ANN pdfmark
1858(68)s 220 fnt2
0 12382(@HAdjust)m 240 fnt1 1046 12385(symbol)m 1753(,)s
-[ /Rect [1860 12382 2075 12550] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_hadj_2 /ANN pdfmark
+[ /Rect [1860 12382 2075 12550] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_hadj_2 /ANN pdfmark
1860(51)s
220 fnt2 0 12094(@HContr)m 2(act)k 240 fnt1 1264 12097(symbol)m
1971(,)s
-[ /Rect [2078 12094 2293 12262] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_hcon_1 /ANN pdfmark
+[ /Rect [2078 12094 2293 12262] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_hcon_1 /ANN pdfmark
2078(51)s 220 fnt2 0 11806(@HCo)m 3(v)k 5(er)k
240 fnt1 1018 11809(symbol)m 1725(,)s
-[ /Rect [1832 11806 2066 11974] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_cove_1 /ANN pdfmark
+[ /Rect [1832 11806 2066 11974] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_cove_1 /ANN pdfmark
1832(52)s 0 11521(Header)m
750(component)s 1874(of)s 2145(g)s 1(alle)k 3(y)k
2726(,)s
-[ /Rect [2833 11518 3067 11685] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_head_1 /ANN pdfmark
+[ /Rect [2833 11518 3067 11685] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_head_1 /ANN pdfmark
2833(62)s 0 11233(Height)m 711(of)s 982(an)s
1265(object)s 1856(,)s
-[ /Rect [1963 11233 2197 11395] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_det_size_3 /ANN pdfmark
+[ /Rect [1963 11233 2197 11395] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_det_size_3 /ANN pdfmark
1963(24)s 220 fnt2 0 10942(@HExpand)m
240 fnt1 1173 10945(symbol)m 1880(,)s
-[ /Rect [1987 10942 2202 11110] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_hexp_1 /ANN pdfmark
+[ /Rect [1987 10942 2202 11110] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_hexp_1 /ANN pdfmark
1987(51)s 220 fnt2
0 10654(h)m 240 fnt1 168 10657(g)m 1(ap)k 566(mode)s
1101(,)s
-[ /Rect [1208 10654 1436 10819] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_conc_22 /ANN pdfmark
+[ /Rect [1208 10654 1436 10819] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_conc_22 /ANN pdfmark
1208(37)s 220 fnt2 0 10366(@High)m 240 fnt1
719 10369(symbol)m 1426(,)s
-[ /Rect [1533 10366 1768 10534] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_wide_2 /ANN pdfmark
+[ /Rect [1533 10366 1768 10534] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_wide_2 /ANN pdfmark
1533(50)s 220 fnt2 0 10078(@HLimited)m
240 fnt1 1135 10081(symbol)m 1842(,)s
-[ /Rect [1949 10078 2164 10246] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_hlim_1 /ANN pdfmark
+[ /Rect [1949 10078 2164 10246] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_hlim_1 /ANN pdfmark
1949(51)s 220 fnt2
0 9790(@Hline)m 240 fnt1 773 9793(e)m 3(xample)k 1583(,)s
-[ /Rect [1690 9788 1921 9955] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_exa_equa_7 /ANN pdfmark
+[ /Rect [1690 9788 1921 9955] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_exa_equa_7 /ANN pdfmark
1690(79)s 0 9505(Horizontal)m 1077(concatenation)s 2409(,)s
-[ /Rect [2516 9502 2749 9669] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_conc_3 /ANN pdfmark
+[ /Rect [2516 9502 2749 9669] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_conc_3 /ANN pdfmark
2516(36)s
220 fnt2 0 9214(@HScale)m 240 fnt1 981 9217(symbol)m 1688(,)s
-[ /Rect [1795 9214 2029 9382] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_hsca_1 /ANN pdfmark
+[ /Rect [1795 9214 2029 9382] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_hsca_1 /ANN pdfmark
1795(52)s 220 fnt2 0 8926(@HShift)m 240 fnt1 875 8929(symbol)m
1582(,)s
-[ /Rect [1689 8926 1924 9094] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_hshi_1 /ANN pdfmark
+[ /Rect [1689 8926 1924 9094] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_hshi_1 /ANN pdfmark
1689(50)s 220 fnt2 0 8638(@HSpan)m 240 fnt1
939 8641(symbol)m 1646(,)s
-[ /Rect [1753 8638 1977 8806] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_span_4 /ANN pdfmark
+[ /Rect [1753 8638 1977 8806] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_span_4 /ANN pdfmark
1753(53)s 0 8353(Hyphenation)m 1294(g)s 1(ap)k
1692(mode)s 2227(,)s
-[ /Rect [2334 8348 2565 8515] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_conc_37 /ANN pdfmark
+[ /Rect [2334 8348 2565 8515] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_conc_37 /ANN pdfmark
2334(39)s 0 8065(Hyphenation)m 1294(g)s 1(ap)k
1692(mode)s 2227(,)s
-[ /Rect [2334 8062 2562 8227] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_conc_21 /ANN pdfmark
+[ /Rect [2334 8062 2562 8227] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_conc_21 /ANN pdfmark
2334(37)s 220 fnt2 0 7774(h)m 6(yphen)k
760(@Break)s 240 fnt1 1563 7777(,)m
-[ /Rect [1670 7774 1894 7939] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_brea_11 /ANN pdfmark
+[ /Rect [1670 7774 1894 7939] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_brea_11 /ANN pdfmark
1670(43)s 1894(,)s
-[ /Rect [2001 7777 2235 7939] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_brea_13 /ANN pdfmark
+[ /Rect [2001 7777 2235 7939] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_brea_13 /ANN pdfmark
2001(44)s 0 7201(Identi\207er)m 882(,)s
-[ /Rect [989 7198 1213 7363] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_det_lexi_12 /ANN pdfmark
+[ /Rect [989 7198 1213 7363] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_det_lexi_12 /ANN pdfmark
989(13)s 220 fnt2
0 6910(impor)m -8(t)k 240 fnt1 673 6913(clause)m 1273(,)s
-[ /Rect [1380 6910 1607 7075] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_det_visi_5 /ANN pdfmark
+[ /Rect [1380 6910 1607 7075] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_det_visi_5 /ANN pdfmark
1380(18)s 220 fnt2 0 6622(@IncludeGr)m 2(aphicRepeated)k 240 fnt1
2695 6625(symbol)m 3402(,)s
-[ /Rect [3509 6624 3743 6787] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_incr_1 /ANN pdfmark
+[ /Rect [3509 6624 3743 6787] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_incr_1 /ANN pdfmark
3509(72)s 220 fnt2 0 6334(@IncludeGr)m 2(aphic)k
240 fnt1 1751 6337(symbol)m 2458(,)s
-[ /Rect [2565 6336 2799 6499] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_incg_1 /ANN pdfmark
+[ /Rect [2565 6336 2799 6499] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_incg_1 /ANN pdfmark
2565(72)s 220 fnt2
0 6046(@Include)m 240 fnt1 982 6049(symbol)m 1689(,)s
-[ /Rect [1796 6046 2020 6211] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_incl_1 /ANN pdfmark
+[ /Rect [1796 6046 2020 6211] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_incl_1 /ANN pdfmark
1796(73)s
220 fnt2 0 5758(@IndentedDispla)m 6(y)k 240 fnt1 1847 5761(e)m 3(xample)k
2657(,)s
-[ /Rect [2764 5758 2999 5923] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_exa_para_5 /ANN pdfmark
+[ /Rect [2764 5758 2999 5923] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_exa_para_5 /ANN pdfmark
2764(80)s 220 fnt2 0 5470(@IndentedList)m 240 fnt1
1474 5473(e)m 3(xample)k 2284(,)s
-[ /Rect [2391 5470 2625 5635] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_exa_para_8 /ANN pdfmark
+[ /Rect [2391 5470 2625 5635] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_exa_para_8 /ANN pdfmark
2391(82)s 0 5185(Inde)m 3(x)k
597(\207le)s 958(\(for)s 1375(databases\))s 2366(,)s
-[ /Rect [2473 5182 2701 5349] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_data_2 /ANN pdfmark
+[ /Rect [2473 5182 2701 5349] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_data_2 /ANN pdfmark
2473(67)s
0 4897(In-paragraph)m 1291(concatenation)s 2623(,)s
-[ /Rect [2730 4894 2958 5059] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_conc_4 /ANN pdfmark
+[ /Rect [2730 4894 2958 5059] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_conc_4 /ANN pdfmark
2730(37)s 220 fnt2
0 4606(@Inser)m -8(t)k 240 fnt1 836 4609(symbol)m 1543(,)s
-[ /Rect [1650 4606 1877 4774] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_inse_1 /ANN pdfmark
+[ /Rect [1650 4606 1877 4774] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_inse_1 /ANN pdfmark
1650(58)s 220 fnt2 0 4318(into)m 240 fnt1 406 4321(clause)m
1006(,)s
-[ /Rect [1113 4318 1348 4483] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pri_gall_2 /ANN pdfmark
+[ /Rect [1113 4318 1348 4483] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pri_gall_2 /ANN pdfmark
1113(10)s 0 4033(In)m 9(v)k 4(ocation)k
1067(of)s 1338(a)s 1504(symbol)s 2211(,)s
-[ /Rect [2318 4033 2432 4195] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pri_defi_4 /ANN pdfmark
+[ /Rect [2318 4033 2432 4195] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pri_defi_4 /ANN pdfmark
2318(4)s
0 3169(K)m 6(ernighan,)k 1111(B.)s 1322(,)s
-[ /Rect [1429 3168 1657 3327] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_exa_equa_2 /ANN pdfmark
+[ /Rect [1429 3168 1657 3327] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_exa_equa_2 /ANN pdfmark
1429(77)s
0 2881(K)m 6(erning)k 778(,)s
-[ /Rect [885 2878 1120 3043] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_font_5 /ANN pdfmark
+[ /Rect [885 2878 1120 3043] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_font_5 /ANN pdfmark
885(40)s 0 2593(K)m 6(erning)k
831(g)s 1(ap)k 1229(mode)s 1764(,)s
-[ /Rect [1871 2590 2099 2755] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_conc_27 /ANN pdfmark
+[ /Rect [1871 2590 2099 2755] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_conc_27 /ANN pdfmark
1871(37)s
220 fnt2 0 2302(@K)m 8(er)k -5(nShr)k -3(ink)k
240 fnt1 1367 2305(symbol)m 2074(,)s
-[ /Rect [2181 2302 2414 2470] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_kshr_1 /ANN pdfmark
+[ /Rect [2181 2302 2414 2470] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_kshr_1 /ANN pdfmark
2181(56)s 220 fnt2
0 2014(@K)m 8(e)k 4(y)k 240 fnt1 647 2017(parameter)m
1608(,)s
-[ /Rect [1715 2014 1949 2179] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_det_sort_2 /ANN pdfmark
+[ /Rect [1715 2014 1949 2179] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_det_sort_2 /ANN pdfmark
1715(32)s 220 fnt2 0 1726(k)m 240 fnt1
170 1729(g)m 1(ap)k 568(mode)s 1103(,)s
-[ /Rect [1210 1726 1438 1891] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_conc_28 /ANN pdfmark
+[ /Rect [1210 1726 1438 1891] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_conc_28 /ANN pdfmark
1210(37)s
0 1441(Knuth,)m 706(D.)s 930(,)s
-[ /Rect [1037 1436 1268 1603] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_exa_equa_8 /ANN pdfmark
+[ /Rect [1037 1436 1268 1603] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_exa_equa_8 /ANN pdfmark
1037(79)s 220 fnt2
0 862(langdef)m 240 fnt1 776 865(language)m 1696(de\207nition)s 2617(,)s
-[ /Rect [2724 862 2951 1027] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_lang_2 /ANN pdfmark
+[ /Rect [2724 862 2951 1027] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_lang_2 /ANN pdfmark
2724(48)s 220 fnt2 0 574(@Language)m 240 fnt1 1251 577(symbol)m
1958(,)s
-[ /Rect [2065 574 2292 739] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_lang_1 /ANN pdfmark
+[ /Rect [2065 574 2292 739] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_lang_1 /ANN pdfmark
2065(48)s 220 fnt2 0 286(@LClos)m 240 fnt1
836 289(symbol)m 1543(,)s
-[ /Rect [1650 289 1884 451] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_det_lexi_13 /ANN pdfmark
+[ /Rect [1650 289 1884 451] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_det_lexi_13 /ANN pdfmark
1650(14)s 4816 13249(LCM)m 5389(\207le)s
5697(,)s
-[ /Rect [5804 13249 6038 13411] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_font_9 /ANN pdfmark
+[ /Rect [5804 13249 6038 13411] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_font_9 /ANN pdfmark
5804(42)s 4816 12961(Length)m 5498(,)s
-[ /Rect [5605 12958 5833 13123] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_conc_7 /ANN pdfmark
+[ /Rect [5605 12958 5833 13123] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_conc_7 /ANN pdfmark
5605(37)s
220 fnt2 4816 12670(@LEn)m 4(v)k 240 fnt1 5594 12673(symbol)m
6301(,)s
-[ /Rect [6408 12673 6642 12835] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_det_lexi_14 /ANN pdfmark
+[ /Rect [6408 12673 6642 12835] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_det_lexi_14 /ANN pdfmark
6408(14)s 4816 12385(Letter)m 5445(character)s 6326(,)s
-[ /Rect [6433 12382 6657 12547] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_det_lexi_2 /ANN pdfmark
+[ /Rect [6433 12382 6657 12547] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_det_lexi_2 /ANN pdfmark
6433(13)s 4816 12097(Lig)m 1(atures)k 5715(,)s
-[ /Rect [5822 12094 6057 12259] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_font_4 /ANN pdfmark
+[ /Rect [5822 12094 6057 12259] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_font_4 /ANN pdfmark
5822(40)s
220 fnt2 4816 11806(lines)m 5319(@Break)s 240 fnt1 6122 11809(,)m
-[ /Rect [6229 11806 6453 11971] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_brea_7 /ANN pdfmark
+[ /Rect [6229 11806 6453 11971] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_brea_7 /ANN pdfmark
6229(43)s 220 fnt2 4816 11518(@LinkDest)m 240 fnt1 5948 11521(symbol)m
6655(,)s
-[ /Rect [6762 11518 6995 11685] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_link_2 /ANN pdfmark
+[ /Rect [6762 11518 6995 11685] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_link_2 /ANN pdfmark
6762(66)s 220 fnt2 4816 11230(@LinkSource)m 240 fnt1
6188 11233(symbol)m 6895(,)s
-[ /Rect [7002 11230 7235 11397] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_link_1 /ANN pdfmark
+[ /Rect [7002 11230 7235 11397] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_link_1 /ANN pdfmark
7002(66)s 220 fnt2 4816 10942(@LInput)m
240 fnt1 5705 10945(symbol)m 6412(,)s
-[ /Rect [6519 10945 6753 11107] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_det_lexi_15 /ANN pdfmark
+[ /Rect [6519 10945 6753 11107] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_det_lexi_15 /ANN pdfmark
6519(14)s 4816 10657(Literal)m
5506(w)s 2(ord)k 6001(,)s
-[ /Rect [6108 10657 6342 10819] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_det_lexi_19 /ANN pdfmark
+[ /Rect [6108 10657 6342 10819] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_det_lexi_19 /ANN pdfmark
6108(14)s 220 fnt2
4816 10366(@LUse)m 240 fnt1 5603 10369(symbol)m 6310(,)s
-[ /Rect [6417 10369 6651 10531] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_det_lexi_17 /ANN pdfmark
+[ /Rect [6417 10369 6651 10531] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_det_lexi_17 /ANN pdfmark
6417(14)s
220 fnt2 4816 10078(@L)m 24(Vis)k 240 fnt1 5494 10081(symbol)m
6201(,)s
-[ /Rect [6308 10081 6542 10243] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_det_lexi_16 /ANN pdfmark
+[ /Rect [6308 10081 6542 10243] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_det_lexi_16 /ANN pdfmark
6308(14)s 4816 9505(Macro)m 5440(,)s
-[ /Rect [5547 9502 5773 9670] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_det_lexi_22 /ANN pdfmark
+[ /Rect [5547 9502 5773 9670] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_det_lexi_22 /ANN pdfmark
5547(15)s
4816 9217(Mark)m 5395(alignment)s 6358(,)s
-[ /Rect [6465 9217 6560 9379] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pri_obje_3 /ANN pdfmark
+[ /Rect [6465 9217 6560 9379] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pri_obje_3 /ANN pdfmark
6465(1)s 5056 8929(in)m
5299(detail)s 5831(,)s
-[ /Rect [5938 8926 6165 9091] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_det_gall_5 /ANN pdfmark
+[ /Rect [5938 8926 6165 9091] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_det_gall_5 /ANN pdfmark
5938(28)s 4816 8641(Mark-to-mark)m 6230(g)s 1(ap)k
6628(mode)s 7163(,)s
-[ /Rect [7270 8638 7498 8803] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_conc_23 /ANN pdfmark
+[ /Rect [7270 8638 7498 8803] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_conc_23 /ANN pdfmark
7270(37)s 220 fnt2 4816 8350(@Meld)m
240 fnt1 5562 8353(symbol)m 6269(,)s
-[ /Rect [6376 8350 6609 8518] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_rump_3 /ANN pdfmark
+[ /Rect [6376 8350 6609 8518] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_rump_3 /ANN pdfmark
6376(56)s 220 fnt2
4816 8062(@Merge)m 240 fnt1 5713 8065(symbol)m 6420(,)s
-[ /Rect [6527 8062 6751 8227] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_det_sort_3 /ANN pdfmark
+[ /Rect [6527 8062 6751 8227] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_det_sort_3 /ANN pdfmark
6527(33)s
220 fnt2 4816 7774(@Moment)m 240 fnt1 5888 7777(symbol)m 6595(,)s
-[ /Rect [6702 7774 6937 7941] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_mome_1 /ANN pdfmark
+[ /Rect [6702 7774 6937 7941] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_mome_1 /ANN pdfmark
6702(60)s 220 fnt2 4816 7486(m)m 240 fnt1 5045 7489(unit)m
5424(,)s
-[ /Rect [5531 7486 5759 7651] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_conc_10 /ANN pdfmark
+[ /Rect [5531 7486 5759 7651] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_conc_10 /ANN pdfmark
5531(37)s 220 fnt2 4816 6910(named)m 240 fnt1
5535 6913(parameter)m 6496(,)s
-[ /Rect [6603 6910 6829 7078] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_det_name_2 /ANN pdfmark
+[ /Rect [6603 6910 6829 7078] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_det_name_2 /ANN pdfmark
6603(15)s 4816 6625(Nested)m 5538(de\207nitions)s
6546(,)s
-[ /Rect [6653 6624 6881 6787] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_det_visi_1 /ANN pdfmark
+[ /Rect [6653 6624 6881 6787] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_det_visi_1 /ANN pdfmark
6653(17)s 220 fnt2 4816 6334(@Ne)m 6(xt)k
240 fnt1 5540 6337(symbol)m 6247(,)s
-[ /Rect [6354 6332 6585 6502] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_next_1 /ANN pdfmark
+[ /Rect [6354 6332 6585 6502] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_next_1 /ANN pdfmark
6354(59)s 220 fnt2
4816 6046(noh)m 6(yphen)k 5820(@Break)s 240 fnt1 6623 6049(,)m
-[ /Rect [6730 6046 6954 6211] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_brea_12 /ANN pdfmark
+[ /Rect [6730 6046 6954 6211] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_brea_12 /ANN pdfmark
6730(43)s 6954(,)s
-[ /Rect [7061 6049 7295 6211] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_brea_14 /ANN pdfmark
+[ /Rect [7061 6049 7295 6211] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_brea_14 /ANN pdfmark
7061(44)s 220 fnt2 4816 5758(@NotRe)m 6(v)k 5(ealed)k
240 fnt1 6343 5761(symbol)m 7050(,)s
-[ /Rect [7157 5758 7381 5925] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_notr_1 /ANN pdfmark
+[ /Rect [7157 5758 7381 5925] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_notr_1 /ANN pdfmark
7157(63)s 220 fnt2
4816 5470(@Null)m 240 fnt1 5461 5473(symbol)m 6168(,)s
-[ /Rect [6275 5470 6490 5637] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_null_1 /ANN pdfmark
+[ /Rect [6275 5470 6490 5637] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_null_1 /ANN pdfmark
6275(61)s
4816 5185(Numbered)m 5884(list)s 6182(,)s
-[ /Rect [6289 5182 6504 5347] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_exa_para_7 /ANN pdfmark
+[ /Rect [6289 5182 6504 5347] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_exa_para_7 /ANN pdfmark
6289(81)s 220 fnt2
4816 4894(@NumberOf)m 240 fnt1 6108 4897(e)m 3(xample)k 6918(,)s
-[ /Rect [7025 4894 7252 5059] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_exa_chap_3 /ANN pdfmark
+[ /Rect [7025 4894 7252 5059] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_exa_chap_3 /ANN pdfmark
7025(88)s 4816 4321(Object)m 5460(,)s
-[ /Rect [5567 4321 5662 4483] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pri_obje_1 /ANN pdfmark
+[ /Rect [5567 4321 5662 4483] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pri_obje_1 /ANN pdfmark
5567(1)s 220 fnt2
4816 4030(@OddP)m 8(ageList)k 240 fnt1 6355 4033(e)m 3(xample)k
7165(,)s
-[ /Rect [7272 4030 7500 4195] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_exa_page_9 /ANN pdfmark
+[ /Rect [7272 4030 7500 4195] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_exa_page_9 /ANN pdfmark
7272(87)s 220 fnt2 4816 3742(o)m 240 fnt1
4991 3745(g)m 1(ap)k 5389(mode)s 5924(,)s
-[ /Rect [6031 3742 6259 3907] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_conc_26 /ANN pdfmark
+[ /Rect [6031 3742 6259 3907] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_conc_26 /ANN pdfmark
6031(37)s
220 fnt2 4816 3454(@OneCol)m 240 fnt1 5828 3457(symbol)m 6535(,)s
-[ /Rect [6642 3454 6877 3622] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_oner_3 /ANN pdfmark
+[ /Rect [6642 3454 6877 3622] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_oner_3 /ANN pdfmark
6642(50)s 220 fnt2 4816 3166(@OneOf)m 240 fnt1 5743 3169(symbol)m
6450(,)s
-[ /Rect [6557 3166 6784 3334] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_oneo_1 /ANN pdfmark
+[ /Rect [6557 3166 6784 3334] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_oneo_1 /ANN pdfmark
6557(58)s 220 fnt2 4816 2878(@OneP)m 8(age)k
240 fnt1 6010 2881(e)m 3(xample)k 6820(,)s
-[ /Rect [6927 2878 7160 3045] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_exa_page_7 /ANN pdfmark
+[ /Rect [6927 2878 7160 3045] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_exa_page_7 /ANN pdfmark
6927(86)s
220 fnt2 4816 2590(@OneRo)m 3(w)k 240 fnt1 5947 2593(symbol)m
6654(,)s
-[ /Rect [6761 2588 6992 2755] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_oner_1 /ANN pdfmark
+[ /Rect [6761 2588 6992 2755] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_oner_1 /ANN pdfmark
6761(49)s 220 fnt2 4816 2302(@Open)m 240 fnt1
5622 2305(symbol)m 6329(,)s
-[ /Rect [6436 2302 6662 2470] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_open_1 /ANN pdfmark
+[ /Rect [6436 2302 6662 2470] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_open_1 /ANN pdfmark
6436(65)s 4816 2017(Optimal)m 5654(g)s 1(alle)k 3(y)k
6288(breaking)s 7125(,)s
-[ /Rect [7232 2014 7458 2182] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_det_opti_1 /ANN pdfmark
+[ /Rect [7232 2014 7458 2182] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_det_opti_1 /ANN pdfmark
7232(35)s 220 fnt2 4816 1726(@Optimiz)m 3(e)k
240 fnt1 5953 1729(symbol)m 6660(,)s
-[ /Rect [6767 1726 6993 1894] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_det_opti_2 /ANN pdfmark
+[ /Rect [6767 1726 6993 1894] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_det_opti_2 /ANN pdfmark
6767(35)s 220 fnt2
4816 1438(or)m 2(agged)k 5667(@Break)s 240 fnt1 6470 1441(,)m
-[ /Rect [6577 1438 6801 1603] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_brea_6 /ANN pdfmark
+[ /Rect [6577 1438 6801 1603] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_brea_6 /ANN pdfmark
6577(43)s 220 fnt2 4816 1150(@OrElse)m 240 fnt1 5761 1153(e)m 3(xample)k
6571(,)s
-[ /Rect [6678 1148 6893 1315] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_exa_chap_5 /ANN pdfmark
+[ /Rect [6678 1148 6893 1315] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_exa_chap_5 /ANN pdfmark
6678(91)s 4816 865(Other)m 5420(character)s 6301(,)s
-[ /Rect [6408 862 6632 1027] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_det_lexi_3 /ANN pdfmark
+[ /Rect [6408 862 6632 1027] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_det_lexi_3 /ANN pdfmark
6408(13)s 220 fnt2 4816 574(outdent)m 5604(@Break)s 240 fnt1
6407 577(,)m
-[ /Rect [6514 577 6748 739] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_brea_2 /ANN pdfmark
+[ /Rect [6514 577 6748 739] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_brea_2 /ANN pdfmark
6514(42)s 220 fnt2 4816 286(@Outline)m 240 fnt1
5785 289(symbol)m 6492(,)s
-[ /Rect [6599 286 6826 451] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_outl_1 /ANN pdfmark
+[ /Rect [6599 286 6826 451] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_outl_1 /ANN pdfmark
6599(48)s
grestore
gsave
@@ -21549,276 +21549,276 @@ gsave
grestore
220 fnt2 0 13246(o)m 3(v)k 5(er)k
240 fnt1 479 13249(e)m 3(xample)k 1289(,)s
-[ /Rect [1396 13246 1623 13411] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_exa_equa_6 /ANN pdfmark
+[ /Rect [1396 13246 1623 13411] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_exa_equa_6 /ANN pdfmark
1396(78)s
0 12961(Ov)m 3(erstrik)k 2(e)k 1059(g)s 1(ap)k
1457(mode)s 1992(,)s
-[ /Rect [2099 12958 2327 13123] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_conc_25 /ANN pdfmark
+[ /Rect [2099 12958 2327 13123] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_conc_25 /ANN pdfmark
2099(37)s 220 fnt2 0 12382(@P)m 26(Adjust)k
240 fnt1 1008 12385(symbol)m 1715(,)s
-[ /Rect [1822 12382 2037 12550] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_hadj_1 /ANN pdfmark
+[ /Rect [1822 12382 2037 12550] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_hadj_1 /ANN pdfmark
1822(51)s 220 fnt2
0 12094(@P)m 8(age)k 240 fnt1 779 12097(e)m 3(xample)k
1589(,)s
-[ /Rect [1696 12094 1922 12262] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_exa_page_6 /ANN pdfmark
+[ /Rect [1696 12094 1922 12262] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_exa_page_6 /ANN pdfmark
1696(85)s 220 fnt2 0 11806(@P)m 8(ageLabel)k
240 fnt1 1309 11809(symbol)m 2016(,)s
-[ /Rect [2123 11806 2356 11973] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_page_1 /ANN pdfmark
+[ /Rect [2123 11806 2356 11973] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_page_1 /ANN pdfmark
2123(76)s 0 11521(P)m 3(age)k
518(layout)s 240 11233(principles)m 1233(of)s 1451(,)s
-[ /Rect [1558 11230 1664 11398] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pri_defi_7 /ANN pdfmark
+[ /Rect [1558 11230 1664 11398] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pri_defi_7 /ANN pdfmark
1558(5)s
240 10945(in)m 483(practice)s 1241(,)s
-[ /Rect [1348 10942 1572 11107] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_exa_page_1 /ANN pdfmark
+[ /Rect [1348 10942 1572 11107] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_exa_page_1 /ANN pdfmark
1348(83)s 220 fnt2
0 10654(@P)m 8(ageOf)k 240 fnt1 1016 10657(e)m 3(xample)k
1826(,)s
-[ /Rect [1933 10654 2157 10819] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_exa_page_3 /ANN pdfmark
+[ /Rect [1933 10654 2157 10819] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_exa_page_3 /ANN pdfmark
1933(83)s 0 10369(P)m 3(aragraph)k 1023(breaking)s
1860(,)s
-[ /Rect [1967 10366 2071 10531] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pri_obje_7 /ANN pdfmark
+[ /Rect [1967 10366 2071 10531] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pri_obje_7 /ANN pdfmark
1967(3)s 240 10081(in)m 483(detail)s 1015(,)s
-[ /Rect [1122 10076 1353 10243] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_conc_35 /ANN pdfmark
+[ /Rect [1122 10076 1353 10243] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_conc_35 /ANN pdfmark
1122(39)s 0 9793(P)m 3(arameter)k 971(,)s
-[ /Rect [1078 9793 1192 9955] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pri_defi_5 /ANN pdfmark
+[ /Rect [1078 9793 1192 9955] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pri_defi_5 /ANN pdfmark
1078(4)s
220 fnt2 240 9502(body)m 240 fnt1 774 9505(parameter)m 1735(,)s
-[ /Rect [1842 9504 2070 9667] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_det_visi_2 /ANN pdfmark
+[ /Rect [1842 9504 2070 9667] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_det_visi_2 /ANN pdfmark
1842(17)s 220 fnt2 240 9214(named)m 240 fnt1 959 9217(parameter)m
1920(,)s
-[ /Rect [2027 9214 2253 9382] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_det_name_1 /ANN pdfmark
+[ /Rect [2027 9214 2253 9382] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_det_name_1 /ANN pdfmark
2027(15)s 220 fnt2 0 8926(@PlainGr)m 2(aphic)k
240 fnt1 1530 8929(symbol)m 2237(,)s
-[ /Rect [2344 8928 2578 9091] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_plai_1 /ANN pdfmark
+[ /Rect [2344 8928 2578 9091] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_plai_1 /ANN pdfmark
2344(72)s 0 8641(PostScript)m
989(,)s
-[ /Rect [1096 8641 1222 8804] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_preface_1 /ANN pdfmark
+[ /Rect [1096 8641 1222 8804] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_preface_1 /ANN pdfmark
1096(ii)s 240 8353(used)m 737(by)s 220 fnt2
1031 8350(@Gr)m 2(aphic)k 240 fnt1 2022 8353(,)m
-[ /Rect [2129 8350 2356 8517] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_grap_3 /ANN pdfmark
+[ /Rect [2129 8350 2356 8517] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_grap_3 /ANN pdfmark
2129(68)s
240 8065(used)m 737(by)s 220 fnt2 1031 8062(@IncludeGr)m 2(aphic)k
240 fnt1 2729 8065(,)m
-[ /Rect [2836 8064 3070 8227] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_incg_3 /ANN pdfmark
+[ /Rect [2836 8064 3070 8227] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_incg_3 /ANN pdfmark
2836(72)s 240 7777(used)m 737(by)s
220 fnt2 1031 7774(@IncludeGr)m 2(aphicRepeated)k 240 fnt1 3673 7777(,)m
-[ /Rect [3780 7776 4014 7939] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_incr_3 /ANN pdfmark
+[ /Rect [3780 7776 4014 7939] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_incr_3 /ANN pdfmark
3780(72)s 240 7489(used)m 737(by)s 220 fnt2 1031 7486(@PrependGr)m 2(aphic)k
240 fnt1 2851 7489(,)m
-[ /Rect [2958 7486 3182 7651] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_prep_3 /ANN pdfmark
+[ /Rect [2958 7486 3182 7651] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_prep_3 /ANN pdfmark
2958(73)s 220 fnt2 0 7198(@PP)m
240 fnt1 566 7201(e)m 3(xample)k 1376(,)s
-[ /Rect [1483 7198 1718 7363] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_exa_para_3 /ANN pdfmark
+[ /Rect [1483 7198 1718 7363] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_exa_para_3 /ANN pdfmark
1483(80)s
0 6913(Precedence)m 1091(,)s
-[ /Rect [1198 6913 1432 7075] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_det_prec_1 /ANN pdfmark
+[ /Rect [1198 6913 1432 7075] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_det_prec_1 /ANN pdfmark
1198(22)s 220 fnt2 0 6622(preceding)m
240 fnt1 958 6625(,)m
-[ /Rect [1065 6622 1172 6787] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pri_cros_5 /ANN pdfmark
+[ /Rect [1065 6622 1172 6787] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pri_cros_5 /ANN pdfmark
1065(8)s 220 fnt2 0 6334(@PrependGr)m 2(aphic)k
240 fnt1 1873 6337(symbol)m 2580(,)s
-[ /Rect [2687 6334 2911 6499] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_prep_1 /ANN pdfmark
+[ /Rect [2687 6334 2911 6499] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_prep_1 /ANN pdfmark
2687(73)s 0 6049(Principal)m
917(mark)s 1416(,)s
-[ /Rect [1523 6046 1751 6211] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_conc_5 /ANN pdfmark
+[ /Rect [1523 6046 1751 6211] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_conc_5 /ANN pdfmark
1523(37)s 240 5761(ef)m 6(fect)k
836(on)s 220 fnt2 1133 5758(@OneCol)m 240 fnt1 2145 5761(and)m
220 fnt2 2549 5758(@OneRo)m 3(w)k 240 fnt1 3627 5761(,)m
-[ /Rect [3734 5756 3965 5923] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_oner_2 /ANN pdfmark
+[ /Rect [3734 5756 3965 5923] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_oner_2 /ANN pdfmark
3734(49)s 0 5473(Promotion)m 1067(of)s 1338(components)s 2493(,)s
-[ /Rect [2600 5468 2831 5635] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_det_gall_9 /ANN pdfmark
+[ /Rect [2600 5468 2831 5635] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_det_gall_9 /ANN pdfmark
2600(29)s 220 fnt2 0 5182(p)m 240 fnt1 174 5185(unit)m
553(,)s
-[ /Rect [660 5182 888 5347] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_conc_9 /ANN pdfmark
+[ /Rect [660 5182 888 5347] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_conc_9 /ANN pdfmark
660(37)s 0 4609(Quote)m 641(character)s 1522(,)s
-[ /Rect [1629 4606 1853 4771] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_det_lexi_4 /ANN pdfmark
+[ /Rect [1629 4606 1853 4771] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_det_lexi_4 /ANN pdfmark
1629(13)s 0 4321(Quoted)m 763(w)s 2(ord)k 1258(,)s
-[ /Rect [1365 4321 1599 4483] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_det_lexi_20 /ANN pdfmark
+[ /Rect [1365 4321 1599 4483] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_det_lexi_20 /ANN pdfmark
1365(14)s 220 fnt2 0 3742(r)m 2(agged)k 729(@Break)s
240 fnt1 1532 3745(,)m
-[ /Rect [1639 3742 1863 3907] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_brea_3 /ANN pdfmark
+[ /Rect [1639 3742 1863 3907] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_brea_3 /ANN pdfmark
1639(43)s 220 fnt2 0 3454(@Ra)m 4(wV)k 17(erbatim)k
240 fnt1 1563 3457(symbol)m 2270(,)s
-[ /Rect [2377 3454 2603 3622] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_verb_2 /ANN pdfmark
+[ /Rect [2377 3454 2603 3622] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_verb_2 /ANN pdfmark
2377(75)s 0 3169(Recepti)m 6(v)k 3(e)k
1003(symbol)s 1710(,)s
-[ /Rect [1817 3169 2032 3331] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pri_gall_4 /ANN pdfmark
+[ /Rect [1817 3169 2032 3331] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pri_gall_4 /ANN pdfmark
1817(11)s 0 2881(Recursion)m 974(,)s
-[ /Rect [1081 2878 1187 3046] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pri_defi_6 /ANN pdfmark
+[ /Rect [1081 2878 1187 3046] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pri_defi_6 /ANN pdfmark
1081(5)s 220 fnt2 0 2590(@Ref)m 6(erence)k 240 fnt1
1281 2593(e)m 3(xample)k 2091(,)s
-[ /Rect [2198 2588 2422 2755] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_exa_bibl_2 /ANN pdfmark
+[ /Rect [2198 2588 2422 2755] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_exa_bibl_2 /ANN pdfmark
2198(93)s 220 fnt2
0 2302(@Ref)m 6(erenceSection)k 240 fnt1 2006 2305(e)m 3(xample)k
2816(,)s
-[ /Rect [2923 2300 3149 2470] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_exa_bibl_3 /ANN pdfmark
+[ /Rect [2923 2300 3149 2470] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_exa_bibl_3 /ANN pdfmark
2923(95)s 220 fnt2 0 2014(@Ref)m 240 fnt1
621 2017(e)m 3(xample)k 1431(,)s
-[ /Rect [1538 2012 1771 2181] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_exa_bibl_4 /ANN pdfmark
+[ /Rect [1538 2012 1771 2181] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_exa_bibl_4 /ANN pdfmark
1538(96)s 0 1729(Reid,)m
559(Brian)s 1147(K.)s 1371(,)s
-[ /Rect [1478 1728 1586 1887] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pri_cros_3 /ANN pdfmark
+[ /Rect [1478 1728 1586 1887] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pri_cros_3 /ANN pdfmark
1478(7)s 0 1441(Right)m
592(justi\207cation)s 1724(,)s
-[ /Rect [1831 1438 2059 1603] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_conc_32 /ANN pdfmark
+[ /Rect [1831 1438 2059 1603] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_conc_32 /ANN pdfmark
1831(37)s 220 fnt2 0 1150(r)m -3(lines)k
579(@Break)s 240 fnt1 1382 1153(,)m
-[ /Rect [1489 1150 1713 1315] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_brea_9 /ANN pdfmark
+[ /Rect [1489 1150 1713 1315] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_brea_9 /ANN pdfmark
1489(43)s 0 865(Roman)m
749(numerals)s 1623(,)s
-[ /Rect [1730 862 1954 1027] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_exa_para_9 /ANN pdfmark
+[ /Rect [1730 862 1954 1027] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_exa_para_9 /ANN pdfmark
1730(83)s 0 577(Root)m 526(g)s 1(alle)k 3(y)k
1107(,)s
-[ /Rect [1214 577 1429 739] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pri_gall_5 /ANN pdfmark
+[ /Rect [1214 577 1429 739] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pri_gall_5 /ANN pdfmark
1214(11)s 240 289(in)m 483(detail)s 1015(,)s
-[ /Rect [1122 286 1349 451] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_det_gall_6 /ANN pdfmark
+[ /Rect [1122 286 1349 451] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_det_gall_6 /ANN pdfmark
1122(28)s 4816 13247(Root)m 5342(g)s 1(alle)k 3(y)k
240 fnt6 5976 13249(\(ctd.\))m 240 fnt1 5056 12959(printing)m 5866(of)s
6084(,)s
-[ /Rect [6191 12954 6422 13121] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_det_gall_7 /ANN pdfmark
+[ /Rect [6191 12954 6422 13121] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_det_gall_7 /ANN pdfmark
6191(29)s 5056 12671(size)m 5483(of)s 5754(components)s
6962(of)s 7180(,)s
-[ /Rect [7287 12668 7513 12836] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_det_size_5 /ANN pdfmark
+[ /Rect [7287 12668 7513 12836] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_det_size_5 /ANN pdfmark
7287(25)s 220 fnt2 4816 12380(@Rotate)m
240 fnt1 5737 12383(symbol)m 6444(,)s
-[ /Rect [6551 12380 6777 12548] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_rota_1 /ANN pdfmark
+[ /Rect [6551 12380 6777 12548] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_rota_1 /ANN pdfmark
6551(55)s 4816 12095(Rotation)m
5697(of)s 5968(object)s 6559(,)s
-[ /Rect [6666 12092 6892 12260] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_rota_2 /ANN pdfmark
+[ /Rect [6666 12092 6892 12260] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_rota_2 /ANN pdfmark
6666(55)s 4816 11807(Ro)m 6(w)k
5317(mark)s 5816(,)s
-[ /Rect [5923 11807 6037 11969] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pri_obje_4 /ANN pdfmark
+[ /Rect [5923 11807 6037 11969] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pri_obje_4 /ANN pdfmark
5923(2)s 220 fnt2 4816 11516(rr)m 2(agged)k
5618(@Break)s 240 fnt1 6421 11519(,)m
-[ /Rect [6528 11516 6752 11681] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_brea_5 /ANN pdfmark
+[ /Rect [6528 11516 6752 11681] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_brea_5 /ANN pdfmark
6528(43)s 220 fnt2
4816 11228(@Rump)m 240 fnt1 5676 11231(symbol)m 6383(,)s
-[ /Rect [6490 11228 6723 11396] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_rump_2 /ANN pdfmark
+[ /Rect [6490 11228 6723 11396] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_rump_2 /ANN pdfmark
6490(56)s
220 fnt2 4816 10940(r)m 240 fnt1 4949 10943(unit)m 5328(,)s
-[ /Rect [5435 10940 5663 11105] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_conc_16 /ANN pdfmark
+[ /Rect [5435 10940 5663 11105] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_conc_16 /ANN pdfmark
5435(37)s 220 fnt2 4816 10652(@Runner)m 240 fnt1 5818 10655(e)m 3(xample)k
6628(,)s
-[ /Rect [6735 10652 6968 10819] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_exa_page_8 /ANN pdfmark
+[ /Rect [6735 10652 6968 10819] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_exa_page_8 /ANN pdfmark
6735(86)s 220 fnt2 4816 10076(@Scale)m 240 fnt1
5639 10079(symbol)m 6346(,)s
-[ /Rect [6453 10076 6687 10244] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_scal_1 /ANN pdfmark
+[ /Rect [6453 10076 6687 10244] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_scal_1 /ANN pdfmark
6453(54)s 4816 9791(Scaling)m 5586(of)s
5857(object)s 6448(,)s
-[ /Rect [6555 9788 6789 9956] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_hsca_3 /ANN pdfmark
+[ /Rect [6555 9788 6789 9956] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_hsca_3 /ANN pdfmark
6555(52)s 4816 9503(Scribe)m 5429(,)s
-[ /Rect [5536 9502 5644 9661] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pri_cros_2 /ANN pdfmark
+[ /Rect [5536 9502 5644 9661] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pri_cros_2 /ANN pdfmark
5536(7)s 220 fnt2 4816 9212(@Section)m 240 fnt1 5816 9215(e)m 3(xample)k
6626(,)s
-[ /Rect [6733 9210 6948 9377] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_exa_chap_6 /ANN pdfmark
+[ /Rect [6733 9210 6948 9377] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_exa_chap_6 /ANN pdfmark
6733(91)s 220 fnt2 4816 8924(@SetColor)m 240 fnt1
5951 8927(symbol)m 6658(,)s
-[ /Rect [6765 8924 6991 9092] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_colo_2 /ANN pdfmark
+[ /Rect [6765 8924 6991 9092] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_colo_2 /ANN pdfmark
6765(45)s 220 fnt2 4816 8636(@SetColour)m
240 fnt1 6073 8639(symbol)m 6780(,)s
-[ /Rect [6887 8636 7113 8804] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_colo_1 /ANN pdfmark
+[ /Rect [6887 8636 7113 8804] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_colo_1 /ANN pdfmark
6887(45)s 220 fnt2
4816 8348(@SetHeaderComponent)m 240 fnt1 7277 8351(symbol)m 7984(,)s
-[ /Rect [8091 8348 8315 8515] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_head_4 /ANN pdfmark
+[ /Rect [8091 8348 8315 8515] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_head_4 /ANN pdfmark
8091(63)s
220 fnt2 4816 8060(@SetT)m 26(e)k 6(xture)k 240 fnt1
6132 8063(symbol)m 6839(,)s
-[ /Rect [6946 8062 7174 8225] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_text_1 /ANN pdfmark
+[ /Rect [6946 8062 7174 8225] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_text_1 /ANN pdfmark
6946(47)s 4816 7775(Size)m 5283(of)s
5554(an)s 5837(object)s 6428(,)s
-[ /Rect [6535 7775 6769 7937] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_det_size_4 /ANN pdfmark
+[ /Rect [6535 7775 6769 7937] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_det_size_4 /ANN pdfmark
6535(24)s 4816 7487(small)m
5388(capitals)s 6115(,)s
-[ /Rect [6222 7487 6437 7649] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_font_7 /ANN pdfmark
+[ /Rect [6222 7487 6437 7649] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_font_7 /ANN pdfmark
6222(41)s 4816 7199(Sorted)m 5498(g)s 1(alle)k 3(ys)k
6169(,)s
-[ /Rect [6276 7196 6510 7361] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_det_sort_1 /ANN pdfmark
+[ /Rect [6276 7196 6510 7361] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_det_sort_1 /ANN pdfmark
6276(32)s 4816 6911(Space)m 5390(,)s
-[ /Rect [5497 6908 5721 7073] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_det_lexi_10 /ANN pdfmark
+[ /Rect [5497 6908 5721 7073] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_det_lexi_10 /ANN pdfmark
5497(13)s
5056 6623(when)m 5632(signi\207cant)s 6635(,)s
-[ /Rect [6742 6620 6969 6785] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_conc_34 /ANN pdfmark
+[ /Rect [6742 6620 6969 6785] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_conc_34 /ANN pdfmark
6742(38)s 220 fnt2
4816 6332(@Space)m 240 fnt1 5713 6335(symbol)m 6420(,)s
-[ /Rect [6527 6335 6761 6497] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_spac_1 /ANN pdfmark
+[ /Rect [6527 6335 6761 6497] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_spac_1 /ANN pdfmark
6527(44)s
220 fnt2 4816 6044(@Star)m -8(tHSpan)k 240 fnt1 6226 6047(symbol)m
6933(,)s
-[ /Rect [7040 6044 7264 6212] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_span_1 /ANN pdfmark
+[ /Rect [7040 6044 7264 6212] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_span_1 /ANN pdfmark
7040(53)s 220 fnt2 4816 5756(@Star)m -8(tHVSpan)k
240 fnt1 6372 5759(symbol)m 7079(,)s
-[ /Rect [7186 5756 7410 5924] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_span_3 /ANN pdfmark
+[ /Rect [7186 5756 7410 5924] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_span_3 /ANN pdfmark
7186(53)s 220 fnt2
4816 5468(@Star)m -8(tVSpan)k 240 fnt1 6214 5471(symbol)m 6921(,)s
-[ /Rect [7028 5468 7252 5636] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_span_2 /ANN pdfmark
+[ /Rect [7028 5468 7252 5636] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_span_2 /ANN pdfmark
7028(53)s 4816 5183(Style)m 5363(of)s 5634(an)s 5917(object)s
6508(,)s
-[ /Rect [6615 5180 6839 5345] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_det_size_1 /ANN pdfmark
+[ /Rect [6615 5180 6839 5345] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_det_size_1 /ANN pdfmark
6615(23)s 220 fnt2 4816 4892(s)m 240 fnt1
4979 4895(unit)m 5358(,)s
-[ /Rect [5465 4892 5693 5057] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_conc_12 /ANN pdfmark
+[ /Rect [5465 4892 5693 5057] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_conc_12 /ANN pdfmark
5465(37)s 5056 4607(and)m 220 fnt2
5460 4604(@Space)m 240 fnt1 6357 4607(symbol)m 7064(,)s
-[ /Rect [7171 4607 7405 4769] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_spac_2 /ANN pdfmark
+[ /Rect [7171 4607 7405 4769] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_spac_2 /ANN pdfmark
7171(44)s
220 fnt2 4816 4316(sup)m 240 fnt1 5222 4319(e)m 3(xample)k
6032(,)s
-[ /Rect [6139 4316 6366 4481] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_exa_equa_5 /ANN pdfmark
+[ /Rect [6139 4316 6366 4481] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_exa_equa_5 /ANN pdfmark
6139(78)s 4816 4031(Symbol)m 5563(,)s
-[ /Rect [5670 4031 5784 4193] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pri_defi_2 /ANN pdfmark
+[ /Rect [5670 4031 5784 4193] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pri_defi_2 /ANN pdfmark
5670(4)s
220 fnt2 4816 3740(@SysDatabase)m 240 fnt1 6396 3743(symbol)m 7103(,)s
-[ /Rect [7210 3740 7437 3907] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_data_3 /ANN pdfmark
+[ /Rect [7210 3740 7437 3907] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_data_3 /ANN pdfmark
7210(68)s 220 fnt2 4816 3452(@SysIncludeGr)m 2(aphicRepeated)k 240 fnt1
7877 3455(symbol)m 8584(,)s
-[ /Rect [8691 3454 8925 3617] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_incr_2 /ANN pdfmark
+[ /Rect [8691 3454 8925 3617] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_incr_2 /ANN pdfmark
8691(72)s 220 fnt2 4816 3164(@SysIncludeGr)m 2(aphic)k
240 fnt1 6933 3167(symbol)m 7640(,)s
-[ /Rect [7747 3166 7981 3329] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_incg_2 /ANN pdfmark
+[ /Rect [7747 3166 7981 3329] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_incg_2 /ANN pdfmark
7747(72)s 220 fnt2
4816 2876(@SysInclude)m 240 fnt1 6164 2879(symbol)m 6871(,)s
-[ /Rect [6978 2876 7202 3041] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_incl_2 /ANN pdfmark
+[ /Rect [6978 2876 7202 3041] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_incl_2 /ANN pdfmark
6978(73)s
220 fnt2 4816 2588(@SysPrependGr)m 2(aphic)k 240 fnt1 7055 2591(symbol)m
7762(,)s
-[ /Rect [7869 2588 8093 2753] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_prep_2 /ANN pdfmark
+[ /Rect [7869 2588 8093 2753] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_prep_2 /ANN pdfmark
7869(73)s 4816 2015(T)m 19(ables)k 5432(,)s
-[ /Rect [5539 2015 5653 2177] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pri_obje_5 /ANN pdfmark
+[ /Rect [5539 2015 5653 2177] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pri_obje_5 /ANN pdfmark
5539(2)s 4816 1727(T)m 19(ab)k 4(ulation)k 5886(g)s 1(ap)k
6284(mode)s 6819(,)s
-[ /Rect [6926 1724 7154 1889] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_conc_29 /ANN pdfmark
+[ /Rect [6926 1724 7154 1889] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_conc_29 /ANN pdfmark
6926(37)s 220 fnt2 4816 1436(@T)m 26(agged)k
240 fnt1 5805 1439(symbol)m 6512(,)s
-[ /Rect [6619 1436 6845 1604] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_tagg_1 /ANN pdfmark
+[ /Rect [6619 1436 6845 1604] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_tagg_1 /ANN pdfmark
6619(65)s 220 fnt2
4816 1148(@T)m 26(ag)k 240 fnt1 5439 1151(parameter)m 9(,)k
6491(def)s 2(ault)k 7212(v)s 6(alue)k 7780(of)s
7998(,)s
-[ /Rect [8105 1148 8338 1315] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_det_name_4 /ANN pdfmark
+[ /Rect [8105 1148 8338 1315] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_det_name_4 /ANN pdfmark
8105(16)s 4816 863(T)m 19(ar)k 4(get)k
5476(of)s 5747(cross)s 6289(reference)s 7179(,)s
-[ /Rect [7286 860 7393 1025] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pri_cros_4 /ANN pdfmark
+[ /Rect [7286 860 7393 1025] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pri_cros_4 /ANN pdfmark
7286(8)s
4816 575(T)m 19(ar)k 4(get)k 5476(of)s 5747(a)s
5913(g)s 1(alle)k 3(y)k 6494(,)s
-[ /Rect [6601 575 6816 737] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pri_gall_3 /ANN pdfmark
+[ /Rect [6601 575 6816 737] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pri_gall_3 /ANN pdfmark
6601(11)s
5056 287(in)m 5299(detail)s 5831(,)s
-[ /Rect [5938 284 6171 451] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_det_gall_2 /ANN pdfmark
+[ /Rect [5938 284 6171 451] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_det_gall_2 /ANN pdfmark
5938(26)s
grestore
gsave
@@ -21878,100 +21878,100 @@ grestore
220 fnt2
0 13246(@T)m 26(arget)k 240 fnt1 887 13249(symbol)m 1594(,)s
-[ /Rect [1701 13246 1936 13411] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_det_gall_11 /ANN pdfmark
+[ /Rect [1701 13246 1936 13411] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_det_gall_11 /ANN pdfmark
1701(30)s 0 12961(T)m 96 12913(E)m 203 12961(X)m 240 12673(h)m 1(yphenation)k
1427(,)s
-[ /Rect [1534 12668 1765 12835] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_conc_38 /ANN pdfmark
+[ /Rect [1534 12668 1765 12835] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_conc_38 /ANN pdfmark
1534(39)s 240 12385(optimal)m 1025(paragraph)s 2038(breaking)s
2875(,)s
-[ /Rect [2982 12380 3213 12547] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_conc_36 /ANN pdfmark
+[ /Rect [2982 12380 3213 12547] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_conc_36 /ANN pdfmark
2982(39)s 0 12097(T)m 16(e)k 3(xtual)k
766(unit)s 1145(,)s
-[ /Rect [1252 12094 1476 12259] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_det_lexi_1 /ANN pdfmark
+[ /Rect [1252 12094 1476 12259] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_det_lexi_1 /ANN pdfmark
1252(13)s 220 fnt2 0 11806(t)m
240 fnt1 117 11809(g)m 1(ap)k 515(mode)s 1050(,)s
-[ /Rect [1157 11806 1385 11971] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_conc_30 /ANN pdfmark
+[ /Rect [1157 11806 1385 11971] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_conc_30 /ANN pdfmark
1157(37)s 220 fnt2 0 11230(@Under)m -3(line)k 240 fnt1
1215 11233(symbol)m 1922(,)s
-[ /Rect [2029 11230 2262 11397] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_unde_1 /ANN pdfmark
+[ /Rect [2029 11230 2262 11397] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_unde_1 /ANN pdfmark
2029(76)s 0 10945(Underscore)m 1158(character)s
2039(,)s
-[ /Rect [2146 10942 2370 11107] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_det_lexi_7 /ANN pdfmark
+[ /Rect [2146 10942 2370 11107] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_det_lexi_7 /ANN pdfmark
2146(13)s 220 fnt2 0 10654(@Use)m 240 fnt1
665 10657(symbol)m 1372(,)s
-[ /Rect [1479 10654 1705 10822] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_open_2 /ANN pdfmark
+[ /Rect [1479 10654 1705 10822] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_open_2 /ANN pdfmark
1479(65)s 220 fnt2 0 10078(@V)m 17(Adjust)k
240 fnt1 1017 10081(symbol)m 1724(,)s
-[ /Rect [1831 10078 2046 10246] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_hadj_3 /ANN pdfmark
+[ /Rect [1831 10078 2046 10246] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_hadj_3 /ANN pdfmark
1831(51)s 220 fnt2
0 9790(@VContr)m 2(act)k 240 fnt1 1252 9793(symbol)m 1959(,)s
-[ /Rect [2066 9790 2281 9958] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_hcon_2 /ANN pdfmark
+[ /Rect [2066 9790 2281 9958] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_hcon_2 /ANN pdfmark
2066(51)s 220 fnt2 0 9502(@VCo)m 3(v)k 5(er)k
240 fnt1 1006 9505(symbol)m 1713(,)s
-[ /Rect [1820 9502 2054 9670] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_cove_2 /ANN pdfmark
+[ /Rect [1820 9502 2054 9670] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_cove_2 /ANN pdfmark
1820(52)s 220 fnt2
0 9214(@V)m 17(erbatim)k 240 fnt1 1129 9217(symbol)m 1836(,)s
-[ /Rect [1943 9214 2169 9382] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_verb_1 /ANN pdfmark
+[ /Rect [1943 9214 2169 9382] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_verb_1 /ANN pdfmark
1943(75)s 0 8929(V)m 26(ertical)k 797(concatenation)s 2129(,)s
-[ /Rect [2236 8926 2469 9093] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_conc_2 /ANN pdfmark
+[ /Rect [2236 8926 2469 9093] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_conc_2 /ANN pdfmark
2236(36)s 220 fnt2 0 8638(@VExpand)m 240 fnt1 1161 8641(symbol)m
1868(,)s
-[ /Rect [1975 8638 2190 8806] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_hexp_2 /ANN pdfmark
+[ /Rect [1975 8638 2190 8806] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_hexp_2 /ANN pdfmark
1975(51)s 220 fnt2 0 8350(@VLimited)m 240 fnt1
1123 8353(symbol)m 1830(,)s
-[ /Rect [1937 8350 2152 8518] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_hlim_2 /ANN pdfmark
+[ /Rect [1937 8350 2152 8518] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_hlim_2 /ANN pdfmark
1937(51)s 220 fnt2 0 8062(@VScale)m
240 fnt1 969 8065(symbol)m 1676(,)s
-[ /Rect [1783 8062 2017 8230] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_hsca_2 /ANN pdfmark
+[ /Rect [1783 8062 2017 8230] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_hsca_2 /ANN pdfmark
1783(52)s 220 fnt2
0 7774(@VShift)m 240 fnt1 863 7777(symbol)m 1570(,)s
-[ /Rect [1677 7774 1912 7942] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_hshi_2 /ANN pdfmark
+[ /Rect [1677 7774 1912 7942] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_hshi_2 /ANN pdfmark
1677(50)s
220 fnt2 0 7486(@VSpan)m 240 fnt1 927 7489(symbol)m 1634(,)s
-[ /Rect [1741 7486 1965 7654] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_span_5 /ANN pdfmark
+[ /Rect [1741 7486 1965 7654] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_span_5 /ANN pdfmark
1741(53)s 220 fnt2 0 7198(v)m 240 fnt1 169 7201(unit)m
548(,)s
-[ /Rect [655 7198 883 7363] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_conc_13 /ANN pdfmark
+[ /Rect [655 7198 883 7363] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_conc_13 /ANN pdfmark
655(37)s 240 6913(ef)m 6(fect)k 836(on)s
1133(paragraph)s 2146(breaking)s 2983(,)s
-[ /Rect [3090 6910 3314 7075] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_brea_10 /ANN pdfmark
+[ /Rect [3090 6910 3314 7075] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_brea_10 /ANN pdfmark
3090(43)s 0 6337(White)m
640(space)s 1174(,)s
-[ /Rect [1281 6334 1505 6499] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_det_lexi_8 /ANN pdfmark
+[ /Rect [1281 6334 1505 6499] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_det_lexi_8 /ANN pdfmark
1281(13)s 240 6049(when)m 816(signi\207cant)s
1819(,)s
-[ /Rect [1926 6046 2153 6211] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_conc_33 /ANN pdfmark
+[ /Rect [1926 6046 2153 6211] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_conc_33 /ANN pdfmark
1926(38)s 220 fnt2 0 5758(@Wide)m 240 fnt1
774 5761(symbol)m 1481(,)s
-[ /Rect [1588 5758 1823 5926] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_wide_1 /ANN pdfmark
+[ /Rect [1588 5758 1823 5926] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_wide_1 /ANN pdfmark
1588(50)s 0 5473(W)m 9(idth)k
646(of)s 917(an)s 1200(object)s 1791(,)s
-[ /Rect [1898 5473 2132 5635] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_det_size_2 /ANN pdfmark
+[ /Rect [1898 5473 2132 5635] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_det_size_2 /ANN pdfmark
1898(24)s
0 5185(W)m 19(ord)k 531(,)s
-[ /Rect [638 5185 872 5347] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_det_lexi_18 /ANN pdfmark
+[ /Rect [638 5185 872 5347] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_det_lexi_18 /ANN pdfmark
638(14)s 220 fnt2
0 4894(w)m 240 fnt1 216 4897(unit)m 595(,)s
-[ /Rect [702 4894 930 5059] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_conc_14 /ANN pdfmark
+[ /Rect [702 4894 930 5059] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_conc_14 /ANN pdfmark
702(37)s
220 fnt2 0 4318(x)m 240 fnt1 168 4321(g)m 1(ap)k
566(mode)s 1101(,)s
-[ /Rect [1208 4318 1436 4483] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_conc_24 /ANN pdfmark
+[ /Rect [1208 4318 1436 4483] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_conc_24 /ANN pdfmark
1208(37)s 220 fnt2 0 3742(@Y)m 4(ield)k
240 fnt1 753 3745(symbol)m 1460(,)s
-[ /Rect [1567 3740 1798 3910] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_case_2 /ANN pdfmark
+[ /Rect [1567 3740 1798 3910] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_case_2 /ANN pdfmark
1567(59)s 220 fnt2
0 3454(@YUnit)m 240 fnt1 814 3457(symbol)m 1521(,)s
-[ /Rect [1628 3454 1854 3622] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_yuni_1 /ANN pdfmark
+[ /Rect [1628 3454 1854 3622] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_yuni_1 /ANN pdfmark
1628(45)s
220 fnt2 0 2878(@ZUnit)m 240 fnt1 802 2881(symbol)m 1509(,)s
-[ /Rect [1616 2878 1842 3046] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_yuni_2 /ANN pdfmark
+[ /Rect [1616 2878 1842 3046] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4244_pre_yuni_2 /ANN pdfmark
1616(45)s
grestore
gsave
diff --git a/doc/expert/preface b/doc/expert/preface
index b5559e3..be01912 100644
--- a/doc/expert/preface
+++ b/doc/expert/preface
@@ -21,7 +21,7 @@ This manual presents Version 3 of Basser Lout, publicly released in
September 1994 @Cite { $kingston1995lout.program } and developed
continuously since then. This manual was rendered into PostScript
postscript @Index { PostScript }
-by Version 3.28 of the Basser Lout interpreter, using the symbols
+by Version 3.29 of the Basser Lout interpreter, using the symbols
described in the User's Guide @Cite { $kingston1995lout.user }.
@DP
@Heading { Acknowledgment. } Version 3 has benefited from hundreds of
diff --git a/doc/slides/README b/doc/slides/README
index ef1cd6e..e9f093f 100644
--- a/doc/slides/README
+++ b/doc/slides/README
@@ -15,4 +15,4 @@ after the second run. A copy of the final
outfile.ps is included.
Jeff Kingston
-20 December 2002
+14 August 2003
diff --git a/doc/slides/outfile.ps b/doc/slides/outfile.ps
index 719a78f..b10b9ee 100644
--- a/doc/slides/outfile.ps
+++ b/doc/slides/outfile.ps
@@ -1,6 +1,6 @@
%!PS-Adobe-3.0
-%%Creator: Basser Lout Version 3.28 (December 2002)
-%%CreationDate: Fri Dec 20 11:08:45 2002
+%%Creator: Basser Lout Version 3.29 (August 2003)
+%%CreationDate: Thu Aug 14 08:18:58 2003
%%DocumentData: Binary
%%DocumentNeededResources: (atend)
%%DocumentSuppliedResources: (atend)
@@ -1488,6 +1488,106 @@ lgraphdict begin
{ pop pop
} def
+% scale array elements by factor: <array> <factor> scalearray <array>
+/scalearray
+{
+ [ exch 3 2 roll
+ { exch dup 3 1 roll mul exch } forall
+ pop ]
+} def
+
+% sum array elements: <array> sumarray <number>
+/sumarray
+{
+ 0 exch { add } forall
+} def
+
+% begin a more complex line: <length> <dashlength> linebegin -
+/linebegin
+{
+ % (Entering linebegin) 2 debugprint
+ 20 dict begin
+ /dashlen exch 1 pt max def
+ /len exch def
+ /gap dashlen def
+ /halfgap dashlen 2 div def
+ /dash dashlen def
+ /halfdash dashlen 2 div def
+ /dot 0 def
+ % (Leaving linebegin) 0 debugprint
+} def
+% end a more complex line: <linecap> <cycle> <startpos> <stoppos> lineend -
+/lineend
+{
+ % (Entering lineend) 3 debugprint
+ /stoppos exch def
+ /startpos exch def
+ /cycle exch def
+ /linecap exch def
+ /stopposlen stoppos sumarray def
+ /startposlen startpos sumarray def
+ /cyclelen cycle sumarray def
+ /effectivelen len startposlen add stopposlen sub def
+ effectivelen 0 gt cyclelen 0 gt and
+ {
+ /repeats effectivelen cyclelen div ceiling def
+ /factor len repeats cyclelen mul startposlen sub stopposlen add div def
+ cycle factor scalearray startposlen factor mul setdash
+ linecap setlinecap stroke
+ } if
+ end
+ % (Leaving lineend) 0 debugprint
+} def
+
+% stroke a dotdashed line: <length> <dashlength> dotdashed -
+/dotdashed
+{
+ linebegin
+ 1 [dash gap dot gap] [] [dash]
+ lineend
+} def
+
+% stroke a dotcdashed line: <length> <dashlength> dotcdashed -
+/dotcdashed
+{
+ linebegin
+ 1 [dash gap dot gap] [halfdash] [halfdash]
+ lineend
+} def
+
+% stroke a dotdotdashed line: <length> <dashlength> dotdotdashed -
+/dotdotdashed
+{
+ linebegin
+ 1 [dash gap dot gap dot gap] [] [dash]
+ lineend
+} def
+
+% stroke a dotdotcdashed line: <length> <dashlength> dotdotcdashed -
+/dotdotcdashed
+{
+ linebegin
+ 1 [dash gap dot gap dot gap] [halfdash] [halfdash]
+ lineend
+} def
+
+% stroke a dotdotdotdashed line: <length> <dashlength> dotdotdotdashed -
+/dotdotdotdashed
+{
+ linebegin
+ 1 [dash gap dot gap dot gap dot gap] [] [dash]
+ lineend
+} def
+
+% stroke a dotdotdotcdashed line: <length> <dashlength> dotdotdotcdashed -
+/dotdotdotcdashed
+{
+ linebegin
+ 1 [dash gap dot gap dot gap dot gap] [halfdash] [halfdash]
+ lineend
+} def
+
+
% stroke a y histogram: - yhisto -
/yhisto
{ xprev yleft trpoint yextra sub moveto
diff --git a/doc/user/README b/doc/user/README
index 99e1a75..f023e85 100644
--- a/doc/user/README
+++ b/doc/user/README
@@ -17,14 +17,21 @@ nearly all beginning with "unresolved cross reference". These
should gradually go away on later runs. The following shows the
error message output on the later runs for A4 size printing:
+lout file "str_glos" (from "str" line 15, from "all" line 38):
+ 8,1: 1.0c object too high for 0.4c space; will try elsewhere
+lout file "str_indx" (from "str" line 16, from "all" line 38):
+ 54,1: 0.3c object too high for 0.2c space; will try elsewhere
+lout file "dia_synt" (from "dia" line 50, from "all" line 45):
+ 80,1: 1.0c object too high for 0.8c space; will try elsewhere
lout file "gra_summ" (from "gra" line 44, from "all" line 46):
- 10,1: 23.7c object too high for 23.6c space; @Scale inserted
-lout file "prg_tabs" (from "prg" line 127, from "all" line 48):
+ 10,1: 24.1c object too high for 23.6c space; @Scale inserted
+lout file "prg_tabs" (from "prg" line 141, from "all" line 48):
66,23: prg2lout 2,1: program text ended within comment
68,35: prg2lout 2,1: program text ended within comment
-The first warning is about a large table that had to be scaled
-down very slightly to fit on the page. The last two warnings
+The first three warnings are about footnotes that did not fit onto
+the first available page. The next is about a large table that had
+to be scaled down slightly to fit on the page. The last two warnings
point to two places where a C program text ended inside a comment,
which in these cases was deliberate. If you set the document in
Letter size paper, you will get a somewhat different set of warning
@@ -35,7 +42,7 @@ repeated failure to converge, caused by footnotes and floating figures
close to large unbreakable displays.
A copy of the final PostScript output file (A4 paper size) is
-stored at "ftp://ftp.cs.su.oz.au/jeff/lout/lout-3.28.user.ps.gz".
+stored at "ftp://ftp.cs.su.oz.au/jeff/lout/lout-3.29.user.ps.gz".
Jeffrey H. Kingston
-20 December 2002
+14 August 2003
diff --git a/doc/user/all b/doc/user/all
index 96aa5af..343e7fe 100644
--- a/doc/user/all
+++ b/doc/user/all
@@ -22,10 +22,10 @@ Lout
Document Formatting System
}
@Author { Jeffrey H. Kingston }
- @Edition { Version 3.28
-December, 2002 }
+ @Edition { Version 3.29
+August, 2003 }
@Publisher {
-Copyright @CopyRight 1991, 2002 Jeffrey H. Kingston,
+Copyright @CopyRight 1991, 2003 Jeffrey H. Kingston,
School of Information Technologies,
The University of Sydney 2006, Australia. ISBN 0 86758 951 5.
}
diff --git a/doc/user/dia_node b/doc/user/dia_node
index fddf3e0..068bca1 100644
--- a/doc/user/dia_node
+++ b/doc/user/dia_node
@@ -285,14 +285,15 @@ options apply to any node and affect the appearance of the outline:
}
}
This example shows the default values of these options. The
-{@Code outlinestyle} option may be {@Code solid}, {@Code dashed},
+{@Code outlinestyle} option's allowed values include {@Code solid},
+{@Code dashed},
diagrams. @RawIndex { diagrams }
diagrams.solid @SubIndex { @Code "solid" outlines }
solid.diagrams @Index { @Code "solid" outlines (diagrams) }
diagrams. @RawIndex { diagrams }
diagrams.dashed @SubIndex { @Code "dashed" outlines }
dashed.diagrams @Index { dashed outlines (diagrams) }
-{@Code cdashed}, {@Code dotted}, or {@Code noline}:
+{@Code cdashed}, {@Code dotted}, and {@Code noline}.
diagrams. @RawIndex { diagrams }
diagrams.cdashed @SubIndex { @Code "cdashed" outlines }
cdashed.diagrams @Index { cdashed outlines (diagrams) }
@@ -302,6 +303,12 @@ dotted.diagrams @Index { dotted outlines (diagrams) }
diagrams. @RawIndex { diagrams }
diagrams.noline @SubIndex { @Code "noline" outlines }
noline.diagrams @Index { noline outlines (diagrams) }
+There are also six values for mixing dots and dashes
+(Section {@NumberOf dia_summ}).
+@PP
+The @Code dashed option makes all dashes the same length, whereas
+@Code cdashed halves the length of the first and last dash on each
+segment, which usually looks better:
@ID @OneRow {
@Code @Verbatim {
@CurveBox
@@ -315,10 +322,8 @@ noline.diagrams @Index { noline outlines (diagrams) }
{ Hello, world }
}
}
-The @Code dashed option makes all dashes the same length, whereas
-@Code cdashed halves the length of the first and last dash on each segment,
-which usually looks better. The length of dashes is {@Code outlinedashlength},
-and the distance between dashes or dots is at most {@Code outlinedashlength},
+The length of dashes is {@Code outlinedashlength}, and the distance
+between dashes or dots is at most {@Code outlinedashlength},
reduced to make the dashes or dots fit evenly. The @Code outlinewidth
option determines the width of the line, dashes, or dots, and may be
{@Code thin}, {@Code medium}, {@Code thick}, or any length. The values
diff --git a/doc/user/dia_summ b/doc/user/dia_summ
index 193417e..c068fe5 100644
--- a/doc/user/dia_summ
+++ b/doc/user/dia_summ
@@ -254,6 +254,8 @@ any outline }
A { " outlinestyle" }
B { solid }
C { {@Code solid}, {@Code dashed}, {@Code cdashed}, {@Code dotted},
+{@Code dotdashed}, {@Code dotcdashed}, {@Code dotdotdashed},
+{@Code dotdotcdashed}, {@Code dotdotdotdashed}, {@Code dotdotdotcdashed},
{@Code noline}, or any sequence of one or more of these values }
@Rowa
A { " outlinedashlength"}
@@ -1186,6 +1188,8 @@ have been omitted where they are the same as the {@Code linklabel} options.
A { " pathstyle" }
B { solid }
C { {@Code solid}, {@Code dashed}, {@Code cdashed}, {@Code dotted},
+{@Code dotdashed}, {@Code dotcdashed}, {@Code dotdotdashed},
+{@Code dotdotcdashed}, {@Code dotdotdotdashed}, {@Code dotdotdotcdashed},
{@Code noline}, or any sequence of one or more of these values }
@Rowa
A { " pathdashlength"}
@@ -1472,6 +1476,12 @@ have up to twelve options, {@Code "A"} to {@Code "L"}.
@LI @SyntaxDiag { @Four code { "@Diverted ..." } @Diverted @ACell "..." }
@LI @SyntaxDiag { @Four code {
+"@OneOrBoth"
+ "A { ... }"
+ "B { ... }"
+} @OneOrBoth A { @ACell A } B { @ACell B } }
+
+@LI @SyntaxDiag { @Four code {
"@Loop"
"A { ... }"
"B { ... }"
diff --git a/doc/user/dia_synt b/doc/user/dia_synt
index 260197e..921b918 100644
--- a/doc/user/dia_synt
+++ b/doc/user/dia_synt
@@ -292,6 +292,27 @@ Here is the same example in the other three directions:
This symbol is a great aid to packing a big syntax diagram into a
compact shape.
@PP
+A variant of the basic selection idea is when you want one thing
+or another, or alternatively both in a particular order. You can get
+this with the @Code "@OneOrBoth" symbol, which takes exactly two
+options, @Code "A" and {@Code "B"}:
+@ID @OneRow {
+@Code @Verbatim {
+@StartRight @OneOrBoth
+ A { @ACell type }
+ B { @ACell body }
+}
+||7ct
+@SyntaxDiag {
+@StartRight @OneOrBoth
+ A { @ACell type }
+ B { @ACell body }
+}
+}
+Although the concept extends to more than two options, the symnbol
+doesn't. The summary at the end of this chapter shows the other
+three directions.
+@PP
That covers sequencing and selection; now for looping. The @Code "@Loop"
symbol produces a loop, with option @Code A going forwards and option
@Code B centred and going backwards:
diff --git a/doc/user/gra_data b/doc/user/gra_data
index 91f87ad..e03c60a 100644
--- a/doc/user/gra_data
+++ b/doc/user/gra_data
@@ -65,21 +65,22 @@ graphs.pairs @SubIndex { @Code pairs option }
pairs.graph @Index { @Code "pairs" option (graphs) }
determines how each pair of points is connected. The choices are
@Code none (not connected, the default), @Code solid (a solid line),
-@Code dashed (a dashed line), or @Code dotted (a dotted line). For
-example,
-@ID @OneRow @Code {
-"@Graph"
-" abovecaption { Estimated population of Boston, New York, and Philadelphia }"
-"{"
-" @Data points { plus } pairs { solid }"
-" { 1720 12000 1730 13000 1740 15601 1760 15631 1770 15877 }"
-""
-" @Data points { plus } pairs { dashed }"
-" { 1720 7000 1730 8622 1740 10451 1750 14255 1760 18000 1770 22667 }"
-""
-" @Data points { plus } pairs { dotted }"
-" { 1720 10000 1730 11500 1740 12654 1750 18202 1760 23750 1770 34583 }"
-"}"
+@Code dashed (a dashed line), @Code dotted (a dotted line), or
+@Code { dotdashed }, @Code { dotdotdashed }, and @Code { dotdotdotdashed }
+for mixing dots and dashes. For example,
+@ID @OneRow @Code @Verbatim {
+@Graph
+ abovecaption { Estimated population of Boston, New York, and Philadelphia }
+{
+ @Data points { plus } pairs { solid }
+ { 1720 12000 1730 13000 1740 15601 1760 15631 1770 15877 }
+
+ @Data points { plus } pairs { dashed }
+ { 1720 7000 1730 8622 1740 10451 1750 14255 1760 18000 1770 22667 }
+
+ @Data points { plus } pairs { dotdashed }
+ { 1720 10000 1730 11500 1740 12654 1750 18202 1760 23750 1770 34583 }
+}
}
produces
@CD @Graph
@@ -92,7 +93,7 @@ produces
@Data points { plus } pairs { dashed }
{ 1720 7000 1730 8622 1740 10451 1750 14255 1760 18000 1770 22667 }
- @Data points { plus } pairs { dotted }
+ @Data points { plus } pairs { dotdashed }
{ 1720 10000 1730 11500 1740 12654 1750 18202 1760 23750 1770 34583 }
}
@@ -113,13 +114,13 @@ graphs. @RawIndex { graphs (statistical) }
graphs.linewidth @SubIndex { @Code linewidth option }
linewidth.graph @Index { @Code "linewidth" option (graphs) }
width (thickness) of the lines and dots:
-@ID @OneRow @Code {
-"@Data"
-" dashlength { 0.2f }"
-" linewidth { 0.5p }"
-"{"
-" ..."
-"}"
+@ID @OneRow @Code @Verbatim {
+@Data
+ dashlength { 0.2f }
+ linewidth { 0.5p }
+{
+ ...
+}
}
This shows the default values, {@Code "0.2f"} for @Code "dashlength"
and {@Code "0.5p"} (half a point) for {@Code "linewidth"}. Actually
diff --git a/doc/user/gra_keys b/doc/user/gra_keys
index 616626b..771a258 100644
--- a/doc/user/gra_keys
+++ b/doc/user/gra_keys
@@ -64,6 +64,19 @@ graphs.graphdashed @SubIndex { @Code "@GraphDashed" symbol }
graphs. @RawIndex { graphs (statistical) }
graphs.graphdotted @SubIndex { @Code "@GraphDotted" symbol }
{ graphadotted } @Index { @Code "@GraphDotted" symbol (graphs) }
+
+graphs. @RawIndex { graphs (statistical) }
+graphs.graphdotdashed @SubIndex { @Code "@GraphDotDashed" symbol }
+{ graphadotdashed } @Index { @Code "@GraphDotDashed" symbol (graphs) }
+
+graphs. @RawIndex { graphs (statistical) }
+graphs.graphdotdotdashed @SubIndex { @Code "@GraphDotDotDashed" symbol }
+{ graphadotdotdashed } @Index { @Code "@GraphDotDotDashed" symbol (graphs) }
+
+graphs. @RawIndex { graphs (statistical) }
+graphs.graphdotdotdotdashed @SubIndex { @Code "@GraphDotDotDotDashed" symbol }
+{ graphadotdotdotdashed } @Index { @Code "@GraphDotDotDotDashed" symbol (graphs) }
+
@ID @Tab
@Fmta { @Col @Code A ! @Col B ! @Col @Code C ! @Col D }
{
@@ -105,6 +118,15 @@ graphs.graphdotted @SubIndex { @Code "@GraphDotted" symbol }
@Rowa
A { "@GraphDotted" }
B { @GraphDotted }
+@Rowa
+ A { "@GraphDotDashed" }
+ B { @GraphDotDashed }
+@Rowa
+ A { "@GraphDotDotDashed" }
+ B { @GraphDotDotDashed }
+@Rowa
+ A { "@GraphDotDotDotDashed" }
+ B { @GraphDotDotDotDashed }
}
These extra symbols may be used anywhere in your document except within
the right parameter of {@Code "@Graph"}; they are commonly used within
@@ -114,7 +136,7 @@ the caption options of {@Code "@Graph"}:
rightcaption {
@GraphPlus @GraphSolid @GraphPlus Boston
@GraphPlus @GraphDashed @GraphPlus New York
-@GraphPlus @GraphDotted @GraphPlus Philadelphia
+@GraphPlus @GraphDotDashed @GraphPlus Philadelphia
}
}
(You can also use them within the @Code objects option, which
@@ -127,7 +149,7 @@ from Section {@NumberOf data}, the complete result is
rightcaption {
@GraphPlus @GraphSolid @GraphPlus Boston
@GraphPlus @GraphDashed @GraphPlus New York
-@GraphPlus @GraphDotted @GraphPlus Philadelphia
+@GraphPlus @GraphDotDashed @GraphPlus Philadelphia
}
{
@Data points { plus } pairs { solid }
@@ -136,7 +158,7 @@ from Section {@NumberOf data}, the complete result is
@Data points { plus } pairs { dashed }
{ 1720 7000 1730 8622 1740 10451 1750 14255 1760 18000 1770 22667 }
- @Data points { plus } pairs { dotted }
+ @Data points { plus } pairs { dotdashed }
{ 1720 10000 1730 11500 1740 12654 1750 18202 1760 23750 1770 34583 }
}
diff --git a/doc/user/gra_summ b/doc/user/gra_summ
index 8506023..d0ca103 100644
--- a/doc/user/gra_summ
+++ b/doc/user/gra_summ
@@ -165,6 +165,7 @@ automatic }
A { pairs }
B { none }
C { {@Code none}, {@Code solid}, {@Code dashed}, {@Code dotted},
+{@Code dotdashed}, {@Code dotdotdashed}, {@Code dotdotdotdashed},
{@Code yhisto}, {@Code xhisto}, {@Code filledyhisto}, {@Code filledxhisto},
{@Code surfaceyhisto}, {@Code surfacexhisto} }
@Rowa
@@ -248,6 +249,7 @@ their possible values are:
@Rowa
A { pairs }
C { {@Code none}, {@Code solid}, {@Code dashed}, {@Code dotted},
+{@Code dotdashed}, {@Code dotdotdashed}, {@Code dotdotdotdashed},
{@Code yhisto}, {@Code xhisto}, {@Code filledyhisto}, {@Code filledxhisto},
{@Code surfaceyhisto}, {@Code surfacexhisto} }
@Rowa
diff --git a/doc/user/preface b/doc/user/preface
index ba2ea1a..9e4ba4e 100644
--- a/doc/user/preface
+++ b/doc/user/preface
@@ -18,7 +18,7 @@ gnu. @Index { GNU Public License }
primary source is directory
@ID @Code "ftp://ftp.it.usyd.edu.au/jeff/lout"
containing a gzipped tar file of the current version
-(currently {@Code "lout-3.28.tar.gz"}), and various other things including
+(currently {@Code "lout-3.29.tar.gz"}), and various other things including
a PostScript version of this guide. The distribution contains source code,
libraries, documentation, license, and installation instructions.
@PP
@@ -53,7 +53,7 @@ E. Knuth's @TeX system @Cite { $knuth1984tex }, and the optimal paragraph
breaking algorithm was applied to the problem of producing optimal page
breaks. The first implementations of horizontal galleys and optimal
page breaking were by my student Gabor Inokai. Vincent Tan contributed
-the PDF back end. Valeriy E. Ushakov has smoothed the path for many
+the PDF back end. Valeriy E. Ushakov smoothed the path for many
people, by his contributions to improving Lout's robustness, and his
tireless management of and responses to the Lout mailing list. The
number of other people who have offered comments and suggestions to me is so
@@ -63,7 +63,6 @@ hope that seeing their ideas adopted will be thanks enough.
@RLD lines @Break {
Jeffrey H. Kingston
School of Information Technologies
-(formerly Basser Department of Computer Science)
The University of Sydney 2006, Australia
@Code "jeff@it.usyd.edu.au"
}
diff --git a/doc/user/prg b/doc/user/prg
index ad5e1fc..5f8aa71 100644
--- a/doc/user/prg
+++ b/doc/user/prg
@@ -32,11 +32,13 @@ At the time of writing, the available programming languages are:
blue. @Index { Blue program printing }
c. @Index { C and C++ program printing }
eiffel. @Index { Eiffel program printing }
+haskell. @Index { Haskell program printing }
java. @Index { Java program printing }
nonpareil. @Index { Nonpareil program printing }
perl. @Index { Perl program printing }
pod. @Index { Pod (for Perl) printing }
python. @Index { Python program printing }
+rsl. @Index { RSL program printing }
ruby. @Index { Ruby program printing }
@CD @Tbl
mv { 0.5vx }
@@ -70,6 +72,12 @@ ruby. @Index { Ruby program printing }
D { varying }
E { Yes }
@Rowb
+ A { Haskell }
+ B { haskell }
+ C { "@Haskell" }
+ D { symbol }
+ E { Yes }
+@Rowb
A { Java }
B { java }
C { "@Java" }
@@ -100,6 +108,12 @@ ruby. @Index { Ruby program printing }
D { varying }
E { No }
@Rowb
+ A { RSL }
+ B { rsl }
+ C { "@RSL" }
+ D { symbol }
+ E { Yes }
+@Rowb
A { Ruby }
B { ruby }
C { "@Ruby" }
diff --git a/doc/user/str_cros b/doc/user/str_cros
index 984da8d..0d3f857 100644
--- a/doc/user/str_cros
+++ b/doc/user/str_cros
@@ -102,12 +102,11 @@ decorations introducted by the list's @Code "style" option.
To work cross references out, Lout has to process your document more
multiple.runs @Index { multiple runs, why needed }
than once, storing information between runs in special files it
-creates whose names end in @Code ".li" and {@Code ".ld"}. A complex
-document like this Guide requires five runs, but since every run
-produces a perfectly good PostScript file suitable for proof reading,
-in fact you need two runs to start with and one run per cycle of
-revision thereafter, only one more than would have been necessary
-in any case.
+creates whose names end in @Code ".li" and {@Code ".ld"}.
+A complex document like this Guide requires five runs, but since every
+run produces a perfectly good PostScript file suitable for proof reading,
+in fact you need two runs to start with and one run per cycle of revision
+thereafter, only one more than would have been necessary in any case.
@PP
The cross referencing system assumes that each Unix directory contains
directories @Index { directories, Lout files and }
@@ -122,6 +121,22 @@ when switching from one document to another, by removing file
lout.li @Index { @Code lout.li file }
{@Code "lout.li"}. You should also remove this file if your document
changes radically -- from a report to a book, say.
+@FootNote {
+An unfortunate and long-standing bug causes Lout to crash occasionally
+when reading from a cross-reference database
+file that it wrote on the preceding run. The problem has to do with
+mistakenly taking a literal word, or part of such a word, as an invocation
+of a symbol. The crash will occur on the @I second run (because the
+database file is written, not read, on the first run), and might be
+accompanied by an error message mentioning routine @I { AttachEnv } or
+@I { SetTarget }. You can make it happen, for example, by including
+@ID @Code "pnformat @Index { watch me crash! }"
+in your document -- the @Code pnformat tag, a literal word, will be
+mistaken for the @Code pnformat option of @Code "@Index" by the
+database reader. If this problem appears, try enclosing tags that you
+entered recently in double quotes. Enclosing @Code pnformat above
+in double quotes fixes the example problem.
+}
@PP
PDF viewers and recent versions of PostScript viewers offer a high-tech
version of cross references called {@I links}, which allow the user to
diff --git a/doc/user/str_indx b/doc/user/str_indx
index f300707..e836588 100644
--- a/doc/user/str_indx
+++ b/doc/user/str_indx
@@ -19,13 +19,14 @@ something like this:
Galileo Galilei
life of, 201
telescope, his use of, 201--203
- trial of, 205--211, 242, 395
+ trial of, 205--211, @I 242, 395
}
Each line shows off one of Lout's four tricks: the first is a
@I { raw entry } (no page number attached); the second is a
@I sub-entry (indented); the third has a @I { page number range }
instead of a single page number; and the fourth is a @I { merged entry }
-(several page numbers or ranges within one entry).
+(several page numbers or ranges within one entry) with a
+@I { special element } (the page number in italics).
@PP
We'll take each of them in turn in a moment, but first, let's see how
to get a basic entry, like this one:
@@ -58,11 +59,6 @@ collation.order @Index { collation order }
sorting.order @Index { sorting order }
if @Code "strcoll()" gets the sorting right for one language, there still
remains the problem of sorting multilingual indexes.
-@PP
-Older versions of Lout assumed that the @I tab character was collated
-before any character that could appear in a sorting key, causing
-problems when this was not so. Recent versions of Lout no longer
-make this assumption.
}
but which is not itself printed anywhere. It is best to construct these
sorting keys from lower-case letters and the . character only, beginning
@@ -218,11 +214,40 @@ entries will be
The first five entries have the same sorting key, and will be merged
as required.
@PP
+Each index entry symbol has a @Code { pnformat } option, which affects the
+way the page number of the entry is printed in the index. For example,
+@ID @Code "galileo.trial @SubIndex pnformat { Main } { trial of }"
+indicates that this is an entry of format {@Code Main}. By default the
+format is {@Code Ordinary}; it may be {@Code Main}, producing a
+bold page number in the index, or {@Code Special}, producing an
+italic page number.
+@PP
+As the name suggests, the @Code pnformat option is actually a format
+option, within which the @Code "@PageNum" symbol stands for the index
+page number, so you could even write
+@ID @Code "galileo.trial @SubIndex pnformat { @Underline @PageNum } { trial of }"
+to get an underlined page number. However, it is rarely a good
+idea to use the @Code { pnformat } option in this way. Better to
+decide once and for all what variants on the basic format you are
+going to have, call one variant {@Code Main} and the other {@Code Special},
+use the setup file options described later in this section to redefine
+the appearance of page numbers for these two index entry formats, and
+explain in the @Code "@IndexText" what the formats mean.
+@PP
+When index entries with different formats are merged, naturally each page
+number preserves its own format. If there are two merged entries with
+the same page number but different formats, the result is plausible but
+indeterminate. A page number range is formatted according to the format
+of the index entry which is its starting point. To change the format
+of the @I stem of the index entry, just do the usual thing. For example,
+@ID @Code "galileo @Index @I { Galileo Galilei }"
+will cause the stem of the entry to appear in an italic font.
+@PP
The language of the index entry will be the initial language of the
document as a whole, which is not necessarily the language at the point
where the index entry occurs. To get the correct language you will need a
@Code "@Language" symbol following the @Code "@Index" symbol:
-@ID @Code "galileo. @Index French @Language { Galileo Galilei }"
+@ID @Code "galileo. @Index Italian @Language { Galileo Galilei }"
or whatever. If you don't do this your index entry might be hyphenated
incorrectly.
@PP
@@ -301,6 +326,9 @@ their default values:
@IndexFormat { @Body }
@SubIndexFormat { {1f @Wide}@Body }
@SubSubIndexFormat { {2f @Wide}@Body }
+@IndexTypeOrdinary { @PageNum }
+@IndexTypeMain { @B @PageNum }
+@IndexTypeSpecial { @I @PageNum }
@IndexColumnNumber { 2 }
@IndexColumnGap { 1.00c }
@IndexCtd { Yes }
@@ -348,6 +376,17 @@ possible format is
which causes the subindex to begin with an en-dash and two spaces
instead of an indent.
@PP
+{@Code "@IndexTypeOrdinary"}, {@Code "@IndexTypeMain"}, and
+{@Code "@IndexTypeSpecial"} give the page number format to use
+when the index entry type is {@Code Ordinary}, {@Code Main}, and
+{@Code Special} respectively. Within them the @Code "@PageNum"
+symbol stands for the page number or page number range being
+printed. The value of these options can be an arbitrary object.
+If the value of a @Code pnformat option is not {@Code Ordinary},
+{@Code Main}, or {@Code Special}, then the @Code pnformat option
+itself is printed; it too may contain a @Code "@PageNum" symbol,
+as explained earlier.
+@PP
@Code "@IndexColumnNumber" and @Code "@IndexColumnGap" determine the
indexcolumnnumber. @Index @Code "@IndexColumnNumber"
indexcolumngap. @Index @Code "@IndexColumnGap"
@@ -358,13 +397,12 @@ options described in Section {@NumberOf columns}.
The next three options work together to control the appearance of
running headers
@FootNote {
-Index running headers are new in Version 3.19 of Lout. Owing to problems
-behind the scenes, if more than three copies of the same running header
-appear on the same page, their horizontal positions will become confused,
-probably resulting in the apparent disappearance of all but the last
-three. Of course, this is highly unlikely to happen, since it means there
-must be a four-column index with a page on which all four columns have
-the same running header.
+Owing to problems behind the scenes, if more than three copies of the
+same running header appear on the same page, their horizontal positions
+will become confused, probably resulting in the apparent disappearance of
+all but the last three. Of course, this is highly unlikely to happen,
+since it means there must be a four-column index with a page on which
+all four columns have the same running header.
}
in the index:
indexctd. @Index { @Code "@IndexCtd" }
diff --git a/externs.h b/externs.h
index 22ed461..07c44cd 100644
--- a/externs.h
+++ b/externs.h
@@ -1,10 +1,10 @@
/*@externs.h:External Declarations:Directories and file conventions@**********/
/* */
-/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */
-/* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */
+/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.29) */
+/* COPYRIGHT (C) 1991, 2003 Jeffrey H. Kingston */
/* */
/* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */
-/* Basser Department of Computer Science */
+/* School of Information Technologies */
/* The University of Sydney 2006 */
/* AUSTRALIA */
/* */
@@ -95,7 +95,7 @@ extern nl_catd MsgCat;
/* */
/*****************************************************************************/
-#define LOUT_VERSION AsciiToFull("Basser Lout Version 3.28 (December 2002)")
+#define LOUT_VERSION AsciiToFull("Basser Lout Version 3.29 (August 2003)")
#define CROSS_DB AsciiToFull("lout")
#define SOURCE_SUFFIX AsciiToFull(".lt")
#define INDEX_SUFFIX AsciiToFull(".li")
diff --git a/include/README b/include/README
index ebea782..d4e5a84 100644
--- a/include/README
+++ b/include/README
@@ -38,6 +38,7 @@ Setup files (containing mainly lists of options settable by the user)
perl Perl + Pod
pod Pod
python Python
+ rsl RSL
ruby Ruby
Source files containing Lout and PostScript source code for the packages
@@ -74,6 +75,7 @@ Source files containing Lout and PostScript source code for the packages
perlf Perl
podf Pod
pythonf Python
+ rslf RSL
rubyf Ruby
Obsolete source files retained for backward compatibility
diff --git a/include/book b/include/book
index e2afc0f..09c8fa4 100644
--- a/include/book
+++ b/include/book
@@ -165,6 +165,9 @@
# @IndexFormat { @Body } # @Index format
# @SubIndexFormat { {1f @Wide}@Body } # @SubIndex format
# @SubSubIndexFormat { {2f @Wide}@Body } # @SubSubIndex format
+ # @IndexTypeOrdinary { @PageNum } # Ordinary pagenum format
+ # @IndexTypeMain { @B @PageNum } # Main pagenum format
+ # @IndexTypeSpecial { @I @PageNum } # Special pagenum format
# @IndexColumnNumber { 2 } # index columns (1 to 10)
# @IndexColumnGap { 1.00c @OrIfPlain 6s } # index column gap
# @IndexCtd { Yes } # include (ctd.) lines
@@ -181,6 +184,9 @@
# @IndexAFormat { @Body } # @IndexA format
# @SubIndexAFormat { {1f @Wide}@Body } # @SubIndexA format
# @SubSubIndexAFormat { {2f @Wide}@Body } # @SubSubIndexA format
+ # @IndexATypeOrdinary { @PageNum } # Ordinary pagenum format
+ # @IndexATypeMain { @B @PageNum } # Main pagenum format
+ # @IndexATypeSpecial { @I @PageNum } # Special pagenum format
# @IndexAColumnNumber { 2 } # index A columns (1 to 10)
# @IndexAColumnGap { 1.00c @OrIfPlain 6s } # index A column gap
# @IndexACtd { Yes } # include (ctd.) lines
@@ -197,6 +203,9 @@
# @IndexBFormat { @Body } # @IndexB format
# @SubIndexBFormat { {1f @Wide}@Body } # @SubIndexB format
# @SubSubIndexBFormat { {2f @Wide}@Body } # @SubSubIndexB format
+ # @IndexBTypeOrdinary { @PageNum } # Ordinary pagenum format
+ # @IndexBTypeMain { @B @PageNum } # Main pagenum format
+ # @IndexBTypeSpecial { @I @PageNum } # Special pagenum format
# @IndexBColumnNumber { 2 } # index B columns (1 to 10)
# @IndexBColumnGap { 1.00c @OrIfPlain 6s } # index B column gap
# @IndexBCtd { Yes } # include (ctd.) lines
diff --git a/include/bookf b/include/bookf
index 45a5bed..6aff163 100644
--- a/include/bookf
+++ b/include/bookf
@@ -651,7 +651,7 @@ def @BookSetup
# its flushing is delayed until we reach the body galleys, either
# @Introduction or @Chapter. If not, @BookBody will free up
# @PrefacePlace etc. too soon, producing a "no @PrefacePlace
- # precedes this @PrefacePLace&&preceding" error message.
+ # precedes this @PrefacePlace&&preceding" error message.
@AbbreviationsPlace
// @IntroductionPlace
@@ -659,11 +659,11 @@ def @BookSetup
// @ReferencesBeforeAppendices @Do {
@MakeReferences @Do @ReferencesPart
}
- // @MakeGlossary @Do @GlossaryPart
// @AppendixList @FirstAppendixNumber
// @ReferencesBeforeAppendices @NoDo {
@MakeReferences @Do @ReferencesPart
}
+ // @MakeGlossary @Do @GlossaryPart
// @MakeIndexA @Do @IndexAPart
// @MakeIndexA @Case {
Bypass @Yield @BypassBeginIndexAPlace
@@ -710,11 +710,11 @@ def @BookSetup
// @ReferencesBeforeAppendices @Do {
@MakeReferences @Do @ReferencesPart
}
- // @MakeGlossary @Do @GlossaryPart
// @AppendixList @FirstAppendixNumber
// @ReferencesBeforeAppendices @NoDo {
@MakeReferences @Do @ReferencesPart
}
+ // @MakeGlossary @Do @GlossaryPart
// @MakeIndexA @Do @IndexAPart
// @MakeIndexA @Case {
Bypass @Yield @BypassBeginIndexAPlace
diff --git a/include/diagf b/include/diagf
index 5142dc8..ab1e059 100644
--- a/include/diagf
+++ b/include/diagf
@@ -49,11 +49,17 @@ def @DiagSetup
import @Geometry named angle { "dup 180 exch div" }
named translate { }
named outlinestyle
- named solid { "/ldiagsolid" }
- named dashed { "/ldiagdashed" }
- named cdashed { "/ldiagcdashed" }
- named dotted { "/ldiagdotted" }
- named noline { "/ldiagnoline" }
+ named solid { "/ldiagsolid" }
+ named dashed { "/ldiagdashed" }
+ named cdashed { "/ldiagcdashed" }
+ named dotdashed { "/ldiagdotdashed" }
+ named dotcdashed { "/ldiagdotcdashed" }
+ named dotdotdashed { "/ldiagdotdotdashed" }
+ named dotdotcdashed { "/ldiagdotdotcdashed" }
+ named dotdotdotdashed { "/ldiagdotdotdotdashed" }
+ named dotdotdotcdashed { "/ldiagdotdotdotcdashed" }
+ named dotted { "/ldiagdotted" }
+ named noline { "/ldiagnoline" }
{ solid }
import @Geometry named outlinedashlength { 0.2f }
import @Geometry named outlinewidth
@@ -162,11 +168,17 @@ def @DiagSetup
import @Geometry named aangle { "dup 180 exch div" }
named atranslate { }
named aoutlinestyle
- named solid { "/ldiagsolid" }
- named dashed { "/ldiagdashed" }
- named cdashed { "/ldiagcdashed" }
- named dotted { "/ldiagdotted" }
- named noline { "/ldiagnoline" }
+ named solid { "/ldiagsolid" }
+ named dashed { "/ldiagdashed" }
+ named cdashed { "/ldiagcdashed" }
+ named dotdashed { "/ldiagdotdashed" }
+ named dotcdashed { "/ldiagdotcdashed" }
+ named dotdotdashed { "/ldiagdotdotdashed" }
+ named dotdotcdashed { "/ldiagdotdotcdashed" }
+ named dotdotdotdashed { "/ldiagdotdotdotdashed" }
+ named dotdotdotcdashed { "/ldiagdotdotdotcdashed" }
+ named dotted { "/ldiagdotted" }
+ named noline { "/ldiagnoline" }
{ solid }
import @Geometry named aoutlinedashlength { 0.2f }
import @Geometry named aoutlinewidth
@@ -275,11 +287,17 @@ def @DiagSetup
import @Geometry named bangle { "dup 180 exch div" }
named btranslate { }
named boutlinestyle
- named solid { "/ldiagsolid" }
- named dashed { "/ldiagdashed" }
- named cdashed { "/ldiagcdashed" }
- named dotted { "/ldiagdotted" }
- named noline { "/ldiagnoline" }
+ named solid { "/ldiagsolid" }
+ named dashed { "/ldiagdashed" }
+ named cdashed { "/ldiagcdashed" }
+ named dotdashed { "/ldiagdotdashed" }
+ named dotcdashed { "/ldiagdotcdashed" }
+ named dotdotdashed { "/ldiagdotdotdashed" }
+ named dotdotcdashed { "/ldiagdotdotcdashed" }
+ named dotdotdotdashed { "/ldiagdotdotdotdashed" }
+ named dotdotdotcdashed { "/ldiagdotdotdotcdashed" }
+ named dotted { "/ldiagdotted" }
+ named noline { "/ldiagnoline" }
{ solid }
import @Geometry named boutlinedashlength { 0.2f }
import @Geometry named boutlinewidth
@@ -388,11 +406,17 @@ def @DiagSetup
import @Geometry named cangle { "dup 180 exch div" }
named ctranslate { }
named coutlinestyle
- named solid { "/ldiagsolid" }
- named dashed { "/ldiagdashed" }
- named cdashed { "/ldiagcdashed" }
- named dotted { "/ldiagdotted" }
- named noline { "/ldiagnoline" }
+ named solid { "/ldiagsolid" }
+ named dashed { "/ldiagdashed" }
+ named cdashed { "/ldiagcdashed" }
+ named dotdashed { "/ldiagdotdashed" }
+ named dotcdashed { "/ldiagdotcdashed" }
+ named dotdotdashed { "/ldiagdotdotdashed" }
+ named dotdotcdashed { "/ldiagdotdotcdashed" }
+ named dotdotdotdashed { "/ldiagdotdotdotdashed" }
+ named dotdotdotcdashed { "/ldiagdotdotdotcdashed" }
+ named dotted { "/ldiagdotted" }
+ named noline { "/ldiagnoline" }
{ solid }
import @Geometry named coutlinedashlength { 0.2f }
import @Geometry named coutlinewidth
@@ -519,11 +543,17 @@ def @DiagSetup
import @Geometry named frompt { 0 0 }
import @Geometry named topt { 0 0 }
named pathstyle
- named solid { "/ldiagsolid" }
- named dashed { "/ldiagdashed" }
- named cdashed { "/ldiagcdashed" }
- named dotted { "/ldiagdotted" }
- named noline { "/ldiagnoline" }
+ named solid { "/ldiagsolid" }
+ named dashed { "/ldiagdashed" }
+ named cdashed { "/ldiagcdashed" }
+ named dotdashed { "/ldiagdotdashed" }
+ named dotcdashed { "/ldiagdotcdashed" }
+ named dotdotdashed { "/ldiagdotdotdashed" }
+ named dotdotcdashed { "/ldiagdotdotcdashed" }
+ named dotdotdotdashed { "/ldiagdotdotdotdashed" }
+ named dotdotdotcdashed { "/ldiagdotdotdotcdashed" }
+ named dotted { "/ldiagdotted" }
+ named noline { "/ldiagnoline" }
{ solid }
import @Geometry named pathdashlength { 0.2f }
import @Geometry named pathwidth
@@ -666,9 +696,9 @@ def @DiagSetup
@Tree @HTree
@StartRight @StartUp @StartLeft @StartDown
- @StartRightRight @StartRightDown
+ @StartRightRight @StartRightRightRight @StartRightDown
@Skip @XCell @ACell @BCell @CCell
- @Sequence @Select @Optional @OptionalDiverted @Diverted
+ @Sequence @OneOrBoth @Select @Optional @OptionalDiverted @Diverted
@Loop @LoopOpposite @Repeat @RepeatOpposite @RepeatDiverted
def @Diag
@@ -704,11 +734,17 @@ def @DiagSetup
named translate { translate }
named nodetag { }
named outlinestyle
- named solid { "/ldiagsolid" }
- named dashed { "/ldiagdashed" }
- named cdashed { "/ldiagcdashed" }
- named dotted { "/ldiagdotted" }
- named noline { "/ldiagnoline" }
+ named solid { "/ldiagsolid" }
+ named dashed { "/ldiagdashed" }
+ named cdashed { "/ldiagcdashed" }
+ named dotdashed { "/ldiagdotdashed" }
+ named dotcdashed { "/ldiagdotcdashed" }
+ named dotdotdashed { "/ldiagdotdotdashed" }
+ named dotdotcdashed { "/ldiagdotdotcdashed" }
+ named dotdotdotdashed { "/ldiagdotdotdotdashed" }
+ named dotdotdotcdashed { "/ldiagdotdotdotcdashed" }
+ named dotted { "/ldiagdotted" }
+ named noline { "/ldiagnoline" }
{ outlinestyle }
import @Geometry named outlinedashlength{ outlinedashlength }
import @Geometry named outlinewidth
@@ -766,11 +802,17 @@ def @DiagSetup
named atranslate { atranslate }
named anodetag { }
named aoutlinestyle
- named solid { "/ldiagsolid" }
- named dashed { "/ldiagdashed" }
- named cdashed { "/ldiagcdashed" }
- named dotted { "/ldiagdotted" }
- named noline { "/ldiagnoline" }
+ named solid { "/ldiagsolid" }
+ named dashed { "/ldiagdashed" }
+ named cdashed { "/ldiagcdashed" }
+ named dotdashed { "/ldiagdotdashed" }
+ named dotcdashed { "/ldiagdotcdashed" }
+ named dotdotdashed { "/ldiagdotdotdashed" }
+ named dotdotcdashed { "/ldiagdotdotcdashed" }
+ named dotdotdotdashed { "/ldiagdotdotdotdashed" }
+ named dotdotdotcdashed { "/ldiagdotdotdotcdashed" }
+ named dotted { "/ldiagdotted" }
+ named noline { "/ldiagnoline" }
{ aoutlinestyle }
import @Geometry named aoutlinedashlength{ aoutlinedashlength }
import @Geometry named aoutlinewidth
@@ -828,11 +870,17 @@ def @DiagSetup
named btranslate { btranslate }
named bnodetag { }
named boutlinestyle
- named solid { "/ldiagsolid" }
- named dashed { "/ldiagdashed" }
- named cdashed { "/ldiagcdashed" }
- named dotted { "/ldiagdotted" }
- named noline { "/ldiagnoline" }
+ named solid { "/ldiagsolid" }
+ named dashed { "/ldiagdashed" }
+ named cdashed { "/ldiagcdashed" }
+ named dotdashed { "/ldiagdotdashed" }
+ named dotcdashed { "/ldiagdotcdashed" }
+ named dotdotdashed { "/ldiagdotdotdashed" }
+ named dotdotcdashed { "/ldiagdotdotcdashed" }
+ named dotdotdotdashed { "/ldiagdotdotdotdashed" }
+ named dotdotdotcdashed { "/ldiagdotdotdotcdashed" }
+ named dotted { "/ldiagdotted" }
+ named noline { "/ldiagnoline" }
{ boutlinestyle }
import @Geometry named boutlinedashlength{ boutlinedashlength }
import @Geometry named boutlinewidth
@@ -890,11 +938,17 @@ def @DiagSetup
named ctranslate { ctranslate }
named cnodetag { }
named coutlinestyle
- named solid { "/ldiagsolid" }
- named dashed { "/ldiagdashed" }
- named cdashed { "/ldiagcdashed" }
- named dotted { "/ldiagdotted" }
- named noline { "/ldiagnoline" }
+ named solid { "/ldiagsolid" }
+ named dashed { "/ldiagdashed" }
+ named cdashed { "/ldiagcdashed" }
+ named dotdashed { "/ldiagdotdashed" }
+ named dotcdashed { "/ldiagdotcdashed" }
+ named dotdotdashed { "/ldiagdotdotdashed" }
+ named dotdotcdashed { "/ldiagdotdotcdashed" }
+ named dotdotdotdashed { "/ldiagdotdotdotdashed" }
+ named dotdotdotcdashed { "/ldiagdotdotdotcdashed" }
+ named dotted { "/ldiagdotted" }
+ named noline { "/ldiagnoline" }
{ coutlinestyle }
import @Geometry named coutlinedashlength{ coutlinedashlength }
import @Geometry named coutlinewidth
@@ -980,11 +1034,17 @@ def @DiagSetup
import @Geometry named frompt { frompt }
import @Geometry named topt { topt }
named pathstyle
- named solid { "/ldiagsolid" }
- named dashed { "/ldiagdashed" }
- named cdashed { "/ldiagcdashed" }
- named dotted { "/ldiagdotted" }
- named noline { "/ldiagnoline" }
+ named solid { "/ldiagsolid" }
+ named dashed { "/ldiagdashed" }
+ named cdashed { "/ldiagcdashed" }
+ named dotdashed { "/ldiagdotdashed" }
+ named dotcdashed { "/ldiagdotcdashed" }
+ named dotdotdashed { "/ldiagdotdotdashed" }
+ named dotdotcdashed { "/ldiagdotdotcdashed" }
+ named dotdotdotdashed { "/ldiagdotdotdotdashed" }
+ named dotdotdotcdashed { "/ldiagdotdotdotcdashed" }
+ named dotted { "/ldiagdotted" }
+ named noline { "/ldiagnoline" }
{ pathstyle }
import @Geometry named pathdashlength { pathdashlength }
import @Geometry named pathwidth
@@ -2267,11 +2327,17 @@ def @DiagSetup
import @Geometry named angle { angle }
named nodetag { nodetag }
named outlinestyle
- named solid { "/ldiagsolid" }
- named dashed { "/ldiagdashed" }
- named cdashed { "/ldiagcdashed" }
- named dotted { "/ldiagdotted" }
- named noline { "/ldiagnoline" }
+ named solid { "/ldiagsolid" }
+ named dashed { "/ldiagdashed" }
+ named cdashed { "/ldiagcdashed" }
+ named dotdashed { "/ldiagdotdashed" }
+ named dotcdashed { "/ldiagdotcdashed" }
+ named dotdotdashed { "/ldiagdotdotdashed" }
+ named dotdotcdashed { "/ldiagdotdotcdashed" }
+ named dotdotdotdashed { "/ldiagdotdotdotdashed" }
+ named dotdotdotcdashed { "/ldiagdotdotdotcdashed" }
+ named dotted { "/ldiagdotted" }
+ named noline { "/ldiagnoline" }
{ outlinestyle }
import @Geometry named outlinedashlength { outlinedashlength}
import @Geometry named outlinewidth
@@ -2611,11 +2677,17 @@ def @DiagSetup
import @Geometry named angle { aangle }
named nodetag { anodetag }
named outlinestyle
- named solid { "/ldiagsolid" }
- named dashed { "/ldiagdashed" }
- named cdashed { "/ldiagcdashed" }
- named dotted { "/ldiagdotted" }
- named noline { "/ldiagnoline" }
+ named solid { "/ldiagsolid" }
+ named dashed { "/ldiagdashed" }
+ named cdashed { "/ldiagcdashed" }
+ named dotdashed { "/ldiagdotdashed" }
+ named dotcdashed { "/ldiagdotcdashed" }
+ named dotdotdashed { "/ldiagdotdotdashed" }
+ named dotdotcdashed { "/ldiagdotdotcdashed" }
+ named dotdotdotdashed { "/ldiagdotdotdotdashed" }
+ named dotdotdotcdashed { "/ldiagdotdotdotcdashed" }
+ named dotted { "/ldiagdotted" }
+ named noline { "/ldiagnoline" }
{ aoutlinestyle }
import @Geometry named outlinedashlength { aoutlinedashlength}
import @Geometry named outlinewidth
@@ -2955,11 +3027,17 @@ def @DiagSetup
import @Geometry named angle { bangle }
named nodetag { bnodetag }
named outlinestyle
- named solid { "/ldiagsolid" }
- named dashed { "/ldiagdashed" }
- named cdashed { "/ldiagcdashed" }
- named dotted { "/ldiagdotted" }
- named noline { "/ldiagnoline" }
+ named solid { "/ldiagsolid" }
+ named dashed { "/ldiagdashed" }
+ named cdashed { "/ldiagcdashed" }
+ named dotdashed { "/ldiagdotdashed" }
+ named dotcdashed { "/ldiagdotcdashed" }
+ named dotdotdashed { "/ldiagdotdotdashed" }
+ named dotdotcdashed { "/ldiagdotdotcdashed" }
+ named dotdotdotdashed { "/ldiagdotdotdotdashed" }
+ named dotdotdotcdashed { "/ldiagdotdotdotcdashed" }
+ named dotted { "/ldiagdotted" }
+ named noline { "/ldiagnoline" }
{ boutlinestyle }
import @Geometry named outlinedashlength { boutlinedashlength}
import @Geometry named outlinewidth
@@ -3299,11 +3377,17 @@ def @DiagSetup
import @Geometry named angle { cangle }
named nodetag { cnodetag }
named outlinestyle
- named solid { "/ldiagsolid" }
- named dashed { "/ldiagdashed" }
- named cdashed { "/ldiagcdashed" }
- named dotted { "/ldiagdotted" }
- named noline { "/ldiagnoline" }
+ named solid { "/ldiagsolid" }
+ named dashed { "/ldiagdashed" }
+ named cdashed { "/ldiagcdashed" }
+ named dotdashed { "/ldiagdotdashed" }
+ named dotcdashed { "/ldiagdotcdashed" }
+ named dotdotdashed { "/ldiagdotdotdashed" }
+ named dotdotcdashed { "/ldiagdotdotcdashed" }
+ named dotdotdotdashed { "/ldiagdotdotdotdashed" }
+ named dotdotdotcdashed { "/ldiagdotdotdotcdashed" }
+ named dotted { "/ldiagdotted" }
+ named noline { "/ldiagnoline" }
{ coutlinestyle }
import @Geometry named outlinedashlength { coutlinedashlength}
import @Geometry named outlinewidth
@@ -3977,11 +4061,17 @@ def @DiagSetup
import @Geometry named frompt { frompt }
import @Geometry named topt { topt }
named pathstyle
- named solid { "/ldiagsolid" }
- named dashed { "/ldiagdashed" }
- named cdashed { "/ldiagcdashed" }
- named dotted { "/ldiagdotted" }
- named noline { "/ldiagnoline" }
+ named solid { "/ldiagsolid" }
+ named dashed { "/ldiagdashed" }
+ named cdashed { "/ldiagcdashed" }
+ named dotdashed { "/ldiagdotdashed" }
+ named dotcdashed { "/ldiagdotcdashed" }
+ named dotdotdashed { "/ldiagdotdotdashed" }
+ named dotdotcdashed { "/ldiagdotdotcdashed" }
+ named dotdotdotdashed { "/ldiagdotdotdotdashed" }
+ named dotdotdotcdashed { "/ldiagdotdotdotcdashed" }
+ named dotted { "/ldiagdotted" }
+ named noline { "/ldiagnoline" }
{ pathstyle }
import @Geometry named pathdashlength { pathdashlength }
import @Geometry named pathwidth
@@ -5209,8 +5299,19 @@ def @DiagSetup
def @Direct
{
pathstyle @Case {
- { "/ldiagsolid" "/ldiagdashed" "/ldiagcdashed"
- "/ldiagdotted" "/ldiagnoline" } @Yield 1
+ {
+ "/ldiagsolid"
+ "/ldiagdashed"
+ "/ldiagdotted"
+ "/ldiagnoline"
+ "/ldiagcdashed"
+ "/ldiagdotdashed"
+ "/ldiagdotcdashed"
+ "/ldiagdotdotdashed"
+ "/ldiagdotdotcdashed"
+ "/ldiagdotdotdotdashed"
+ "/ldiagdotdotdotcdashed"
+ } @Yield 1
else @Yield 0
}
}
@@ -5299,11 +5400,17 @@ def @DiagSetup
import @Geometry named frompt { frompt }
import @Geometry named topt { topt }
named pathstyle
- named solid { "/ldiagsolid" }
- named dashed { "/ldiagdashed" }
- named cdashed { "/ldiagcdashed" }
- named dotted { "/ldiagdotted" }
- named noline { "/ldiagnoline" }
+ named solid { "/ldiagsolid" }
+ named dashed { "/ldiagdashed" }
+ named cdashed { "/ldiagcdashed" }
+ named dotdashed { "/ldiagdotdashed" }
+ named dotcdashed { "/ldiagdotcdashed" }
+ named dotdotdashed { "/ldiagdotdotdashed" }
+ named dotdotcdashed { "/ldiagdotdotcdashed" }
+ named dotdotdotdashed { "/ldiagdotdotdotdashed" }
+ named dotdotdotcdashed { "/ldiagdotdotdotcdashed" }
+ named dotted { "/ldiagdotted" }
+ named noline { "/ldiagnoline" }
{ pathstyle }
import @Geometry named pathdashlength { pathdashlength }
import @Geometry named pathwidth
@@ -5992,6 +6099,41 @@ def @DiagSetup
back @ArrowLeftFrom BB@EMK
}
+ def @StartRightRightRight
+ named A {}
+ named B {}
+ named C {}
+ {
+ AA:: @LabelMarks { @HSkip & @GoRight A }
+ //syntaxgap
+ //syntaxgap
+ |syntaxgap |syntaxgap |syntaxgap |syntaxgap |syntaxgap |syntaxgap
+ XX:: @LabelMarks {}
+ //syntaxgap
+ //syntaxgap
+ |syntaxgap |syntaxgap |syntaxgap |syntaxgap |syntaxgap |syntaxgap
+ BB:: @LabelMarks { @GoRight B & @HSkip }
+ //syntaxgap
+ //syntaxgap
+ |syntaxgap |syntaxgap |syntaxgap |syntaxgap |syntaxgap |syntaxgap
+ YY:: @LabelMarks {}
+ //syntaxgap
+ //syntaxgap
+ |syntaxgap |syntaxgap |syntaxgap |syntaxgap |syntaxgap |syntaxgap
+ CC:: @LabelMarks { @GoRight C & @HSkip }
+ //syntaxgap
+ //syntaxgap
+ // @RVLCurve from { AA@EMK } to { XX@WMK }
+ bias { pssyntaxbias } radius { pssyntaxradius }
+ // @LVRCurve from { XX@WMK } to { BB@WMK }
+ bias { pssyntaxbias } radius { pssyntaxradius }
+ // @RVLCurve from { BB@EMK } to { YY@WMK }
+ bias { pssyntaxbias } radius { pssyntaxradius }
+ // @LVRCurve from { YY@WMK } to { CC@WMK }
+ bias { pssyntaxbias } radius { pssyntaxradius }
+ back @ArrowLeftFrom CC@EMK
+ }
+
def @StartRightDown
named A {}
named B {}
@@ -6114,6 +6256,149 @@ def @DiagSetup
#######################################################################
# #
+ # @OneOrBoth #
+ # #
+ #######################################################################
+
+ def @OneOrBoth
+ named A {}
+ named B {}
+ {
+
+ def @ALH {
+ @HContract {
+ |syntaxgap
+ "AX":: restrict { "(WMK) (EMK)" } @LabelMarks A
+ |syntaxgap
+ }
+ }
+
+ def @BLH {
+ @HContract {
+ |syntaxgap
+ "BX":: restrict { "(WMK) (EMK)" } @LabelMarks B
+ |syntaxgap
+ }
+ }
+
+ def @ALV {
+ @VContract {
+ /syntaxgap
+ "AX":: restrict { "(NMK) (SMK)" } @LabelMarks A
+ /syntaxgap
+ }
+ }
+
+ def @BLV {
+ @VContract {
+ /syntaxgap
+ "BX":: restrict { "(NMK) (SMK)" } @LabelMarks B
+ /syntaxgap
+ }
+ }
+
+ def @RightOneOrBoth
+ {
+ @LRLine {
+ @HContract @VContract { @ALH | /syntaxgap | @BLH }
+ //
+ @HVCurve from { "BX@WMK" } to { 0 ycoord "AX@WMK" }
+ arrow { no } bias { pssyntaxbias } radius { pssyntaxradius }
+ //
+ @HVCurve from { "BX@EMK" } to { xsize ycoord "AX@WMK" }
+ arrow { yes } bias { pssyntaxbias } radius { pssyntaxradius }
+ //
+ @Line from { 0 ycoord "AX@WMK" } to { "AX@WMK" }
+ //
+ @Line from { "AX@EMK" } to { xsize ycoord "AX@WMK" }
+ //
+ @Arrow
+ from { {xcoord "AX@EMK" * 0.5 + xcoord "BX@WMK" * 0.5}
+ ycoord "AX@EMK" }
+ to { {xcoord "AX@EMK" * 0.5 + xcoord "BX@WMK" * 0.5}
+ ycoord "BX@WMK" }
+ }
+ }
+
+ def @LeftOneOrBoth
+ {
+ @LRLine {
+ @HContract @VContract { | @ALH /syntaxgap @BLH | }
+ //
+ @HVCurve from { "BX@WMK" } to { 0 ycoord "AX@WMK" }
+ arrow { yes } bias { pssyntaxbias } radius { pssyntaxradius }
+ //
+ @HVCurve from { "BX@EMK" } to { xsize ycoord "AX@WMK" }
+ arrow { no } bias { pssyntaxbias } radius { pssyntaxradius }
+ //
+ @Line from { 0 ycoord "AX@WMK" } to { "AX@WMK" }
+ //
+ @Line from { "AX@EMK" } to { xsize ycoord "AX@WMK" }
+ //
+ @Arrow
+ from { {xcoord "AX@WMK" * 0.5 + xcoord "BX@EMK" * 0.5}
+ ycoord "AX@WMK" }
+ to { {xcoord "AX@WMK" * 0.5 + xcoord "BX@EMK" * 0.5}
+ ycoord "BX@EMK" }
+ }
+ }
+
+ def @DownOneOrBoth
+ {
+ @UDLine {
+ @HContract @VContract { @ALV |syntaxgap / | @BLV }
+ ||
+ @VHCurve from { "BX@NMK" } to { xcoord "AX@NMK" ysize }
+ arrow { no } bias { pssyntaxbias } radius { pssyntaxradius }
+ ||
+ @VHCurve from { "BX@SMK" } to { xcoord "AX@NMK" 0 }
+ arrow { yes } bias { pssyntaxbias } radius { pssyntaxradius }
+ ||
+ @Line from { xcoord "AX@NMK" ysize } to { "AX@NMK" }
+ ||
+ @Line from { "AX@SMK" } to { xcoord "AX@SMK" 0 }
+ ||
+ @Arrow
+ from { xcoord "AX@SMK"
+ {ycoord "AX@SMK" * 0.5 + ycoord "BX@NMK" * 0.5} }
+ to { xcoord "BX@NMK"
+ {ycoord "AX@SMK" * 0.5 + ycoord "BX@NMK" * 0.5} }
+ }
+ }
+
+ def @UpOneOrBoth
+ {
+ @UDLine {
+ @HContract @VContract { |syntaxgap @BLV / @ALV | }
+ ||
+ @VHCurve from { "BX@NMK" } to { xcoord "AX@NMK" ysize }
+ arrow { yes } bias { pssyntaxbias } radius { pssyntaxradius }
+ ||
+ @VHCurve from { "BX@SMK" } to { xcoord "AX@NMK" 0 }
+ arrow { no } bias { pssyntaxbias } radius { pssyntaxradius }
+ ||
+ @Line from { xcoord "AX@NMK" ysize } to { "AX@NMK" }
+ ||
+ @Line from { "AX@SMK" } to { xcoord "AX@SMK" 0 }
+ ||
+ @Arrow
+ from { xcoord "AX@NMK"
+ {ycoord "AX@NMK" * 0.5 + ycoord "BX@SMK" * 0.5} }
+ to { xcoord "BX@SMK"
+ {ycoord "AX@NMK" * 0.5 + ycoord "BX@SMK" * 0.5} }
+ }
+ }
+
+ @CurrDirection @Case {
+ @Right @Yield @RightOneOrBoth
+ @Up @Yield @UpOneOrBoth
+ @Left @Yield @LeftOneOrBoth
+ @Down @Yield @DownOneOrBoth
+ }
+ }
+
+ #######################################################################
+ # #
# @Select and @Optional #
# #
#######################################################################
diff --git a/include/diagf.lpg b/include/diagf.lpg
index 3a076ef..289672f 100644
--- a/include/diagf.lpg
+++ b/include/diagf.lpg
@@ -79,14 +79,9 @@ end
/ldiagdebugposy 432 def
/ldiagdebugposx 72 def
-% <string> <int> ldiagdebugprint -
-% must be defined outside ldiagdict since used in arbitrary places
-% print <string> plus count or <int> stack entries, whichever is the smaller
-/ldiagdebugprint
+% - ldiagdebugnextline -
+/ldiagdebugnextline
{
- exch
- gsave
- initgraphics
ldiagdebugposy 72 lt
{ /ldiagdebugposx ldiagdebugposx 144 add store
/ldiagdebugposy 432 store
@@ -95,30 +90,68 @@ end
/ldiagdebugposy ldiagdebugposy 12 sub store
} ifelse
ldiagdebugposx ldiagdebugposy moveto
+} def
+
+% - ldiagdebugbeginindent -
+/ldiagdebugbeginindent
+{
+ /ldiagdebugposx ldiagdebugposx 12 add store
+} def
+
+% - ldiagdebugendindent -
+/ldiagdebugendindent
+{
+ /ldiagdebugposx ldiagdebugposx 12 sub store
+} def
+
+% <string> <int> ldiagdebugprint -
+% must be defined outside ldiagdict since used in arbitrary places
+% print <string> plus count or <int> stack entries, whichever is the smaller
+/ldiagdebugprint
+{
+ exch
+ gsave
+ initgraphics
+ ldiagdebugnextline
/Times-Roman findfont 10 scalefont setfont
0 setgray show
+ ldiagdebugbeginindent
count 1 sub 2 copy lt { pop } { exch pop } ifelse 1 sub
0 exch 1 exch
{
- /ldiagdebugposy ldiagdebugposy 12 sub store
- ldiagdebugposx 12 add ldiagdebugposy moveto
+ ldiagdebugnextline
index
dup type (dicttype) eq
{
(begin dict) show
+ ldiagdebugbeginindent
{
- /ldiagdebugposy ldiagdebugposy 12 sub store
- ldiagdebugposx 12 add ldiagdebugposy moveto
+ ldiagdebugnextline
pop 100 string cvs show
} forall
- /ldiagdebugposy ldiagdebugposy 12 sub store
- ldiagdebugposx 12 add ldiagdebugposy moveto
+ ldiagdebugendindent
+ ldiagdebugnextline
(end dict) show
}
{
- 100 string cvs show
+ dup type (arraytype) eq
+ {
+ (begin array) show
+ ldiagdebugbeginindent
+ {
+ ldiagdebugnextline
+ 100 string cvs show
+ } forall
+ ldiagdebugendindent
+ ldiagdebugnextline
+ (end array) show
+ }
+ {
+ 100 string cvs show
+ } ifelse
} ifelse
} for
+ ldiagdebugendindent
grestore
} def
@@ -186,6 +219,11 @@ ldiagdict begin
% distance between two points: <point> <point> ldiagdistance <length>
/ldiagdistance { ldiagpsub dup mul exch dup mul add sqrt } def
+% stroke a noline line: <length> <dashlength> ldiagnoline -
+/ldiagnoline
+{ pop pop
+} def
+
% stroke a solid line: <length> <dashlength> ldiagsolid -
/ldiagsolid
{ pop pop [] 0 setdash 1 setlinecap stroke
@@ -222,9 +260,104 @@ ldiagdict begin
} ifelse 1 setlinecap stroke
} def
-% stroke a noline line: <length> <dashlength> ldiagnoline -
-/ldiagnoline
-{ pop pop
+% scale array elements by factor: <array> <factor> ldiagscalearray <array>
+/ldiagscalearray
+{
+ [ exch 3 2 roll
+ { exch dup 3 1 roll mul exch } forall
+ pop ]
+} def
+
+% sum array elements: <array> ldiagsumarray <number>
+/ldiagsumarray
+{
+ 0 exch { add } forall
+} def
+
+% begin a more complex line: <length> <dashlength> ldiaglinebegin -
+/ldiaglinebegin
+{
+ % (Entering ldiaglinebegin) 2 ldiagdebugprint
+ 20 dict begin
+ /dashlen exch 1 pt ldiagmax def
+ /len exch def
+ /gap dashlen def
+ /halfgap dashlen 2 div def
+ /dash dashlen def
+ /halfdash dashlen 2 div def
+ /dot 0 def
+ % (Leaving ldiaglinebegin) 0 ldiagdebugprint
+} def
+
+% end a more complex line: <linecap> <cycle> <startpos> <stoppos> ldiaglineend -
+/ldiaglineend
+{
+ % (Entering ldiaglineend) 3 ldiagdebugprint
+ /stoppos exch def
+ /startpos exch def
+ /cycle exch def
+ /linecap exch def
+ /stopposlen stoppos ldiagsumarray def
+ /startposlen startpos ldiagsumarray def
+ /cyclelen cycle ldiagsumarray def
+ /effectivelen len startposlen add stopposlen sub def
+ effectivelen 0 gt cyclelen 0 gt and
+ {
+ /repeats effectivelen cyclelen div ceiling def
+ /factor len repeats cyclelen mul startposlen sub stopposlen add div def
+ cycle factor ldiagscalearray startposlen factor mul setdash
+ linecap setlinecap stroke
+ } if
+ end
+ % (Leaving ldiaglineend) 0 ldiagdebugprint
+} def
+
+% stroke a dotdashed line: <length> <dashlength> ldiagdotdashed -
+/ldiagdotdashed
+{
+ ldiaglinebegin
+ 1 [dash gap dot gap] [] [dash]
+ ldiaglineend
+} def
+
+% stroke a dotcdashed line: <length> <dashlength> ldiagdotcdashed -
+/ldiagdotcdashed
+{
+ ldiaglinebegin
+ 1 [dash gap dot gap] [halfdash] [halfdash]
+ ldiaglineend
+} def
+
+% stroke a dotdotdashed line: <length> <dashlength> ldiagdotdotdashed -
+/ldiagdotdotdashed
+{
+ ldiaglinebegin
+ 1 [dash gap dot gap dot gap] [] [dash]
+ ldiaglineend
+} def
+
+% stroke a dotdotcdashed line: <length> <dashlength> ldiagdotdotcdashed -
+/ldiagdotdotcdashed
+{
+ ldiaglinebegin
+ 1 [dash gap dot gap dot gap] [halfdash] [halfdash]
+ ldiaglineend
+} def
+
+% stroke a dotdotdotdashed line: <length> <dashlength> ldiagdotdotdotdashed -
+/ldiagdotdotdotdashed
+{
+ ldiaglinebegin
+ 1 [dash gap dot gap dot gap dot gap] [] [dash]
+ ldiaglineend
+} def
+
+% stroke a dotdotdotcdashed line: <length> <dashlength> ldiagdotdotdotcdashed -
+/ldiagdotdotdotcdashed
+{
+ ldiaglinebegin
+ 1 [dash gap dot gap dot gap dot gap] [halfdash] [halfdash]
+ ldiaglineend
} def
% shape and labels of the @Box symbol
diff --git a/include/doc b/include/doc
index fdf436a..6138687 100644
--- a/include/doc
+++ b/include/doc
@@ -164,6 +164,9 @@
# @IndexFormat { @Body } # @Index format
# @SubIndexFormat { {1f @Wide}@Body } # @SubIndex format
# @SubSubIndexFormat { {2f @Wide}@Body } # @SubSubIndex format
+ # @IndexTypeOrdinary { @PageNum } # Ordinary pagenum format
+ # @IndexTypeMain { @B @PageNum } # Main pagenum format
+ # @IndexTypeSpecial { @I @PageNum } # Special pagenum format
# @IndexColumnNumber { 2 } # index columns (1 to 10)
# @IndexColumnGap { 1.00c @OrIfPlain 6s } # index column gap
# @IndexCtd { Yes } # include (ctd.) lines
@@ -180,6 +183,9 @@
# @IndexAFormat { @Body } # @IndexA format
# @SubIndexAFormat { {1f @Wide}@Body } # @SubIndexA format
# @SubSubIndexAFormat { {2f @Wide}@Body } # @SubSubIndexA format
+ # @IndexATypeOrdinary { @PageNum } # Ordinary pagenum format
+ # @IndexATypeMain { @B @PageNum } # Main pagenum format
+ # @IndexATypeSpecial { @I @PageNum } # Special pagenum format
# @IndexAColumnNumber { 2 } # index A columns (1 to 10)
# @IndexAColumnGap { 1.00c @OrIfPlain 6s } # index A column gap
# @IndexACtd { Yes } # include (ctd.) lines
@@ -196,6 +202,9 @@
# @IndexBFormat { @Body } # @IndexB format
# @SubIndexBFormat { {1f @Wide}@Body } # @SubIndexB format
# @SubSubIndexBFormat { {2f @Wide}@Body } # @SubSubIndexB format
+ # @IndexBTypeOrdinary { @PageNum } # Ordinary pagenum format
+ # @IndexBTypeMain { @B @PageNum } # Main pagenum format
+ # @IndexBTypeSpecial { @I @PageNum } # Special pagenum format
# @IndexBColumnNumber { 2 } # index B columns (1 to 10)
# @IndexBColumnGap { 1.00c @OrIfPlain 6s } # index B column gap
# @IndexBCtd { Yes } # include (ctd.) lines
diff --git a/include/dsf b/include/dsf
index 18a3825..2d3fa2b 100644
--- a/include/dsf
+++ b/include/dsf
@@ -267,6 +267,12 @@ def @DocumentSetup
right @Body { {1f @Wide}@Body } # @SubIndex format
named @SubSubIndexFormat
right @Body { {2f @Wide}@Body } # @SubSubIndex format
+ named @IndexTypeOrdinary
+ right @PageNum { @PageNum } # ordinary page numbers
+ named @IndexTypeMain
+ right @PageNum { @B @PageNum } # main page numbers
+ named @IndexTypeSpecial
+ right @PageNum { @I @PageNum } # special page numbers
named @IndexColumnNumber { 2 } # index columns (1 to 10)
named @IndexColumnGap { 1.00c @OrIfPlain 6s } # index column gap
named @IndexCtd { Yes } # include (ctd.) lines
@@ -290,6 +296,12 @@ def @DocumentSetup
right @Body { {1f @Wide}@Body } # @SubIndexA format
named @SubSubIndexAFormat
right @Body { {2f @Wide}@Body } # @SubSubIndexA format
+ named @IndexATypeOrdinary
+ right @PageNum { @PageNum } # ordinary page numbers
+ named @IndexATypeMain
+ right @PageNum { @B @PageNum } # main page numbers
+ named @IndexATypeSpecial
+ right @PageNum { @I @PageNum } # special page numbers
named @IndexAColumnNumber { 2 } # index A columns (1 to 10)
named @IndexAColumnGap { 1.00c @OrIfPlain 6s } # index A column gap
named @IndexACtd { Yes } # include (ctd.) lines
@@ -313,6 +325,12 @@ def @DocumentSetup
right @Body { {1f @Wide}@Body } # @SubIndexB format
named @SubSubIndexBFormat
right @Body { {2f @Wide}@Body } # @SubSubIndexB format
+ named @IndexBTypeOrdinary
+ right @PageNum { @PageNum } # ordinary page numbers
+ named @IndexBTypeMain
+ right @PageNum { @B @PageNum } # main page numbers
+ named @IndexBTypeSpecial
+ right @PageNum { @I @PageNum } # special page numbers
named @IndexBColumnNumber { 2 } # index B columns (1 to 10)
named @IndexBColumnGap { 1.00c @OrIfPlain 6s } # index B column gap
named @IndexBCtd { Yes } # include (ctd.) lines
@@ -4226,6 +4244,7 @@ def @DocumentSetup
def @Index
left lpart
named @Tag {}
+ named pnformat right @PageNum { Ordinary }
named depth { 0 }
named to {}
right rpart
@@ -4235,6 +4254,17 @@ def @DocumentSetup
tag @CrossLink @PageOf tag
}
+ def @Fmt right x
+ {
+ {pnformat x} @Case
+ {
+ Ordinary @Yield @IndexTypeOrdinary x
+ Main @Yield @IndexTypeMain x
+ Special @Yield @IndexTypeSpecial x
+ else @Yield {pnformat x}
+ }
+ }
+
def @PgRange
{
to @Case
@@ -4253,7 +4283,7 @@ def @DocumentSetup
@MakeIndex @Case {
Yes @Yield {
@PageMark @Tag &
- lpart @DoIndex depth { depth } pgrange { @PgRange } rpart }
+ lpart @DoIndex depth { depth } pgrange { @Fmt @PgRange } rpart }
else @Yield @Null
}
}
@@ -4423,6 +4453,7 @@ def @DocumentSetup
def @IndexA
left lpart
named @Tag {}
+ named pnformat right @PageNum { Ordinary }
named depth { 0 }
named to {}
right rpart
@@ -4432,6 +4463,17 @@ def @DocumentSetup
tag @CrossLink @PageOf tag
}
+ def @Fmt right x
+ {
+ {pnformat x} @Case
+ {
+ Ordinary @Yield @IndexATypeOrdinary x
+ Main @Yield @IndexATypeMain x
+ Special @Yield @IndexATypeSpecial x
+ else @Yield {pnformat x}
+ }
+ }
+
def @PgRange
{
to @Case
@@ -4450,7 +4492,7 @@ def @DocumentSetup
@MakeIndexA @Case {
Yes @Yield {
@PageMark @Tag &
- lpart @DoIndexA depth { depth } pgrange { @PgRange } rpart }
+ lpart @DoIndexA depth { depth } pgrange { @Fmt @PgRange } rpart }
else @Yield @Null
}
}
@@ -4620,6 +4662,7 @@ def @DocumentSetup
def @IndexB
left lpart
named @Tag {}
+ named pnformat right @PageNum { Ordinary }
named depth { 0 }
named to {}
right rpart
@@ -4629,6 +4672,17 @@ def @DocumentSetup
tag @CrossLink @PageOf tag
}
+ def @Fmt right x
+ {
+ {pnformat x} @Case
+ {
+ Ordinary @Yield @IndexBTypeOrdinary x
+ Main @Yield @IndexBTypeMain x
+ Special @Yield @IndexBTypeSpecial x
+ else @Yield {pnformat x}
+ }
+ }
+
def @PgRange
{
to @Case
@@ -4647,7 +4701,7 @@ def @DocumentSetup
@MakeIndexB @Case {
Yes @Yield {
@PageMark @Tag &
- lpart @DoIndexB depth { depth } pgrange { @PgRange } rpart }
+ lpart @DoIndexB depth { depth } pgrange { @Fmt @PgRange } rpart }
else @Yield @Null
}
}
diff --git a/include/graphf b/include/graphf
index e228021..8bb9d05 100644
--- a/include/graphf
+++ b/include/graphf
@@ -411,6 +411,66 @@ def @GraphDotted
}
}
+def @GraphDotDashed
+ import @PSLengths named dashlength { 0.2f }
+ import @PSLengths named linewidth { "currentlinewidth" }
+ import @LoutLengths named length { 1.0f }
+{
+ @BackEnd @Case {
+ PostScript @Yield {
+ @HContract @VContract
+ { "xsize 0 lgraphdict begin newpath 0 0 moveto lineto"
+ "/linewidth" linewidth "def xsize" dashlength "dotdashed end"
+ } @Graphic { length @Wide }
+ }
+# VT: PDF does nothing
+ PDF @Yield {
+ @HContract @VContract
+ { "% @GraphDotDashed UNIMPLEMENTED" } @Graphic { length @Wide }
+ }
+ }
+}
+
+def @GraphDotDotDashed
+ import @PSLengths named dashlength { 0.2f }
+ import @PSLengths named linewidth { "currentlinewidth" }
+ import @LoutLengths named length { 1.0f }
+{
+ @BackEnd @Case {
+ PostScript @Yield {
+ @HContract @VContract
+ { "xsize 0 lgraphdict begin newpath 0 0 moveto lineto"
+ "/linewidth" linewidth "def xsize" dashlength "dotdotdashed end"
+ } @Graphic { length @Wide }
+ }
+# VT: PDF does nothing
+ PDF @Yield {
+ @HContract @VContract
+ { "% @GraphDotDotDashed UNIMPLEMENTED" } @Graphic { length @Wide }
+ }
+ }
+}
+
+def @GraphDotDotDotDashed
+ import @PSLengths named dashlength { 0.2f }
+ import @PSLengths named linewidth { "currentlinewidth" }
+ import @LoutLengths named length { 1.0f }
+{
+ @BackEnd @Case {
+ PostScript @Yield {
+ @HContract @VContract
+ { "xsize 0 lgraphdict begin newpath 0 0 moveto lineto"
+ "/linewidth" linewidth "def xsize" dashlength "dotdotdotdashed end"
+ } @Graphic { length @Wide }
+ }
+# VT: PDF does nothing
+ PDF @Yield {
+ @HContract @VContract
+ { "% @GraphDotDotDotDashed UNIMPLEMENTED" } @Graphic { length @Wide }
+ }
+ }
+}
+
export @Data
def @Graph
@@ -701,6 +761,12 @@ def @Graph
solid @Yield { "linesetup solid" @IfPt "ilinesetup solid" }
dashed @Yield { "linesetup cdashed" @IfPt "ilinesetup dashed" }
dotted @Yield { "linesetup dotted" @IfPt "ilinesetup dotted" }
+ dotdashed @Yield { "linesetup dotcdashed" @IfPt
+ "ilinesetup dotdashed" }
+ dotdotdashed @Yield { "linesetup dotdotcdashed" @IfPt
+ "ilinesetup dotdotdashed" }
+ dotdotdotdashed @Yield { "linesetup dotdotdotcdashed" @IfPt
+ "ilinesetup dotdotdotdashed" }
surfacexhisto @Yield { "surfacexhisto" }
surfaceyhisto @Yield { "surfaceyhisto" }
xhisto @Yield { "xhisto" }
diff --git a/include/graphf.lpg b/include/graphf.lpg
index 3c7edbc..5546586 100644
--- a/include/graphf.lpg
+++ b/include/graphf.lpg
@@ -123,6 +123,106 @@ lgraphdict begin
{ pop pop
} def
+% scale array elements by factor: <array> <factor> scalearray <array>
+/scalearray
+{
+ [ exch 3 2 roll
+ { exch dup 3 1 roll mul exch } forall
+ pop ]
+} def
+
+% sum array elements: <array> sumarray <number>
+/sumarray
+{
+ 0 exch { add } forall
+} def
+
+% begin a more complex line: <length> <dashlength> linebegin -
+/linebegin
+{
+ % (Entering linebegin) 2 debugprint
+ 20 dict begin
+ /dashlen exch 1 pt max def
+ /len exch def
+ /gap dashlen def
+ /halfgap dashlen 2 div def
+ /dash dashlen def
+ /halfdash dashlen 2 div def
+ /dot 0 def
+ % (Leaving linebegin) 0 debugprint
+} def
+% end a more complex line: <linecap> <cycle> <startpos> <stoppos> lineend -
+/lineend
+{
+ % (Entering lineend) 3 debugprint
+ /stoppos exch def
+ /startpos exch def
+ /cycle exch def
+ /linecap exch def
+ /stopposlen stoppos sumarray def
+ /startposlen startpos sumarray def
+ /cyclelen cycle sumarray def
+ /effectivelen len startposlen add stopposlen sub def
+ effectivelen 0 gt cyclelen 0 gt and
+ {
+ /repeats effectivelen cyclelen div ceiling def
+ /factor len repeats cyclelen mul startposlen sub stopposlen add div def
+ cycle factor scalearray startposlen factor mul setdash
+ linecap setlinecap stroke
+ } if
+ end
+ % (Leaving lineend) 0 debugprint
+} def
+
+% stroke a dotdashed line: <length> <dashlength> dotdashed -
+/dotdashed
+{
+ linebegin
+ 1 [dash gap dot gap] [] [dash]
+ lineend
+} def
+
+% stroke a dotcdashed line: <length> <dashlength> dotcdashed -
+/dotcdashed
+{
+ linebegin
+ 1 [dash gap dot gap] [halfdash] [halfdash]
+ lineend
+} def
+
+% stroke a dotdotdashed line: <length> <dashlength> dotdotdashed -
+/dotdotdashed
+{
+ linebegin
+ 1 [dash gap dot gap dot gap] [] [dash]
+ lineend
+} def
+
+% stroke a dotdotcdashed line: <length> <dashlength> dotdotcdashed -
+/dotdotcdashed
+{
+ linebegin
+ 1 [dash gap dot gap dot gap] [halfdash] [halfdash]
+ lineend
+} def
+
+% stroke a dotdotdotdashed line: <length> <dashlength> dotdotdotdashed -
+/dotdotdotdashed
+{
+ linebegin
+ 1 [dash gap dot gap dot gap dot gap] [] [dash]
+ lineend
+} def
+
+% stroke a dotdotdotcdashed line: <length> <dashlength> dotdotdotcdashed -
+/dotdotdotcdashed
+{
+ linebegin
+ 1 [dash gap dot gap dot gap dot gap] [halfdash] [halfdash]
+ lineend
+} def
+
+
% stroke a y histogram: - yhisto -
/yhisto
{ xprev yleft trpoint yextra sub moveto
diff --git a/include/haskell b/include/haskell
new file mode 100644
index 0000000..7fa9b41
--- /dev/null
+++ b/include/haskell
@@ -0,0 +1,109 @@
+###############################################################################
+# #
+# Lout setup file for Haskell program printing #
+# #
+# Version 1.0 #
+# Thorsten Seitz #
+# 17 December 2001 #
+# #
+###############################################################################
+
+
+###############################################################################
+# #
+# @SysInclude line #
+# #
+# This line causes Lout to read the definitions for this programming #
+# language, and should not be touched. #
+# #
+###############################################################################
+
+@SysInclude { haskellf }
+
+
+###############################################################################
+# #
+# @Use clause #
+# #
+# To change the default value of any option, delete the # at the start of #
+# its line and change the value between braces. #
+# #
+###############################################################################
+
+@Use { @HaskellSetup
+ # pipe { } # pipe source through this
+ # numbered { No } # No, Yes, or a line number
+ # style { symbol @OrIfPlain fixed } # fixed, varying, or symbol
+
+ # the following options apply when style is "fixed"
+
+ # fixedfont { Courier } # font family
+ # fixedsize { -1.0p } # font size
+ # fixedline { 1.0vx } # line-space
+ # fixedtabin { 8 } # tab interval
+ # fixedtabout { 8s } # tab width
+
+ # fixedidentifiers { Base } # identifier face
+ # fixedkeywords { Base } # keyword face
+ # fixedoperators { Base } # operator face
+ # fixednumbers { Base } # number face
+ # fixedstrings { Base } # string face
+ # fixedcomments { Base } # comment face
+ # fixedlinenumbers { Base } # line numbers face
+
+ # fixedidentifiersformat { @Body } # identifiers format
+ # fixedkeywordsformat { @Body } # keywords format
+ # fixedoperatorsformat { @Body } # operators format
+ # fixednumbersformat { @Body } # numbers format
+ # fixedstringsformat { @Body } # strings format
+ # fixedcommentsformat { @Body } # comments format
+ # fixedlinenumbersformat { @Body } # line numbers format
+
+ # the following options apply when style is "varying"
+
+ # varyingfont { } # font family
+ # varyingsize { 1.0f } # font size
+ # varyingline { 1.0vx } # line-space
+ # varyingtabin { 8 } # tab interval
+ # varyingtabout { 3f } # tab width
+
+ # varyingidentifiers { Slope } # identifier face
+ # varyingkeywords { Bold } # keyword face
+ # varyingoperators { Base } # operator face
+ # varyingnumbers { Base } # number face
+ # varyingstrings { Slope } # string face
+ # varyingcomments { Base } # comment face
+ # varyinglinenumbers { Base } # line numbers face
+
+ # varyingidentifiersformat { @Body } # identifiers format
+ # varyingkeywordsformat { @Body } # keywords format
+ # varyingoperatorsformat { @Body } # operators format
+ # varyingnumbersformat { @Body } # numbers format
+ # varyingstringsformat { @Body } # strings format
+ # varyingcommentsformat { @Body } # comments format
+ # varyinglinenumbersformat { @Body } # line numbers format
+
+ # the following options apply when style is "symbol"
+
+ # symbolfont { } # font family
+ # symbolsize { 1.0f } # font size
+ # symbolline { 1.0vx } # line-space
+ # symboltabin { 8 } # tab interval
+ # symboltabout { 3f } # tab width
+
+ # symbolidentifiers { Slope } # identifier face
+ # symbolkeywords { Bold } # keyword face
+ # symboloperators { Base } # operator face
+ # symbolnumbers { Base } # number face
+ # symbolstrings { Slope } # string face
+ # symbolcomments { Base } # comment face
+ # symbollinenumbers { Base } # line numbers face
+
+ # symbolidentifiersformat { @Body } # identifiers format
+ # symbolkeywordsformat { @Body } # keywords format
+ # symboloperatorsformat { @Body } # operators format
+ # symbolnumbersformat { @Body } # numbers format
+ # symbolstringsformat { @Body } # strings format
+ # symbolcommentsformat { @Body } # comments format
+ # symbollinenumbersformat { @Body } # line numbers format
+}
diff --git a/include/haskellf b/include/haskellf
new file mode 100644
index 0000000..e7a2d14
--- /dev/null
+++ b/include/haskellf
@@ -0,0 +1,467 @@
+
+###############################################################################
+# #
+# Lout @HaskellSetup package for formatting Haskell programs #
+# #
+# Version 1.0 #
+# Thorsten Seitz #
+# 17 December 2001 #
+# #
+# This package uses a filtered body parameter to convert program source #
+# code into Lout source. The filter program is prg2lout, which is #
+# distributed with Lout and should be compiled and installed wherever #
+# Lout itself is. #
+# #
+###############################################################################
+
+export @Haskell
+def @HaskellSetup
+ named pipe { } # pipe through this first
+ named numbered { No } # want lines numbered?
+ named style
+ named @OrIfPlain left x right y
+ { @BackEnd @Case { PlainText @Yield y else @Yield x } }
+ { symbol @OrIfPlain fixed } # print style
+
+ # the following options apply when style is "fixed"
+ named fixedfont { Courier }# font family
+ named fixedsize { -1.0p } # font size
+ named fixedline { 1.0vx } # line-space
+ named fixedtabin { 4 } # tab interval
+ named fixedtabout { 4s } # tab width
+
+ named fixedbraces { Base } # braces face
+ named fixedidentifiers { Base } # identifier face
+ named fixedkeywords { Base } # keyword face
+ named fixedoperators { Base } # operator face
+ named fixednumbers { Base } # number face
+ named fixedstrings { Base } # string face
+ named fixedcomments { Base } # comment face
+ named fixedlinenumbers { Base } # line numbers face
+
+ named fixedleftbracesformat right @Body { @Body } # left braces format
+ named fixedrightbracesformat right @Body { @Body } # right braces format
+ named fixedidentifiersformat right @Body { @Body } # identifier format
+ named fixedkeywordsformat right @Body { @Body } # keyword format
+ named fixedoperatorsformat right @Body { @Body } # operators format
+ named fixednumbersformat right @Body { @Body } # number format
+ named fixedstringsformat right @Body { @Body } # string format
+ named fixedcommentsformat right @Body { @Body } # comment format
+ named fixedlinenumbersformat right @Body { @Body } # line nums format
+
+ # the following options apply when style is "varying"
+ named varyingfont { } # font family
+ named varyingsize { 1.0f } # font size
+ named varyingline { 1.0vx } # line-space
+ named varyingtabin { 4 } # tab interval
+ named varyingtabout { 1.5f } # tab width
+
+ named varyingbraces { Base } # braces face
+ named varyingidentifiers { Slope } # identifier face
+ named varyingkeywords { Bold } # keyword face
+ named varyingoperators { Base } # operator face
+ named varyingnumbers { Base } # number face
+ named varyingstrings { Slope } # string face
+ named varyingcomments { Base } # comment face
+ named varyinglinenumbers { Base } # line numbers face
+
+ named varyingleftbracesformat right @Body { @Body } # left braces format
+ named varyingrightbracesformat right @Body { @Body } # right braces format
+ named varyingidentifiersformat right @Body { @Body } # identifier format
+ named varyingkeywordsformat right @Body { @Body } # keyword format
+ named varyingoperatorsformat right @Body { @Body } # operators format
+ named varyingnumbersformat right @Body { @Body } # number format
+ named varyingstringsformat right @Body { @Body } # string format
+ named varyingcommentsformat right @Body { @Body } # comment format
+ named varyinglinenumbersformat right @Body { @Body } # line nums format
+
+ # the following options apply when style is "symbol"
+ named symbolfont { } # font family
+ named symbolsize { 1f } # font size
+ named symbolline { 1.0vx } # line-space
+ named symboltabin { 4 } # tab interval
+ named symboltabout { 1.7f } # tab width
+
+ named symbolbraces { Base } # braces face
+ named symbolidentifiers { Slope } # identifier face
+ named symbolkeywords { Bold } # keyword face
+ named symboloperators { Symbol Base } # operator face
+ named symbolnumbers { Base } # number face
+ named symbolstrings { Slope } # string face
+ named symbolcomments { Base } # comment face
+ named symbollinenumbers { Base } # line numbers face
+
+ named symbolidentifiersformat right @Body { 0.3s @Space {"" @Body} } # identifier format (with italic correction)
+ named symbolkeywordsformat right @Body { @Body } # keyword format
+ named symboloperatorsformat right @Body { 0.5s @Space {"" @Body ""}} # operators format
+ named symbolnumbersformat right @Body { @Body } # number format
+ named symbolstringsformat right @Body { @Body } # string format
+ named symbolcommentsformat right @Body { @Body } # comment format
+ named symbollinenumbersformat right @Body { @Body } # line nums format
+
+@Begin
+
+ export
+
+ @PI @PK @PO @PN @PS @PC @PCL @PL @PA @PM @PD
+ @PLAMBDA @PCIRC @PPLUSPLUS @PCOLON @PDOUBLECOLON
+
+ @A "$>"
+
+ def @Haskell
+ named style { style } # style
+ named numbered { numbered } # want numbered lines?
+ named pipe { pipe } # pipe through this first
+ named font { dft } # font family
+ named size { dft } # font size
+ named line { dft } # line-space
+ named tabin { dft } # tab interval
+ named tabout { dft } # tab width
+ named braces { dft } # braces font
+ named identifiers { dft } # ident. font
+ named keywords { dft } # keyword font
+ named operators { dft } # operator font
+ named numbers { dft } # number font
+ named strings { dft } # string font
+ named comments { dft } # comment font
+ named linenumbers { dft } # line numbers font
+ body @Body # filtered, see below
+ @Begin
+
+ def @Test # returns x unless x is dft
+ left x
+ named iffixed {}
+ named ifvarying {}
+ named ifsymbol {}
+ {
+ x @Case {
+ dft @Yield {
+ style @Case {
+ fixed @Yield { iffixed }
+ varying @Yield { ifvarying }
+ symbol @Yield { ifsymbol }
+ }
+ }
+ else @Yield x
+ }
+ }
+
+
+ def @Else # returns x, or y if x is dft
+ left x
+ right y
+ {
+ x @Case {
+ dft @Yield y
+ else @Yield x
+ }
+ }
+
+
+ def @InitTab
+ {
+ tabin @Test
+ iffixed { fixedtabin }
+ ifvarying { varyingtabin }
+ ifsymbol { symboltabin }
+ }
+
+
+ def @InitTabWidth
+ {
+ tabout @Test
+ iffixed { fixedtabout }
+ ifvarying { varyingtabout }
+ ifsymbol { symboltabout }
+ }
+
+
+ def @Filter
+ {
+ def wantnumbered
+ {
+ numbered @Case {
+ { No no } @Yield ""
+ { Yes yes } @Yield "-L"
+ else @Yield { "-L"numbered }
+ }
+ }
+
+ pipe @Case {
+ "" @Yield {
+ "prg2lout -r -lHaskell" wantnumbered -i{@FilterIn}
+ -o{@FilterOut} -e{@FilterErr}
+ -t{@InitTab} -T{@InitTabWidth}
+ }
+ else @Yield {
+ "cat" @FilterIn "|" pipe "|"
+ "prg2lout -r -lHaskell" wantnumbered -o{@FilterOut}
+ -e{@FilterErr} -t{@InitTab} -T{@InitTabWidth}
+ }
+ }
+ }
+
+
+ def @InitFontFamily
+ {
+ font @Test
+ iffixed { fixedfont }
+ ifvarying { varyingfont }
+ ifsymbol { symbolfont }
+ }
+
+
+ def @InitSize
+ {
+ size @Test
+ iffixed { fixedsize }
+ ifvarying { varyingsize }
+ ifsymbol { symbolsize }
+ }
+
+
+ def @InitLine
+ {
+ line @Test
+ iffixed { fixedline }
+ ifvarying { varyingline }
+ ifsymbol { symbolline }
+ }
+
+
+ def @PO # for formatting operators
+ right x
+ {
+ style @Case {
+ fixed @Yield fixedoperatorsformat {
+ { operators @Else fixedoperators } @Font x
+ }
+ varying @Yield varyingoperatorsformat {
+ { operators @Else varyingoperators } @Font x
+ }
+ symbol @Yield symboloperatorsformat {
+ { operators @Else symboloperators } @Font x
+ }
+ }
+ }
+
+
+ def @A # get characters from the Adobe Symbol font
+ left sym
+ right x
+ {
+ style @Case {
+ symbol @Yield { { Symbol Base } @Font @Char sym }
+ else @Yield { x }
+ }
+ }
+
+ # deleted by JeffK here and in prg2lout.c, who could not see the point
+ #def @APO
+ # left sym
+ # right x
+ #{
+ # @PO sym @A x
+ #}
+
+
+
+ def @PI # for formatting identifiers
+ right x
+ {
+ style @Case {
+ fixed @Yield fixedidentifiersformat {
+ { identifiers @Else fixedidentifiers } @Font x
+ }
+ varying @Yield varyingidentifiersformat {
+ { identifiers @Else varyingidentifiers } @Font x
+ }
+ symbol @Yield symbolidentifiersformat {
+ { identifiers @Else symbolidentifiers } @Font x
+ }
+ }
+ }
+
+
+ def @PK # for formatting keywords
+ right x
+ {
+ style @Case {
+ fixed @Yield fixedkeywordsformat {
+ { keywords @Else fixedkeywords } @Font x
+ }
+ varying @Yield varyingkeywordsformat {
+ { keywords @Else varyingkeywords } @Font x
+ }
+ symbol @Yield symbolkeywordsformat {
+ { keywords @Else symbolkeywords } @Font x
+ }
+ }
+ }
+
+
+ def @PN # for formatting numbers
+ right x
+ {
+ style @Case {
+ fixed @Yield fixednumbersformat {
+ { numbers @Else fixednumbers } @Font x
+ }
+ varying @Yield varyingnumbersformat {
+ { numbers @Else varyingnumbers } @Font x
+ }
+ symbol @Yield symbolnumbersformat {
+ { numbers @Else symbolnumbers } @Font x
+ }
+ }
+ }
+
+
+ def @PS # for formatting strings
+ right x
+ {
+ style @Case {
+ fixed @Yield fixedstringsformat {
+ { strings @Else fixedstrings } @Font x
+ }
+ varying @Yield varyingstringsformat {
+ { strings @Else varyingstrings } @Font x
+ }
+ symbol @Yield symbolstringsformat {
+ { strings @Else symbolstrings } @Font x
+ }
+ }
+ }
+
+
+ def @PCnoDelim
+ right x
+ {
+ style @Case {
+ fixed @Yield fixedcommentsformat {
+ { comments @Else fixedcomments } @Font x
+ }
+ varying @Yield varyingcommentsformat {
+ { comments @Else varyingcomments } @Font x
+ }
+ symbol @Yield symbolcommentsformat {
+ { comments @Else symbolcomments } @Font x
+ }
+ }
+ }
+
+
+ def @Symb right x { { Symbol Base } @Font @Char x }
+
+
+ def @PC # for formatting comments
+ right x
+ {
+ @PCnoDelim { "{"@Symb minus{x}@Symb minus"}" }
+ }
+
+
+ def @PCL # for formatting line comments
+ right x
+ {
+ @PCnoDelim { {@Symb minus} &0.5s {@Symb minus}{x} }
+ }
+
+
+ def @PL # for formatting line numbers
+ right x
+ {
+ style @Case {
+ fixed @Yield fixedlinenumbersformat {
+ { linenumbers @Else fixedlinenumbers } @Font x
+ }
+ varying @Yield varyinglinenumbersformat {
+ { linenumbers @Else varyinglinenumbers } @Font x
+ }
+ symbol @Yield symbollinenumbersformat {
+ { linenumbers @Else symbollinenumbers } @Font x
+ }
+ }
+ }
+
+
+ def @PA # for formatting asterisks
+ {
+ @PO @BackEnd @Case {
+ PlainText @Yield "*"
+ else @Yield { @Symb asteriskmath }
+ }
+ }
+
+
+ def @PM # for formatting minus signs
+ {
+ @PO @BackEnd @Case {
+ PlainText @Yield "-"
+ else @Yield style @Case {
+ fixed @Yield "-"
+ else @Yield { { Symbol Base } @Font @Char "minus" }
+ }
+ }
+ }
+
+
+ def @PD # for formatting dots, if wanted larger
+ {
+ @PO @BackEnd @Case {
+ PlainText @Yield "."
+ else @Yield { "1.4f" @Font "." &"0.05f" }
+ }
+ }
+
+
+ def @PLAMBDA
+ right x
+ {
+ style @Case {
+ symbol @Yield { { Symbol Base } @Font @Char lambda |0.5s }
+ else @Yield { x }
+ }
+ }
+
+ def @PCIRC
+ right x
+ {
+ style @Case {
+ symbol @Yield { @PO {/0.3fo 0i @Space {"" @Symb degree } } }
+ else @Yield { @PO x }
+ }
+ }
+
+ def @PPLUSPLUS
+ right x
+ {
+ style @Case {
+ symbol @Yield { @PO {@Symb plus |0.3fo @Symb plus} }
+ else @Yield { @PO x }
+ }
+ }
+
+ def @PCOLON
+ {
+ @PO ":"
+ }
+
+ def @PDOUBLECOLON
+ right x
+ {
+ style @Case {
+ symbol @Yield { @PO {: |0.8s :} }
+ else @Yield { @PO x }
+ }
+ }
+
+ macro "$>" { {} & }
+
+
+ { @InitFontFamily Base @InitSize } @Font
+ { @InitLine lines nohyphen } @Break @Body
+
+ @End @Haskell
+
+@End @HaskellSetup
diff --git a/include/picture b/include/picture
index 340b02b..dea061a 100644
--- a/include/picture
+++ b/include/picture
@@ -164,6 +164,9 @@
# @IndexFormat { @Body } # @Index format
# @SubIndexFormat { {1f @Wide}@Body } # @SubIndex format
# @SubSubIndexFormat { {2f @Wide}@Body } # @SubSubIndex format
+ # @IndexTypeOrdinary { @PageNum } # Ordinary pagenum format
+ # @IndexTypeMain { @B @PageNum } # Main pagenum format
+ # @IndexTypeSpecial { @I @PageNum } # Special pagenum format
# @IndexColumnNumber { 2 } # index columns (1 to 10)
# @IndexColumnGap { 1.00c @OrIfPlain 6s } # index column gap
# @IndexCtd { Yes } # include (ctd.) lines
@@ -180,6 +183,9 @@
# @IndexAFormat { @Body } # @IndexA format
# @SubIndexAFormat { {1f @Wide}@Body } # @SubIndexA format
# @SubSubIndexAFormat { {2f @Wide}@Body } # @SubSubIndexA format
+ # @IndexATypeOrdinary { @PageNum } # Ordinary pagenum format
+ # @IndexATypeMain { @B @PageNum } # Main pagenum format
+ # @IndexATypeSpecial { @I @PageNum } # Special pagenum format
# @IndexAColumnNumber { 2 } # index A columns (1 to 10)
# @IndexAColumnGap { 1.00c @OrIfPlain 6s } # index A column gap
# @IndexACtd { Yes } # include (ctd.) lines
@@ -196,6 +202,9 @@
# @IndexBFormat { @Body } # @IndexB format
# @SubIndexBFormat { {1f @Wide}@Body } # @SubIndexB format
# @SubSubIndexBFormat { {2f @Wide}@Body } # @SubSubIndexB format
+ # @IndexBTypeOrdinary { @PageNum } # Ordinary pagenum format
+ # @IndexBTypeMain { @B @PageNum } # Main pagenum format
+ # @IndexBTypeSpecial { @I @PageNum } # Special pagenum format
# @IndexBColumnNumber { 2 } # index B columns (1 to 10)
# @IndexBColumnGap { 1.00c @OrIfPlain 6s } # index B column gap
# @IndexBCtd { Yes } # include (ctd.) lines
diff --git a/include/report b/include/report
index 7666e93..12312e5 100644
--- a/include/report
+++ b/include/report
@@ -169,6 +169,9 @@
# @IndexFormat { @Body } # @Index format
# @SubIndexFormat { {1f @Wide}@Body } # @SubIndex format
# @SubSubIndexFormat { {2f @Wide}@Body } # @SubSubIndex format
+ # @IndexTypeOrdinary { @PageNum } # Ordinary pagenum format
+ # @IndexTypeMain { @B @PageNum } # Main pagenum format
+ # @IndexTypeSpecial { @I @PageNum } # Special pagenum format
# @IndexColumnNumber { 2 } # index columns (1 to 10)
# @IndexColumnGap { 1.00c @OrIfPlain 6s } # index column gap
# @IndexCtd { Yes } # include (ctd.) lines
@@ -185,6 +188,9 @@
# @IndexAFormat { @Body } # @IndexA format
# @SubIndexAFormat { {1f @Wide}@Body } # @SubIndexA format
# @SubSubIndexAFormat { {2f @Wide}@Body } # @SubSubIndexA format
+ # @IndexATypeOrdinary { @PageNum } # Ordinary pagenum format
+ # @IndexATypeMain { @B @PageNum } # Main pagenum format
+ # @IndexATypeSpecial { @I @PageNum } # Special pagenum format
# @IndexAColumnNumber { 2 } # index A columns (1 to 10)
# @IndexAColumnGap { 1.00c @OrIfPlain 6s } # index A column gap
# @IndexACtd { Yes } # include (ctd.) lines
@@ -201,6 +207,9 @@
# @IndexBFormat { @Body } # @IndexB format
# @SubIndexBFormat { {1f @Wide}@Body } # @SubIndexB format
# @SubSubIndexBFormat { {2f @Wide}@Body } # @SubSubIndexB format
+ # @IndexBTypeOrdinary { @PageNum } # Ordinary pagenum format
+ # @IndexBTypeMain { @B @PageNum } # Main pagenum format
+ # @IndexBTypeSpecial { @I @PageNum } # Special pagenum format
# @IndexBColumnNumber { 2 } # index B columns (1 to 10)
# @IndexBColumnGap { 1.00c @OrIfPlain 6s } # index B column gap
# @IndexBCtd { Yes } # include (ctd.) lines
diff --git a/include/rsl b/include/rsl
new file mode 100644
index 0000000..09427b6
--- /dev/null
+++ b/include/rsl
@@ -0,0 +1,110 @@
+# Hey Emacs, this is -*- lout -*- !
+###############################################################################
+# #
+# Lout setup file for RSL program printing #
+# #
+# Version 1.0 #
+# Darren Bane #
+# 18 February 2003 #
+# #
+###############################################################################
+
+
+###############################################################################
+# #
+# @SysInclude line #
+# #
+# This line causes Lout to read the definitions for this programming #
+# language, and should not be touched. #
+# #
+###############################################################################
+
+@SysInclude { rslf }
+
+
+###############################################################################
+# #
+# @Use clause #
+# #
+# To change the default value of any option, delete the # at the start of #
+# its line and change the value between braces. #
+# #
+###############################################################################
+
+@Use { @RSLSetup
+ # pipe { } # pipe source through this
+ # numbered { No } # No, Yes, or a line number
+ # style { symbol @OrIfPlain fixed } # fixed, varying, or symbol
+
+ # the following options apply when style is "fixed"
+
+ # fixedfont { Courier } # font family
+ # fixedsize { -1.0p } # font size
+ # fixedline { 1.0vx } # line-space
+ # fixedtabin { 8 } # tab interval
+ # fixedtabout { 8s } # tab width
+
+ # fixedidentifiers { Base } # identifier face
+ # fixedkeywords { Base } # keyword face
+ # fixedoperators { Base } # operator face
+ # fixednumbers { Base } # number face
+ # fixedstrings { Base } # string face
+ # fixedcomments { Base } # comment face
+ # fixedlinenumbers { Base } # line numbers face
+
+ # fixedidentifiersformat { @Body } # identifiers format
+ # fixedkeywordsformat { @Body } # keywords format
+ # fixedoperatorsformat { @Body } # operators format
+ # fixednumbersformat { @Body } # numbers format
+ # fixedstringsformat { @Body } # strings format
+ # fixedcommentsformat { @Body } # comments format
+ # fixedlinenumbersformat { @Body } # line numbers format
+
+ # the following options apply when style is "varying"
+
+ # varyingfont { } # font family
+ # varyingsize { 1.0f } # font size
+ # varyingline { 1.0vx } # line-space
+ # varyingtabin { 8 } # tab interval
+ # varyingtabout { 3f } # tab width
+
+ # varyingidentifiers { Slope } # identifier face
+ # varyingkeywords { Bold } # keyword face
+ # varyingoperators { Base } # operator face
+ # varyingnumbers { Base } # number face
+ # varyingstrings { Slope } # string face
+ # varyingcomments { Base } # comment face
+ # varyinglinenumbers { Base } # line numbers face
+
+ # varyingidentifiersformat { @Body } # identifiers format
+ # varyingkeywordsformat { @Body } # keywords format
+ # varyingoperatorsformat { @Body } # operators format
+ # varyingnumbersformat { @Body } # numbers format
+ # varyingstringsformat { @Body } # strings format
+ # varyingcommentsformat { @Body } # comments format
+ # varyinglinenumbersformat { @Body } # line numbers format
+
+ # the following options apply when style is "symbol"
+
+ # symbolfont { } # font family
+ # symbolsize { 1.0f } # font size
+ # symbolline { 1.0vx } # line-space
+ # symboltabin { 8 } # tab interval
+ # symboltabout { 3f } # tab width
+
+ # symbolidentifiers { Slope } # identifier face
+ # symbolkeywords { Bold } # keyword face
+ # symboloperators { Base } # operator face
+ # symbolnumbers { Base } # number face
+ # symbolstrings { Slope } # string face
+ # symbolcomments { Base } # comment face
+ # symbollinenumbers { Base } # line numbers face
+
+ # symbolidentifiersformat { @Body } # identifiers format
+ # symbolkeywordsformat { @Body } # keywords format
+ # symboloperatorsformat { @Body } # operators format
+ # symbolnumbersformat { @Body } # numbers format
+ # symbolstringsformat { @Body } # strings format
+ # symbolcommentsformat { @Body } # comments format
+ # symbollinenumbersformat { @Body } # line numbers format
+}
diff --git a/include/rslf b/include/rslf
new file mode 100644
index 0000000..f6c0bdf
--- /dev/null
+++ b/include/rslf
@@ -0,0 +1,448 @@
+# Hey Emacs, this is -*- lout -*- !
+###############################################################################
+# #
+# Lout @RSLSetup package for formatting RSL programs #
+# #
+# Version 1.0 #
+# Darren Bane #
+# 18 February 2003 #
+# #
+# This package uses a filtered body parameter to convert program source #
+# code into Lout source. The filter program is prg2lout, which is #
+# distributed with Lout and should be compiled and installed wherever #
+# Lout itself is. #
+# #
+###############################################################################
+
+export @RSL
+def @RSLSetup
+ named pipe { } # pipe through this first
+ named numbered { No } # want lines numbered?
+ named style
+ named @OrIfPlain left x right y
+ { @BackEnd @Case { PlainText @Yield y else @Yield x } }
+ { symbol @OrIfPlain fixed } # print style
+
+ # the following options apply when style is "fixed"
+ named fixedfont { Courier }# font family
+ named fixedsize { -1.0p } # font size
+ named fixedline { 1.0vx } # line-space
+ named fixedtabin { 8 } # tab interval
+ named fixedtabout { 8s } # tab width
+
+ named fixedidentifiers { Base } # identifier face
+ named fixedkeywords { Base } # keyword face
+ named fixedoperators { Base } # operator face
+ named fixednumbers { Base } # number face
+ named fixedstrings { Base } # string face
+ named fixedcomments { Base } # comment face
+ named fixedlinenumbers { Base } # line numbers face
+
+ named fixedidentifiersformat right @Body { @Body } # identifier format
+ named fixedkeywordsformat right @Body { @Body } # keyword format
+ named fixedoperatorsformat right @Body { @Body } # operators format
+ named fixednumbersformat right @Body { @Body } # number format
+ named fixedstringsformat right @Body { @Body } # string format
+ named fixedcommentsformat right @Body { @Body } # comment format
+ named fixedlinenumbersformat right @Body { @Body } # line nums format
+
+ # the following options apply when style is "varying"
+ named varyingfont { } # font family
+ named varyingsize { 1.0f } # font size
+ named varyingline { 1.0vx } # line-space
+ named varyingtabin { 8 } # tab interval
+ named varyingtabout { 3f } # tab width
+
+ named varyingidentifiers { Slope } # identifier face
+ named varyingkeywords { Bold } # keyword face
+ named varyingoperators { Base } # operator face
+ named varyingnumbers { Base } # number face
+ named varyingstrings { Slope } # string face
+ named varyingcomments { Base } # comment face
+ named varyinglinenumbers { Base } # line numbers face
+
+ named varyingidentifiersformat right @Body { @Body } # identifier format
+ named varyingkeywordsformat right @Body { @Body } # keyword format
+ named varyingoperatorsformat right @Body { @Body } # operators format
+ named varyingnumbersformat right @Body { @Body } # number format
+ named varyingstringsformat right @Body { @Body } # string format
+ named varyingcommentsformat right @Body { @Body } # comment format
+ named varyinglinenumbersformat right @Body { @Body } # line nums format
+
+ # the following options apply when style is "symbol"
+ named symbolfont { } # font family
+ named symbolsize { 1.0f } # font size
+ named symbolline { 1.0vx } # line-space
+ named symboltabin { 8 } # tab interval
+ named symboltabout { 3f } # tab width
+
+ named symbolidentifiers { Slope } # identifier face
+ named symbolkeywords { Bold } # keyword face
+ named symboloperators { Base } # operator face
+ named symbolnumbers { Base } # number face
+ named symbolstrings { Slope } # string face
+ named symbolcomments { Base } # comment face
+ named symbollinenumbers { Base } # line numbers face
+
+ named symbolidentifiersformat right @Body { @Body } # identifier format
+ named symbolkeywordsformat right @Body { @Body } # keyword format
+ named symboloperatorsformat right @Body { @Body } # operators format
+ named symbolnumbersformat right @Body { @Body } # number format
+ named symbolstringsformat right @Body { @Body } # string format
+ named symbolcommentsformat right @Body { @Body } # comment format
+ named symbollinenumbersformat right @Body { @Body } # line nums format
+
+@Begin
+
+ export
+
+ @PI @PK @PO @PN @PS @PC @PL @PA @PM @PD
+ @FA @A @PartialFn @Map @PartialMap @IntChoice @ExtChoice @InfList @Interlock "$>"
+
+ def @RSL
+ named style { style } # style
+ named numbered { numbered } # want numbered lines?
+ named pipe { pipe } # pipe through this first
+ named font { dft } # font family
+ named size { dft } # font size
+ named line { dft } # line-space
+ named tabin { dft } # tab interval
+ named tabout { dft } # tab width
+ named identifiers { dft } # ident. font
+ named keywords { dft } # keyword font
+ named operators { dft } # operator font
+ named numbers { dft } # number font
+ named strings { dft } # string font
+ named comments { dft } # comment font
+ named linenumbers { dft } # line numbers font
+ body @Body # filtered, see below
+ @Begin
+
+ def @Test # returns x unless x is dft
+ left x
+ named iffixed {}
+ named ifvarying {}
+ named ifsymbol {}
+ {
+ x @Case {
+ dft @Yield {
+ style @Case {
+ fixed @Yield { iffixed }
+ varying @Yield { ifvarying }
+ symbol @Yield { ifsymbol }
+ }
+ }
+ else @Yield x
+ }
+ }
+
+
+ def @Else # returns x, or y if x is dft
+ left x
+ right y
+ {
+ x @Case {
+ dft @Yield y
+ else @Yield x
+ }
+ }
+
+
+ def @InitTab
+ {
+ tabin @Test
+ iffixed { fixedtabin }
+ ifvarying { varyingtabin }
+ ifsymbol { symboltabin }
+ }
+
+
+ def @InitTabWidth
+ {
+ tabout @Test
+ iffixed { fixedtabout }
+ ifvarying { varyingtabout }
+ ifsymbol { symboltabout }
+ }
+
+
+ def @Filter
+ {
+ def wantnumbered
+ {
+ numbered @Case {
+ { No no } @Yield ""
+ { Yes yes } @Yield "-L"
+ else @Yield { "-L"numbered }
+ }
+ }
+
+ pipe @Case {
+ "" @Yield {
+ "prg2lout -r -lRSL" wantnumbered -i{@FilterIn}
+ -o{@FilterOut} -e{@FilterErr}
+ -t{@InitTab} -T{@InitTabWidth}
+ }
+ else @Yield {
+ "cat" @FilterIn "|" pipe "|"
+ "prg2lout -r -lRSL" wantnumbered -o{@FilterOut}
+ -e{@FilterErr} -t{@InitTab} -T{@InitTabWidth}
+ }
+ }
+ }
+
+
+ def @InitFontFamily
+ {
+ font @Test
+ iffixed { fixedfont }
+ ifvarying { varyingfont }
+ ifsymbol { symbolfont }
+ }
+
+
+ def @InitSize
+ {
+ size @Test
+ iffixed { fixedsize }
+ ifvarying { varyingsize }
+ ifsymbol { symbolsize }
+ }
+
+
+ def @InitLine
+ {
+ line @Test
+ iffixed { fixedline }
+ ifvarying { varyingline }
+ ifsymbol { symbolline }
+ }
+
+
+ def @PI # for formatting identifiers
+ right x
+ {
+ style @Case {
+ fixed @Yield fixedidentifiersformat {
+ { identifiers @Else fixedidentifiers } @Font x
+ }
+ varying @Yield varyingidentifiersformat {
+ { identifiers @Else varyingidentifiers } @Font x
+ }
+ symbol @Yield symbolidentifiersformat {
+ { identifiers @Else symbolidentifiers } @Font x
+ }
+ }
+ }
+
+
+ def @PK # for formatting keywords
+ right x
+ {
+ x @Case {
+ "is" @Yield @Sym equivalence
+ "exists" @Yield @Sym existential
+ "all" @Yield @Sym universal
+ else @Yield style @Case {
+ fixed @Yield fixedkeywordsformat {
+ { keywords @Else fixedkeywords } @Font x
+ }
+ varying @Yield varyingkeywordsformat {
+ { keywords @Else varyingkeywords } @Font x
+ }
+ symbol @Yield symbolkeywordsformat {
+ { keywords @Else symbolkeywords } @Font x
+ }
+ }
+ }
+ }
+
+
+ def @PO # for formatting operators
+ right x
+ {
+ style @Case {
+ fixed @Yield fixedoperatorsformat {
+ { operators @Else fixedoperators } @Font x
+ }
+ varying @Yield varyingoperatorsformat {
+ { operators @Else varyingoperators } @Font x
+ }
+ symbol @Yield symboloperatorsformat {
+ { operators @Else symboloperators } @Font x
+ }
+ }
+ }
+
+
+ def @PN # for formatting numbers
+ right x
+ {
+ style @Case {
+ fixed @Yield fixednumbersformat {
+ { numbers @Else fixednumbers } @Font x
+ }
+ varying @Yield varyingnumbersformat {
+ { numbers @Else varyingnumbers } @Font x
+ }
+ symbol @Yield symbolnumbersformat {
+ { numbers @Else symbolnumbers } @Font x
+ }
+ }
+ }
+
+
+ def @PS # for formatting strings
+ right x
+ {
+ style @Case {
+ fixed @Yield fixedstringsformat {
+ { strings @Else fixedstrings } @Font x
+ }
+ varying @Yield varyingstringsformat {
+ { strings @Else varyingstrings } @Font x
+ }
+ symbol @Yield symbolstringsformat {
+ { strings @Else symbolstrings } @Font x
+ }
+ }
+ }
+
+
+ def @PC # for formatting comments
+ right x
+ {
+ style @Case {
+ fixed @Yield fixedcommentsformat {
+ { comments @Else fixedcomments } @Font x
+ }
+ varying @Yield varyingcommentsformat {
+ { comments @Else varyingcomments } @Font x
+ }
+ symbol @Yield symbolcommentsformat {
+ { comments @Else symbolcomments } @Font x
+ }
+ }
+ }
+
+
+ def @PL # for formatting line numbers
+ right x
+ {
+ style @Case {
+ fixed @Yield fixedlinenumbersformat {
+ { linenumbers @Else fixedlinenumbers } @Font x
+ }
+ varying @Yield varyinglinenumbersformat {
+ { linenumbers @Else varyinglinenumbers } @Font x
+ }
+ symbol @Yield symbollinenumbersformat {
+ { linenumbers @Else symbollinenumbers } @Font x
+ }
+ }
+ }
+
+
+ def @PA # for formatting asterisks
+ {
+ @PO @BackEnd @Case {
+ PlainText @Yield "*"
+ else @Yield { "0.5w" @VShift "*" }
+ }
+ }
+
+
+ def @PM # for formatting minus signs
+ {
+ @PO @BackEnd @Case {
+ PlainText @Yield "-"
+ else @Yield style @Case {
+ fixed @Yield "-"
+ else @Yield { { Symbol Base } @Font @Char "minus" }
+ }
+ }
+ }
+
+
+ def @PD # for formatting dots, if wanted larger
+ {
+ @PO @BackEnd @Case {
+ PlainText @Yield "."
+ else @Yield { "1.4f" @Font "+0.04f" @VShift "." &"0.05f" }
+ }
+ }
+
+
+ def @FA # for formatting characters from the Adobe Symbol font
+ left sym
+ right x
+ {
+ style @Case {
+ symbol @Yield { sym }
+ else @Yield { x }
+ }
+ }
+
+
+ def @A # get characters from the Adobe Symbol font
+ left sym
+ right x
+ {
+ { { Symbol Base } @Font @Char sym } @FA x
+ }
+
+
+ # the following are any sizeable symbols for RSL
+ # i figure they're easier to maintain here than in prg2lout.c
+ def @PartialFn # -~->
+ {
+ @OneRow { &0.2fo @Sym similar ^/0.07f @Sym arrowright }
+ }
+
+
+ def @Map # -m->
+ {
+ @OneRow { @Sym arrowright ^/0.07f &0.2fo 0.7f @Font @I m }
+ }
+
+
+ def @PartialMap # -~m->
+ {
+ @OneRow { &0.2fo @Sym similar ^/0.07f @Sym arrowright /0.07f &0.2fo 0.7f @Font @I m }
+ }
+
+
+ def @IntChoice # |^|
+ {
+ @Sym bracketlefttp &0.5wo @Sym bracketrighttp
+ }
+
+
+ def @ExtChoice # |=|
+ {
+ { @Sym bracketlefttp &0.0fo @Sym bracketleftbt } &0.5wo
+ { @Sym bracketrighttp &0.0fo @Sym bracketrightbt }
+ }
+
+
+ def @InfList # -inflist
+ {
+ @Sup { @Sym omega }
+ }
+
+
+ def @Interlock # ++
+ {
+ { -- } &0.1fo { "||" }
+ }
+
+
+ macro "$>" { {} & }
+
+
+ { @InitFontFamily Base @InitSize } @Font
+ { @InitLine lines nohyphen } @Break @Body
+
+ @End @RSL
+
+@End @RSLSetup
diff --git a/include/save_bookf b/include/save_bookf
deleted file mode 100644
index 001f946..0000000
--- a/include/save_bookf
+++ /dev/null
@@ -1,1358 +0,0 @@
-
-###########################################################################
-# #
-# @BookSetup extension to @DocumentSetup. #
-# #
-# Jeffrey H. Kingston #
-# 17 September 1999 #
-# #
-# This package extends DocumentSetup with definitions for books. #
-# #
-###########################################################################
-
-extend @BasicSetup @DocumentSetup
-export @Book @Preface @Abbreviations @Introduction @Chapter @Appendix
-def @BookSetup
- named @TitlePageFont { Helvetica Base }
- named @SeparateIntroNumbering { Yes }
- named @PrefaceAfterContents { No }
- named @ChapterStartPages { Any }
- named @ReferencesBeforeAppendices { No }
-
- named @PrefaceWord { preface }
- named @ContentsWord { contents }
- named @FigureListWord { figurelist }
- named @TableListWord { tablelist }
- named @IntroductionWord { introduction }
- named @AbbreviationsWord { abbreviations }
- named @ChapterWord { chapter }
- named @AppendixWord { appendix }
- named @GlossaryWord { glossary }
- named @IndexWord { index }
- named @IndexAWord { index }
- named @IndexBWord { index }
- named @ColophonWord { colophon }
-
- named @ChapterNumbers { Arabic }
- named @FirstChapterNumber { 1 }
- named @SectionNumbers { Arabic }
- named @FirstSectionNumber { 1 }
- named @SubSectionNumbers { Arabic }
- named @FirstSubSectionNumber { 1 }
- named @SubSubSectionNumbers { Arabic }
- named @FirstSubSubSectionNumber { 1 }
- named @AppendixNumbers { UCAlpha }
- named @FirstAppendixNumber { 1 }
- named @SubAppendixNumbers { Arabic }
- named @FirstSubAppendixNumber { 1 }
- named @SubSubAppendixNumbers { Arabic }
- named @FirstSubSubAppendixNumber { 1 }
-
- named @PartHeadingFont { Helvetica Base 2.50f }
- named @PartHeadingBreak { clines 1.2fx nohyphen }
- named @PartHeadingFormat
- left number right title { @CD number @DP @CD title }
-
- named @ChapterHeadingFont { Bold 2.00f }
- named @ChapterHeadingBreak { ragged 1.2fx nohyphen }
- named @ChapterHeadingFormat
- left number right title { number @DotSep title }
-
- named @SectionHeadingFont { Bold }
- named @SectionHeadingBreak { ragged 1.2fx nohyphen }
- named @SectionHeadingFormat
- left number right title { number @DotSep title }
-
- named @SubSectionHeadingFont { Bold }
- named @SubSectionHeadingBreak { ragged 1.2fx nohyphen }
- named @SubSectionHeadingFormat
- left number right title { number @DotSep title }
-
- named @SubSubSectionHeadingFont { Slope }
- named @SubSubSectionHeadingBreak { ragged 1.2fx nohyphen }
- named @SubSubSectionHeadingFormat
- left number right title { number @DotSep title }
-
- named @AppendixHeadingFont { Bold 2.00f }
- named @AppendixHeadingBreak { ragged 1.2fx nohyphen }
- named @AppendixHeadingFormat
- left number right title { number @DotSep title }
-
- named @SubAppendixHeadingFont { Bold }
- named @SubAppendixHeadingBreak { ragged 1.2fx nohyphen }
- named @SubAppendixHeadingFormat
- left number right title { number @DotSep title }
-
- named @SubSubAppendixHeadingFont { Slope }
- named @SubSubAppendixHeadingBreak { ragged 1.2fx nohyphen }
- named @SubSubAppendixHeadingFormat
- left number right title { number @DotSep title }
-
- named @AbovePartGap { 4.00f }
- named @AboveChapterGap { 3.00f }
- named @SectionGap { 2.0v @OrIfPlain 3f }
- named @SubSectionGap { 1.5v @OrIfPlain 2f }
- named @SubSubSectionGap { 1.5v @OrIfPlain 2f }
- named @SubAppendixGap { 2.0v @OrIfPlain 3f }
- named @SubSubAppendixGap { 1.5v @OrIfPlain 2f }
-
- named @PrefaceInContents { Yes }
- named @AbbreviationsInContents { Yes }
- named @IntroductionInContents { Yes }
- named @PartInContents { Yes }
- named @ChapterInContents { Yes }
- named @SectionInContents { Yes }
- named @SubSectionInContents { Yes }
- named @SubSubSectionInContents { No }
- named @AppendixInContents { Yes }
- named @SubAppendixInContents { Yes }
- named @SubSubAppendixInContents { No }
- named @ReferencesInContents { Yes }
- named @GlossaryInContents { Yes }
- named @IndexInContents { Yes }
- named @IndexAInContents { Yes }
- named @IndexBInContents { Yes }
- named @ColophonInContents { Yes }
- named @PartContentsIndent { 0.5rt }
-
- named @ChapterNumInTheorems { Yes }
- named @SectionNumInTheorems { No }
- named @SubSectionNumInTheorems { No }
- named @SubSubSectionNumInTheorems { No }
- named @AppendixNumInTheorems { Yes }
- named @SubAppendixNumInTheorems { No }
- named @SubSubAppendixNumInTheorems { No }
-
- named @ChapterNumInDisplays { Yes }
- named @SectionNumInDisplays { Yes }
- named @SubSectionNumInDisplays { No }
- named @SubSubSectionNumInDisplays { No }
- named @AppendixNumInDisplays { Yes }
- named @SubAppendixNumInDisplays { Yes }
- named @SubSubAppendixNumInDisplays { No }
-
- named @ChapterNumInFigures { Yes }
- named @SectionNumInFigures { No }
- named @SubSectionNumInFigures { No }
- named @SubSubSectionNumInFigures { No }
- named @AppendixNumInFigures { Yes }
- named @SubAppendixNumInFigures { No }
- named @SubSubAppendixNumInFigures { No }
-
- named @ChapterNumInTables { Yes }
- named @SectionNumInTables { No }
- named @SubSectionNumInTables { No }
- named @SubSubSectionNumInTables { No }
- named @AppendixNumInTables { Yes }
- named @SubAppendixNumInTables { No }
- named @SubSubAppendixNumInTables { No }
-
- named @SectionNumInRunners { Yes }
- named @SubSectionNumInRunners { No }
- named @SubSubSectionNumInRunners { No }
- named @SubAppendixNumInRunners { Yes }
- named @SubSubAppendixNumInRunners { No }
-
- named @PrefacePrefix { }
- named @ContentsPrefix { }
- named @FigureContentsPrefix { }
- named @TableContentsPrefix { }
- named @AbbreviationsPrefix { }
- named @IntroductionPrefix { }
- named @ChapterPrefix { }
- named @AppendixPrefix { }
- named @ReferencesPrefix { }
- named @GlossaryPrefix { }
- named @IndexPrefix { }
- named @IndexAPrefix { }
- named @IndexBPrefix { }
- named @ColophonPrefix { }
-
-@Begin
-
- #######################################################################
- # #
- # Lists of chapters, sections, sub(-sub)sections, and appendices. #
- # #
- #######################################################################
-
- export num
- def @ChapterList named @Tag {} right num
- {
- @Galley
- // @ChapterList @Next num
- }
-
- export num
- def @SectionList named @Tag {} right num
- {
- @Galley
- //@SectionGap @SectionList @Next num
- }
-
- export num
- def @SubSectionList named @Tag {} right num
- {
- @Galley
- //@SubSectionGap @SubSectionList @Next num
- }
-
- export num
- def @SubSubSectionList named @Tag {} right num
- {
- @Galley
- //@SubSubSectionGap @SubSubSectionList @Next num
- }
-
- export num
- def @AppendixList named @Tag {} right num
- {
- @Galley
- // @AppendixList @Next num
- }
-
- export num
- def @SubAppendixList named @Tag {} right num
- {
- @Galley
- //@SubAppendixGap @SubAppendixList @Next num
- }
-
- export num
- def @SubSubAppendixList named @Tag {} right num
- {
- @Galley
- //@SubSubAppendixGap @SubSubAppendixList @Next num
- }
-
- def @PrefacePlace { @Galley }
- def @AbbreviationsPlace { @Galley }
- def @IntroductionPlace { @Galley }
-
-
- #######################################################################
- # #
- # @Full - this sends text to a full-width place on a new page, even #
- # if @ChapterStartPages is SamePage. #
- # #
- #######################################################################
-
- def @Full right x
- {
- def @Any force into { @FullPlace&&following } right x { x }
- def @Odd force into { @OddFullPlace&&following } right x { x }
- def @Even force into { @EvenFullPlace&&following } right x { x }
-
- @ChapterStartPages @Case {
- { Any SamePage } @Yield @Any x
- Odd @Yield @Odd x
- Even @Yield @Even x
- }
- }
-
-
- #######################################################################
- # #
- # @ChapterFull - this sends text to a full-width place on a new #
- # page, unless @ChapterStartPages is SamePage, in which case it #
- # doesn't send the text anywhere. #
- # #
- #######################################################################
-
- def @ChapterFull right x
- {
- def @Any force into { @FullPlace&&following } right x { x }
- def @Odd force into { @OddFullPlace&&following } right x { x }
- def @Even force into { @EvenFullPlace&&following } right x { x }
-
- @ChapterStartPages @Case {
- Any @Yield @Any x
- Odd @Yield @Odd x
- Even @Yield @Even x
- SamePage @Yield x
- }
- }
-
-
- #######################################################################
- # #
- # @IntroFull - this sends text to a full-width intro place. #
- # #
- #######################################################################
-
- def @IntroFull right x
- {
- def @Any force into { @IntroFullPlace&&following } right x { x }
- def @Odd force into { @IntroOddFullPlace&&following } right x { x }
- def @Even force into { @IntroEvenFullPlace&&following } right x { x }
-
- @ChapterStartPages @Case {
- { Any SamePage } @Yield @Any x
- Odd @Yield @Odd x
- Even @Yield @Even x
- }
- }
-
-
- #######################################################################
- # #
- # @ChooseFull - this sends either to introfull or ordinary full #
- # #
- #######################################################################
-
- def @ChooseFull right x
- {
- @SeparateIntroNumbering @Case {
- No @Yield @Full x
- Yes @Yield @IntroFull x
- }
- }
-
-
- #######################################################################
- # #
- # Book. #
- # #
- #######################################################################
-
- def @Book
- named @Tag {}
- named @Title {}
- named @Author {}
- named @Edition {}
- named @Publisher {}
- named @BeforeTitlePage {}
- named @OnTitlePage {}
- named @AfterTitlePage {}
- named @AtEnd { dft }
- named @InitialFont { @InitialFont }
- named @InitialBreak { @InitialBreak }
- named @InitialOutdent { @InitialOutdent }
- named @InitialSpace { @InitialSpace }
- named @InitialLanguage { @InitialLanguage }
- named @PageOrientation { @PageOrientation }
- named @PageHeaders { @PageHeaders }
- named @ColumnNumber { @ColumnNumber }
- named @FirstPageNumber { @FirstPageNumber }
- named @IntroFirstPageNumber { @IntroFirstPageNumber }
- named @OptimizePages { @OptimizePages }
- named @GlossaryText { @GlossaryText }
- named @IndexText { @IndexText }
- named @IndexAText { @IndexAText }
- named @IndexBText { @IndexBText }
- {
- def @Before
- {
- @BeforeTitlePage @Case {
- "" @Yield @Null
- else @Yield @BeforeTitlePage
- }
- }
-
- def @On
- {
- @OnTitlePage @Case {
- "" @Yield {
- //1i |0.5rt 2.5f @Font {1.2fx clines} @Break @Title |
- //2i |0.5rt clines @Break @Author |
- //1i |0.5rt clines @Break @Edition |
- //1rt @OneRow @Publisher
- }
- else @Yield @OnTitlePage
- }
- }
-
- def @After
- {
- @AfterTitlePage @Case {
- "" @Yield @Null
- else @Yield { @AfterTitlePage // None @Runner }
- }
- }
-
- def @ContentsPart
- named @Tag {}
- {
-
- @LargeScaleStructure
- tag { @Tag }
- type { ExtraMajorIntro }
- initiallanguage { @InitialLanguage }
- title { contents @WordVal @ContentsWord }
- aboveheadinggap { @AboveChapterGap }
- headingfont { @ChapterHeadingFont }
- headingbreak { @ChapterHeadingBreak }
- headingformat { @Num @ChapterHeadingFormat @Body }
- incontents { No }
- pnprefix { @ContentsPrefix }
- inrunners { Yes }
- majortitle { contents @WordVal @ContentsWord }
- sendheader { @ChooseFull @Body }
- innergap { @SectionGap }
- @ContentsSection
- }
-
- def @FigureContentsPart
- named @Tag {}
- {
- @LargeScaleStructure
- tag { @Tag }
- type { ExtraMajorIntro }
- initiallanguage { @InitialLanguage }
- title { figurelist @WordVal @FigureListWord }
- aboveheadinggap { @AboveChapterGap }
- headingfont { @ChapterHeadingFont }
- headingbreak { @ChapterHeadingBreak }
- headingformat { @Num @ChapterHeadingFormat @Body }
- incontents { No }
- pnprefix { @FigureContentsPrefix }
- inrunners { Yes }
- majortitle { figurelist @WordVal @FigureListWord }
- sendheader { @ChooseFull @Body }
- innergap { @SectionGap }
- @FigureContentsSection
- }
-
- def @TableContentsPart
- named @Tag {}
- {
- @LargeScaleStructure
- tag { @Tag }
- type { ExtraMajorIntro }
- initiallanguage { @InitialLanguage }
- title { tablelist @WordVal @TableListWord }
- aboveheadinggap { @AboveChapterGap }
- headingfont { @ChapterHeadingFont }
- headingbreak { @ChapterHeadingBreak }
- headingformat { @Num @ChapterHeadingFormat @Body }
- incontents { No }
- pnprefix { @TableContentsPrefix }
- inrunners { Yes }
- majortitle { tablelist @WordVal @TableListWord }
- sendheader { @ChooseFull @Body }
- innergap { @SectionGap }
- @TableContentsSection
- }
-
- def @ReferencesPart
- named @Tag {}
- {
- @LargeScaleStructure
- tag { @Tag }
- type { ExtraMajor }
- initiallanguage { @InitialLanguage }
- title { @RefHeading @RefListTitle }
- majortitle { @RefHeading @RefListTitle }
- aboveheadinggap { @AboveChapterGap }
- headingfont { @ChapterHeadingFont }
- headingbreak { @ChapterHeadingBreak }
- headingformat { @Num @ChapterHeadingFormat @Body }
- incontents { @ReferencesInContents }
- pnprefix { @ReferencesPrefix }
- inrunners { Yes }
- sendheader { @ChapterFull @Body }
- innergap { @SectionGap }
- @ReferencesSection
-
- }
-
- def @GlossaryPart
- named @Tag {}
- {
- def @Run
- {
- NonStart @Runner
- @MajorNum {}
- @MajorTitle { glossary @WordVal @GlossaryWord }
- @MinorNum {}
- @MinorTitle { glossary @WordVal @GlossaryWord }
- @Owner { @Tag }
- @Prefix { @GlossaryPrefix }
- }
-
- @LargeScaleStructure
- tag { @Tag }
- type { Major }
- initiallanguage { @InitialLanguage }
- title { glossary @WordVal @GlossaryWord }
- aboveheadinggap { @AboveChapterGap }
- headingfont { @ChapterHeadingFont }
- headingbreak { @ChapterHeadingBreak }
- headingformat { @Num @ChapterHeadingFormat @Body }
- headingtext { @GlossaryText }
- incontents { @GlossaryInContents }
- pnprefix { @GlossaryPrefix }
- inrunners { Yes }
- sendheader { @Full @Body }
- innergap { @SectionGap }
- wantindefinite { Yes }
- @GlossarySection @Run
- }
-
- def @IndexPart
- named @Tag {}
- {
- def @Run
- {
- NonStart @Runner
- @MajorNum {}
- @MajorTitle { index @WordVal @IndexWord }
- @MinorNum {}
- @MinorTitle { index @WordVal @IndexWord }
- @Owner { @Tag }
- @Prefix { @IndexPrefix }
- }
-
- @LargeScaleStructure
- tag { @Tag }
- type { Major }
- initiallanguage { @InitialLanguage }
- title { index @WordVal @IndexWord }
- aboveheadinggap { @AboveChapterGap }
- headingfont { @ChapterHeadingFont }
- headingbreak { @ChapterHeadingBreak }
- headingformat { @Num @ChapterHeadingFormat @Body }
- headingtext { @IndexText }
- incontents { @IndexInContents }
- pnprefix { @IndexPrefix }
- inrunners { Yes }
- sendheader { @Full @Body }
- innergap { @SectionGap }
- wantindefinite { Yes }
- @IndexSection @Run
- }
-
- def @IndexAPart
- named @Tag {}
- {
- def @RunA
- {
- NonStart @Runner
- @MajorNum {}
- @MajorTitle { index @WordVal @IndexAWord }
- @MinorNum {}
- @MinorTitle { index @WordVal @IndexAWord }
- @Owner { @Tag }
- @Prefix { @IndexAPrefix }
- }
-
- @LargeScaleStructure
- tag { @Tag }
- type { Major }
- initiallanguage { @InitialLanguage }
- title { index @WordVal @IndexAWord }
- aboveheadinggap { @AboveChapterGap }
- headingfont { @ChapterHeadingFont }
- headingbreak { @ChapterHeadingBreak }
- headingformat { @Num @ChapterHeadingFormat @Body }
- headingtext { @IndexAText }
- incontents { @IndexAInContents }
- pnprefix { @IndexAPrefix }
- inrunners { Yes }
- sendheader { @Full @Body }
- innergap { @SectionGap }
- wantindefinite { Yes }
- @IndexASection @RunA
- }
-
- def @IndexBPart
- named @Tag {}
- {
- def @RunB
- {
- NonStart @Runner
- @MajorNum {}
- @MajorTitle { index @WordVal @IndexBWord }
- @MinorNum {}
- @MinorTitle { index @WordVal @IndexBWord }
- @Owner { @Tag }
- @Prefix { @IndexBPrefix }
- }
-
- @LargeScaleStructure
- tag { @Tag }
- type { Major }
- initiallanguage { @InitialLanguage }
- title { index @WordVal @IndexBWord }
- aboveheadinggap { @AboveChapterGap }
- headingfont { @ChapterHeadingFont }
- headingbreak { @ChapterHeadingBreak }
- headingformat { @Num @ChapterHeadingFormat @Body }
- headingtext { @IndexAText }
- incontents { @IndexBInContents }
- pnprefix { @IndexBPrefix }
- inrunners { Yes }
- sendheader { @Full @Body }
- innergap { @SectionGap }
- wantindefinite { Yes }
- @IndexBSection @RunB
- }
-
- def @BookIntro force into { @IntroColPlace&&preceding }
- named @Optimize { @OptimizePages }
- {
- @NoLinkPageMark @Tag
- // @Before
- //1.1b @TitlePageFont @Font @On
- //1.1b @After
- // Start @Runner @Owner { @Tag }
- //1.1b @PrefaceAfterContents @NoDo @PrefacePlace
- // @MakeContents @Case {
- { Yes Bypass } @Yield @ContentsPart
- else @Yield @Null
- }
- // @MakeFigureContents @Case {
- { Yes Bypass } @Yield @FigureContentsPart
- else @Yield @Null
- }
- // @MakeTableContents @Case {
- { Yes Bypass } @Yield @TableContentsPart
- else @Yield @Null
- }
- //1.1b @PrefaceAfterContents @Do @PrefacePlace
- }
-
- def @BookBody force into { @ColPlace&&preceding }
- named @Optimize { @OptimizePages }
- {
- # The first component of @BookBody must be indefinite, so that
- # its flushing is delayed until we reach the body galleys, either
- # @Introduction or @Chapter. If not, @BookBody will free up
- # @PrefacePlace etc. too soon, producing a "no @PrefacePlace
- # precedes this @PrefacePLace&&preceding" error message.
-
- @AbbreviationsPlace
- // @IntroductionPlace
- // @ChapterList @FirstChapterNumber
- // @ReferencesBeforeAppendices @Do {
- @MakeReferences @Do @ReferencesPart
- }
- // @MakeGlossary @Do @GlossaryPart
- // @AppendixList @FirstAppendixNumber
- // @ReferencesBeforeAppendices @NoDo {
- @MakeReferences @Do @ReferencesPart
- }
- // @MakeIndexA @Do @IndexAPart
- // @MakeIndexA @Case {
- Bypass @Yield @BypassBeginIndexAPlace
- else @Yield @Null
- }
- // @MakeIndexB @Do @IndexBPart
- // @MakeIndexB @Case {
- Bypass @Yield @BypassBeginIndexBPlace
- else @Yield @Null
- }
- // @MakeIndex @Do @IndexPart
- // @MakeIndex @Case {
- Bypass @Yield @BypassBeginIndexPlace
- else @Yield @Null
- }
- }
-
- def @BookCombined force into { @ColPlace&&preceding }
- named @Optimize { @OptimizePages }
- {
- @NoLinkPageMark @Tag
- // @Before
- //1.1b @TitlePageFont @Font @On
- //1.1b @After
- // Start @Runner @Owner { @Tag }
- //1.1b @PrefaceAfterContents @NoDo @PrefacePlace
- // @MakeContents @Case {
- { Yes Bypass } @Yield @ContentsPart
- else @Yield @Null
- }
- // @MakeFigureContents @Case {
- { Yes Bypass } @Yield @FigureContentsPart
- else @Yield @Null
- }
- // @MakeTableContents @Case {
- { Yes Bypass } @Yield @TableContentsPart
- else @Yield @Null
- }
- //1.1b @PrefaceAfterContents @Do @PrefacePlace
- // @AbbreviationsPlace
- // @IntroductionPlace
- // @ChapterList @FirstChapterNumber
- // @ReferencesBeforeAppendices @Do {
- @MakeReferences @Do @ReferencesPart
- }
- // @MakeGlossary @Do @GlossaryPart
- // @AppendixList @FirstAppendixNumber
- // @ReferencesBeforeAppendices @NoDo {
- @MakeReferences @Do @ReferencesPart
- }
- // @MakeIndexA @Do @IndexAPart
- // @MakeIndexA @Case {
- Bypass @Yield @BypassBeginIndexAPlace
- else @Yield @Null
- }
- // @MakeIndexB @Do @IndexBPart
- // @MakeIndexB @Case {
- Bypass @Yield @BypassBeginIndexBPlace
- else @Yield @Null
- }
- // @MakeIndex @Do @IndexPart
- // @MakeIndex @Case {
- Bypass @Yield @BypassBeginIndexPlace
- else @Yield @Null
- }
- }
-
- @InitialFont @Font { @InitialBreak setoutdent @InitialOutdent } @Break
- @InitialLanguage @Language @InitialSpace @Space
- { @ColourCommand @InitialColour } @SetColour
- {
-
- @SeparateIntroNumbering @Case {
-
- No @Yield {
- Yes @BeginAllCounters {}
- Yes @BeginDisplayCounter {}
- Yes @BeginFigureCounter {}
- Yes @BeginTableCounter {}
- // @PageList
- @ColumnNumber { @ColumnNumber }
- @PageHeaders { @PageHeaders }
- @Orient { @PageOrientation }
- @FirstPageNumber
- // @BookCombined
- // NonStart @Runner @Owner { @Tag }
- // @AtEnd @Case {
- dft @Yield @Null
- else @Yield
- @EvenPage @Orient { @PageOrientation } @AtEnd
- }
- }
-
- Yes @Yield {
- Yes @BeginAllCounters {}
- Yes @BeginDisplayCounter {}
- Yes @BeginFigureCounter {}
- Yes @BeginTableCounter {}
- // @IntroPageList
- @ColumnNumber { 1 }
- @PageHeaders { @PageHeaders }
- @Orient { @PageOrientation }
- @IntroFirstPageNumber
- # // NonStart @Runner @Owner { @Tag }
- // None @Runner @Owner { @Tag }
- // @PageList
- @ColumnNumber { @ColumnNumber }
- @PageHeaders { @PageHeaders }
- @Orient { @PageOrientation }
- extra { Yes }
- @FirstPageNumber
- // @BookIntro
- // @BookBody
- // NonStart @Runner @Owner { @Tag }
- // @AtEnd @Case {
- dft @Yield @Null
- else @Yield
- @EvenPage @Orient { @PageOrientation } @AtEnd
- }
- }
- }
- }
- }
-
-
- #######################################################################
- # #
- # Preface. #
- # #
- #######################################################################
-
- def @Preface force into { @PrefacePlace&&preceding }
- named @Tag {}
- named @Title { preface @WordVal @PrefaceWord }
- named @RunningTitle { dft }
- named @InitialLanguage {}
- body @Body
- {
-
- @LargeScaleStructure
- tag { @Tag }
- type { ExtraMajorIntro }
- initiallanguage { @InitialLanguage }
- title { @Title }
- runningtitle { @RunningTitle }
- aboveheadinggap { @AboveChapterGap }
- headingfont { @ChapterHeadingFont }
- headingbreak { @ChapterHeadingBreak }
- headingformat { @Num @ChapterHeadingFormat @Body }
- incontents { @PrefaceInContents }
- pnprefix { @PrefacePrefix }
- sendheader { @ChooseFull @Body }
- innergap { @SectionGap }
- inrunners { Yes }
- @Body
-
- }
-
-
- #######################################################################
- # #
- # Abbreviations. #
- # #
- #######################################################################
-
- def @Abbreviations force into { @AbbreviationsPlace&&preceding }
- named @Tag {}
- named @Title { abbreviations @WordVal @AbbreviationsWord }
- named @RunningTitle { dft }
- named @InitialLanguage {}
- body @Body
- {
-
- @LargeScaleStructure
- tag { @Tag }
- type { Major }
- initiallanguage { @InitialLanguage }
- title { @Title }
- runningtitle { @RunningTitle }
- aboveheadinggap { @AboveChapterGap }
- headingfont { @ChapterHeadingFont }
- headingbreak { @ChapterHeadingBreak }
- headingformat { @Num @ChapterHeadingFormat @Body }
- incontents { @AbbreviationsInContents }
- pnprefix { @AbbreviationsPrefix }
- sendheader { @Full @Body }
- innergap { @SectionGap }
- inrunners { Yes }
- @Body
-
- }
-
-
- #######################################################################
- # #
- # Introduction. #
- # #
- #######################################################################
-
- def @Introduction force into { @IntroductionPlace&&preceding }
- named @Tag {}
- named @Title { introduction @WordVal @IntroductionWord }
- named @RunningTitle { dft }
- named @InitialLanguage {}
- body @Body
- {
-
- @LargeScaleStructure
- tag { @Tag }
- type { Major }
- initiallanguage { @InitialLanguage }
- title { @Title }
- runningtitle { @RunningTitle }
- aboveheadinggap { @AboveChapterGap }
- headingfont { @ChapterHeadingFont }
- headingbreak { @ChapterHeadingBreak }
- headingformat { @Num @ChapterHeadingFormat @Body }
- incontents { @IntroductionInContents }
- pnprefix { @IntroductionPrefix }
- sendheader { @Full @Body }
- innergap { @SectionGap }
- inrunners { Yes }
- @Body
-
- }
-
-
- #######################################################################
- # #
- # Chapters containing sections and subsections. #
- # #
- #######################################################################
-
- export @BeginSections @EndSections @Section
- def @Chapter force into { @ChapterList&&preceding }
- named @Tag {}
- named @Title {}
- named @RunningTitle { dft }
- named @InitialLanguage {}
- named @PartNumber {}
- named @PartTitle {}
- named @PartText {}
- named @BypassNumber { dft }
- body @Body
- {
-
- def @EndSectionsPlace { @Galley }
-
- def @EndSections force into { @EndSectionsPlace&&preceding }
- {}
-
- macro @BeginSections
- { //@SectionGap @SectionList @FirstSectionNumber
- // @EndSectionsPlace //
- }
-
- def @ChapterShortNum
- {
- @ChapterNumbers @Then {
- @BypassNumber @Dft {
- @ChapterNumbers @Num @ChapterList&&@Tag @Open { num }
- }
- }
- }
-
- def @MajorNum
- {
- @ChapterNumbers @Then @InitialLanguage @Language {
- chapter @WordVal @ChapterWord @ChapterShortNum
- }
- }
-
- def @MajorTitle
- {
- @InitialLanguage @Language {
- @RunningTitle @Dft @Title
- }
- }
-
- export @BeginSubSections @EndSubSections @SubSection
- def @Section force into { @SectionList&&preceding }
- named @Tag {}
- named @Title {}
- named @RunningTitle { dft }
- named @InitialLanguage { @InitialLanguage }
- named @BypassNumber { dft }
- body @Body
- {
-
- def @EndSubSectionsPlace { @Galley }
-
- def @EndSubSections force into { @EndSubSectionsPlace&&preceding }
- {}
-
- macro @BeginSubSections
- { //@SubSectionGap @SubSectionList @FirstSubSectionNumber
- // @EndSubSectionsPlace //
- }
-
- def @SectionShortNum
- {
- @SectionNumbers @Then {
- @BypassNumber @Dft {
- @ChapterShortNum @Join @SectionNumbers @Num
- { @SectionList&&@Tag @Open { num } }
- }
- }
- }
-
- export @BeginSubSubSections @EndSubSubSections @SubSubSection
- def @SubSection force into { @SubSectionList&&preceding }
- named @Tag {}
- named @Title {}
- named @RunningTitle { dft }
- named @InitialLanguage { @InitialLanguage }
- named @BypassNumber { dft }
- body @Body
- {
-
- def @EndSubSubSectionsPlace { @Galley }
-
- def @EndSubSubSections force into
- { @EndSubSubSectionsPlace&&preceding }
- {}
-
- macro @BeginSubSubSections
- { //@SubSubSectionGap @SubSubSectionList @FirstSubSubSectionNumber
- // @EndSubSubSectionsPlace //
- }
-
- def @SubSectionShortNum
- {
- @SubSectionNumbers @Then {
- @BypassNumber @Dft {
- @SectionShortNum @Join @SubSectionNumbers @Num
- { @SubSectionList&&@Tag @Open { num } }
- }
- }
- }
-
- def @SubSubSection force into { @SubSubSectionList&&preceding }
- named @Tag {}
- named @Title {}
- named @RunningTitle { dft }
- named @InitialLanguage { @InitialLanguage }
- named @BypassNumber { dft }
- body @Body
- {
-
- @LargeScaleStructure
- tag { @Tag }
- type { Minor }
- initiallanguage { @InitialLanguage }
- title { @Title }
- runningtitle { @RunningTitle }
- headingfont { @SubSubSectionHeadingFont }
- headingbreak { @SubSubSectionHeadingBreak }
- headingformat { @Num @SubSubSectionHeadingFormat @Body }
- incontents { @SubSubSectionInContents }
- contentsindent { 9f }
- numbers { @SubSubSectionNumbers }
- attachnum { @SubSubSectionList&&preceding @Tagged @Tag }
- retrievenum { @SubSubSectionList&&@Tag @Open { num } }
- bypassnumber { @BypassNumber }
- prefix { @SubSectionShortNum }
- majornum { @MajorNum }
- majortitle { @MajorTitle }
- intheorems { @SubSubSectionNumInTheorems }
- indisplays { @SubSubSectionNumInDisplays }
- infigures { @SubSubSectionNumInFigures }
- intables { @SubSubSectionNumInTables }
- inrunners { @SubSubSectionNumInRunners }
- @Body
- }
-
- @LargeScaleStructure
- tag { @Tag }
- type { Minor }
- initiallanguage { @InitialLanguage }
- title { @Title }
- runningtitle { @RunningTitle }
- headingfont { @SubSectionHeadingFont }
- headingbreak { @SubSectionHeadingBreak }
- headingformat { @Num @SubSectionHeadingFormat @Body }
- incontents { @SubSectionInContents }
- contentsindent { 6f }
- numbers { @SubSectionNumbers }
- attachnum { @SubSectionList&&preceding @Tagged @Tag }
- retrievenum { @SubSectionList&&@Tag @Open { num } }
- bypassnumber { @BypassNumber }
- prefix { @SectionShortNum }
- majornum { @MajorNum }
- majortitle { @MajorTitle }
- intheorems { @SubSectionNumInTheorems }
- indisplays { @SubSectionNumInDisplays }
- infigures { @SubSectionNumInFigures }
- intables { @SubSectionNumInTables }
- inrunners { @SubSectionNumInRunners }
- @Body
-
- }
-
- @LargeScaleStructure
- tag { @Tag }
- type { Minor }
- initiallanguage { @InitialLanguage }
- title { @Title }
- runningtitle { @RunningTitle }
- headingfont { @SectionHeadingFont }
- headingbreak { @SectionHeadingBreak }
- headingformat { @Num @SectionHeadingFormat @Body }
- incontents { @SectionInContents }
- contentsindent { 3f }
- numbers { @SectionNumbers }
- attachnum { @SectionList&&preceding @Tagged @Tag }
- retrievenum { @SectionList&&@Tag @Open { num } }
- bypassnumber { @BypassNumber }
- prefix { @ChapterShortNum }
- majornum { @MajorNum }
- majortitle { @MajorTitle }
- intheorems { @SectionNumInTheorems }
- indisplays { @SectionNumInDisplays }
- infigures { @SectionNumInFigures }
- intables { @SectionNumInTables }
- inrunners { @SectionNumInRunners }
- @Body
-
- }
-
- def @Part
- named @Tag {}
- {
- @LargeScaleStructure
- type { VeryMajor }
- initiallanguage { @InitialLanguage }
- title { @PartTitle }
- aboveheadinggap { @AbovePartGap }
- headingfont { @PartHeadingFont }
- headingbreak { @PartHeadingBreak }
- headingformat { @Num @PartHeadingFormat @Body }
- bypassnumber { @PartNumber }
- incontents { @PartInContents }
- sendheader { @Full @Body }
- inrunners { Yes }
- tag { @Tag }
- @PartText
- }
-
- @PartNumber @Case {
- "" @Yield {
- @PartTitle @Case {
- "" @Yield @Null
- else @Yield @Part
- }
- }
- else @Yield @Part
- }
- //
- @LargeScaleStructure
- tag { @Tag }
- type { Major }
- initiallanguage { @InitialLanguage }
- title { @Title }
- runningtitle { @RunningTitle }
- aboveheadinggap { @AboveChapterGap }
- headingfont { @ChapterHeadingFont }
- headingbreak { @ChapterHeadingBreak }
- headingformat { @Num @ChapterHeadingFormat @Body }
- incontents { @ChapterInContents }
- contentsindent { 0f }
- word { chapter @WordVal @ChapterWord }
- numbers { @ChapterNumbers }
- attachnum { @ChapterList&&preceding @Tagged @Tag }
- retrievenum { @ChapterList&&@Tag @Open { num } }
- bypassnumber { @BypassNumber }
- pnprefix { @ChapterPrefix }
- intheorems { @ChapterNumInTheorems }
- indisplays { @ChapterNumInDisplays }
- infigures { @ChapterNumInFigures }
- intables { @ChapterNumInTables }
- sendheader { @ChapterFull @Body }
- innergap { @SectionGap }
- inrunners { Yes }
- @Body
-
- }
-
-
- #######################################################################
- # #
- # Appendices. #
- # #
- #######################################################################
-
- export @BeginSubAppendices @EndSubAppendices @SubAppendix
- def @Appendix force into { @AppendixList&&preceding }
- named @Tag {}
- named @Title {}
- named @RunningTitle { dft }
- named @InitialLanguage {}
- named @PartNumber {}
- named @PartTitle {}
- named @PartText {}
- named @BypassNumber { dft }
- body @Body
- {
-
- def @EndSubAppendicesPlace { @Galley }
-
- def @EndSubAppendices force into { @EndSubAppendicesPlace&&preceding }
- {}
-
- macro @BeginSubAppendices
- { //@SubAppendixGap @SubAppendixList @FirstSubAppendixNumber
- // @EndSubAppendicesPlace //
- }
-
- def @AppendixShortNum
- {
- @AppendixNumbers @Then {
- @BypassNumber @Dft {
- @AppendixNumbers @Num @AppendixList&&@Tag @Open { num }
- }
- }
- }
-
- def @MajorNum
- {
- @AppendixNumbers @Then @InitialLanguage @Language {
- appendix @WordVal @AppendixWord @AppendixShortNum
- }
- }
-
- def @MajorTitle
- {
- @InitialLanguage @Language {
- @RunningTitle @Dft @Title
- }
- }
-
- export @BeginSubSubAppendices @EndSubSubAppendices @SubSubAppendix
- def @SubAppendix force into { @SubAppendixList&&preceding }
- named @Tag {}
- named @Title {}
- named @RunningTitle { dft }
- named @InitialLanguage { @InitialLanguage }
- named @BypassNumber { dft }
- body @Body
- {
-
- def @EndSubSubAppendicesPlace { @Galley }
-
- def @EndSubSubAppendices force into { @EndSubSubAppendicesPlace&&preceding }
- {}
-
- macro @BeginSubSubAppendices
- { //@SubSubAppendixGap @SubSubAppendixList @FirstSubSubAppendixNumber
- // @EndSubSubAppendicesPlace //
- }
-
- def @SubAppendixShortNum
- {
- @SubAppendixNumbers @Then {
- @BypassNumber @Dft {
- @AppendixShortNum @Join @SubAppendixNumbers @Num
- { @SubAppendixList&&@Tag @Open { num } }
- }
- }
- }
-
- def @SubSubAppendix force into { @SubSubAppendixList&&preceding }
- named @Tag {}
- named @Title {}
- named @RunningTitle { dft }
- named @InitialLanguage { @InitialLanguage }
- named @BypassNumber { dft }
- body @Body
- {
-
- @LargeScaleStructure
- tag { @Tag }
- type { Minor }
- initiallanguage { @InitialLanguage }
- title { @Title }
- runningtitle { @RunningTitle }
- headingfont { @SubSubAppendixHeadingFont }
- headingbreak { @SubSubAppendixHeadingBreak }
- headingformat { @Num @SubSubAppendixHeadingFormat @Body }
- incontents { @SubSubAppendixInContents }
- contentsindent { 6f }
- numbers { @SubSubAppendixNumbers }
- attachnum { @SubSubAppendixList&&preceding @Tagged @Tag }
- retrievenum { @SubSubAppendixList&&@Tag @Open { num } }
- bypassnumber { @BypassNumber }
- prefix { @SubAppendixShortNum }
- majornum { @MajorNum }
- majortitle { @MajorTitle }
- intheorems { @SubSubAppendixNumInTheorems }
- indisplays { @SubSubAppendixNumInDisplays }
- infigures { @SubSubAppendixNumInFigures }
- intables { @SubSubAppendixNumInTables }
- inrunners { @SubSubAppendixNumInRunners }
- @Body
-
- }
-
- @LargeScaleStructure
- tag { @Tag }
- type { Minor }
- initiallanguage { @InitialLanguage }
- title { @Title }
- runningtitle { @RunningTitle }
- headingfont { @SubAppendixHeadingFont }
- headingbreak { @SubAppendixHeadingBreak }
- headingformat { @Num @SubAppendixHeadingFormat @Body }
- incontents { @SubAppendixInContents }
- contentsindent { 3f }
- numbers { @SubAppendixNumbers }
- attachnum { @SubAppendixList&&preceding @Tagged @Tag }
- retrievenum { @SubAppendixList&&@Tag @Open { num } }
- bypassnumber { @BypassNumber }
- prefix { @AppendixShortNum }
- majornum { @MajorNum }
- majortitle { @MajorTitle }
- intheorems { @SubAppendixNumInTheorems }
- indisplays { @SubAppendixNumInDisplays }
- infigures { @SubAppendixNumInFigures }
- intables { @SubAppendixNumInTables }
- inrunners { @SubAppendixNumInRunners }
- @Body
-
- }
-
- def @Part
- named @Tag {}
- {
- @LargeScaleStructure
- type { VeryMajor }
- initiallanguage { @InitialLanguage }
- title { @PartTitle }
- aboveheadinggap { @AbovePartGap }
- headingfont { @PartHeadingFont }
- headingbreak { @PartHeadingBreak }
- headingformat { @Num @PartHeadingFormat @Body }
- bypassnumber { @PartNumber }
- incontents { @PartInContents }
- sendheader { @Full @Body }
- inrunners { Yes }
- tag { @Tag }
- @PartText
- }
-
- @PartNumber @Case {
- "" @Yield {
- @PartTitle @Case {
- "" @Yield @Null
- else @Yield @Part
- }
- }
- else @Yield @Part
- }
- //
- @LargeScaleStructure
- tag { @Tag }
- type { Major }
- initiallanguage { @InitialLanguage }
- title { @Title }
- runningtitle { @RunningTitle }
- aboveheadinggap { @AboveChapterGap }
- headingfont { @AppendixHeadingFont }
- headingbreak { @AppendixHeadingBreak }
- headingformat { @Num @AppendixHeadingFormat @Body }
- incontents { @AppendixInContents }
- contentsindent { 0f }
- word { appendix @WordVal @AppendixWord }
- numbers { @AppendixNumbers }
- attachnum { @AppendixList&&preceding @Tagged @Tag }
- retrievenum { @AppendixList&&@Tag @Open { num } }
- bypassnumber { @BypassNumber }
- pnprefix { @AppendixPrefix }
- intheorems { @AppendixNumInTheorems }
- indisplays { @AppendixNumInDisplays }
- infigures { @AppendixNumInFigures }
- intables { @AppendixNumInTables }
- sendheader { @ChapterFull @Body }
- innergap { @SubAppendixGap }
- inrunners { Yes }
- @Body
-
- }
-
-
- def @Colophon force into { @ColophonPlace&&preceding }
- named @Tag {}
- named @InitialLanguage {}
- named @PartNumber {}
- named @PartTitle {}
- named @PartText {}
- named @BypassNumber { dft }
- body @Body
- {
-
- @LargeScaleStructure
- tag { @Tag }
- type { Major }
- initiallanguage { @InitialLanguage }
- aboveheadinggap { @AboveChapterGap }
- headingfont { @AppendixHeadingFont }
- headingbreak { @AppendixHeadingBreak }
- headingformat { @Num @AppendixHeadingFormat @Body }
- incontents { @ColophonInContents }
- contentsindent { 0f }
- word { colophon @WordVal @ColophonWord }
- numbers { None }
- pnprefix { @ColophonPrefix }
- sendheader { @ChapterFull @Body }
- innergap { @SubAppendixGap }
- inrunners { Yes }
- @Body
-
- }
-
-
-@End @BookSetup
diff --git a/include/save_dsf b/include/save_dsf
deleted file mode 100644
index 5e1ee73..0000000
--- a/include/save_dsf
+++ /dev/null
@@ -1,4930 +0,0 @@
-###############################################################################
-# #
-# Lout @DocumentSetup package #
-# #
-# Version 1.0 by Jeffrey H. Kingston, 17 July 1991. #
-# Version 2.0 by Jeffrey H. Kingston, 22 December 1992. #
-# Version 3.0 by Jeffrey H. Kingston, 19 April 1994. #
-# Version 3.03 by Jeffrey H. Kingston, 6 May 1995. #
-# Versions 3.04 and 3.05 by Jeffrey H. Kingston, 11 June 1995. #
-# Version 3.05 by Jeffrey H. Kingston, 25 July 1995. #
-# Version 3.07 by Jeffrey H. Kingston, February 1996. #
-# Version 3.10 by Jeffrey H. Kingston, September 1996. #
-# Version 3.11 by Jeffrey H. Kingston, December 1996. #
-# Version 3.13 by Jeffrey H. Kingston, October 1998. #
-# Version 3.16 by Jeffrey H. Kingston, May 1999. #
-# Version 3.17 by Jeffrey H. Kingston, September 1999. #
-# Version 3.21 by Jeffrey H. Kingston, May 2000. #
-# #
-# This Lout package contains the general definitions used by all types of #
-# documents. It needs to be extended (see docf, reportf, bookf, slidesf, #
-# etc.) with definitions for particular document types. Consult "A User's #
-# Guide to the Lout Document Formatting System" for user information. #
-# #
-###############################################################################
-
-extend @BasicSetup
-
-export
-
- @Runner
-
- @Figure @Table
- @FootNote @AnotherFootNote @EndNote
- @LeftNote @RightNote @OuterNote @InnerNote @Place
- @Theorem @Proof @EndProof
- @Definition @Claim @Proposition @Lemma @Corollary @Example
- @Reference @RefStyle @RefPrint
- @Ref @NoRef @ChapRef @NoChapRef
- @Cite @NoCite @ChapCite @NoChapCite
-
- @Glossary @InGlossary
-
- @IndexA @SubIndexA @SubSubIndexA
- @RawIndexA @RawSubIndexA @RawSubSubIndexA
- @IndexABlanks @IndexASpacer @InitialIndexASpacer @IndexALetters
-
- @IndexB @SubIndexB @SubSubIndexB
- @RawIndexB @RawSubIndexB @RawSubSubIndexB
- @IndexBBlanks @IndexBSpacer @InitialIndexBSpacer @IndexBLetters
-
- @Index @SubIndex @SubSubIndex
- @RawIndex @RawSubIndex @RawSubSubIndex
- @IndexBlanks @IndexSpacer @InitialIndexSpacer @IndexLetters
-
- @BypassContentsEntry @BypassMajorContentsEntry
- @BypassFigureContentsEntry @BypassTableContentsEntry
- @BypassReference @BypassChapReference
- @BypassBeginIndex @BypassRawIndex @BypassEndIndex
- @BypassBeginIndexA @BypassRawIndexA @BypassEndIndexA
- @BypassBeginIndexB @BypassRawIndexB @BypassEndIndexB
-
-
-def @DocumentSetup
- named @PageType { A4 @OrIfPlain Other} # page type (width, height)
- named @PageWidth { 80s } # page width if type Other
- named @PageHeight { 66f } # page height if type Other
- named @PageOrientation { Portrait } # Portrait, Landscape, etc.
- named @PageBackground { } # background of each page
- named @TopMargin { 2.50c @OrIfPlain 6f } # top margin of all pages
- named @FootMargin { 2.50c @OrIfPlain 6f } # bottom margin of all pages
- named @OddLeftMargin { 2.50c @OrIfPlain 10s } # left margin of odd pages
- named @OddRightMargin { 2.50c @OrIfPlain 10s } # right margin of odd pages
- named @EvenLeftMargin { 2.50c @OrIfPlain 10s } # left margin of even pages
- named @EvenRightMargin { 2.50c @OrIfPlain 10s } # right margin of even pages
- named @OddLeftBodyMargin { 0c } # extra margin for page body
- named @OddRightBodyMargin { 0c } # extra margin for page body
- named @EvenLeftBodyMargin { 0c } # extra margin for page body
- named @EvenRightBodyMargin { 0c } # extra margin for page body
- named @PageBoxType { None } # None Box CurveBox ShadowBox
- named @PageBoxMargin { 1.00c } # page box margin
- import @PSLengths named @PageBoxLineWidth
- { } # page box line thickness
- named @PageBoxPaint { none } # page box paint
- named @PageBoxShadow { 0.60c } # shadow margin if ShadowBox
- named @PageEnclose right @Body { @Body } # page enclose
- named @ColumnNumber { 1 } # number of columns (1 to 10)
- named @ColumnGap { 1.00c @OrIfPlain 6s } # column gap
- named @FigureLocation { PageTop } # default figure location
- named @TableLocation { PageTop } # default table location
- named @FigureFormat
- named @II right x { |@DisplayIndent x | }
- named @QQ right x { |@DisplayIndent x |@DisplayIndent }
- named @CC right x { |0.5rt x | }
- named @RR right x { |1.0rt x | }
- right @Body
- { @CC @Body } # default figure format
- named @TableFormat
- named @II right x { |@DisplayIndent x | }
- named @QQ right x { |@DisplayIndent x |@DisplayIndent }
- named @CC right x { |0.5rt x | }
- named @RR right x { |1.0rt x | }
- right @Body
- { @CC @Body } # default table format
- named @FigureWord { figure } # "Figure" word else anything
- named @TableWord { table } # "Table" word else anything
- named @FigureNumbers { Arabic } # method of numbering figures
- named @TableNumbers { Arabic } # method of numbering tables
- named @FigureCaptionPos { Below } # Above or Below
- named @TableCaptionPos { Below } # Above or Below
- named @FigureCaptionFont { -2p } # figure caption font
- named @FigureCaptionBreak { adjust hyphen 1.2fx } # figure caption break
- named @FigureCaptionFormat named word {} named number {} named caption {}
- { {@B { word @NumSep number. &2s }} @Insert caption }
- named @TableCaptionFont { -2p } # figure caption font
- named @TableCaptionBreak { adjust hyphen 1.2fx } # figure caption break
- named @TableCaptionFormat named word {} named number {} named caption {}
- { {@B { word @NumSep number. &2s }} @Insert caption }
- named @MakeFigureContents { No } # list of figures at start
- named @MakeTableContents { No } # list of tables at start
- named @MakeContents { No } # make contents? Yes or No
- named @ContentsGap { 0.20v @OrIfPlain 0f } # extra gap above minor entry
- named @ContentsGapAbove { 0.80v @OrIfPlain 1f } # extra gap above major entry
- named @ContentsGapBelow { 0.00v @OrIfPlain 0f } # extra gap below major entry
- named @ContentsFont { Bold } # font for major entry
- named @ContentsPartGapAbove { 1.00v @OrIfPlain 1f } # extra gap above part entry
- named @ContentsPartGapBelow { 0.00v @OrIfPlain 0f } # extra gap below part entry
- named @ContentsFormat
- left number
- right title
- { number @Sep title } # contents format
- named @ContentsLeader { .. } # leader symbol in contents
- named @ContentsLeaderGap { 4s @OrIfPlain 2s } # gap between leaders
- named @ContentsRightWidth { 3f @OrIfPlain 6s } # page numbers column width
-
- named @MakeReferences { Yes } # make references? Yes or No
- named @RefCiteStyle right cite { [cite] } # citation style
- named @RefCiteLabels
- named @RefNum {}
- named @Tag {}
- named @Type {}
- named @Abstract {}
- named @Address {}
- named @Annote {}
- named @Author {}
- named @Day {}
- named @Edition {}
- named @HowPublished {}
- named @InAuthor {}
- named @InTitle {}
- named @Institution {}
- named @Journal {}
- named @Keywords {}
- named @Label {}
- named @Month {}
- named @Note {}
- named @Number {}
- named @Organization {}
- named @Page {}
- named @Pages {}
- named @Pinpoint {}
- named @Publisher {}
- named @Title {}
- named @TitleNote {}
- named @TRType {}
- named @Volume {}
- named @Year {}
- { @RefNum } # citation items
- named @RefNumbers { Arabic } # reference numbers
-
- named @RefListFormat { Labels } # NoLabels, Labels,
- # DropLabels, IntegrateLabels
- named @RefListLabels
- named @RefNum {}
- named @Tag {}
- named @Type {}
- named @Abstract {}
- named @Address {}
- named @Annote {}
- named @Author {}
- named @Day {}
- named @Edition {}
- named @HowPublished {}
- named @InAuthor {}
- named @InTitle {}
- named @Institution {}
- named @Journal {}
- named @Keywords {}
- named @Label {}
- named @Month {}
- named @Note {}
- named @Number {}
- named @Organization {}
- named @Page {}
- named @Pages {}
- named @Pinpoint {}
- named @Publisher {}
- named @Title {}
- named @TitleNote {}
- named @TRType {}
- named @Volume {}
- named @Year {}
- { [@RefNum] } # ref list label format
- named @RefListTitle { references } # title of reference list
- named @ChapRefListTitle { references } # title of chapter ref list
- named @RefListIndent { 0s } # indent to left of labels
- named @RefListRightIndent { 0s } # indent to right of items
- named @RefListGap { @ListGap } # gap between ref list items
- named @RefListFont { } # font used in reference list
- named @RefListBreak { } # break style of ref list
- named @RefListLabelWidth { @ListLabelWidth } # numeric labels column width
- named @RefListSortKey
- named @Tag {}
- named @Type {}
- named @Abstract {}
- named @Address {}
- named @Annote {}
- named @Author {}
- named @CiteOrder {}
- named @Day {}
- named @Edition {}
- named @HowPublished {}
- named @InAuthor {}
- named @InTitle {}
- named @Institution {}
- named @Journal {}
- named @Keywords {}
- named @Label {}
- named @Month {}
- named @Note {}
- named @Number {}
- named @Organization {}
- named @Page {}
- named @Pages {}
- named @Pinpoint {}
- named @Publisher {}
- named @Title {}
- named @TitleNote {}
- named @TRType {}
- named @Volume {}
- named @Year {}
- named ":" { "\037" }
- { @Tag } # sorting key
-
- named @MakeGlossary { No } # make glossary? Yes or No
- named @GlossaryText { @Null } # initial glossary text
- named @GlossaryFont { } # font for glossary
- named @GlossaryBreak { } # break style for glossary
- named @GlossaryFormat # format for glossary
- named @Name {}
- named @PageNum {}
- named @Body {}
- { +3p @Font @S @Name
- @Right @I { @Word&&page @PageNum }
- @DP @RawIndentedDisplay @Body }
- named @GlossaryGap { @DisplayGap } # gap between glossary items
- named @GlossaryColumnNumber { 2 } # glossary columns (1 to 10)
- named @GlossaryColumnGap { 1.00c @OrIfPlain 6s } # glossary column gap
- named @InGlossaryFont { smallcaps } # font for @InGlossary
- named @InGlossaryFormat right @Body { @Body } # format for @InGlossary
- named @MakeIndex { No } # make index? Yes or No
- named @IndexText { @Null } # initial index text
- named @IndexFont { } # index entries font
- named @IndexBreak { {oragged 1.2fx} @OrIfPlain {oragged 1fx} } # index entries break
- named @IndexFormat
- right @Body { @Body } # @Index format
- named @SubIndexFormat
- right @Body { {1f @Wide}@Body } # @SubIndex format
- named @SubSubIndexFormat
- right @Body { {2f @Wide}@Body } # @SubSubIndex format
- named @IndexColumnNumber { 2 } # index columns (1 to 10)
- named @IndexColumnGap { 1.00c @OrIfPlain 6s } # index column gap
- named @IndexCtd { Yes } # include (ctd.) lines
- named @IndexCtdWord { continued } # "ctd." in current lang
- named @IndexCtdFormat
- left @Body
- right @CtdWord
- { @Body @I (@CtdWord) } # (ctd.) format
- named @IndexSpacerAbove { 2v } # space above index spacer
- named @IndexSpacerBelow { 1v } # space below index spacer
- named @IndexSpacerFont { +3p } # font of index spacer
- named @IndexSpacerFormat
- right @Body { @Body } # format of index spacer
- named @MakeIndexA { No } # make index A? Yes or No
- named @IndexAText { @Null } # initial index text
- named @IndexAFont { } # index A entries font
- named @IndexABreak { {oragged 1.2fx} @OrIfPlain {oragged 1fx} } # index A entries break
- named @IndexAFormat
- right @Body { @Body } # @IndexA format
- named @SubIndexAFormat
- right @Body { {1f @Wide}@Body } # @SubIndexA format
- named @SubSubIndexAFormat
- right @Body { {2f @Wide}@Body } # @SubSubIndexA format
- named @IndexAColumnNumber { 2 } # index A columns (1 to 10)
- named @IndexAColumnGap { 1.00c @OrIfPlain 6s } # index A column gap
- named @IndexACtd { Yes } # include (ctd.) lines
- named @IndexACtdWord { continued } # "ctd." in current lang
- named @IndexACtdFormat
- left @Body
- right @CtdWord
- { @Body @I (@CtdWord) } # (ctd.) format
- named @IndexASpacerAbove { 2v } # space above index A spacer
- named @IndexASpacerBelow { 1v } # space below index A spacer
- named @IndexASpacerFont { +3p } # font of index A spacer
- named @IndexASpacerFormat
- right @Body { @Body } # format of index A spacer
- named @MakeIndexB { No } # make index B? Yes or No
- named @IndexBText { @Null } # initial index text
- named @IndexBFont { } # index B entries font
- named @IndexBBreak { {oragged 1.2fx} @OrIfPlain {oragged 1fx} } # index B entries break
- named @IndexBFormat
- right @Body { @Body } # @IndexB format
- named @SubIndexBFormat
- right @Body { {1f @Wide}@Body } # @SubIndexB format
- named @SubSubIndexBFormat
- right @Body { {2f @Wide}@Body } # @SubSubIndexB format
- named @IndexBColumnNumber { 2 } # index B columns (1 to 10)
- named @IndexBColumnGap { 1.00c @OrIfPlain 6s } # index B column gap
- named @IndexBCtd { Yes } # include (ctd.) lines
- named @IndexBCtdWord { continued } # "ctd." in current lang
- named @IndexBCtdFormat
- left @Body
- right @CtdWord
- { @Body @I (@CtdWord) } # (ctd.) format
- named @IndexBSpacerAbove { 2v } # space above index B spacer
- named @IndexBSpacerBelow { 1v } # space below index B spacer
- named @IndexBSpacerFont { +3p } # font of index B spacer
- named @IndexBSpacerFormat
- right @Body { @Body } # format of index B spacer
- named @TopGap { 0.75c @OrIfPlain 2f } # gap between figures
- named @MidGap { 0.75c @OrIfPlain 2f } # gap above/below body text
-
- named @FootNoteNumbers { Arabic } # footnote numbers
- named @FootNoteThrough { No } # numbered through chapter?
- named @FootNoteLocation { ColFoot } # where the footnote appears
- named @FootNoteFont { 0.80f } # font for footnotes
- named @FootNoteBreak { 1.2fx @OrIfPlain 1fx } # break for footnotes
- named @FootNoteFormat left number right body
- { { number &0.05f } @Insert body } # break for footnotes
- named @FootLen { 2.00c @OrIfPlain 10s } # length of footnote line
- named @FootAboveGap { @DisplayGap } # gap above footnote line
- named @FootGap { 0.20c @OrIfPlain 1fx } # gap between footnotes
-
- named @MarginNoteFont { 0.80f } # font of margin notes
- named @MarginNoteBreak { ragged 1.10fx } # break style of margin notes
- named @MarginNoteHGap { 0.5c } # horizontal gap to notes
- named @MarginNoteVGap { @DisplayGap } # min vertical gap between
- named @MarginNoteWidth { 1.50c } # width of margin notes
-
- named @EndNoteNumbers { Arabic } # endnote numbers
- named @EndNoteFont { 0.80f } # font of endnotes
- named @EndNoteBreak { 1.2fx @OrIfPlain 1fx } # break for endnotes
- named @EndNoteFormat left number right body
- { { number &0.05f } @Insert body } # break for endnotes
- named @EndNoteGap { 0.20c @OrIfPlain 1f } # gap between endnotes
-
- named @TheoremWord { theorem } # "Theorem" word, etc.
- named @TheoremTitleFormat right title
- { (title) } # Theorem title format if present
- named @TheoremFormat named word {} named number {} named title {} named body {} # theorem format
- { { @B { word @NumSep number title: } &2s } @Insert body }
- named @DefinitionWord { definition } # "Definition" word, etc.
- named @DefinitionTitleFormat{ (title) } # Definition title format if present
- named @DefinitionFormat named word {} named number {} named title {} named body {} # definition format
- { { @B { word @NumSep number title: } &2s } @Insert body }
- named @ClaimWord { claim } # "Claim" word, etc.
- named @ClaimTitleFormat { (title) } # Claim title format if present
- named @ClaimFormat named word {} named number {} named title {} named body {} # claim format
- { { @B { word @NumSep number title: } &2s } @Insert body }
- named @PropositionWord { proposition } # "Proposition" word, etc.
- named @PropositionTitleFormat{ (title) } # Proposition title format if present
- named @PropositionFormat named word {} named number {} named title {} named body {} # proposition format
- { { @B { word @NumSep number title: } &2s } @Insert body }
- named @LemmaWord { lemma } # "Lemma" word, etc.
- named @LemmaTitleFormat { (title) } # Lemma title format if present
- named @LemmaFormat named word {} named number {} named title {} named body {} # lemma format
- { { @B { word @NumSep number title: } &2s } @Insert body }
- named @CorollaryWord { corollary } # "Corollary" word, etc.
- named @CorollaryTitleFormat { (title) } # Corollary title format if present
- named @CorollaryFormat named word {} named number {} named title {} named body {} # corollary format
- { { @B { word @NumSep number title: } &2s } @Insert body }
- named @ExampleWord { example } # "Example" word, etc.
- named @ExampleTitleFormat { (title) } # Example title format if present
- named @ExampleFormat named word {} named number {} named title {} named body {} # example format
- { { @B { word @NumSep number title: } &2s } @Insert body }
- named @ProofWord { proof } # "Proof" word, etc.
-
- named @PageHeaders { Simple } # None Simple Titles NoTitles
- named @PageNumbers { Arabic } # page numbers
- named @FirstPageNumber { 1 } # number of first page
- named @IntroPageNumbers { Roman } # intro page numbers
- named @IntroFirstPageNumber { 1 } # number of first intro page
- named @StructPageNums { No } # structured page numbers
-
- named @OddTop right @PageNum { @Centre { - @PageNum - } }
- named @OddFoot right @PageNum { @Null }
- named @EvenTop right @PageNum { @Centre { - @PageNum - } }
- named @EvenFoot right @PageNum { @Null }
- named @StartOddTop right @PageNum { @Null }
- named @StartOddFoot right @PageNum { @Null }
- named @StartEvenTop right @PageNum { @Null }
- named @StartEvenFoot right @PageNum { @Null }
-
- named @IntroOddTop right @PageNum { @Null }
- named @IntroOddFoot right @PageNum { @Centre @PageNum }
- named @IntroEvenTop right @PageNum { @Null }
- named @IntroEvenFoot right @PageNum { @Centre @PageNum }
- named @IntroStartOddTop right @PageNum { @Null }
- named @IntroStartOddFoot right @PageNum { @Null }
- named @IntroStartEvenTop right @PageNum { @Null }
- named @IntroStartEvenFoot right @PageNum { @Null }
-
- named @RunningOddTop
- named @MajorNum {} named @MajorTitle {}
- named @MinorNum {} named @MinorTitle {} right @PageNum
- { @I { @MinorNum @Sep @MinorTitle } @Right @B @PageNum }
-
- named @RunningOddFoot
- named @MajorNum {} named @MajorTitle {}
- named @MinorNum {} named @MinorTitle {} right @PageNum
- { @Null }
-
- named @RunningEvenTop
- named @MajorNum {} named @MajorTitle {}
- named @MinorNum {} named @MinorTitle {} right @PageNum
- { @B @PageNum @Right @I { @MajorNum @Sep @MajorTitle } }
-
- named @RunningEvenFoot
- named @MajorNum {} named @MajorTitle {}
- named @MinorNum {} named @MinorTitle {} right @PageNum
- { @Null }
-
- named @RunningStartOddTop
- named @MajorNum {} named @MajorTitle {}
- named @MinorNum {} named @MinorTitle {} right @PageNum
- { @Null }
-
- named @RunningStartOddFoot
- named @MajorNum {} named @MajorTitle {}
- named @MinorNum {} named @MinorTitle {} right @PageNum
- { @Centre { Bold 0.8f } @Font @PageNum }
-
- named @RunningStartEvenTop
- named @MajorNum {} named @MajorTitle {}
- named @MinorNum {} named @MinorTitle {} right @PageNum
- { @Null }
-
- named @RunningStartEvenFoot
- named @MajorNum {} named @MajorTitle {}
- named @MinorNum {} named @MinorTitle {} right @PageNum
- { @Centre { Bold 0.8f } @Font @PageNum }
-
-
- named @RunningIntroOddTop
- named @MajorNum {} named @MajorTitle {}
- named @MinorNum {} named @MinorTitle {} right @PageNum
- { @Null }
-
- named @RunningIntroOddFoot
- named @MajorNum {} named @MajorTitle {}
- named @MinorNum {} named @MinorTitle {} right @PageNum
- { @Right @PageNum }
-
- named @RunningIntroEvenTop
- named @MajorNum {} named @MajorTitle {}
- named @MinorNum {} named @MinorTitle {} right @PageNum
- { @Null }
-
- named @RunningIntroEvenFoot
- named @MajorNum {} named @MajorTitle {}
- named @MinorNum {} named @MinorTitle {} right @PageNum
- { @PageNum }
-
- named @RunningIntroStartOddTop
- named @MajorNum {} named @MajorTitle {}
- named @MinorNum {} named @MinorTitle {} right @PageNum
- { @Null }
-
- named @RunningIntroStartOddFoot
- named @MajorNum {} named @MajorTitle {}
- named @MinorNum {} named @MinorTitle {} right @PageNum
- { @Null }
-
- named @RunningIntroStartEvenTop
- named @MajorNum {} named @MajorTitle {}
- named @MinorNum {} named @MinorTitle {} right @PageNum
- { @Null }
-
- named @RunningIntroStartEvenFoot
- named @MajorNum {} named @MajorTitle {}
- named @MinorNum {} named @MinorTitle {} right @PageNum
- { @Null }
-
-
-@Begin
-
-
- ###########################################################################
- # #
- # @Protect x #
- # #
- # Like @CNP, this reserves space on the current page or else makes sure #
- # x appears on the following page. Lookahead is proportional to font #
- # size. #
- # #
- ###########################################################################
-
- def @Protect right x { 3.0f @High //0io // x }
-
-
- ###########################################################################
- # #
- # @HLine #
- # #
- # Draws a horizontal line to fill available space. #
- # #
- ###########################################################################
-
- def @HLine
- {
- @BackEnd @Case {
- PlainText @Yield { "-" @PlainGraphic 1f @High }
- PostScript @Yield { {0 0 moveto xsize 0 lineto stroke} @Graphic {} }
- PDF @Yield { {0 0 m __xsize 0 l S} @Graphic {} }
- }
- }
-
-
- ###########################################################################
- # #
- # x @WordVal y #
- # #
- # Returns @Word&&x if x == y, otherwise y. #
- # #
- ###########################################################################
-
- def @WordVal
- left x
- right y
- {
- y @Case {
- x @Yield @Word&&x
- else @Yield y
- }
- }
-
- ###########################################################################
- # #
- # x @Dft y #
- # #
- # This returns x unless its value is "dft", in which case it returns y. #
- # Useful for defaulting the value of one parameter to another. #
- # #
- ###########################################################################
-
- def @Dft
- left x
- right y
- {
- x @Case {
- dft @Yield y
- else @Yield x
- }
- }
-
-
- ###########################################################################
- # #
- # x @Do y #
- # #
- # This returns @Null if x is No or None, otherwise y. #
- # #
- ###########################################################################
-
- def @Do
- left x
- right y
- {
- x @Case {
- { No None } @Yield @Null
- else @Yield y
- }
- }
-
-
- ###########################################################################
- # #
- # x @NoDo y #
- # #
- # Negation of @Do: This returns y if x is No or None, otherwise @Null. #
- # #
- ###########################################################################
-
- def @NoDo
- left x
- right y
- {
- x @Case {
- { No None } @Yield y
- else @Yield @Null
- }
- }
-
-
- ###########################################################################
- # #
- # x @Then y #
- # #
- # This returns the empty object if x is No or None, otherwise y. #
- # #
- ###########################################################################
-
- def @Then
- left x
- right y
- {
- x @Case {
- { No None } @Yield {}
- else @Yield y
- }
- }
-
-
- ###########################################################################
- # #
- # x @NoThen y #
- # #
- # Negation of @Then: returns y if x is No or None, otherwise empty. #
- # #
- ###########################################################################
-
- def @NoThen
- left x
- right y
- {
- x @Case {
- { No None } @Yield y
- else @Yield {}
- }
- }
-
-
- ###########################################################################
- # #
- # Number markers. #
- # #
- ###########################################################################
-
- def @Num
- left numtype
- right num
- {
- numtype @Case {
- None @Yield {}
- Arabic @Yield num
- Roman @Yield @Roman&&num
- UCRoman @Yield @UCRoman&&num
- Alpha @Yield @Alpha&&num
- UCAlpha @Yield @UCAlpha&&num
- }
- }
-
-
- ###########################################################################
- # #
- # @MakePageNum #
- # #
- # Make a page number. #
- # #
- ###########################################################################
-
- def @MakePageNum
- named numbers {}
- named rawnum {}
- named prefix {}
- named owner {}
- {
- def @OwnerNum { @PageMarker&&owner @Open { rawnum } }
-
- def @StructNum { @FirstPageNumber @Plus rawnum @Minus @OwnerNum }
-
- @PageHeaders.@StructPageNums @Case {
- { Titles.Yes NoTitles.Yes } @Yield {
- prefix @Join { numbers @Num @StructNum } }
- else @Yield { numbers @Num rawnum }
- }
- }
-
-
- ###########################################################################
- # #
- # Page size, margins, and boxes. This code culminates in @OddPage x #
- # and @EvenPage x, which produce one odd or even page containing x. #
- # #
- ###########################################################################
-
- def @Width
- {
- @PageType @Case {
- Letter @Yield 612p
- Tabloid @Yield 792p
- Ledger @Yield 1224p
- Legal @Yield 612p
- Statement @Yield 396p
- Executive @Yield 540p
- A3 @Yield 842p
- A4 @Yield 595p
- A5 @Yield 420p
- B4 @Yield 729p
- B5 @Yield 516p
- Folio @Yield 612p
- Quarto @Yield 610p
- 10x14 @Yield 720p
- Other @Yield @PageWidth
- }
- }
-
- def @Height
- {
- @PageType @Case {
- Letter @Yield 792p
- Tabloid @Yield 1224p
- Ledger @Yield 792p
- Legal @Yield 1008p
- Statement @Yield 612p
- Executive @Yield 720p
- A3 @Yield 1190p
- A4 @Yield 842p
- A5 @Yield 595p
- B4 @Yield 1032p
- B5 @Yield 729p
- Folio @Yield 936p
- Quarto @Yield 780p
- 10x14 @Yield 1008p
- Other @Yield @PageHeight
- }
- }
-
- def @OrientedWidth right @Orient
- {
- @Orient @Case {
- { Portrait ReversePortrait } @Yield @Width
- { Landscape ReverseLandscape } @Yield @Height
- }
- }
-
- def @OrientedHeight right @Orient
- {
- @Orient @Case {
- { Portrait ReversePortrait } @Yield @Height
- { Landscape ReverseLandscape } @Yield @Width
- }
- }
-
- def @OrientationAngle right @Orient
- {
- @Orient @Case {
- Portrait @Yield 0d
- Landscape @Yield 90d
- ReversePortrait @Yield 180d
- ReverseLandscape @Yield 270d
- }
- }
-
- def @PageBox right x
- {
- @PageBoxType @Case {
- None @Yield x
- Box @Yield @Box
- margin { @PageBoxMargin }
- paint { @PageBoxPaint }
- linewidth { @PageBoxLineWidth } x
- CurveBox @Yield @CurveBox
- margin { @PageBoxMargin }
- paint { @PageBoxPaint }
- linewidth { @PageBoxLineWidth } x
- ShadowBox @Yield @ShadowBox
- margin { @PageBoxMargin }
- paint { @PageBoxPaint }
- linewidth { @PageBoxLineWidth }
- shadow { @PageBoxShadow } x
- }
- }
-
- def @PageSet right x
- {
-# "LoutPageSet" @Graphic # VT: case PDF produces nothing
- { @BackEnd @Case {
- PostScript @Yield "LoutPageSet"
- else @Yield "% @DoBackground/LoutPageSet UNIMPLEMENTED"
- }
- } @Graphic x
- }
-
- def @MargSet
- left parity
- right x
- {
-# { parity "LoutMargSet" } @Graphic x # VT: case PDF produces nothing
- { @BackEnd @Case {
- PostScript @Yield { parity "LoutMargSet" }
- else @Yield "% @MargSet/LoutMargSet UNIMPLEMENTED"
- }
- } @Graphic x
- }
-
- def @OddPage
- left extra
- named @Orient {}
- right x
- {
- @PageSet
- { @OrientationAngle @Orient } @Rotate
- { @OrientedWidth @Orient } @Wide { @OrientedHeight @Orient } @High
- { //@TopMargin ||@OddLeftMargin
- { // || @PageBackground } @Background
- # 1 @MargSet
- @PageEnclose @PageBox @HExpand { extra // @VExpand x }
- ||@OddRightMargin //@FootMargin
- }
- }
-
- def @EvenPage
- left extra
- named @Orient {}
- right x
- {
- @PageSet
- { @OrientationAngle @Orient } @Rotate
- { @OrientedWidth @Orient } @Wide { @OrientedHeight @Orient } @High
- { //@TopMargin ||@EvenLeftMargin
- { // || @PageBackground } @Background
- # 0 @MargSet
- @PageEnclose @PageBox @HExpand { extra // @VExpand x }
- ||@EvenRightMargin //@FootMargin
- }
- }
-
-
- ###########################################################################
- # #
- # Definitions for page headers and footers. There are 16 symbols here, #
- # in the following arrangement: #
- # #
- # @(- | Running)(- | Intro)(Odd | Even)(Top | Foot)Header #
- # #
- # Running means that running headers are to be used. #
- # Intro means that the header is destined for an introductory page. #
- # Odd or Even means whether the page number will be odd or even. #
- # Top or Foot means whether the header is for the top or foot of page. #
- # #
- ###########################################################################
-
- export @Start @MajorNum @MajorTitle @MinorNum @MinorTitle @Owner @Prefix
- def @Runner
- left @Start
- named @MajorNum {}
- named @MajorTitle {}
- named @MinorNum {}
- named @MinorTitle {}
- named @Owner {}
- named @Prefix {}
- named @Tag {}
- { @Null
- # "(@Runner:"@Start":"@MajorTitle")"
- }
-
- def @DupRunner # duplicate previous runner
- {
- @Runner&&preceding @Open {
- NonStart @Runner
- @MajorNum { @MajorNum }
- @MajorTitle { @MajorTitle }
- @MinorNum { @MinorNum }
- @MinorTitle { @MinorTitle }
- @Owner { @Owner }
- @Prefix { @Prefix }
- }
- }
-
- def @OddTopHeader
- left @PageHeadersAndStart
- right @PageNum
- {
- @PageHeadersAndStart @Case {
- None.Start @Yield @Null
- None.NonStart @Yield @Null
- None.None @Yield @Null
- Simple.Start @Yield @StartOddTop @PageNum
- Simple.NonStart @Yield @OddTop @PageNum
- Simple.None @Yield @Null
- }
- }
-
- def @OddFootHeader
- left @PageHeadersAndStart
- right @PageNum
- {
- @PageHeadersAndStart @Case {
- None.Start @Yield @Null
- None.NonStart @Yield @Null
- None.None @Yield @Null
- Simple.Start @Yield @StartOddFoot @PageNum
- Simple.NonStart @Yield @OddFoot @PageNum
- Simple.None @Yield @Null
- }
- }
-
- def @EvenTopHeader
- left @PageHeadersAndStart
- right @PageNum
- {
- @PageHeadersAndStart @Case {
- None.Start @Yield @Null
- None.NonStart @Yield @Null
- None.None @Yield @Null
- Simple.Start @Yield @StartEvenTop @PageNum
- Simple.NonStart @Yield @EvenTop @PageNum
- Simple.None @Yield @Null
- }
- }
-
- def @EvenFootHeader
- left @PageHeadersAndStart
- right @PageNum
- {
- @PageHeadersAndStart @Case {
- None.Start @Yield @Null
- None.NonStart @Yield @Null
- None.None @Yield @Null
- Simple.Start @Yield @StartEvenFoot @PageNum
- Simple.NonStart @Yield @EvenFoot @PageNum
- Simple.None @Yield @Null
- }
- }
-
- def @IntroOddTopHeader
- left @PageHeadersAndStart
- right @PageNum
- {
- @PageHeadersAndStart @Case {
- None.Start @Yield @Null
- None.NonStart @Yield @Null
- None.None @Yield @Null
- Simple.Start @Yield @IntroStartOddTop @PageNum
- Simple.NonStart @Yield @IntroOddTop @PageNum
- Simple.None @Yield @Null
- }
- }
-
- def @IntroOddFootHeader
- left @PageHeadersAndStart
- right @PageNum
- {
- @PageHeadersAndStart @Case {
- None.Start @Yield @Null
- None.NonStart @Yield @Null
- None.None @Yield @Null
- Simple.Start @Yield @IntroStartOddFoot @PageNum
- Simple.NonStart @Yield @IntroOddFoot @PageNum
- Simple.None @Yield @Null
- }
- }
-
- def @IntroEvenTopHeader
- left @PageHeadersAndStart
- right @PageNum
- {
- @PageHeadersAndStart @Case {
- None.Start @Yield @Null
- None.NonStart @Yield @Null
- None.None @Yield @Null
- Simple.Start @Yield @IntroStartEvenTop @PageNum
- Simple.NonStart @Yield @IntroEvenTop @PageNum
- Simple.None @Yield @Null
- }
- }
-
- def @IntroEvenFootHeader
- left @PageHeadersAndStart
- right @PageNum
- {
- @PageHeadersAndStart @Case {
- None.Start @Yield @Null
- None.NonStart @Yield @Null
- None.None @Yield @Null
- Simple.Start @Yield @IntroStartEvenFoot @PageNum
- Simple.NonStart @Yield @IntroEvenFoot @PageNum
- Simple.None @Yield @Null
- }
- }
-
-
- def @RunningOddTopHeader
- left @PageHeadersAndStart
- named @MajorNum {}
- named @MajorTitle {}
- named @MinorNum {}
- named @MinorTitle {}
- right @PageNum
- {
- @PageHeadersAndStart @Case {
- NoTitles.?? @Yield ??
- NoTitles.Start @Yield @RunningStartOddTop @PageNum
- NoTitles.NonStart @Yield @RunningOddTop @PageNum
- NoTitles.None @Yield @Null
- Titles.?? @Yield ??
- Titles.Start @Yield @RunningStartOddTop
- @MajorNum { @MajorNum } @MajorTitle { @MajorTitle }
- @MinorNum { @MinorNum } @MinorTitle { @MinorTitle }
- @PageNum
- Titles.NonStart @Yield @RunningOddTop
- @MajorNum { @MajorNum } @MajorTitle { @MajorTitle }
- @MinorNum { @MinorNum } @MinorTitle { @MinorTitle }
- @PageNum
- Titles.None @Yield @Null
- }
- }
-
- def @RunningOddFootHeader
- left @PageHeadersAndStart
- named @MajorNum {}
- named @MajorTitle {}
- named @MinorNum {}
- named @MinorTitle {}
- right @PageNum
- {
- @PageHeadersAndStart @Case {
- NoTitles.?? @Yield @Null
- NoTitles.Start @Yield @RunningStartOddFoot @PageNum
- NoTitles.NonStart @Yield @RunningOddFoot @PageNum
- NoTitles.None @Yield @Null
- Titles.?? @Yield @Null
- Titles.Start @Yield @RunningStartOddFoot
- @MajorNum { @MajorNum } @MajorTitle { @MajorTitle }
- @MinorNum { @MinorNum } @MinorTitle { @MinorTitle }
- @PageNum
- Titles.NonStart @Yield @RunningOddFoot
- @MajorNum { @MajorNum } @MajorTitle { @MajorTitle }
- @MinorNum { @MinorNum } @MinorTitle { @MinorTitle }
- @PageNum
- Titles.None @Yield @Null
- }
- }
-
- def @RunningEvenTopHeader
- left @PageHeadersAndStart
- named @MajorNum {}
- named @MajorTitle {}
- named @MinorNum {}
- named @MinorTitle {}
- right @PageNum
- {
- @PageHeadersAndStart @Case {
- NoTitles.?? @Yield ??
- NoTitles.Start @Yield @RunningStartEvenTop @PageNum
- NoTitles.NonStart @Yield @RunningEvenTop @PageNum
- NoTitles.None @Yield @Null
- Titles.?? @Yield ??
- Titles.Start @Yield @RunningStartEvenTop
- @MajorNum { @MajorNum } @MajorTitle { @MajorTitle }
- @MinorNum { @MinorNum } @MinorTitle { @MinorTitle }
- @PageNum
- Titles.NonStart @Yield @RunningEvenTop
- @MajorNum { @MajorNum } @MajorTitle { @MajorTitle }
- @MinorNum { @MinorNum } @MinorTitle { @MinorTitle }
- @PageNum
- Titles.None @Yield @Null
- }
- }
-
- def @RunningEvenFootHeader
- left @PageHeadersAndStart
- named @MajorNum {}
- named @MajorTitle {}
- named @MinorNum {}
- named @MinorTitle {}
- right @PageNum
- {
- @PageHeadersAndStart @Case {
- NoTitles.?? @Yield @Null
- NoTitles.Start @Yield @RunningStartEvenFoot @PageNum
- NoTitles.NonStart @Yield @RunningEvenFoot @PageNum
- NoTitles.None @Yield @Null
- Titles.?? @Yield @Null
- Titles.Start @Yield @RunningStartEvenFoot
- @MajorNum { @MajorNum } @MajorTitle { @MajorTitle }
- @MinorNum { @MinorNum } @MinorTitle { @MinorTitle }
- @PageNum
- Titles.NonStart @Yield @RunningEvenFoot
- @MajorNum { @MajorNum } @MajorTitle { @MajorTitle }
- @MinorNum { @MinorNum } @MinorTitle { @MinorTitle }
- @PageNum
- Titles.None @Yield @Null
- }
- }
-
- def @RunningIntroOddTopHeader
- left @PageHeadersAndStart
- named @MajorNum {}
- named @MajorTitle {}
- named @MinorNum {}
- named @MinorTitle {}
- right @PageNum
- {
- @PageHeadersAndStart @Case {
- NoTitles.?? @Yield ??
- NoTitles.Start @Yield @RunningIntroStartOddTop @PageNum
- NoTitles.NonStart @Yield @RunningIntroOddTop @PageNum
- NoTitles.None @Yield @Null
- Titles.?? @Yield ??
- Titles.Start @Yield @RunningIntroStartOddTop
- @MajorNum { @MajorNum } @MajorTitle { @MajorTitle }
- @MinorNum { @MinorNum } @MinorTitle { @MinorTitle }
- @PageNum
- Titles.NonStart @Yield @RunningIntroOddTop
- @MajorNum { @MajorNum } @MajorTitle { @MajorTitle }
- @MinorNum { @MinorNum } @MinorTitle { @MinorTitle }
- @PageNum
- Titles.None @Yield @Null
- }
- }
-
- def @RunningIntroOddFootHeader
- left @PageHeadersAndStart
- named @MajorNum {}
- named @MajorTitle {}
- named @MinorNum {}
- named @MinorTitle {}
- right @PageNum
- {
- @PageHeadersAndStart @Case {
- NoTitles.?? @Yield @Null
- NoTitles.Start @Yield @RunningIntroStartOddFoot @PageNum
- NoTitles.NonStart @Yield @RunningIntroOddFoot @PageNum
- NoTitles.None @Yield @Null
- Titles.?? @Yield @Null
- Titles.Start @Yield @RunningIntroStartOddFoot
- @MajorNum { @MajorNum } @MajorTitle { @MajorTitle }
- @MinorNum { @MinorNum } @MinorTitle { @MinorTitle }
- @PageNum
- Titles.NonStart @Yield @RunningIntroOddFoot
- @MajorNum { @MajorNum } @MajorTitle { @MajorTitle }
- @MinorNum { @MinorNum } @MinorTitle { @MinorTitle }
- @PageNum
- Titles.None @Yield @Null
- }
- }
-
- def @RunningIntroEvenTopHeader
- left @PageHeadersAndStart
- named @MajorNum {}
- named @MajorTitle {}
- named @MinorNum {}
- named @MinorTitle {}
- right @PageNum
- {
- @PageHeadersAndStart @Case {
- NoTitles.?? @Yield ??
- NoTitles.Start @Yield @RunningIntroStartEvenTop @PageNum
- NoTitles.NonStart @Yield @RunningIntroEvenTop @PageNum
- NoTitles.None @Yield @Null
- Titles.?? @Yield ??
- Titles.Start @Yield @RunningIntroStartEvenTop
- @MajorNum { @MajorNum } @MajorTitle { @MajorTitle }
- @MinorNum { @MinorNum } @MinorTitle { @MinorTitle }
- @PageNum
- Titles.NonStart @Yield @RunningIntroEvenTop
- @MajorNum { @MajorNum } @MajorTitle { @MajorTitle }
- @MinorNum { @MinorNum } @MinorTitle { @MinorTitle }
- @PageNum
- Titles.None @Yield @Null
- }
- }
-
- def @RunningIntroEvenFootHeader
- left @PageHeadersAndStart
- named @MajorNum {}
- named @MajorTitle {}
- named @MinorNum {}
- named @MinorTitle {}
- right @PageNum
- {
- @PageHeadersAndStart @Case {
- NoTitles.?? @Yield @Null
- NoTitles.Start @Yield @RunningIntroStartEvenFoot @PageNum
- NoTitles.NonStart @Yield @RunningIntroEvenFoot @PageNum
- NoTitles.None @Yield @Null
- Titles.?? @Yield @Null
- Titles.Start @Yield @RunningIntroStartEvenFoot
- @MajorNum { @MajorNum } @MajorTitle { @MajorTitle }
- @MinorNum { @MinorNum } @MinorTitle { @MinorTitle }
- @PageNum
- Titles.NonStart @Yield @RunningIntroEvenFoot
- @MajorNum { @MajorNum } @MajorTitle { @MajorTitle }
- @MinorNum { @MinorNum } @MinorTitle { @MinorTitle }
- @PageNum
- Titles.None @Yield @Null
- }
- }
-
-
- ###########################################################################
- # #
- # Helper definitions for laying out pages. #
- # #
- ###########################################################################
-
- def @PageTopPlace { @Galley }
- def @PageFootAndTopPlace { @Galley }
- def @PageFootNotePlace { @Galley }
- def @FullPlace { @Galley }
- def @OddFullPlace { @Galley }
- def @EvenFullPlace { @Galley }
- def @FullPagePlace { @Galley }
- def @EvenFullPagePlace { @Galley }
- def @EvenPagePlace { @Galley }
- def @OddFullPagePlace { @Galley }
- def @ColTopPlace { @Galley }
- def @ColFootAndTopPlace { @Galley }
- def @ColPlace { @Galley }
- def @ColFootNotePlace { @Galley }
- def @IntroFullPlace { @Galley }
- def @IntroOddFullPlace { @Galley }
- def @IntroEvenFullPlace { @Galley }
- def @IntroColPlace { @Galley }
- def @GlossaryPlace { @Galley }
- def @IndexPlace { @Galley }
- def @IndexAPlace { @Galley }
- def @IndexBPlace { @Galley }
- def @AfterLinePlace { @ForceGalley }
-
- def @TryAfterLinePlace right x
- {
- x @Case {
- noforce @Yield @Galley
- force @Yield @ForceGalley
- }
- }
-
- def @EvenFullPageSection
- {
- @OneRow @EvenFullPagePlace
- // @FullPagePlace
- //@MidGap @EvenFullPageSection
- }
-
- def @OddFullPageSection
- {
- @OneRow @OddFullPagePlace
- // @FullPagePlace
- //@MidGap @OddFullPageSection
- }
-
- def @EvenPageTopSect
- {
- @OneRow @EvenPagePlace
- // @PageTopPlace
- //@MidGap @PageFootAndTopPlace
- //@MidGap @EvenPageTopSect
- }
-
- def @OddPageTopSect
- {
- @PageTopPlace
- //@MidGap @PageFootAndTopPlace
- //@MidGap @OddPageTopSect
- }
-
- def @PageOddTopSection right @Orient
- {
- @OddPageTopSect ||{@OrientedWidth @Orient} @FullPlace
- ||{@OrientedWidth @Orient} @OddFullPlace
- }
-
- def @PageEvenTopSection right @Orient
- {
- @EvenPageTopSect ||{@OrientedWidth @Orient} @FullPlace
- ||{@OrientedWidth @Orient} @EvenFullPlace
- }
-
- def @PageIntroOddTopSection right @Orient
- {
- @OddPageTopSect ||{@OrientedWidth @Orient} @IntroFullPlace
- ||{@OrientedWidth @Orient} @IntroOddFullPlace
- }
-
- def @PageIntroEvenTopSection right @Orient
- {
- @EvenPageTopSect
- ||{@OrientedWidth @Orient} @IntroFullPlace
- ||{@OrientedWidth @Orient} @IntroEvenFullPlace
- }
-
- def @PageFootNoteList
- {
- @PageFootNotePlace
- //@FootGap @PageFootNoteList
- }
-
- def @PageFootNoteSection
- {
- @FootLen @Wide @HLine
- //@FootGap @PageFootNoteList
- }
-
- def @PageFootAndTopSect
- {
- @PageFootAndTopPlace
- //@MidGap @PageFootAndTopSect
- }
-
- def @PageFootSection
- {
- //@MidGap @PageFootAndTopSect
- //@FootAboveGap @PageFootNoteSection
- }
-
- def @ColTopSection
- {
- @ColTopPlace
- //@MidGap @ColFootAndTopPlace
- //@MidGap @TryAfterLinePlace noforce
- //@MidGap @ColTopSection
- }
-
- def @RestOfColSection
- {
- @AfterLinePlace
- //@MidGap @TryAfterLinePlace force
- //@MidGap @ColPlace @NotRevealed
- //@MidGap @RestOfColSection
- }
-
- def @IntroRestOfColSection
- {
- @AfterLinePlace
- //@MidGap @TryAfterLinePlace force
- //@MidGap @IntroColPlace @NotRevealed
- //@MidGap @IntroRestOfColSection
- }
-
- def @ColFootAndTopList { @ColFootAndTopPlace //@TopGap @ColFootAndTopList }
-
- def @ColFootNoteList
- {
- @ColFootNotePlace
- //@FootGap @ColFootNoteList
- }
-
- def @ColFootNoteSection
- {
- @FootLen @Wide @HLine
- //@FootGap @ColFootNoteList
- }
-
- def @ColFootSection
- {
- //@TopGap @ColFootAndTopList
- //@FootAboveGap @ColFootNoteSection
- }
-
- def @ColsOf
- left num
- named gap { @ColumnGap }
- right x
- {
- def @Two { x ||gap x }
- def @Four { @Two ||gap @Two }
- def @Eight { @Four ||gap @Four }
-
- num @Case {
- 1 @Yield { x }
- 2 @Yield { @Two }
- 3 @Yield { @Two ||gap x }
- 4 @Yield { @Four }
- 5 @Yield { @Four ||gap x }
- 6 @Yield { @Four ||gap @Two }
- 7 @Yield { @Four ||gap @Two ||gap x }
- 8 @Yield { @Four ||gap @Four }
- 9 @Yield { @Four ||gap @Four ||gap x }
- 10 @Yield { @Four ||gap @Four ||gap @Two }
- }
- }
-
- def @EqualWidth right x { 50c @Wide x } # believe it or not
-
- def @ColList right num
- {
- @HExpand num @ColsOf @EqualWidth @VExpand
- {
- @ColTopSection //@TopGap
- @ColPlace //@MidGap @RestOfColSection // //1rt
- @OneRow { @ColFootSection }
-
- }
- }
-
- def @IntroColList right num
- {
- @HExpand num @ColsOf @EqualWidth @VExpand
- {
- @ColTopSection //@TopGap
- @IntroColPlace //@MidGap @IntroRestOfColSection // //1rt
- @OneRow { @ColFootSection }
- }
- }
-
- def @ZeroColList right num
- {
- @HExpand num @ColsOf @EqualWidth 0c @High @ColPlace
- }
-
- def @ZeroIntroColList right num
- {
- @HExpand num @ColsOf @EqualWidth 0c @High @IntroColPlace
- }
-
- def @GlossaryColList right num
- {
- @HExpand num @ColsOf gap { @GlossaryColumnGap } @EqualWidth @VExpand @GlossaryPlace
- }
-
- def @IndexColList right num
- {
- @HExpand num @ColsOf gap { @IndexColumnGap } @EqualWidth @VExpand @IndexPlace
- }
-
- def @IndexAColList right num
- {
- @HExpand num @ColsOf gap { @IndexAColumnGap } @EqualWidth @VExpand @IndexAPlace
- }
-
- def @IndexBColList right num
- {
- @HExpand num @ColsOf gap { @IndexBColumnGap } @EqualWidth @VExpand @IndexBPlace
- }
-
-
- ###########################################################################
- # #
- # Footnotes. #
- # #
- ###########################################################################
-
- export @Tag count
- def @FootNoteCounterMarker
- named @Tag {}
- named count {}
- {
- @Null
- }
-
- def @FootNoteNum right tag
- {
- @FootNoteCounterMarker&&tag @Open { @Next count }
- }
-
- def @FootNoteCounterIncrement
- right tag
- {
- @FootNoteCounterMarker&&preceding @Tagged tag
- // @FootNoteCounterMarker count { @FootNoteNum tag }
- // @NumberMarker @Tag { tag }
- @Value { @FootNoteNumbers @Num @FootNoteNum tag }
- }
-
- def @BeginFootNoteCounter
- {
- @FootNoteCounterMarker count { 0 }
- }
-
- def @FootNote
- named @Tag {}
- named @Location { @FootNoteLocation }
- named @Another { No }
- named @Label { Numbered }
- right x
- {
-
- def @FootLabelFmt
- right x
- {
- @FootNoteFont @Font @FootNoteBreak @Break
- +0.3v @VShift { Base 0.8f } @Font x
- }
-
- def @FootExtra
- {
- @BackEnd @Case {
- PlainText @Yield ","
- else @Yield @FootLabelFmt ","
- }
- }
-
- def @FootLabel
- {
- @Label @Case {
- "Numbered" @Yield { @BackEnd @Case {
- PlainText @Yield { ({@NumberOf @Tag}) }
- else @Yield @FootLabelFmt @NumberOf @Tag
- } }
- else @Yield { @BackEnd @Case {
- PlainText @Yield @Label
- else @Yield @FootLabelFmt @Label
- } }
- }
- }
-
- def @LongFootLabel
- {
- @Another @Case {
- No @Yield { @FootLabel }
- Yes @Yield { @FootExtra &0iu @FootLabel }
- }
- }
-
- def @FootVal
- {
- @FootNoteFont @Font @FootNoteBreak @Break @Label @Case {
- "Numbered" @Yield {
- { @FootNoteCounterIncrement @Tag & @FootLabel }
- @FootNoteFormat x
- }
- else @Yield { @FootLabel @FootNoteFormat x }
- }
- }
-
- def @PageFootNote into { @PageFootNotePlace&&following } { @FootVal }
- def @ColFootNote into { @ColFootNotePlace&&following } { @FootVal }
-
- @Location @Case {
- ColFoot @Yield { @Null &0iu @LongFootLabel & @ColFootNote }
- PageFoot @Yield { @Null &0iu @LongFootLabel & @PageFootNote }
- }
- }
-
- macro @AnotherFootNote { @FootNote @Another { Yes } }
-
-
- ###########################################################################
- # #
- # Definitions for page lists. There are four symbols here, in the #
- # following arrangement: #
- # #
- # @(Simple | Running)(- | Intro)PageList #
- # #
- # Running means that the page list is to support running headers. #
- # Intro means that the page list is an introductory page list. #
- # These are then packaged into @PageList and @IntroPageList. #
- # #
- ###########################################################################
-
- def @SStart right @PageNum
- {
- @PageNum @Case {
- { 1 0 } @Yield Start
- else @Yield NonStart
- }
- }
-
- def @ChooseColList right colnum
- {
- @OneOf
- {
- @ColList colnum
- @GlossaryColList @GlossaryColumnNumber
- @IndexAColList @IndexAColumnNumber
- @IndexBColList @IndexBColumnNumber
- @IndexColList @IndexColumnNumber
- }
- }
-
- def @ChooseIntroColList right colnum
- {
- @OneOf
- {
- @IntroColList colnum
- @GlossaryColList @GlossaryColumnNumber
- @IndexAColList @IndexAColumnNumber
- @IndexBColList @IndexBColumnNumber
- @IndexColList @IndexColumnNumber
- }
- }
-
- def @OddBodyMargins right x
- {
- @OddLeftBodyMargin @Wide {} || 1 @MargSet x || @OddRightBodyMargin @Wide {}
- }
-
- def @EvenBodyMargins right x
- {
- @EvenLeftBodyMargin @Wide {} || 0 @MargSet x || @EvenRightBodyMargin @Wide {}
- }
-
- def @SimplePageList
- named @ColumnNumber {}
- named @PageHeaders {}
- named extra { No }
- named @Orient {}
- named @AtTop { @Null }
- right @PageNum
- {
-
- def @OrdinaryOddPage
- {
- {@PageHeaders.{@SStart @PageNum}} @OddTopHeader
- { @PageNumbers @Num @PageNum }
- //@MidGap
- @OddBodyMargins {
- @AtTop
- //@MidGap @PageOddTopSection @Orient
- //@MidGap @ChooseColList @ColumnNumber
- }
- //1rt @OneRow
- { // @OddBodyMargins @PageFootSection
- //@MidGap {@PageHeaders.{@SStart @PageNum}} @OddFootHeader
- { @PageNumbers @Num @PageNum }
- }
- }
-
- def @FullPageOddPage
- {
- {@PageHeaders.{@SStart @PageNum}} @OddTopHeader
- { @PageNumbers @Num @PageNum }
- //@MidGap @OddBodyMargins @OddFullPageSection
- //1rt @OneRow
- { //@MidGap {@PageHeaders.{@SStart @PageNum}} @OddFootHeader
- { @PageNumbers @Num @PageNum }
- }
- }
-
- def @SimpleEvenPageList
- named @ColumnNumber {}
- named @PageHeaders {}
- named extra { No }
- right @PageNum
- {
-
- def @OrdinaryEvenPage
- {
- @PageHeaders.NonStart @EvenTopHeader
- { @PageNumbers @Num @PageNum }
- //@MidGap
- @EvenBodyMargins {
- @PageEvenTopSection @Orient
- //@MidGap @ChooseColList @ColumnNumber
- }
- //1rt @OneRow
- { // @EvenBodyMargins @PageFootSection
- //@MidGap @PageHeaders.NonStart @EvenFootHeader
- { @PageNumbers @Num @PageNum }
- }
- }
-
- def @FullPageEvenPage
- {
- @PageHeaders.NonStart @EvenTopHeader
- { @PageNumbers @Num @PageNum }
- //@MidGap @EvenBodyMargins @EvenFullPageSection
- //1rt @OneRow
- { //@MidGap @PageHeaders.NonStart @EvenFootHeader
- { @PageNumbers @Num @PageNum }
- }
- }
-
- @PageMarker
- rawnum { @PageNum }
- num { @PageNumbers @Num @PageNum }
- // @FootNoteThrough @NoDo @BeginFootNoteCounter
- // {} @EvenPage @Orient { @Orient }
- {
- @OrdinaryEvenPage ||{@OrientedWidth @Orient} @FullPageEvenPage
- }
- // @SimplePageList
- @ColumnNumber { @ColumnNumber }
- @PageHeaders { @PageHeaders }
- @Orient { @Orient }
- @Next @PageNum
- }
-
- @PageMarker
- rawnum { @PageNum }
- num { @PageNumbers @Num @PageNum }
- // @FootNoteThrough @NoDo @BeginFootNoteCounter
- // { extra @Then @OddBodyMargins @ZeroColList @ColumnNumber } @OddPage @Orient { @Orient }
- {
- @OrdinaryOddPage ||{@OrientedWidth @Orient} @FullPageOddPage
- }
- // @SimpleEvenPageList
- @ColumnNumber { @ColumnNumber }
- @PageHeaders { @PageHeaders }
- @Next @PageNum
- }
-
- def @SimpleIntroPageList
- named @ColumnNumber {}
- named @PageHeaders {}
- named @Orient {}
- named extra { No }
- named @AtTop { @Null }
- right @PageNum
- {
- @PageMarker
- num { @IntroPageNumbers @Num @PageNum }
- rawnum { @PageNum }
- // @FootNoteThrough @NoDo @BeginFootNoteCounter
- // { extra @Then @OddBodyMargins @ZeroIntroColList @ColumnNumber } @OddPage @Orient { @Orient }
- {
- {@PageHeaders.{@SStart @PageNum}} @IntroOddTopHeader
- { @IntroPageNumbers @Num @PageNum }
- //@MidGap
- @OddBodyMargins {
- @AtTop
- //@MidGap @PageIntroOddTopSection @Orient
- //@MidGap @ChooseIntroColList @ColumnNumber
- }
- //1rt @OneRow
- { // @OddBodyMargins @PageFootSection
- //@MidGap
- {@PageHeaders.{@SStart @PageNum}} @IntroOddFootHeader
- { @IntroPageNumbers @Num @PageNum }
- }
- }
- // @PageMarker
- num { @IntroPageNumbers @Num @Next @PageNum }
- rawnum { @Next @PageNum }
- // @FootNoteThrough @NoDo @BeginFootNoteCounter
- // {} @EvenPage @Orient { @Orient }
- @Runner&&following @Open
- {
- @PageHeaders.NonStart @IntroEvenTopHeader { @IntroPageNumbers @Num @Next @PageNum }
- //@MidGap
- @EvenBodyMargins {
- @PageIntroEvenTopSection @Orient
- //@MidGap @ChooseIntroColList @ColumnNumber
- }
- //1rt @OneRow
- { // @EvenBodyMargins @PageFootSection
- //@MidGap @PageHeaders.NonStart @IntroEvenFootHeader
- { @IntroPageNumbers @Num @Next @PageNum }
- }
- }
- // @SimpleIntroPageList
- @ColumnNumber { @ColumnNumber }
- @PageHeaders { @PageHeaders }
- @Orient { @Orient }
- @Next @Next @PageNum
- }
-
- def @SimpleOddOrEvenIntroPageList
- named @ColumnNumber {}
- named @PageHeaders {}
- named @Orient {}
- named extra { No }
- named @AtTop { @Null }
- right @PageNum
- {
-
- def @SimpleEvenIntroPageList
- named @ColumnNumber {}
- named @PageHeaders {}
- named @Orient {}
- named extra { No }
- named @AtTop { @Null }
- right @PageNum
- {
-
- @PageMarker
- num { @IntroPageNumbers @Num @PageNum }
- rawnum { @PageNum }
- // @FootNoteThrough @NoDo @BeginFootNoteCounter
- // {} @EvenPage @Orient { @Orient }
- @Runner&&following @Open
- {
- @PageHeaders.NonStart @IntroEvenTopHeader { @IntroPageNumbers @Num @PageNum }
- //@MidGap
- @EvenBodyMargins {
- @PageIntroEvenTopSection @Orient
- //@MidGap @ChooseIntroColList @ColumnNumber
- }
- //1rt @OneRow
- { // @EvenBodyMargins @PageFootSection
- //@MidGap @PageHeaders.NonStart @IntroEvenFootHeader
- { @IntroPageNumbers @Num @PageNum }
- }
- }
- // @SimpleOddOrEvenIntroPageList
- @ColumnNumber { @ColumnNumber }
- @PageHeaders { @PageHeaders }
- @Orient { @Orient }
- @Next @PageNum
- }
- @PageMarker
- num { @IntroPageNumbers @Num @PageNum }
- rawnum { @PageNum }
- // @FootNoteThrough @NoDo @BeginFootNoteCounter
- // { extra @Then @OddBodyMargins @ZeroIntroColList @ColumnNumber } @OddPage @Orient { @Orient }
- {
- {@PageHeaders.{@SStart @PageNum}} @IntroOddTopHeader
- { @IntroPageNumbers @Num @PageNum }
- //@MidGap
- @OddBodyMargins {
- @AtTop
- //@MidGap @PageIntroOddTopSection @Orient
- //@MidGap @ChooseIntroColList @ColumnNumber
- }
- //1rt @OneRow
- { // @OddBodyMargins @PageFootSection
- //@MidGap
- {@PageHeaders.{@SStart @PageNum}} @IntroOddFootHeader
- { @IntroPageNumbers @Num @PageNum }
- }
- }
- // @SimpleEvenIntroPageList
- @ColumnNumber { @ColumnNumber }
- @PageHeaders { @PageHeaders }
- @Orient { @Orient }
- @Next @PageNum
- }
-
- def @RunningPageList
- named @ColumnNumber {}
- named @PageHeaders {}
- named extra { No }
- named @Orient {}
- named @AtTop { @Null }
- right @PageNum
- {
-
- def @OrdinaryOddPage
- {
- @Runner&&following @Open
- {
- @PageMarker
- num { @MakePageNum
- numbers { @PageNumbers }
- rawnum { @PageNum }
- prefix { @Prefix }
- owner { @Owner } }
- rawnum { @PageNum }
- // @PageHeaders.@Start @RunningOddTopHeader
- @MajorNum { @MajorNum } @MajorTitle { @MajorTitle }
- @MinorNum { @MinorNum } @MinorTitle { @MinorTitle }
- {
- @MakePageNum
- numbers { @PageNumbers }
- rawnum { @PageNum }
- prefix { @Prefix }
- owner { @Owner }
- }
- //@MidGap
- @OddBodyMargins {
- @AtTop
- //@MidGap @PageOddTopSection @Orient
- //@MidGap @ChooseColList @ColumnNumber
- }
- //1rt @OneRow
- { // @OddBodyMargins @PageFootSection
- //@MidGap @PageHeaders.@Start @RunningOddFootHeader
- @MajorNum { @MajorNum } @MajorTitle { @MajorTitle }
- @MinorNum { @MinorNum } @MinorTitle { @MinorTitle }
- {
- @MakePageNum
- numbers { @PageNumbers }
- rawnum { @PageNum }
- prefix { @Prefix }
- owner { @Owner }
- }
- }
- }
- }
-
- def @FullPageOddPage
- {
- @Runner&&following @Open
- {
- @PageMarker
- num { @MakePageNum
- numbers { @PageNumbers }
- rawnum { @PageNum }
- prefix { @Prefix }
- owner { @Owner } }
- rawnum { @PageNum }
- // @PageHeaders.@Start @RunningOddTopHeader
- @MajorNum { @MajorNum } @MajorTitle { @MajorTitle }
- @MinorNum { @MinorNum } @MinorTitle { @MinorTitle }
- {
- @MakePageNum
- numbers { @PageNumbers }
- rawnum { @PageNum }
- prefix { @Prefix }
- owner { @Owner }
- }
- //@MidGap
- @OddBodyMargins {
- @AtTop
- //@MidGap @OddFullPageSection
- }
- //1rt @OneRow
- {
- //@MidGap @PageHeaders.@Start @RunningOddFootHeader
- @MajorNum { @MajorNum } @MajorTitle { @MajorTitle }
- @MinorNum { @MinorNum } @MinorTitle { @MinorTitle }
- {
- @MakePageNum
- numbers { @PageNumbers }
- rawnum { @PageNum }
- prefix { @Prefix }
- owner { @Owner }
- }
- }
- }
- }
-
- def @RunningEvenPageList
- named @ColumnNumber {}
- named @PageHeaders {}
- right @PageNum
- {
-
- def @OrdinaryEvenPage
- {
- @Runner&&following @Open
- {
- @PageMarker
- num { @MakePageNum
- numbers { @PageNumbers }
- rawnum { @PageNum }
- prefix { @Prefix }
- owner { @Owner } }
- rawnum { @PageNum }
- // @PageHeaders.@Start @RunningEvenTopHeader
- @MajorNum { @MajorNum } @MajorTitle { @MajorTitle }
- @MinorNum { @MinorNum } @MinorTitle { @MinorTitle }
- {
- @MakePageNum
- numbers { @PageNumbers }
- rawnum { @PageNum }
- prefix { @Prefix }
- owner { @Owner }
- }
- //@MidGap
- @EvenBodyMargins {
- @PageEvenTopSection @Orient
- //@MidGap @ChooseColList @ColumnNumber
- }
- //1rt @OneRow
- { // @EvenBodyMargins @PageFootSection
- //@MidGap @PageHeaders.@Start @RunningEvenFootHeader
- @MajorNum { @MajorNum } @MajorTitle { @MajorTitle }
- @MinorNum { @MinorNum } @MinorTitle { @MinorTitle }
- {
- @MakePageNum
- numbers { @PageNumbers }
- rawnum { @PageNum }
- prefix { @Prefix }
- owner { @Owner }
- }
- }
- }
- }
-
- def @FullPageEvenPage
- {
- @Runner&&following @Open
- {
- @PageMarker
- num { @MakePageNum
- numbers { @PageNumbers }
- rawnum { @PageNum }
- prefix { @Prefix }
- owner { @Owner } }
- rawnum { @PageNum }
- // @PageHeaders.@Start @RunningEvenTopHeader
- @MajorNum { @MajorNum } @MajorTitle { @MajorTitle }
- @MinorNum { @MinorNum } @MinorTitle { @MinorTitle }
- {
- @MakePageNum
- numbers { @PageNumbers }
- rawnum { @PageNum }
- prefix { @Prefix }
- owner { @Owner }
- }
- //@MidGap
- @EvenBodyMargins @EvenFullPageSection
- //1rt @OneRow
- {
- //@MidGap @PageHeaders.@Start @RunningEvenFootHeader
- @MajorNum { @MajorNum } @MajorTitle { @MajorTitle }
- @MinorNum { @MinorNum } @MinorTitle { @MinorTitle }
- {
- @MakePageNum
- numbers { @PageNumbers }
- rawnum { @PageNum }
- prefix { @Prefix }
- owner { @Owner }
- }
- }
- }
- }
-
- @FootNoteThrough @NoDo @BeginFootNoteCounter
- // {} @EvenPage @Orient { @Orient }
- {
- @OrdinaryEvenPage ||{@OrientedWidth @Orient} @FullPageEvenPage
- }
- // @RunningPageList
- @ColumnNumber { @ColumnNumber }
- @PageHeaders { @PageHeaders }
- @Orient { @Orient }
- @Next @PageNum
- }
-
- @FootNoteThrough @NoDo @BeginFootNoteCounter
- // { extra @Then @OddBodyMargins @ZeroColList @ColumnNumber } @OddPage @Orient { @Orient }
- {
- @OrdinaryOddPage ||{@OrientedWidth @Orient} @FullPageOddPage
- }
- // @RunningEvenPageList
- @ColumnNumber { @ColumnNumber }
- @PageHeaders { @PageHeaders }
- @Next @PageNum
- }
-
- def @RunningIntroPageList
- named @ColumnNumber {}
- named @PageHeaders {}
- named @AtTop { @Null }
- named @Orient {}
- named extra { No }
- right @PageNum
- {
- @FootNoteThrough @NoDo @BeginFootNoteCounter
- // { extra @Then @OddBodyMargins @ZeroIntroColList @ColumnNumber } @OddPage @Orient { @Orient }
- @Runner&&following @Open
- {
- @PageMarker
- num { @MakePageNum
- numbers { @IntroPageNumbers }
- rawnum { @PageNum }
- prefix { @Prefix }
- owner { @Owner } }
- rawnum { @PageNum }
- // @PageHeaders.@Start @RunningIntroOddTopHeader
- @MajorNum { @MajorNum } @MajorTitle { @MajorTitle }
- @MinorNum { @MinorNum } @MinorTitle { @MinorTitle }
- {
- @MakePageNum
- numbers { @IntroPageNumbers }
- rawnum { @PageNum }
- prefix { @Prefix }
- owner { @Owner }
- }
- //@MidGap
- @OddBodyMargins {
- @AtTop
- //@MidGap @PageIntroOddTopSection @Orient
- //@MidGap @IntroColList @ColumnNumber
- }
- //1rt @OneRow
- { // @OddBodyMargins @PageFootSection
- //@MidGap @PageHeaders.@Start @RunningIntroOddFootHeader
- @MajorNum { @MajorNum } @MajorTitle { @MajorTitle }
- @MinorNum { @MinorNum } @MinorTitle { @MinorTitle }
- {
- @MakePageNum
- numbers { @IntroPageNumbers }
- rawnum { @PageNum }
- prefix { @Prefix }
- owner { @Owner }
- }
- }
- }
- // @FootNoteThrough @NoDo @BeginFootNoteCounter
- // {} @EvenPage @Orient { @Orient }
- @Runner&&following @Open
- {
- @PageMarker
- num { @MakePageNum
- numbers { @IntroPageNumbers }
- rawnum { @Next @PageNum }
- prefix { @Prefix }
- owner { @Owner } }
- rawnum { @Next @PageNum }
- // @PageHeaders.@Start @RunningIntroEvenTopHeader
- @MajorNum { @MajorNum } @MajorTitle { @MajorTitle }
- @MinorNum { @MinorNum } @MinorTitle { @MinorTitle }
- {
- @MakePageNum
- numbers { @IntroPageNumbers }
- rawnum { @Next @PageNum }
- prefix { @Prefix }
- owner { @Owner }
- }
- //@MidGap
- @EvenBodyMargins {
- @PageIntroEvenTopSection @Orient
- //@MidGap @ChooseIntroColList @ColumnNumber
- }
- //1rt @OneRow
- { // @EvenBodyMargins @PageFootSection
- //@MidGap @PageHeaders.@Start @RunningIntroEvenFootHeader
- @MajorNum { @MajorNum } @MajorTitle { @MajorTitle }
- @MinorNum { @MinorNum } @MinorTitle { @MinorTitle }
- {
- @MakePageNum
- numbers { @IntroPageNumbers }
- rawnum { @Next @PageNum }
- prefix { @Prefix }
- owner { @Owner }
- }
- }
- }
- // @RunningIntroPageList
- @PageHeaders { @PageHeaders }
- @ColumnNumber { @ColumnNumber }
- @Orient { @Orient }
- @Next @Next @PageNum
- }
-
- def @PageList
- named @ColumnNumber {}
- named @PageHeaders {}
- named extra { No }
- named @Orient {}
- named @AtTop { @Null }
- right @FirstPageNum
- {
- @PageHeaders @Case {
- { None Simple } @Yield @SimplePageList
- @ColumnNumber { @ColumnNumber }
- @PageHeaders { @PageHeaders }
- @Orient { @Orient }
- extra { extra }
- @AtTop { @AtTop }
- @FirstPageNum
- { Running Titles NoTitles } @Yield @RunningPageList
- @ColumnNumber { @ColumnNumber }
- @PageHeaders { @PageHeaders }
- @Orient { @Orient }
- extra { extra }
- @AtTop { @AtTop }
- @FirstPageNum
- }
- //
- @PageMark last.page
- }
-
- def @IntroPageList
- named @ColumnNumber {}
- named @PageHeaders {}
- named @Orient {}
- named extra { No }
- named @AtTop { @Null }
- right @FirstPageNum
- {
- @PageHeaders @Case {
- { None Simple } @Yield @SimpleIntroPageList
- @ColumnNumber { @ColumnNumber }
- @PageHeaders { @PageHeaders }
- @Orient { @Orient }
- extra { extra }
- @AtTop { @AtTop }
- @FirstPageNum
- { Running Titles NoTitles } @Yield @RunningIntroPageList
- @ColumnNumber { @ColumnNumber }
- @PageHeaders { @PageHeaders }
- @Orient { @Orient }
- extra { extra }
- @AtTop { @AtTop }
- @FirstPageNum
- }
- }
-
- def @ContinuousPageList
- named @Orient {}
- {
- {@OrientedWidth @Orient} @Wide
- { //@TopMargin ||@EvenLeftMargin
- {
- @BeginFootNoteCounter
- // @ColPlace
- //@FootAboveGap @ColFootNoteSection
- //@FootAboveGap @PageFootNoteSection
- }
- ||@EvenRightMargin //@FootMargin
- }
- }
-
-
- ###########################################################################
- # #
- # Table of contents (including lists of figures and tables). #
- # #
- ###########################################################################
-
- def @ContentsItem
- named indent { 0f }
- named crosstag {}
- named number {}
- named title {}
- named pagenum {}
- named pregap { @ContentsGap }
- named postgap { 0c }
- named protect { No }
- {
-# def @Leaders { @ContentsLeader &@ContentsLeaderGap @Leaders }
-
- def @Leaders { @ContentsLeaderGap @Wide {} & @ContentsLeader & @Leaders }
-
- def @OptionalCrossLink right x
- {
- crosstag @Case {
- "" @Yield x
- else @Yield { crosstag @CrossLink x }
- }
- }
-
- def @RightPart
- {
- @ContentsRightWidth @Wide {
- &1rt { @OptionalCrossLink pagenum //0.5vx }
- }
- }
-
-# def @Item
-# {
-# |indent @OptionalCrossLink number @ContentsFormat @HExpand {
-# title & @ContentsLeaderGap @Wide &1rt @OneCol {
-# @Leaders & @RightPart &0io
-# }
-# }
-# |@ContentsRightWidth
-# }
-
- def @Item
- {
- |indent @OptionalCrossLink number @ContentsFormat @HExpand {
- title &1rt @OneCol {
- @Leaders & @RightPart &0io
- }
- }
- |@ContentsRightWidth
- }
-
- //pregap
- //0.5vx
- protect @Case {
- No @Yield @Item
- Yes @Yield @Protect @Item
- }
- //postgap
- }
-
- def @ContentsPlace { @Galley }
- def @FigureContentsPlace { @Galley }
- def @TableContentsPlace { @Galley }
-
- def @SendContents into { @ContentsPlace&&foll_or_prec }
- right x
- {
- x
- }
-
- def @SendFigureContents into { @FigureContentsPlace&&foll_or_prec }
- right x
- {
- x
- }
-
- def @SendTableContents into { @TableContentsPlace&&foll_or_prec }
- right x
- {
- x
- }
-
- def @ContentsEntry
- left wanted
- named indent { 0f }
- named crosstag {}
- named number {}
- named title {}
- named pagenum {}
- named pregap { @ContentsGap }
- named postgap { 0c }
- {
- @MakeContents.wanted @Case {
- Yes.Yes @Yield { @SendContents @ContentsItem
- indent { indent }
- crosstag { crosstag }
- number { number }
- title { title }
- pagenum { pagenum }
- pregap { pregap }
- postgap { postgap }
- }
- else @Yield @Null
- }
- }
-
- def @FigureContentsEntry
- left wanted
- named indent { 0f }
- named crosstag {}
- named number {}
- named title {}
- named pagenum {}
- named pregap { @ContentsGap }
- named postgap { 0c }
- {
- @MakeFigureContents.wanted @Case {
- Yes.Yes @Yield { @SendFigureContents @ContentsItem
- indent { indent }
- crosstag { crosstag }
- number { number }
- title { title }
- pagenum { pagenum }
- pregap { pregap }
- postgap { postgap }
- }
- else @Yield @Null
- }
- }
-
- def @TableContentsEntry
- left wanted
- named indent { 0f }
- named crosstag {}
- named number {}
- named title {}
- named pagenum {}
- named pregap { @ContentsGap }
- named postgap { 0c }
- {
- @MakeTableContents.wanted @Case {
- Yes.Yes @Yield { @SendTableContents @ContentsItem
- indent { indent }
- crosstag { crosstag }
- number { number }
- title { title }
- pagenum { pagenum }
- pregap { pregap }
- postgap { postgap }
- }
- else @Yield @Null
- }
- }
-
- def @MajorContentsEntry
- left wanted
- named indent { 0f }
- named crosstag {}
- named number {}
- named title {}
- named pagenum {}
- named pregap { @ContentsGapAbove }
- named postgap { @ContentsGapBelow }
- {
- @MakeContents.wanted @Case {
- Yes.Yes @Yield { @SendContents @ContentsItem
- indent { indent }
- crosstag { crosstag }
- number { @ContentsFont @Font number }
- title { @ContentsFont @Font title }
- pagenum { pagenum }
- pregap { pregap }
- postgap { postgap }
- protect { Yes }
- }
- else @Yield @Null
- }
- }
-
- def @VeryMajorContentsEntry
- left wanted
- named indent { 0.5rt }
- named title {}
- named pregap { @ContentsPartGapAbove }
- named postgap { @ContentsPartGapBelow }
- {
- def item
- {
- //pregap
- //0.5vx
- |indent @ContentsFont @Font @OneCol title |
- //0.5vx
- //postgap
- }
-
- @MakeContents.wanted @Case {
- Yes.Yes @Yield @SendContents item
- else @Yield @Null
- }
-
- }
-
- def @ContentsSection
- {
- def @ContentsList { @ContentsPlace // @ContentsList }
-
- @MakeContents @Case {
- { Yes Bypass } @Yield @ContentsList
- else @Yield @Null
- }
- }
-
- def @FigureContentsSection
- {
- def @FigureContentsList { @FigureContentsPlace // @FigureContentsList }
-
- @MakeFigureContents @Case {
- { Yes Bypass } @Yield @FigureContentsList
- else @Yield @Null
- }
- }
-
- def @TableContentsSection
- {
- def @TableContentsList { @TableContentsPlace // @TableContentsList }
-
- @MakeTableContents @Case {
- { Yes Bypass } @Yield @TableContentsList
- else @Yield @Null
- }
- }
-
- ###########################################################################
- # #
- # Bypass table of contents. #
- # #
- ###########################################################################
-
- def @BypassContentsEntry into { @ContentsPlace&&preceding }
- named indent { 0f }
- named crosstag {}
- named number {}
- named title {}
- named pagenum {}
- {
- @MakeContents @Case {
- Bypass @Yield { @ContentsItem
- indent { indent }
- crosstag { crosstag }
- number { number }
- title { title }
- pagenum { pagenum }
- pregap { @ContentsGap }
- postgap { 0c }
- }
- else @Yield @Null
- }
- }
-
- def @BypassFigureContentsEntry into { @FigureContentsPlace&&preceding }
- named indent { 0f }
- named crosstag {}
- named number {}
- named title {}
- named pagenum {}
- {
- @MakeFigureContents @Case {
- Bypass @Yield { @ContentsItem
- indent { indent }
- crosstag { crosstag }
- number { number }
- title { title }
- pagenum { pagenum }
- pregap { @ContentsGap }
- postgap { 0c }
- }
- else @Yield @Null
- }
- }
-
- def @BypassTableContentsEntry into { @TableContentsPlace&&preceding }
- named indent { 0f }
- named crosstag {}
- named number {}
- named title {}
- named pagenum {}
- {
- @MakeTableContents @Case {
- Bypass @Yield { @ContentsItem
- indent { indent }
- crosstag { crosstag }
- number { number }
- title { title }
- pagenum { pagenum }
- pregap { @ContentsGap }
- postgap { 0c }
- }
- else @Yield @Null
- }
- }
-
- def @BypassMajorContentsEntry into { @ContentsPlace&&preceding }
- named indent { 0f }
- named crosstag {}
- named number {}
- named title {}
- named pagenum {}
- {
- @MakeContents @Case {
- Bypass @Yield { @ContentsItem
- indent { indent }
- crosstag { crosstag }
- number { @B number }
- title { @B title }
- pagenum { pagenum }
- pregap { @ContentsGapAbove }
- postgap { @ContentsGapBelow }
- }
- else @Yield @Null
- }
- }
-
-
- ###########################################################################
- # #
- # Endnotes. #
- # #
- ###########################################################################
-
- export num
- def @EndNoteList
- named @Tag {}
- right num
- {
- @Galley //@EndNoteGap @EndNoteList @Next num
- }
-
- def endtag right num
- {
- @BackEnd @Case {
- PlainText @Yield {
- ({@EndNoteNumbers @Num num})
- }
- else @Yield {
- +0.3v @VShift 0.8f @Font @EndNoteNumbers @Num num
- }
- }
- }
-
- def @EndNote
- named @Tag {}
- right x
- {
- def ftag
- {
- @EndNoteFont @Font @EndNoteList&&@Tag @Open { endtag num }
- }
-
- def @ENote into { @EndNoteList&&following }
- {
- @EndNoteFont @Font @EndNoteBreak @Break
- { { @EndNoteList&&preceding @Tagged @Tag ftag } @EndNoteFormat x }
- }
-
- @Null & @EndNoteFont @Font ftag & @ENote
- }
-
-
- ###########################################################################
- # #
- # Margin Notes. #
- # #
- ###########################################################################
-
- def @ZeroSize right x
- {
- @HContract @VContract { ^/0io |0io @OneCol @OneRow x |0io /0io }
- }
-
- def @MargPut
- left parity
- right x
- {
- @MarginNoteFont @Font @MarginNoteBreak @Break @ZeroSize {
- @BackEnd @Case {
- PlainText @Yield ""
- PostScript @Yield {
- { parity "LoutMargShift gsave" // "grestore" } @Graphic
- {
- |@MarginNoteHGap @MarginNoteWidth @Wide @OneRow x
- |@MarginNoteHGap //@MarginNoteVGap
- }
- }
- PDF @Yield { "% @MargPut/LoutMargShift UNIMPLEMENTED" @Graphic {
- |@MarginNoteHGap @MarginNoteWidth @Wide @OneRow x
- |@MarginNoteHGap //@MarginNoteVGap
- } # VT: PDF currently has no output
- }
- }
- }
- }
-
- def @LeftNote right x { @Null & 0 @MargPut x }
- def @RightNote right x { @Null & 1 @MargPut x }
- def @OuterNote right x { @Null & 2 @MargPut x }
- def @InnerNote right x { @Null & 3 @MargPut x }
-
-
- ###########################################################################
- # #
- # @Place: places an object at an arbitrary point on the page. #
- # #
- ###########################################################################
-
-#
-# VT: the expressions in the braces will work for PostScript but not for PDF
-# they should be modified in the way the "named c { " cm" }" blocks were modified above
-# but since the point of @Place is to output a matrix (?), I have not implemented this change
-#
- def @Place
- import @PSLengths named x
- named "+" precedence 96 associativity left left a right b { a b "add" }
- named "-" precedence 96 associativity left left a right b { a b "sub" }
- named "/" precedence 97 associativity left left a right b { a b "div" }
- named "*" precedence 98 associativity left left a right b { a b "mul" }
- # named c precedence 99 left a { a "cm" }
- # named i precedence 99 left a { a "in" }
- # named e precedence 99 left a { a "em" }
- # named p precedence 99 left a { a "pt" }
- # named f precedence 99 left a { a "ft" }
- # named s precedence 99 left a { a "sp" }
- # named v precedence 99 left a { a "vs" }
- # named cm precedence 99 left a { a "cm" }
- # named in precedence 99 left a { a "in" }
- # named em precedence 99 left a { a "em" }
- # named pt precedence 99 left a { a "pt" }
- # named ft precedence 99 left a { a "ft" }
- # named sp precedence 99 left a { a "sp" }
- # named vs precedence 99 left a { a "vs" }
- { 0 }
- import @PSLengths named y
- named "+" precedence 96 associativity left left a right b { a b "add" }
- named "-" precedence 96 associativity left left a right b { a b "sub" }
- named "/" precedence 97 associativity left left a right b { a b "div" }
- named "*" precedence 98 associativity left left a right b { a b "mul" }
- # named c precedence 99 left a { a "cm" }
- # named i precedence 99 left a { a "in" }
- # named e precedence 99 left a { a "em" }
- # named p precedence 99 left a { a "pt" }
- # named f precedence 99 left a { a "ft" }
- # named s precedence 99 left a { a "sp" }
- # named v precedence 99 left a { a "vs" }
- # named cm precedence 99 left a { a "cm" }
- # named in precedence 99 left a { a "in" }
- # named em precedence 99 left a { a "em" }
- # named pt precedence 99 left a { a "pt" }
- # named ft precedence 99 left a { a "ft" }
- # named sp precedence 99 left a { a "sp" }
- # named vs precedence 99 left a { a "vs" }
- { 0 }
- right val
- {
- @ZeroSize {
- @BackEnd @Case {
- PlainText @Yield ""
- PostScript @Yield {
- { "LoutPageDict begin matr setmatrix" x y "translate end gsave"
- // "grestore" } @Graphic val
- }
- else @Yield { { "% @Place UNIMPLEMENTED" } @Graphic val # VT: PDF currently has no output
- }
- }
- }
- }
-
-
- ###########################################################################
- # #
- # @Theorem, @Proof, and @EndProof #
- # #
- ###########################################################################
-
- export @Tag val
- def @TheoremCounterMarker
- named @Tag {}
- named val {}
- {
- @Null
- }
-
- def @BeginTheoremCounter
- right prefix
- {
- @TheoremCounterMarker val { prefix @Join 0 }
- }
-
- def @TheoremNum right tag
- {
- @TheoremCounterMarker&&tag @Open { @Next val }
- }
-
- def @TheoremCounterIncrement
- right tag
- {
- @TheoremCounterMarker&&preceding @Tagged tag
- @TheoremCounterMarker val { @TheoremNum tag }
- @NumberMarker @Tag { tag } @Value { @TheoremNum tag }
- }
-
- def @Theorem
- named @Tag {}
- named @Title {}
- right x
- {
- def @TheoremTitle
- {
- @Title @Case {
- "" @Yield @Null
- else @Yield @TheoremTitleFormat @Title
- }
- }
-
- { @PageMark @Tag & @TheoremCounterIncrement @Tag } @Insert
- @TheoremFormat
- word { theorem @WordVal @TheoremWord }
- number { @TheoremNum @Tag }
- title { @TheoremTitle }
- body { x }
- }
-
- macro @Proof { @B { {proof @WordVal @ProofWord}: } &2s }
-
- macro @EndProof { &1rt @Box {} }
-
-
- ###########################################################################
- # #
- # @Definition #
- # #
- ###########################################################################
-
- export @Tag val
- def @DefinitionCounterMarker
- named @Tag {}
- named val {}
- {
- @Null
- }
-
- def @BeginDefinitionCounter
- right prefix
- {
- @DefinitionCounterMarker val { prefix @Join 0 }
- }
-
- def @DefinitionNum right tag
- {
- @DefinitionCounterMarker&&tag @Open { @Next val }
- }
-
- def @DefinitionCounterIncrement
- right tag
- {
- @DefinitionCounterMarker&&preceding @Tagged tag
- @DefinitionCounterMarker val { @DefinitionNum tag }
- @NumberMarker @Tag { tag } @Value { @DefinitionNum tag }
- }
-
- def @Definition
- named @Tag {}
- named @Title {}
- right x
- {
- def @DefinitionTitle
- {
- @Title @Case {
- "" @Yield @Null
- else @Yield (@Title)
- }
- }
-
- { @PageMark @Tag & @DefinitionCounterIncrement @Tag } @Insert
- @DefinitionFormat
- word { definition @WordVal @DefinitionWord }
- number { @DefinitionNum @Tag }
- title { @DefinitionTitle }
- body { x }
- }
-
-
- ###########################################################################
- # #
- # @Claim #
- # #
- ###########################################################################
-
- export @Tag val
- def @ClaimCounterMarker
- named @Tag {}
- named val {}
- {
- @Null
- }
-
- def @BeginClaimCounter
- right prefix
- {
- @ClaimCounterMarker val { prefix @Join 0 }
- }
-
- def @ClaimNum right tag
- {
- @ClaimCounterMarker&&tag @Open { @Next val }
- }
-
- def @ClaimCounterIncrement
- right tag
- {
- @ClaimCounterMarker&&preceding @Tagged tag
- @ClaimCounterMarker val { @ClaimNum tag }
- @NumberMarker @Tag { tag } @Value { @ClaimNum tag }
- }
-
- def @Claim
- named @Tag {}
- named @Title {}
- right x
- {
- def @ClaimTitle
- {
- @Title @Case {
- "" @Yield @Null
- else @Yield (@Title)
- }
- }
-
- { @PageMark @Tag & @ClaimCounterIncrement @Tag } @Insert
- @ClaimFormat
- word { claim @WordVal @ClaimWord }
- number { @ClaimNum @Tag }
- title { @ClaimTitle }
- body { x }
- }
-
-
- ###########################################################################
- # #
- # @Proposition #
- # #
- ###########################################################################
-
- export @Tag val
- def @PropositionCounterMarker
- named @Tag {}
- named val {}
- {
- @Null
- }
-
- def @BeginPropositionCounter
- right prefix
- {
- @PropositionCounterMarker val { prefix @Join 0 }
- }
-
- def @PropositionNum right tag
- {
- @PropositionCounterMarker&&tag @Open { @Next val }
- }
-
- def @PropositionCounterIncrement
- right tag
- {
- @PropositionCounterMarker&&preceding @Tagged tag
- @PropositionCounterMarker val { @PropositionNum tag }
- @NumberMarker @Tag { tag } @Value { @PropositionNum tag }
- }
-
- def @Proposition
- named @Tag {}
- named @Title {}
- right x
- {
- def @PropositionTitle
- {
- @Title @Case {
- "" @Yield @Null
- else @Yield (@Title)
- }
- }
-
- { @PageMark @Tag & @PropositionCounterIncrement @Tag } @Insert
- @PropositionFormat
- word { proposition @WordVal @PropositionWord }
- number { @PropositionNum @Tag }
- title { @PropositionTitle }
- body { x }
- }
-
-
- ###########################################################################
- # #
- # @Lemma #
- # #
- ###########################################################################
-
- export @Tag val
- def @LemmaCounterMarker
- named @Tag {}
- named val {}
- {
- @Null
- }
-
- def @BeginLemmaCounter
- right prefix
- {
- @LemmaCounterMarker val { prefix @Join 0 }
- }
-
- def @LemmaNum right tag
- {
- @LemmaCounterMarker&&tag @Open { @Next val }
- }
-
- def @LemmaCounterIncrement
- right tag
- {
- @LemmaCounterMarker&&preceding @Tagged tag
- @LemmaCounterMarker val { @LemmaNum tag }
- @NumberMarker @Tag { tag } @Value { @LemmaNum tag }
- }
-
- def @Lemma
- named @Tag {}
- named @Title {}
- right x
- {
- def @LemmaTitle
- {
- @Title @Case {
- "" @Yield @Null
- else @Yield (@Title)
- }
- }
-
- { @PageMark @Tag & @LemmaCounterIncrement @Tag } @Insert
- @LemmaFormat
- word { lemma @WordVal @LemmaWord }
- number { @LemmaNum @Tag }
- title { @LemmaTitle }
- body { x }
- }
-
-
- ###########################################################################
- # #
- # @Corollary #
- # #
- ###########################################################################
-
- export @Tag val
- def @CorollaryCounterMarker
- named @Tag {}
- named val {}
- {
- @Null
- }
-
- def @BeginCorollaryCounter
- right prefix
- {
- @CorollaryCounterMarker val { prefix @Join 0 }
- }
-
- def @CorollaryNum right tag
- {
- @CorollaryCounterMarker&&tag @Open { @Next val }
- }
-
- def @CorollaryCounterIncrement
- right tag
- {
- @CorollaryCounterMarker&&preceding @Tagged tag
- @CorollaryCounterMarker val { @CorollaryNum tag }
- @NumberMarker @Tag { tag } @Value { @CorollaryNum tag }
- }
-
- def @Corollary
- named @Tag {}
- named @Title {}
- right x
- {
- def @CorollaryTitle
- {
- @Title @Case {
- "" @Yield @Null
- else @Yield (@Title)
- }
- }
-
- { @PageMark @Tag & @CorollaryCounterIncrement @Tag } @Insert
- @CorollaryFormat
- word { corollary @WordVal @CorollaryWord }
- number { @CorollaryNum @Tag }
- title { @CorollaryTitle }
- body { x }
- }
-
-
- ###########################################################################
- # #
- # @Example #
- # #
- ###########################################################################
-
- export @Tag val
- def @ExampleCounterMarker
- named @Tag {}
- named val {}
- {
- @Null
- }
-
- def @BeginExampleCounter
- right prefix
- {
- @ExampleCounterMarker val { prefix @Join 0 }
- }
-
- def @ExampleNum right tag
- {
- @ExampleCounterMarker&&tag @Open { @Next val }
- }
-
- def @ExampleCounterIncrement
- right tag
- {
- @ExampleCounterMarker&&preceding @Tagged tag
- @ExampleCounterMarker val { @ExampleNum tag }
- @NumberMarker @Tag { tag } @Value { @ExampleNum tag }
- }
-
- def @Example
- named @Tag {}
- named @Title {}
- right x
- {
- def @ExampleTitle
- {
- @Title @Case {
- "" @Yield @Null
- else @Yield (@Title)
- }
- }
-
- { @PageMark @Tag & @ExampleCounterIncrement @Tag } @Insert
- @ExampleFormat
- word { example @WordVal @ExampleWord }
- number { @ExampleNum @Tag }
- title { @ExampleTitle }
- body { x }
- }
-
-
- ###########################################################################
- # #
- # @BeginAllCounters - begin all counters #
- # #
- ###########################################################################
-
- def @BeginAllCounters
- left condition
- right prefix
- {
- condition @Do {
- @BeginTheoremCounter prefix
- // @BeginDefinitionCounter prefix
- // @BeginClaimCounter prefix
- // @BeginPropositionCounter prefix
- // @BeginLemmaCounter prefix
- // @BeginCorollaryCounter prefix
- // @BeginExampleCounter prefix
- }
- }
-
-
- ###########################################################################
- # #
- # @Reference - a reference. #
- # #
- ###########################################################################
-
- export @Tag @Type @Abstract @Address @Annote @Author @Day @Edition
- @HowPublished @InAuthor @InTitle @Institution @Journal @Keywords
- @Label @Month @Note @Number @Organization @Page @Pages @Pinpoint
- @Publisher @Title @TitleNote @TRType @URL @Volume @Year
-
- def @Reference
- named compulsory @Tag {}
- named compulsory @Type {}
- named @Abstract {}
- named @Address {}
- named @Annote {}
- named @Author {}
- named @Day {}
- named @Edition {}
- named @HowPublished {}
- named @InAuthor {}
- named @InTitle {}
- named @Institution {}
- named @Journal {}
- named @Keywords {}
- named @Label {}
- named @Month {}
- named @Note {}
- named @Number {}
- named @Organization {}
- named @Page {}
- named @Pages {}
- named @Pinpoint {}
- named @Publisher {}
- named @Title {}
- named @TitleNote {}
- named @TRType {}
- named @URL
- named "~" { "~" }
- named "/" { "/" &0p }
- named "//" { "//" &0p } {}
- named @Volume {}
- named @Year {}
- { @Null }
-
-
- ###########################################################################
- # #
- # @CiteLabel - the value of the label of a reference within a citation. #
- # #
- ###########################################################################
-
- def @CiteLabel
- left label
- right tag
- {
- tag @CrossLink @RefCiteLabels
- @RefNum { @NumberOf tag }
- @Tag { tag }
- @Type { @Reference&&tag @Open { @Type } }
- @Abstract { @Reference&&tag @Open { @Abstract } }
- @Address { @Reference&&tag @Open { @Address } }
- @Annote { @Reference&&tag @Open { @Annote } }
- @Author { @Reference&&tag @Open { @Author } }
- @Day { @Reference&&tag @Open { @Day } }
- @Edition { @Reference&&tag @Open { @Edition } }
- @HowPublished { @Reference&&tag @Open { @HowPublished } }
- @InAuthor { @Reference&&tag @Open { @InAuthor } }
- @InTitle { @Reference&&tag @Open { @InTitle } }
- @Institution { @Reference&&tag @Open { @Institution } }
- @Journal { @Reference&&tag @Open { @Journal } }
- @Keywords { @Reference&&tag @Open { @Keywords } }
-
- @Label { label @Case {
- "" @Yield {@Reference&&tag @Open {@Label}}
- else @Yield label
- } }
-
- @Month { @Reference&&tag @Open { @Month } }
- @Note { @Reference&&tag @Open { @Note } }
- @Number { @Reference&&tag @Open { @Number } }
- @Organization { @Reference&&tag @Open { @Organization } }
- @Page { @Reference&&tag @Open { @Page } }
- @Pages { @Reference&&tag @Open { @Pages } }
- @Pinpoint { @Reference&&tag @Open { @Pinpoint } }
- @Publisher { @Reference&&tag @Open { @Publisher } }
- @Title { @Reference&&tag @Open { @Title } }
- @TitleNote { @Reference&&tag @Open { @TitleNote } }
- @TRType { @Reference&&tag @Open { @TRType } }
- @Volume { @Reference&&tag @Open { @Volume } }
- @Year { @Reference&&tag @Open { @Year } }
- }
-
-
- ###########################################################################
- # #
- # @ListLabel - the value of the label of a reference within a ref list. #
- # #
- ###########################################################################
-
- def @ListLabel
- left label
- right tag
- {
- @RefListLabels
- @RefNum { @NumberOf tag }
- @Tag { tag }
- @Type { @Reference&&tag @Open { @Type } }
- @Abstract { @Reference&&tag @Open { @Abstract } }
- @Address { @Reference&&tag @Open { @Address } }
- @Annote { @Reference&&tag @Open { @Annote } }
- @Author { @Reference&&tag @Open { @Author } }
- @Day { @Reference&&tag @Open { @Day } }
- @Edition { @Reference&&tag @Open { @Edition } }
- @HowPublished { @Reference&&tag @Open { @HowPublished } }
- @InAuthor { @Reference&&tag @Open { @InAuthor } }
- @InTitle { @Reference&&tag @Open { @InTitle } }
- @Institution { @Reference&&tag @Open { @Institution } }
- @Journal { @Reference&&tag @Open { @Journal } }
- @Keywords { @Reference&&tag @Open { @Keywords } }
-
- @Label { label @Case {
- "" @Yield {@Reference&&tag @Open {@Label}}
- else @Yield label
- } }
-
- @Month { @Reference&&tag @Open { @Month } }
- @Note { @Reference&&tag @Open { @Note } }
- @Number { @Reference&&tag @Open { @Number } }
- @Organization { @Reference&&tag @Open { @Organization } }
- @Page { @Reference&&tag @Open { @Page } }
- @Pages { @Reference&&tag @Open { @Pages } }
- @Pinpoint { @Reference&&tag @Open { @Pinpoint } }
- @Publisher { @Reference&&tag @Open { @Publisher } }
- @Title { @Reference&&tag @Open { @Title } }
- @TitleNote { @Reference&&tag @Open { @TitleNote } }
- @TRType { @Reference&&tag @Open { @TRType } }
- @Volume { @Reference&&tag @Open { @Volume } }
- @Year { @Reference&&tag @Open { @Year } }
- }
-
-
- ###########################################################################
- # #
- # @SortKey - the value of the sort key of a reference. #
- # #
- ###########################################################################
-
- def @SortKey
- left label
- right tag
- {
- @RefListSortKey
- @Tag { tag }
- @Type { @Reference&&tag @Open { @Type } }
- @Abstract { @Reference&&tag @Open { @Abstract } }
- @Address { @Reference&&tag @Open { @Address } }
- @Annote { @Reference&&tag @Open { @Annote } }
- @Author { @Reference&&tag @Open { @Author } }
-
- @CiteOrder { {@NumberOf tag} @Case {
- "??" @Yield "??"
- else @Yield { "1000" @Plus @NumberOf tag }
- }
- }
-
- @Day { @Reference&&tag @Open { @Day } }
- @Edition { @Reference&&tag @Open { @Edition } }
- @HowPublished { @Reference&&tag @Open { @HowPublished } }
- @InAuthor { @Reference&&tag @Open { @InAuthor } }
- @InTitle { @Reference&&tag @Open { @InTitle } }
- @Institution { @Reference&&tag @Open { @Institution } }
- @Journal { @Reference&&tag @Open { @Journal } }
- @Keywords { @Reference&&tag @Open { @Keywords } }
-
- @Label { label @Case {
- "" @Yield {@Reference&&tag @Open {@Label}}
- else @Yield label
- }
- }
-
- @Month { @Reference&&tag @Open { @Month } }
- @Note { @Reference&&tag @Open { @Note } }
- @Number { @Reference&&tag @Open { @Number } }
- @Organization { @Reference&&tag @Open { @Organization } }
- @Page { @Reference&&tag @Open { @Page } }
- @Pages { @Reference&&tag @Open { @Pages } }
- @Pinpoint { @Reference&&tag @Open { @Pinpoint } }
- @Publisher { @Reference&&tag @Open { @Publisher } }
- @Title { @Reference&&tag @Open { @Title } }
- @TitleNote { @Reference&&tag @Open { @TitleNote } }
- @TRType { @Reference&&tag @Open { @TRType } }
- @Volume { @Reference&&tag @Open { @Volume } }
- @Year { @Reference&&tag @Open { @Year } }
- }
-
-
- ###########################################################################
- # #
- # @RefStyle - a reference printing style. #
- # #
- ###########################################################################
-
- export @Style
- def @RefStyle
- left @Tag
- named @Style right reftag {}
- {}
-
-
- ###########################################################################
- # #
- # @RefPrint - prints reference with tag reftag in appropriate style. #
- # #
- ###########################################################################
-
- def @RefPrint right reftag
- { & @RefStyle&&{ @Reference&&reftag @Open { @Type } }
- @Open { @Style reftag } &
- }
-
-
- ###########################################################################
- # #
- # @ReferencesSection and @ChapReferencesSection - a list of references. #
- # #
- ###########################################################################
-
- def @RefPlace { @Galley }
- def @ChapRefPlace { @Galley }
-
- def @BypassRefPlace { @Galley }
- def @BypassChapRefPlace { @Galley }
-
- def @ReferencesSection
- {
- def @RefList right num
- {
- @NumberMarker @Value { @RefNumbers @Num num } & | @RefPlace
- //@RefListGap @RefList @Next num
- }
-
- def @BypassRefList
- {
- @BypassRefPlace //@RefListGap @BypassRefList
- }
-
- @RefList 1
- //@RefListGap
- @BypassRefList
- }
-
- def @ChapReferencesSection
- {
- def @ChapRefList right num
- {
- @NumberMarker @Value { @RefNumbers @Num num } & | @ChapRefPlace
- //@RefListGap @ChapRefList @Next num
- }
-
- def @BypassChapRefList
- {
- @BypassChapRefPlace //@RefListGap @BypassChapRefList
- }
-
- @ChapRefList 1
- //@RefListGap
- @BypassChapRefList
- }
-
-
- ###########################################################################
- # #
- # @RefHeading - heading for reference lists. #
- # #
- ###########################################################################
-
- def @RefHeading right x
- { x @Case {
- references @Yield @Word&&references
- bibliography @Yield @Word&&bibliography
- else @Yield x
- }
- }
-
-
- #######################################################################
- # #
- # @ChapRefSection #
- # #
- #######################################################################
-
- def @ChapRefSection
- {
- @Heading @RefHeading @ChapRefListTitle
- @DP
- @ChapReferencesSection
- }
-
-
- ###########################################################################
- # #
- # @SendRef and @ChapSendRef - send one reference to the reference list. #
- # #
- ###########################################################################
-
- def @RefItem
- left lab
- right ref
- {
- def @ZeroWidth right x { &0io @OneCol x &0io }
-
- @RefListFormat @Case {
- NoLabels @Yield { ref }
- Labels @Yield { @ZeroWidth lab |@RefListLabelWidth ref }
- DropLabels @Yield { lab //1vx |@RefListLabelWidth ref }
- InLabels @Yield { lab & 2s @Wide & ref }
- }
- }
-
-
- def @RefListItem
- left label
- right tag
- {
- @RefListFont @Font @RefListBreak @Break {
- @NumberMarker&&preceding @Tagged tag & @PageMark tag
- |@RefListIndent {label @ListLabel tag} @RefItem {@RefPrint tag}
- |@RefListRightIndent
- }
- }
-
-
- def @SendRef into { @RefPlace&&foll_or_prec }
- left label
- right tag
- {
- def @Key { label @SortKey tag }
-
- # no @Merge i.e. omit duplicates
-
- label @RefListItem tag
- }
-
-
- def @ChapSendRef into { @ChapRefPlace&&foll_or_prec }
- left label
- right tag
- {
- def @Key { label @SortKey tag }
-
- # no @Merge i.e. omit duplicates
-
- label @RefListItem tag
- }
-
-
- ###########################################################################
- # #
- # @Ref (bare citation) and its variants. #
- # #
- ###########################################################################
-
- def @Ref
- named label {}
- right tag
- {
- @MakeReferences @Case {
- Yes @Yield { label @CiteLabel tag & label @SendRef tag }
- else @Yield @Null
- }
- }
-
- def @NoRef
- named label {}
- right tag
- {
- @MakeReferences @Case {
- Yes @Yield { label @SendRef tag }
- else @Yield @Null
- }
- }
-
- def @ChapRef
- named label {}
- right tag
- {
- @MakeReferences @Case {
- Yes @Yield { label @CiteLabel tag & label @ChapSendRef tag }
- else @Yield @Null
- }
- }
-
- def @NoChapRef
- named label {}
- right tag
- {
- @MakeReferences @Case {
- Yes @Yield { label @ChapSendRef tag }
- else @Yield @Null
- }
- }
-
-
- ###########################################################################
- # #
- # Bypass references. #
- # #
- ###########################################################################
-
- def @BypassReference into { @BypassRefPlace&&preceding }
- named label {}
- named value {}
- {
- @MakeReferences @Case {
- Bypass @Yield { label @RefItem value }
- else @Yield @Null
- }
- }
-
- def @BypassChapReference into { @BypassChapRefPlace&&preceding }
- named label {}
- named value {}
- {
- @MakeReferences @Case {
- Bypass @Yield { label @RefItem value }
- else @Yield @Null
- }
- }
-
-
- ###########################################################################
- # #
- # @Cite (citation) and its variants. #
- # #
- ###########################################################################
-
- export "$" "," ";"
- def @Cite body cite
- {
- macro "$" { @Ref }
- def "," precedence 90 left x { x"," }
- def ";" precedence 90 left x { x";" }
-
- @MakeReferences @Case {
- Yes @Yield {
- @RefCiteStyle cite
- }
- else @Yield @Null
- }
- }
-
- export "$" "," ";"
- def @NoCite body cite
- {
- macro "$" { @NoRef }
- def "," precedence 90 left x { x"," }
- def ";" precedence 90 left x { x";" }
-
- @MakeReferences @Case {
- Yes @Yield { cite }
- else @Yield @Null
- }
- }
-
- export "$" "," ";"
- def @ChapCite body cite
- {
- macro "$" { @ChapRef }
- def "," precedence 90 left x { x"," }
- def ";" precedence 90 left x { x";" }
-
- @MakeReferences @Case {
- Yes @Yield { @RefCiteStyle cite }
- else @Yield @Null
- }
- }
-
- export "$" "," ";"
- def @NoChapCite body cite
- {
- macro "$" { @NoChapRef }
- def "," precedence 90 left x { x }
- def ";" precedence 90 left x { x";" }
-
- @MakeReferences @Case {
- Yes @Yield { cite }
- else @Yield @Null
- }
- }
-
- ###########################################################################
- # #
- # Floating figures. #
- # #
- ###########################################################################
-
- export @Tag prefix
- def @FigurePrefixMarker
- named @Tag {}
- named prefix {}
- {
- @Null
- }
-
- export @Tag count
- def @FigureCounterMarker
- named @Tag {}
- named count {}
- {
- @Null
- }
-
- def @RawFigureNum right tag
- {
- @FigureCounterMarker&&tag @Open { @Next count }
- }
-
- def @FigureCounterIncrement
- right tag
- {
- @FigureCounterMarker&&preceding @Tagged tag
- // @FigurePrefixMarker&&preceding @Tagged tag
- // @FigureCounterMarker count { @RawFigureNum tag }
- // @NumberMarker @Tag { tag }
- @Value { { @FigurePrefixMarker&&tag @Open { prefix } }
- @Join {@FigureNumbers @Num @RawFigureNum tag}
- }
- }
-
- def @BeginFigureCounter
- left condition
- right prefix
- {
- condition @Do {
- @FigurePrefixMarker prefix { prefix }
- // @FigureCounterMarker count { 0 }
- }
- }
-
- def @EndFigureList { @Galley //@MidGap @EndFigureList }
-
- def @Figure
- named @Tag {}
- named @Caption { dft }
- named @ShortCaption { dft }
- named @CaptionPos { @FigureCaptionPos }
- named @Format
- named @II right x { |@DisplayIndent x | }
- named @QQ right x { |@DisplayIndent x |@DisplayIndent }
- named @CC right x { |0.5rt x | }
- named @RR right x { |1.0rt x | }
- right @Body { @FigureFormat @Body }
- named @InitialLanguage { @InitialLanguage }
- named @BypassNumber { dft }
- named @OnePage { dft }
- named @Location { @FigureLocation }
- right @Body
- {
- def @FigureNumber
- {
- @BypassNumber @Dft @NumberOf @Tag
- }
-
- def @ContentsCaption
- {
- @ShortCaption @Dft @Caption
- }
-
- def @OnePg
- {
- @OnePage @Case {
- { No no } @Yield No
- { Yes yes } @Yield Yes
- dft @Yield { @Location @Case {
- PageTop @Yield No
- EvenPageTop @Yield No
- FullPage @Yield No
- EvenFullPage @Yield No
- PageFoot @Yield Yes
- ColTop @Yield No
- ColFoot @Yield Yes
- ColEnd @Yield No
- Display @Yield Yes
- AfterLine @Yield Yes
- TryAfterLine @Yield Yes
- Raw @Yield No
- }
- }
- }
- }
-
- def @CaptionState
- {
- @Caption @Case {
- dft @Yield None
- else @Yield { @CaptionPos @Case {
- { Below below } @Yield Below
- { Above above } @Yield Above
- } }
- }
- }
-
- #def @FigureLabel
- #{
- # @FigureNumbers @Case {
- # No @Yield @Null
- # else @Yield {
- # @CaptionFormat { {figure @WordVal @FigureWord} @NumSep @FigureNumber }
- # }
- # }
- #}
-
- def @CaptionVal
- {
- @FigureCaptionFont @Font @FigureCaptionBreak @Break
- { ||0.5rt @FigureCaptionFormat
- word { figure @WordVal @FigureWord }
- number { @FigureNumber }
- caption { @Caption }
- }
- }
-
- def @FigureVal
- {
- @InitialLanguage @Language
- {
- @MakeFigureContents @FigureContentsEntry
- indent { 0f }
- crosstag { @Tag }
- number { @FigureNumber }
- title { @InitialLanguage @Language @ContentsCaption }
- pagenum { @PageOf @Tag }
- // @FigureCounterIncrement @Tag
- // @Body
- // @PageMark @Tag
- }
- }
-
- def @FigureTarget
- {
- @Location @Case {
- PageTop @Yield @PageTopPlace&&following
- EvenPageTop @Yield @PageTopPlace&&following
- FullPage @Yield @FullPagePlace&&following
- EvenFullPage @Yield @FullPagePlace&&following
- PageFoot @Yield @PageFootAndTopPlace&&following
- ColTop @Yield @ColTopPlace&&following
- ColFoot @Yield @ColFootAndTopPlace&&following
- ColEnd @Yield @EndFigureList&&following
- Display @Yield @AfterLinePlace&&following
- AfterLine @Yield @AfterLinePlace&&following
- TryAfterLine @Yield @TryAfterLinePlace&&following
- }
- }
-
- def @SendEncl into { @FigureTarget }
- right x
- {
- def @Enclose right x
- {
- @OnePg @Case {
- No @Yield @Format x
- Yes @Yield x
- }
- }
-
- x
- }
-
- def @Send into { @FigureTarget }
- right x
- {
- x
- }
-
- def @EvenFullPageSend into { @EvenFullPagePlace&&following }
- right x
- {
- @OneRow x
- }
-
- def @EvenPageSend into { @EvenPagePlace&&following }
- right x
- {
- @OneRow x
- }
-
- def @RawFigureVal
- {
- @OnePg.@CaptionState @Case
- {
- Yes.Below @Yield @OneRow { @Format @FigureVal @DP @CaptionVal }
- Yes.Above @Yield @OneRow { @CaptionVal @DP @Format @FigureVal }
- Yes.None @Yield @OneRow { @Format @FigureVal }
- No.Below @Yield { @Format @FigureVal @DP @CaptionVal }
- No.Above @Yield { @CaptionVal @DP @Format @FigureVal }
- No.None @Yield { @Format @FigureVal }
- }
- }
-
- def @NonRawFigureVal
- {
- @OnePg.@CaptionState @Case
- {
- Yes.Below @Yield {
- @Send @OneRow { @Format @FigureVal @DP @CaptionVal // @DupRunner}
- }
- Yes.Above @Yield {
- @Send @OneRow { @CaptionVal @DP @Format @FigureVal // @DupRunner}
- }
- Yes.None @Yield {
- @Send @OneRow { @Format @FigureVal // @DupRunner }
- }
- No.Below @Yield {
- @SendEncl { @FigureVal // @Send { @CaptionVal // @DupRunner } }
- }
- No.Above @Yield {
- @Send { @CaptionVal // @SendEncl { @FigureVal // @DupRunner } }
- }
- No.None @Yield {
- @SendEncl { @FigureVal // @DupRunner }
- }
- }
- }
-
- @Location @Case {
- Raw @Yield @RawFigureVal
- Display @Yield { @NonRawFigureVal &1rt }
- EvenPageTop @Yield @EvenPageSend @NonRawFigureVal
- EvenFullPage @Yield @EvenFullPageSend @NonRawFigureVal
- else @Yield @NonRawFigureVal
- }
- }
-
-
- ###########################################################################
- # #
- # Floating tables (exact clone of figure code immediately above). #
- # #
- ###########################################################################
-
- export @Tag prefix
- def @TablePrefixMarker
- named @Tag {}
- named prefix {}
- {
- @Null
- }
-
- export @Tag count
- def @TableCounterMarker
- named @Tag {}
- named count {}
- {
- @Null
- }
-
- def @RawTableNum right tag
- {
- @TableCounterMarker&&tag @Open { @Next count }
- }
-
- def @TableCounterIncrement
- right tag
- {
- @TableCounterMarker&&preceding @Tagged tag
- // @TablePrefixMarker&&preceding @Tagged tag
- // @TableCounterMarker count { @RawTableNum tag }
- // @NumberMarker @Tag { tag }
- @Value { { @TablePrefixMarker&&tag @Open { prefix } }
- @Join {@TableNumbers @Num @RawTableNum tag}
- }
- }
-
- def @BeginTableCounter
- left condition
- right prefix
- {
- condition @Do {
- @TablePrefixMarker prefix { prefix }
- // @TableCounterMarker count { 0 }
- }
- }
-
- def @EndTableList { @Galley //@MidGap @EndTableList }
-
- def @Table
- named @Tag {}
- named @Caption { dft }
- named @ShortCaption { dft }
- named @CaptionPos { @TableCaptionPos }
- named @Format
- named @II right x { |@DisplayIndent x | }
- named @QQ right x { |@DisplayIndent x |@DisplayIndent }
- named @CC right x { |0.5rt x | }
- named @RR right x { |1.0rt x | }
- right @Body { @TableFormat @Body }
- named @InitialLanguage { @InitialLanguage }
- named @BypassNumber { dft }
- named @OnePage { dft }
- named @Location { @TableLocation }
- right @Body
- {
- def @TableNumber
- {
- @BypassNumber @Dft @NumberOf @Tag
- }
-
- def @ContentsCaption
- {
- @ShortCaption @Dft @Caption
- }
-
- def @OnePg
- {
- @OnePage @Case {
- { No no } @Yield No
- { Yes yes } @Yield Yes
- dft @Yield { @Location @Case {
- PageTop @Yield No
- EvenPageTop @Yield No
- FullPage @Yield No
- EvenFullPage @Yield No
- PageFoot @Yield Yes
- ColTop @Yield No
- ColFoot @Yield Yes
- ColEnd @Yield No
- Display @Yield Yes
- AfterLine @Yield Yes
- TryAfterLine @Yield Yes
- Raw @Yield No
- }
- }
- }
- }
-
- def @CaptionState
- {
- @Caption @Case {
- dft @Yield None
- else @Yield { @CaptionPos @Case {
- { Below below } @Yield Below
- { Above above } @Yield Above
- } }
- }
- }
-
- #def @TableLabel
- #{
- # @TableNumbers @Case {
- # No @Yield @Null
- # else @Yield {
- # @CaptionFormat { {table @WordVal @TableWord} @NumSep @TableNumber }
- # }
- # }
- #}
-
- def @CaptionVal
- {
- @TableCaptionFont @Font @TableCaptionBreak @Break
- { ||0.5rt @TableCaptionFormat
- word { table @WordVal @TableWord }
- number { @TableNumber }
- caption { @Caption }
- }
- }
-
- def @TableVal
- {
- @InitialLanguage @Language
- {
- @MakeTableContents @TableContentsEntry
- indent { 0f }
- crosstag { @Tag }
- number { @TableNumber }
- title { @InitialLanguage @Language @ContentsCaption }
- pagenum { @PageOf @Tag }
- // @TableCounterIncrement @Tag
- // @Body
- // @PageMark @Tag
- }
- }
-
- def @TableTarget
- {
- @Location @Case {
- PageTop @Yield @PageTopPlace&&following
- EvenPageTop @Yield @PageTopPlace&&following
- FullPage @Yield @FullPagePlace&&following
- EvenFullPage @Yield @FullPagePlace&&following
- PageFoot @Yield @PageFootAndTopPlace&&following
- ColTop @Yield @ColTopPlace&&following
- ColFoot @Yield @ColFootAndTopPlace&&following
- ColEnd @Yield @EndTableList&&following
- Display @Yield @AfterLinePlace&&following
- AfterLine @Yield @AfterLinePlace&&following
- TryAfterLine @Yield @TryAfterLinePlace&&following
- }
- }
-
- def @SendEncl into { @TableTarget }
- right x
- {
- def @Enclose right x
- {
- @OnePg @Case {
- No @Yield @Format x
- Yes @Yield x
- }
- }
-
- x
- }
-
- def @Send into { @TableTarget }
- right x
- {
- x
- }
-
- def @EvenFullPageSend into { @EvenFullPagePlace&&following }
- right x
- {
- @OneRow x
- }
-
- def @EvenPageSend into { @EvenPagePlace&&following }
- right x
- {
- @OneRow x
- }
-
- def @RawTableVal
- {
- @OnePg.@CaptionState @Case
- {
- Yes.Below @Yield @OneRow { @Format @TableVal @DP @CaptionVal }
- Yes.Above @Yield @OneRow { @CaptionVal @DP @Format @TableVal }
- Yes.None @Yield @OneRow { @Format @TableVal }
- No.Below @Yield { @Format @TableVal @DP @CaptionVal }
- No.Above @Yield { @CaptionVal @DP @Format @TableVal }
- No.None @Yield { @Format @TableVal }
- }
- }
-
- def @NonRawTableVal
- {
- @OnePg.@CaptionState @Case
- {
- Yes.Below @Yield {
- @Send @OneRow { @Format @TableVal @DP @CaptionVal // @DupRunner}
- }
- Yes.Above @Yield {
- @Send @OneRow { @CaptionVal @DP @Format @TableVal // @DupRunner}
- }
- Yes.None @Yield {
- @Send @OneRow { @Format @TableVal // @DupRunner }
- }
- No.Below @Yield {
- @SendEncl { @TableVal // @Send { @CaptionVal // @DupRunner } }
- }
- No.Above @Yield {
- @Send { @CaptionVal // @SendEncl { @TableVal // @DupRunner } }
- }
- No.None @Yield {
- @SendEncl { @TableVal // @DupRunner }
- }
- }
- }
-
- @Location @Case {
- Raw @Yield @RawTableVal
- Display @Yield { @NonRawTableVal &1rt }
- EvenPageTop @Yield @EvenPageSend @NonRawTableVal
- EvenFullPage @Yield @EvenFullPageSend @NonRawTableVal
- else @Yield @NonRawTableVal
- }
- }
-
-
- ###########################################################################
- # #
- # Glossary. #
- # #
- ###########################################################################
-
- def @GlossaryList { @Galley //@GlossaryGap @GlossaryList }
-
- def @GlossarySection into { @GlossaryPlace&&following }
- right etc
- {
- // @GlossaryList
- // etc
- //1rt
- }
-
- def @DoGlossary into { @GlossaryList&&following }
- left @Key
- named name {}
- named pnum {}
- right body
- {
- @GlossaryFont @Font @GlossaryBreak @Break @GlossaryFormat
- @Name { name }
- @PageNum { pnum }
- @Body { body }
- }
-
- def @Glossary
- left name
- named sortkey { dft }
- right body
- {
- def key { sortkey @Dft name }
-
- @MakeGlossary @Case {
- { Yes yes } @Yield { @PageMark key &
- key @DoGlossary name { name } pnum { @PageOf key } body
- }
- else @Yield @Null
- }
- }
-
- def @InGlossary
- right x
- {
- @MakeGlossary @Case {
- { Yes yes } @Yield { @InGlossaryFormat @InGlossaryFont @Font x }
- else @Yield x
- }
- }
-
-
- ###########################################################################
- # #
- # Index. #
- # #
- ###########################################################################
-
- def @IndexList { @Galley //1vx @IndexList }
- def @BypassIndexList { @Galley //1vx @BypassIndexList }
-
- def @IndexSection into { @IndexPlace&&following }
- right etc
- {
- // @IndexBreak @Break @IndexList
- // @IndexBreak @Break @BypassIndexList
- // @ClearHeaderComponent
- // etc
- //1rt
- }
-
- def @DoIndex into { @IndexList&&following }
- left @Key # sort key
- named pgrange {} # page numbers, or empty if none
- named depth {} # 0, 1, or 2 (@Index, @Sub, or @SubSub)
- right body # body, not including any prefix
- {
- def @Body
- {
- depth @Case {
- 0 @Yield @IndexFormat body
- 1 @Yield @SubIndexFormat body
- 2 @Yield @SubSubIndexFormat body
- }
- }
-
- def @Enclose right x
- {
- @IndexCtd.depth @Case {
-
- Yes.0 @Yield {
- @ClearHeaderComponent
- //1vx
- x
- //1vx
- 1vx @SetHeaderComponent {
- @Body @IndexCtdFormat {continued @WordVal @IndexCtdWord}
- }
- //1vx
- 1vx @BeginHeaderComponent (unused)
- }
-
- Yes.1 @Yield {
- @EndHeaderComponent
- //1vx
- x
- //1vx
- 1vx @BeginHeaderComponent {
- @Body @IndexCtdFormat {continued @WordVal @IndexCtdWord}
- }
- }
-
- else @Yield x
-
- }
- }
-
- def @Merge left lpart right rpart
- {
- { lpart @Rump { lpart @Meld rpart } } @Case
- {
- "" @Yield lpart
- else @Yield { { lpart{@OneCol ,} } @Meld rpart }
- }
-
- }
-
- @IndexFont @Font @IndexBreak @Break pgrange @Case {
- "" @Yield { @Body &"0.03fu" {} }
- else @Yield { @Body &"0.03fu" {}{@OneCol ,} pgrange }
-
- }
- }
-
- def @RawIndex
- left lpart
- named depth { 0 }
- right rpart
- {
- @MakeIndex @Case {
- Yes @Yield { lpart @DoIndex depth { depth } rpart }
- else @Yield @Null
- }
- }
-
- macro @RawSubIndex { @RawIndex depth { 1 } }
- macro @RawSubSubIndex { @RawIndex depth { 2 } }
-
- def @Index
- left lpart
- named @Tag {}
- named depth { 0 }
- named to {}
- right rpart
- {
- def @PgMk right tag
- {
- tag @CrossLink @PageOf tag
- }
-
- def @PgRange
- {
- to @Case
- {
- "" @Yield @PgMk @Tag
- else @Yield {
- { @PageOf @Tag } @Case
- {
- { @PageOf to } @Yield { @PgMk @Tag }
- else @Yield { {@PgMk @Tag}--{@PgMk to} }
- }
- }
- }
- }
-
- @MakeIndex @Case {
- Yes @Yield {
- @PageMark @Tag &
- lpart @DoIndex depth { depth } pgrange { @PgRange } rpart }
- else @Yield @Null
- }
- }
-
- macro @SubIndex { @Index depth { 1 } }
- macro @SubSubIndex { @Index depth { 2 } }
-
- def @IndexBlanks
- {
- b @RawIndex {} c @RawIndex {} d @RawIndex {} e @RawIndex {}
- f @RawIndex {} g @RawIndex {} h @RawIndex {} i @RawIndex {}
- j @RawIndex {} k @RawIndex {} l @RawIndex {} m @RawIndex {}
- n @RawIndex {} o @RawIndex {} p @RawIndex {} q @RawIndex {}
- r @RawIndex {} s @RawIndex {} t @RawIndex {} u @RawIndex {}
- v @RawIndex {} w @RawIndex {} x @RawIndex {} y @RawIndex {}
- z @RawIndex {}
- }
-
- def @IndexSpacer
- left lpart
- named above { @IndexSpacerAbove }
- named below { @IndexSpacerBelow }
- named font { @IndexSpacerFont }
- named format right @Body { @IndexSpacerFormat @Body }
- right rpart
- {
- def @Send into { @IndexList&&following }
- right @Key
- {
- @ClearHeaderComponent
- //
- //above
- @CNP
- @OneRow { font @Font format rpart //below }
- }
-
- @MakeIndex @Case {
- Yes @Yield @Send lpart
- else @Yield @Null
- }
- }
-
- macro @InitialIndexSpacer { @IndexSpacer above { 0i } }
-
- def @IndexLetters
- {
- a @InitialIndexSpacer A
- b @IndexSpacer B c @IndexSpacer C d @IndexSpacer D e @IndexSpacer E
- f @IndexSpacer F g @IndexSpacer G h @IndexSpacer H i @IndexSpacer I
- j @IndexSpacer J k @IndexSpacer K l @IndexSpacer L m @IndexSpacer M
- n @IndexSpacer N o @IndexSpacer O p @IndexSpacer P q @IndexSpacer Q
- r @IndexSpacer R s @IndexSpacer S t @IndexSpacer T u @IndexSpacer U
- v @IndexSpacer V w @IndexSpacer W x @IndexSpacer X y @IndexSpacer Y
- z @IndexSpacer Z
- }
-
- def @BypassBeginIndexPlace { @Galley }
-
- def @BypassBeginIndex force into { @BypassBeginIndexPlace&&preceding } {}
-
- def @BypassRawIndex force into { @BypassIndexList&&preceding }
- named indent { 0f }
- right x
- {
- &indent x
- }
-
- def @BypassEndIndex { @Null }
-
-
- ###########################################################################
- # #
- # IndexA. #
- # #
- ###########################################################################
-
- def @IndexAList { @Galley //1vx @IndexAList }
- def @BypassIndexAList { @Galley //1vx @BypassIndexAList }
-
- def @IndexASection into { @IndexAPlace&&following }
- right etc
- {
- // @IndexABreak @Break @IndexAList
- // @IndexABreak @Break @BypassIndexAList
- // @ClearHeaderComponent
- // etc
- //1rt
- }
-
- def @DoIndexA into { @IndexAList&&following }
- left @Key # sort key
- named pgrange {} # page numbers, or empty if none
- named depth {} # 0, 1, or 2 (@IndexA, @Sub, or @SubSub)
- right body # body, not including any prefix
- {
- def @Body
- {
- depth @Case {
- 0 @Yield @IndexAFormat body
- 1 @Yield @SubIndexAFormat body
- 2 @Yield @SubSubIndexAFormat body
- }
- }
-
- def @Enclose right x
- {
- @IndexACtd.depth @Case {
-
- Yes.0 @Yield {
- @ClearHeaderComponent
- //1vx
- x
- //1vx
- 1vx @SetHeaderComponent {
- @Body @IndexACtdFormat {continued @WordVal @IndexACtdWord}
- }
- //1vx
- 1vx @BeginHeaderComponent (unused)
- }
-
- Yes.1 @Yield {
- @EndHeaderComponent
- //1vx
- x
- //1vx
- 1vx @BeginHeaderComponent {
- @Body @IndexACtdFormat {continued @WordVal @IndexACtdWord}
- }
- }
-
- else @Yield x
-
- }
- }
-
- def @Merge left lpart right rpart
- {
- { lpart @Rump { lpart @Meld rpart } } @Case
- {
- "" @Yield lpart
- else @Yield { { lpart{@OneCol ,} } @Meld rpart }
- }
-
- }
-
- @IndexAFont @Font @IndexABreak @Break pgrange @Case {
- "" @Yield { @Body &"0.03fu" {} }
- else @Yield { @Body &"0.03fu" {}{@OneCol ,} pgrange }
-
- }
- }
-
- def @RawIndexA
- left lpart
- named depth { 0 }
- right rpart
- {
- @MakeIndexA @Case {
- Yes @Yield { lpart @DoIndexA depth { depth } rpart }
- else @Yield @Null
- }
- }
-
- macro @RawSubIndexA { @RawIndexA depth { 1 } }
- macro @RawSubSubIndexA { @RawIndexA depth { 2 } }
-
- def @IndexA
- left lpart
- named @Tag {}
- named depth { 0 }
- named to {}
- right rpart
- {
- def @PgMk right tag
- {
- tag @CrossLink @PageOf tag
- }
-
- def @PgRange
- {
- to @Case
- {
- "" @Yield @PgMk @Tag
- else @Yield {
- { @PageOf @Tag } @Case
- {
- { @PageOf to } @Yield { @PgMk @Tag }
- else @Yield { {@PgMk @Tag}--{@PgMk to} }
- }
- }
- }
- }
-
- @MakeIndexA @Case {
- Yes @Yield {
- @PageMark @Tag &
- lpart @DoIndexA depth { depth } pgrange { @PgRange } rpart }
- else @Yield @Null
- }
- }
-
- macro @SubIndexA { @IndexA depth { 1 } }
- macro @SubSubIndexA { @IndexA depth { 2 } }
-
- def @IndexABlanks
- {
- b @RawIndexA {} c @RawIndexA {} d @RawIndexA {} e @RawIndexA {}
- f @RawIndexA {} g @RawIndexA {} h @RawIndexA {} i @RawIndexA {}
- j @RawIndexA {} k @RawIndexA {} l @RawIndexA {} m @RawIndexA {}
- n @RawIndexA {} o @RawIndexA {} p @RawIndexA {} q @RawIndexA {}
- r @RawIndexA {} s @RawIndexA {} t @RawIndexA {} u @RawIndexA {}
- v @RawIndexA {} w @RawIndexA {} x @RawIndexA {} y @RawIndexA {}
- z @RawIndexA {}
- }
-
- def @IndexASpacer
- left lpart
- named above { @IndexASpacerAbove }
- named below { @IndexASpacerBelow }
- named font { @IndexASpacerFont }
- named format right @Body { @IndexASpacerFormat @Body }
- right rpart
- {
- def @Send into { @IndexAList&&following }
- right @Key
- {
- @ClearHeaderComponent
- //
- //above
- @CNP
- @OneRow { font @Font format rpart //below }
- }
-
- @MakeIndexA @Case {
- Yes @Yield @Send lpart
- else @Yield @Null
- }
- }
-
- macro @InitialIndexASpacer { @IndexASpacer above { 0i } }
-
- def @IndexALetters
- {
- a @InitialIndexASpacer A
- b @IndexASpacer B c @IndexASpacer C d @IndexASpacer D e @IndexASpacer E
- f @IndexASpacer F g @IndexASpacer G h @IndexASpacer H i @IndexASpacer I
- j @IndexASpacer J k @IndexASpacer K l @IndexASpacer L m @IndexASpacer M
- n @IndexASpacer N o @IndexASpacer O p @IndexASpacer P q @IndexASpacer Q
- r @IndexASpacer R s @IndexASpacer S t @IndexASpacer T u @IndexASpacer U
- v @IndexASpacer V w @IndexASpacer W x @IndexASpacer X y @IndexASpacer Y
- z @IndexASpacer Z
- }
-
- def @BypassBeginIndexAPlace { @Galley }
-
- def @BypassBeginIndexA force into { @BypassBeginIndexAPlace&&preceding } {}
-
- def @BypassRawIndexA force into { @BypassIndexAList&&preceding }
- named indent { 0f }
- right x
- {
- &indent x
- }
-
- def @BypassEndIndexA { @Null }
-
-
- ###########################################################################
- # #
- # IndexB. #
- # #
- ###########################################################################
-
- def @IndexBList { @Galley //1vx @IndexBList }
- def @BypassIndexBList { @Galley //1vx @BypassIndexBList }
-
- def @IndexBSection into { @IndexBPlace&&following }
- right etc
- {
- // @IndexBBreak @Break @IndexBList
- // @IndexBBreak @Break @BypassIndexBList
- // @ClearHeaderComponent
- // etc
- //1rt
- }
-
- def @DoIndexB into { @IndexBList&&following }
- left @Key # sort key
- named pgrange {} # page numbers, or empty if none
- named depth {} # 0, 1, or 2 (@IndexB, @Sub, or @SubSub)
- right body # body, not including any prefix
- {
- def @Body
- {
- depth @Case {
- 0 @Yield @IndexBFormat body
- 1 @Yield @SubIndexBFormat body
- 2 @Yield @SubSubIndexBFormat body
- }
- }
-
- def @Enclose right x
- {
- @IndexBCtd.depth @Case {
-
- Yes.0 @Yield {
- @ClearHeaderComponent
- //1vx
- x
- //1vx
- 1vx @SetHeaderComponent {
- @Body @IndexBCtdFormat {continued @WordVal @IndexBCtdWord}
- }
- //1vx
- 1vx @BeginHeaderComponent (unused)
- }
-
- Yes.1 @Yield {
- @EndHeaderComponent
- //1vx
- x
- //1vx
- 1vx @BeginHeaderComponent {
- @Body @IndexBCtdFormat {continued @WordVal @IndexBCtdWord}
- }
- }
-
- else @Yield x
-
- }
- }
-
- def @Merge left lpart right rpart
- {
- { lpart @Rump { lpart @Meld rpart } } @Case
- {
- "" @Yield lpart
- else @Yield { { lpart{@OneCol ,} } @Meld rpart }
- }
-
- }
-
- @IndexBFont @Font @IndexBBreak @Break pgrange @Case {
- "" @Yield { @Body &"0.03fu" {} }
- else @Yield { @Body &"0.03fu" {}{@OneCol ,} pgrange }
-
- }
- }
-
- def @RawIndexB
- left lpart
- named depth { 0 }
- right rpart
- {
- @MakeIndexB @Case {
- Yes @Yield { lpart @DoIndexB depth { depth } rpart }
- else @Yield @Null
- }
- }
-
- macro @RawSubIndexB { @RawIndexB depth { 1 } }
- macro @RawSubSubIndexB { @RawIndexB depth { 2 } }
-
- def @IndexB
- left lpart
- named @Tag {}
- named depth { 0 }
- named to {}
- right rpart
- {
- def @PgMk right tag
- {
- tag @CrossLink @PageOf tag
- }
-
- def @PgRange
- {
- to @Case
- {
- "" @Yield @PgMk @Tag
- else @Yield {
- { @PageOf @Tag } @Case
- {
- { @PageOf to } @Yield { @PgMk @Tag }
- else @Yield { {@PgMk @Tag}--{@PgMk to} }
- }
- }
- }
- }
-
- @MakeIndexB @Case {
- Yes @Yield {
- @PageMark @Tag &
- lpart @DoIndexB depth { depth } pgrange { @PgRange } rpart }
- else @Yield @Null
- }
- }
-
- macro @SubIndexB { @IndexB depth { 1 } }
- macro @SubSubIndexB { @IndexB depth { 2 } }
-
- def @IndexBBlanks
- {
- b @RawIndexB {} c @RawIndexB {} d @RawIndexB {} e @RawIndexB {}
- f @RawIndexB {} g @RawIndexB {} h @RawIndexB {} i @RawIndexB {}
- j @RawIndexB {} k @RawIndexB {} l @RawIndexB {} m @RawIndexB {}
- n @RawIndexB {} o @RawIndexB {} p @RawIndexB {} q @RawIndexB {}
- r @RawIndexB {} s @RawIndexB {} t @RawIndexB {} u @RawIndexB {}
- v @RawIndexB {} w @RawIndexB {} x @RawIndexB {} y @RawIndexB {}
- z @RawIndexB {}
- }
-
- def @IndexBSpacer
- left lpart
- named above { @IndexBSpacerAbove }
- named below { @IndexBSpacerBelow }
- named font { @IndexBSpacerFont }
- named format right @Body { @IndexBSpacerFormat @Body }
- right rpart
- {
- def @Send into { @IndexBList&&following }
- right @Key
- {
- @ClearHeaderComponent
- //
- //above
- @CNP
- @OneRow { font @Font format rpart //below }
- }
-
- @MakeIndexB @Case {
- Yes @Yield @Send lpart
- else @Yield @Null
- }
- }
-
- macro @InitialIndexBSpacer { @IndexBSpacer above { 0i } }
-
- def @IndexBLetters
- {
- a @InitialIndexBSpacer A
- b @IndexBSpacer B c @IndexBSpacer C d @IndexBSpacer D e @IndexBSpacer E
- f @IndexBSpacer F g @IndexBSpacer G h @IndexBSpacer H i @IndexBSpacer I
- j @IndexBSpacer J k @IndexBSpacer K l @IndexBSpacer L m @IndexBSpacer M
- n @IndexBSpacer N o @IndexBSpacer O p @IndexBSpacer P q @IndexBSpacer Q
- r @IndexBSpacer R s @IndexBSpacer S t @IndexBSpacer T u @IndexBSpacer U
- v @IndexBSpacer V w @IndexBSpacer W x @IndexBSpacer X y @IndexBSpacer Y
- z @IndexBSpacer Z
- }
-
- def @BypassBeginIndexBPlace { @Galley }
-
- def @BypassBeginIndexB force into { @BypassBeginIndexBPlace&&preceding } {}
-
- def @BypassRawIndexB force into { @BypassIndexBList&&preceding }
- named indent { 0f }
- right x
- {
- &indent x
- }
-
- def @BypassEndIndexB { @Null }
-
-
- ###########################################################################
- # #
- # @LargeScaleStructure #
- # #
- # The prototype for the value of each large-scale structure symbol #
- # (@Chapter, @Section, etc.) #
- # #
- ###########################################################################
-
- def @LargeScaleStructure
- named tag {} # tag of this large-scale structure sym
- named type {} # MajorIntro, Major, VeryMajor, or Minor
- named initiallanguage {} # its language
- named title {} # its full title
- named runningtitle { dft } # its running title Jeffk 12/11/02 from {}
- named aboveheadinggap { 0f } # gap above heading
- named headingfont {} # its heading font
- named headingbreak {} # its heading break
- named headingformat # its heading format
- left @Num right @Body {}
- named headingtext { @Null } # heading text
- named incontents { No } # entry in table of contents required
- named contentsindent { 0f } # only if type is Major
- named word {}
- named numbers { None }
- named attachnum {} # only if numbers is not None
- named retrievenum {} # only if numbers is not None
- named bypassnumber {} # only if numbers is not None, or VeryMajor
- named prefix {} # prefix of number of this symbol
- named pnprefix {} # prefix for page numbers of this sym
- named majornum { dft }
- named majortitle { dft }
- named minornum { dft }
- named minortitle { dft }
- named intheorems { No }
- named indisplays { No }
- named infigures { No }
- named intables { No }
- named inrunners { No }
- named sendheader right @Body {}
- named innergap {}
- named endifmajor right innergap {
- @EndFigureList
- //innergap @EndNoteList 1
- //innergap @ChapRefSection
- }
- named wantindefinite { No }
- right @Body
- {
-
- def @ShortNum
- {
- numbers @Then {
- bypassnumber @Dft {
- prefix @Join { numbers @Num retrievenum }
- }
- }
- }
-
- def @LongNum
- {
- numbers @Then {
- initiallanguage @Language { word @NumSep @ShortNum }
- }
- }
-
- def @ShortTitle
- {
- initiallanguage @Language { runningtitle @Dft title }
- }
-
- def @IfMajor right x
- {
- type @Case {
- { MajorIntro Major ExtraMajor ExtraMajorIntro } @Yield x
- else @Yield @Null
- }
- }
-
- def @StartIfMajor {
- type @Case {
- { MajorIntro Major ExtraMajor ExtraMajorIntro VeryMajor } @Yield Start
- else @Yield NonStart
- }
- }
-
- def @Run right start
- {
- inrunners @Do type @Case {
-
- { Major MajorIntro } @Yield {
- start @Runner
- @MajorNum { majornum @Dft @LongNum }
- @MajorTitle { majortitle @Dft @ShortTitle }
- @MinorNum {}
- @MinorTitle {}
- @Owner { tag }
- @Prefix { pnprefix @Join @ShortNum }
- }
-
- { ExtraMajor ExtraMajorIntro } @Yield {
- start @Runner
- @MajorNum { majornum @Dft @LongNum }
- @MajorTitle { majortitle @Dft @ShortTitle }
- @MinorNum { majornum @Dft @LongNum }
- @MinorTitle { majortitle @Dft @ShortTitle }
- @Owner { tag }
- @Prefix { pnprefix @Join @ShortNum }
- }
-
- { VeryMajor } @Yield {
- start @Runner
- @MajorNum { majornum @Dft @LongNum }
- @MajorTitle { majortitle @Dft @ShortTitle }
- @MinorNum {}
- @MinorTitle {}
- @Owner { tag }
- @Prefix {}
- }
-
- Minor @Yield {
- start @Runner
- @MajorNum { majornum @Dft @LongNum }
- @MajorTitle { majortitle @Dft @ShortTitle }
- @MinorNum { minornum @Dft @LongNum }
- @MinorTitle { minortitle @Dft @ShortTitle }
- @Owner { tag }
- @Prefix { pnprefix @Join @ShortNum }
- }
- }
- }
-
- def @ContentsStuff
- {
- incontents.type @Case {
-
- Yes.Minor @Yield {
- incontents @ContentsEntry
- indent { contentsindent }
- crosstag { tag }
- number { @LongNum }
- title { initiallanguage @Language title }
- pagenum { @PageOf tag }
- }
-
- { Yes.Major Yes.MajorIntro Yes.ExtraMajor Yes.ExtraMajorIntro } @Yield {
- incontents @MajorContentsEntry
- crosstag { tag }
- number { @LongNum }
- title { initiallanguage @Language title }
- pagenum { @PageOf tag }
- }
-
- { Yes.VeryMajor } @Yield {
- incontents @VeryMajorContentsEntry
- title { initiallanguage @Language {
- bypassnumber @ColonSep title } }
- }
-
- else @Yield @Null
- }
- }
-
- def @Heading
- {
-
- type @Case {
-
- Minor @Yield {
- headingfont @Font
- headingbreak @Break @Protect {@LongNum headingformat title}
- // @Run @StartIfMajor
- // @PageMark tag
- @DP headingtext
- }
-
- { Major MajorIntro ExtraMajor ExtraMajorIntro } @Yield {
- sendheader {
- //aboveheadinggap
- headingfont @Font
- headingbreak @Break { @LongNum headingformat title }
- // @Run @StartIfMajor
- // @PageMark tag
- @DP headingtext
- }
- }
-
- { VeryMajor } @Yield { sendheader {
- //aboveheadinggap
- headingfont @Font
- headingbreak @Break { bypassnumber headingformat title }
- // @Run @StartIfMajor
- // @PageMark tag
- @DP headingtext
- }
- }
- }
- }
-
- initiallanguage @Language {
- @Heading
- // wantindefinite @Case {
- Yes @Yield @Null
- No @Yield ""
- }
- // numbers @Do {
- attachnum & @NumberMarker @Tag { tag } @Value { @ShortNum }
- }
- // @IfMajor { @FootNoteThrough @Do @BeginFootNoteCounter }
- # // @Run @StartIfMajor
- // @ContentsStuff
- // @TitleMarker @Tag { tag } @Value { title }
- // intheorems @BeginAllCounters @ShortNum
- // indisplays @BeginDisplayCounter @ShortNum
- // infigures @BeginFigureCounter @ShortNum
- // intables @BeginTableCounter @ShortNum
- // @Body
- //innergap @IfMajor endifmajor innergap
- // @Run NonStart
- }
- }
-
-@End @DocumentSetup
diff --git a/include/slides b/include/slides
index c9610ea..3d89c4e 100644
--- a/include/slides
+++ b/include/slides
@@ -167,6 +167,9 @@
# @IndexFormat { @Body } # @Index format
# @SubIndexFormat { {1f @Wide}@Body } # @SubIndex format
# @SubSubIndexFormat { {2f @Wide}@Body } # @SubSubIndex format
+ # @IndexTypeOrdinary { @PageNum } # Ordinary pagenum format
+ # @IndexTypeMain { @B @PageNum } # Main pagenum format
+ # @IndexTypeSpecial { @I @PageNum } # Special pagenum format
# @IndexColumnNumber { 2 } # index columns (1 to 10)
# @IndexColumnGap { 1.00c @OrIfPlain 6s } # index column gap
# @IndexCtd { Yes } # include (ctd.) lines
@@ -183,6 +186,9 @@
# @IndexAFormat { @Body } # @IndexA format
# @SubIndexAFormat { {1f @Wide}@Body } # @SubIndexA format
# @SubSubIndexAFormat { {2f @Wide}@Body } # @SubSubIndexA format
+ # @IndexATypeOrdinary { @PageNum } # Ordinary pagenum format
+ # @IndexATypeMain { @B @PageNum } # Main pagenum format
+ # @IndexATypeSpecial { @I @PageNum } # Special pagenum format
# @IndexAColumnNumber { 2 } # index A columns (1 to 10)
# @IndexAColumnGap { 1.00c @OrIfPlain 6s } # index A column gap
# @IndexACtd { Yes } # include (ctd.) lines
@@ -199,6 +205,9 @@
# @IndexBFormat { @Body } # @IndexB format
# @SubIndexBFormat { {1f @Wide}@Body } # @SubIndexB format
# @SubSubIndexBFormat { {2f @Wide}@Body } # @SubSubIndexB format
+ # @IndexBTypeOrdinary { @PageNum } # Ordinary pagenum format
+ # @IndexBTypeMain { @B @PageNum } # Main pagenum format
+ # @IndexBTypeSpecial { @I @PageNum } # Special pagenum format
# @IndexBColumnNumber { 2 } # index B columns (1 to 10)
# @IndexBColumnGap { 1.00c @OrIfPlain 6s } # index B column gap
# @IndexBCtd { Yes } # include (ctd.) lines
diff --git a/makefile b/makefile
index dd279af..c8d541e 100644
--- a/makefile
+++ b/makefile
@@ -1,6 +1,6 @@
###############################################################################
# #
-# Make file for installing Basser Lout Version 3.28 #
+# Make file for installing Basser Lout Version 3.29 #
# #
# Jeffrey H. Kingston #
# undated #
diff --git a/prg2lout.c b/prg2lout.c
index f4b3359..896a9e1 100644
--- a/prg2lout.c
+++ b/prg2lout.c
@@ -15,6 +15,8 @@
/* Perl and Pod by Jeff Kingston and Mark Summerfield */
/* Python by Mark Summerfield */
/* Ruby by Michael Piotrowski */
+/* Haskell by Thorsten Seitz (Nov 2002) */
+/* RSL by Darren Bane (February 2003) */
/* */
/* This program is free software; you can redistribute it and/or modify */
/* it under the terms of the GNU General Public License as published by */
@@ -128,7 +130,7 @@
/* Feel free to email me for advice as you go along. */
/* */
/* Jeff Kingston */
-/* jeff@cs.usyd.edu.au */
+/* jeff@it.usyd.edu.au */
/* */
/*****************************************************************************/
@@ -224,23 +226,36 @@ ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\n\t\f" G1_Characters ;
unsigned char Letters[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" ;
+unsigned char lowercaseLetters[] = "abcdefghijklmnopqrstuvwxyz" ;
+
+unsigned char uppercaseLetters[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" ;
+
unsigned char Letter_Digit[] =
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_0123456789" ;
-unsigned char NonpareilOperatorPunct[] = "!@$%^&*=+|;<>/?";
+unsigned char Letter_Digit_Quotes[] =
+ "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_0123456789`'" ;
+
+unsigned char HaskellOpCharacters[] = "!#$%&*+./<=>?^|:-~";
+
+unsigned char NonpareilOperatorPunct[] = "@$%^&*=+|;<>/?`";
unsigned char Ruby_Methodname[] =
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_0123456789?!=" ;
-#define SepLetters \
+#define UppercaseSepLetters \
U "A", U "B", U "C", U "D", U "E", U "F", U "G", U "H", U "I", U "J", \
U "K", U "L", U "M", U "N", U "O", U "P", U "Q", U "R", U "S", U "T", \
-U "U", U "V", U "W", U "X", U "Y", U "Z", \
+U "U", U "V", U "W", U "X", U "Y", U "Z"
+
+#define LowercaseSepLetters \
U "a", U "b", U "c", U "d", U "e", U "f", U "g", U "h", U "i", U "j", \
U "k", U "l", U "m", U "n", U "o", U "p", U "q", U "r", U "s", U "t", \
U "u", U "v", U "w", U "x", U "y", U "z"
+#define SepLetters UppercaseSepLetters, LowercaseSepLetters
+
#define SepDigits \
U "0", U "1", U "2", U "3", U "4", U "5", U "6", U "7", U "8", U "9"
@@ -264,8 +279,16 @@ U ":", U ";", U "$", U "\"", U "^", U "&", U "*", U "-", U "=", U "+", \
U "~", U "'", U "@", U "?", U ".", U "`"
#define SepNonpareilOperatorPunct \
-U "!", U "@", U "$", U "%", U "^", U "&", U "*", U "=", U "+", U "|", \
-U ";", U "<", U ">", U "/", U "?"
+U "@", U "$", U "%", U "^", U "&", U "*", U "=", U "+", U "|", \
+U ";", U "<", U ">", U "/", U "?", U "`"
+
+#define HaskellOpChars \
+U "!", U "#", U "$", U "%", U "&", U "*", U "+", U ".", U "/", \
+U "<", U "=", U ">", U "?", U "^", U "|", U ":", U "-", U "~"
+
+#define HaskellParenOpChars \
+U "(!", U "(#", U "($", U "(%", U "(&", U "(*", U "(+", U "(.", U "(/", \
+U "(<", U "(=", U "(>", U "(?", U "(^", U "(|", U "(:", U "(-", U "(~"
#define PercentLetters \
U "%A", U "%B", U "%C", U "%D", U "%E", U "%F", U "%G", U "%H", U "%I", \
@@ -716,6 +739,50 @@ TOKEN PythonTriDblStringToken = {
FALSE, /* don't need to see end delimiter twice to stop */
};
+TOKEN HaskellStringToken = {
+ U "string", /* used by error messages involving this token */
+ PRINT_WHOLE_QUOTED, /* print this token in quotes etc. as usual */
+ U "@PS", /* Lout command for formatting strings */
+ U "", /* no alternate command */
+ U "", /* no following command */
+ FALSE, /* token allowed anywhere, not just start of line */
+ { U "\"" }, /* strings begin with a " character */
+ { NULL }, /* no start2 needed */
+ { NULL }, /* so no brackets2 either */
+ { NULL }, /* so no end2 either */
+ AllPrintable, /* inside, any printable except " is OK */
+ U "\\", /* within strings, \ is the escape character */
+ AllPrintable, /* after escape char, any printable char is OK */
+ U "", /* strings do not permit "inner escapes" */
+ U "", /* and so there is no end innner escape either */
+ U "", /* no bracketing delimiter */
+ U "\"", /* strings end with a " character */
+ FALSE, /* end delimiter does not have to be at line start */
+ FALSE, /* don't need to see end delimiter twice to stop */
+};
+
+TOKEN HaskellCharacterToken = {
+ U "character", /* used by error messages involving this token */
+ PRINT_WHOLE_QUOTED, /* print this token in quotes etc. as usual */
+ U "@PC", /* Lout command for formatting characters */
+ U "", /* no alternate command */
+ U "", /* no following command */
+ FALSE, /* token allowed anywhere, not just start of line */
+ { U "'" }, /* characters begin with a ' character */
+ { NULL }, /* no start2 needed */
+ { NULL }, /* so no brackets2 either */
+ { NULL }, /* so no end2 either */
+ AllPrintable, /* inside, any printable except ' is OK */
+ U "\\", /* within characters, \ is the escape character */
+ AllPrintable, /* after escape char, any printable char is OK */
+ U "", /* characters do not permit "inner escapes" */
+ U "", /* and so there is no end innner escape either */
+ U "", /* no bracketing delimiter */
+ U "'", /* characters end with a ' character */
+ FALSE, /* end delimiter does not have to be at line start */
+ FALSE, /* don't need to see end delimiter twice to stop */
+};
+
@@ -747,6 +814,28 @@ TOKEN IdentifierToken = {
FALSE, /* don't need to see end delimiter twice to stop */
};
+TOKEN HaskellIdentifierToken = {
+ U "identifier", /* used by error messages involving this token */
+ PRINT_WHOLE_QUOTED, /* print this token in quotes etc. as usual */
+ U "@PI", /* Lout command for formatting identifiers */
+ U "@PK", /* Alternate command (for keywords) */
+ U "", /* no following command */
+ FALSE, /* token allowed anywhere, not just start of line */
+ { SepLetters, U "_", U "`" }, /* identifiers begin with any letter or _ */
+ { NULL }, /* no start2 needed */
+ { NULL }, /* so no brackets2 either */
+ { NULL }, /* so no end2 either */
+ Letter_Digit_Quotes, /* inside, letters, underscores, digits are OK */
+ U "", /* no escape character within identifiers */
+ U "", /* so nothing legal after escape char either */
+ U "", /* identifiers do not permit "inner escapes" */
+ U "", /* and so there is no end innner escape either */
+ U "", /* no bracketing delimiter */
+ U "", /* identifiers do not end with a delimiter */
+ FALSE, /* end delimiter does not have to be at line start */
+ FALSE, /* don't need to see end delimiter twice to stop */
+};
+
/*****************************************************************************/
/* */
@@ -807,6 +896,9 @@ TOKEN NumberToken = {
TOKEN NonpareilOperatorToken =
OperatorToken(SepNonpareilOperatorPunct, NonpareilOperatorPunct);
+TOKEN HaskellOperatorToken =
+ OperatorToken(HaskellOpChars, HaskellOpCharacters);
+
/*****************************************************************************/
/* */
@@ -947,6 +1039,51 @@ TOKEN PythonCommentToken = {
FALSE, /* don't need to see end delimiter twice to stop */
};
+TOKEN HaskellLineCommentToken = {
+ U "line comment", /* used by error messages involving this token */
+ PRINT_NODELIMS_QUOTED,/* print this token in quotes without delimiters */
+ U "@PCL", /* Lout command for formatting comments */
+ U "", /* no alternate command */
+ U "", /* no following command */
+ FALSE, /* token allowed anywhere, not just start of line */
+ { U "--" }, /* comments begin with this character pair */
+ { NULL }, /* no start2 needed */
+ { NULL }, /* so no brackets2 either */
+ { NULL }, /* so no end2 either */
+ AllPrintablePlusTab, /* inside, any printable char is OK */
+ U "", /* no escape character within comments */
+ U "", /* so nothing legal after escape char either */
+ U "`", /* start of "inner escape" in Haskell comment */
+ U "'", /* end of "inner escape" in Haskell comment */
+ U "", /* no bracketing delimiter */
+ U "", /* no ending delimiter; end of line will end it */
+ FALSE, /* end delimiter does not have to be at line start */
+ FALSE, /* don't need to see end delimiter twice to stop */
+};
+
+TOKEN HaskellCommentToken = {
+ U "comment", /* used by error messages involving this token */
+ PRINT_NODELIMS_QUOTED,/* print this token in quotes without delimiters */
+ U "@PC", /* Lout command for formatting comments */
+ U "", /* no alternate command */
+ U "", /* no following command */
+ FALSE, /* token allowed anywhere, not just start of line */
+ { U "{-" }, /* comments begin with this character pair */
+ { NULL }, /* no start2 needed */
+ { NULL }, /* so no brackets2 either */
+ { NULL }, /* so no end2 either */
+ AllPrintableTabNLFF, /* inside, any printable char, tab, nl, ff is OK */
+ U "", /* no escape character within comments */
+ U "", /* so nothing legal after escape char either */
+ U "", /* C comments do not permit "inner escapes" */
+ U "", /* and so there is no end innner escape either */
+ U "", /* no bracketing delimiter */
+ U "-}", /* comments end with this character pair */
+ FALSE, /* end delimiter does not have to be at line start */
+ FALSE, /* don't need to see end delimiter twice to stop */
+};
+
+
/*****************************************************************************/
/* */
@@ -1066,6 +1203,51 @@ TOKEN PythonCommentEscapeToken = {
FALSE, /* end delimiter does not have to be at line start */
FALSE, /* don't need to see end delimiter twice to stop */
};
+
+TOKEN HaskellCommentEscapeToken = {
+ U "Lout escape",
+ PRINT_NODELIMS_UNQUOTED,
+ U "",
+ U "",
+ U "",
+ FALSE,
+ { U "{-@" },
+ { NULL },
+ { NULL },
+ { NULL },
+ AllPrintablePlusTab,
+ U "",
+ U "",
+ U "",
+ U "",
+ U "",
+ U "-}",
+ FALSE,
+ FALSE,
+};
+
+TOKEN HaskellLineCommentEscapeToken = {
+ U "Lout escape", /* used by error messages involving this token */
+ PRINT_NODELIMS_UNQUOTED, /* print this token unformatted */
+ U "", /* no Lout command since we are printing raw */
+ U "", /* no alternate command */
+ U "", /* no following command */
+ FALSE, /* token allowed anywhere, not just start of line */
+ { U "--@" }, /* escape comments begin with this delimiter */
+ { NULL }, /* no start2 needed */
+ { NULL }, /* so no brackets2 either */
+ { NULL }, /* so no end2 either */
+ AllPrintablePlusTab, /* inside, any printable char is OK */
+ U "", /* no escape character within comments */
+ U "", /* so nothing legal after escape char either */
+ U "", /* no "inner escape" in escape comments */
+ U "", /* so no end of "inner escape" either */
+ U "", /* no bracketing delimiter */
+ U "", /* no ending delimiter; end of line will end it */
+ FALSE, /* end delimiter does not have to be at line start */
+ FALSE, /* don't need to see end delimiter twice to stop */
+};
+
@@ -1121,7 +1303,8 @@ TOKEN GreaterToken = FixedToken(">", "greater @A @PO");
TOKEN QuestionToken = FixedToken("?", "@PO");
TOKEN CommaToken = FixedToken(",", "@PO");
TOKEN DotToken = FixedToken(".", "@PO");
-TOKEN DotDotToken = FixedToken("..", "@PO");
+TOKEN DotDotToken = FixedToken("..", "@PO");
+TOKEN DotDotDotToken = FixedToken("...","@PO");
TOKEN LessEqualToken = FixedToken("<=", "lessequal @A @PO");
TOKEN GreaterEqualToken = FixedToken(">=", "greaterequal @A @PO");
TOKEN CNotEqualToken = FixedToken("!=", "notequal @A @PO");
@@ -1130,7 +1313,21 @@ TOKEN BlueNotEqualToken = FixedToken("<>", "notequal @A @PO");
TOKEN AssignToken = FixedToken(":=", "@PO");
TOKEN QuestionAssignToken = FixedToken("?=", "@PO");
TOKEN DollarToken = FixedToken("$", "@PO");
-TOKEN ImpliesToken = FixedToken("=>", "implies @A @PO");
+TOKEN ImpliesToken = FixedToken("=>", "arrowdblright @A @PO");
+TOKEN LeftArrowToken = FixedToken("<-", "arrowleft @A @PO");
+TOKEN HaskellLambdaToken = FixedToken("\\", "@PLAMBDA");
+TOKEN DoubleColonToken = FixedToken("::", "@PDOUBLECOLON");
+TOKEN FunctionCompositionToken = FixedToken(" . ", "@PCIRC");
+TOKEN HaskellEquivalenceToken = FixedToken("==", "equivalence @A @PO");
+TOKEN HaskellConcatenationToken = FixedToken("++", "@PPLUSPLUS");
+TOKEN EqvToken = FixedToken("<=>", "arrowdblboth @A @PO");
+TOKEN HaskellOrToken = FixedToken("||", "@PO");
+TOKEN HaskellAndToken = FixedToken("&&", "@PO");
+TOKEN HaskellBacktickToken = FixedToken("`", "@PO");
+TOKEN PythonPowerToken = FixedToken( "**", "@PO" ) ;
+TOKEN PythonBitLeftShiftToken = FixedToken( "<<", "@PO" ) ;
+TOKEN PythonBitRightShiftToken = FixedToken( ">>", "@PO" ) ;
+TOKEN PythonBacktickToken = FixedToken( "`", "@PO" ) ;
/*****************************************************************************/
@@ -1139,13 +1336,13 @@ TOKEN ImpliesToken = FixedToken("=>", "implies @A @PO");
/* */
/*****************************************************************************/
-#define NoParameterToken(str, command) /* define fixed-string token */ \
+#define NoParameterToken(str, command) /* fixed-string token */ \
{ \
U str, /* name used for debugging only */ \
PRINT_COMMAND_ONLY, /* print only the command */ \
U command, /* Lout command for formatting this */ \
U "", /* no alternate command */ \
- U "", /* no following command */ \
+ U "", /* following command */ \
FALSE, /* token not just start of line */ \
{ U str }, /* token begins (and ends!) with this */ \
{ NULL }, /* no start2 needed */ \
@@ -1163,10 +1360,8 @@ TOKEN ImpliesToken = FixedToken("=>", "implies @A @PO");
TOKEN StarToken = NoParameterToken("*", "{@PA}");
TOKEN MinusToken = NoParameterToken("-", "{@PM}");
TOKEN EiffelDotToken = NoParameterToken(".", "{@PD}");
-TOKEN PythonPowerToken = FixedToken( "**", "@PO" ) ;
-TOKEN PythonBitLeftShiftToken = FixedToken( "<<", "@PO" ) ;
-TOKEN PythonBitRightShiftToken = FixedToken( ">>", "@PO" ) ;
-TOKEN PythonBacktickToken = FixedToken( "`", "@PO" ) ;
+TOKEN NonpareilExclamationToken = NoParameterToken("!", "@PO{\"!\" &0.1f}");
+TOKEN HaskellColonToken = NoParameterToken(":", "{@PCOLON}");
/*****************************************************************************/
@@ -1224,6 +1419,73 @@ TOKEN RubyGenDelimStringToken = {
/*****************************************************************************/
/* */
+/* RSL Sepcifics */
+/* */
+/*****************************************************************************/
+
+TOKEN RSLIdentifierToken = {
+ U "identifier", /* used by error messages involving this token */
+ PRINT_WHOLE_QUOTED, /* print this token in quotes etc. as usual */
+ U "@PI", /* Lout command for formatting identifiers */
+ U "@PK", /* Alternate command (for keywords) */
+ U "", /* no following command */
+ FALSE, /* token allowed anywhere, not just start of line */
+ { SepLetters, U "_", U "`" }, /* identifiers begin with any letter or _ */
+ { NULL }, /* no start2 needed */
+ { NULL }, /* so no brackets2 either */
+ { NULL }, /* so no end2 either */
+ Letter_Digit, /* inside, letters, underscores, digits are OK */
+ U "", /* no escape character within identifiers */
+ U "", /* so nothing legal after escape char either */
+ U "", /* identifiers do not permit "inner escapes" */
+ U "", /* and so there is no end innner escape either */
+ U "", /* no bracketing delimiter */
+ U "", /* identifiers do not end with a delimiter */
+ FALSE, /* end delimiter does not have to be at line start */
+ FALSE, /* don't need to see end delimiter twice to stop */
+};
+
+TOKEN RSLProductToken = FixedToken( "><", "multiply @A @PO" ) ;
+TOKEN RSLPartialMapToken = FixedToken( "-~m->", "@PartialMap @FA @PO" ) ;
+TOKEN RSLAndToken = FixedToken( "/\\", "logicaland @A @PO" ) ;
+TOKEN RSLAlwaysToken = FixedToken( "always", "@Eq { square } @FA @PO" ) ;
+TOKEN RSLIsInToken = FixedToken( "isin", "element @A @PO" ) ;
+TOKEN RSLSubsetToken = FixedToken( "<<=", "reflexsubset @A @PO" ) ;
+TOKEN RSLUnionToken = FixedToken( "union", "union @A @PO" ) ;
+TOKEN RSLListStartToken = FixedToken( "<.", "angleleft @A @PO" ) ;
+TOKEN RSLParToken = FixedToken( "@Eq { dbar } @FA @PO", "@PO" ) ;
+TOKEN RSLIntChoiceToken = FixedToken( "|^|", "@IntChoice @FA @PO" ) ;
+TOKEN RSLTurnstileToken = FixedToken( "|-", "@Eq { vdash } @FA @PO" ) ;
+TOKEN RSLListToken = NoParameterToken( "-list", "{*}" ) ;
+TOKEN RSLPartialFnToken = FixedToken( "-~->", "@PartialFn @FA @PO" ) ;
+TOKEN RSLRelationToken = FixedToken( "<->", "arrowboth @A @PO" ) ;
+TOKEN RSLOrToken = FixedToken( "\\/", "logicalor @A @PO" ) ;
+TOKEN RSLNotIsInToken = FixedToken( "~isin", "notelement @A @PO" ) ;
+TOKEN RSLProperSupersetToken = FixedToken( ">>", "propersuperset @A @PO" ) ;
+TOKEN RSLInterToken = FixedToken( "inter", "intersection @A @PO" ) ;
+TOKEN RSLListEndToken = FixedToken( ".>", "angleright @A @PO" ) ;
+TOKEN RSLInterlockToken = FixedToken( "++", "@Interlock @FA @PO" ) ;
+TOKEN RSLLambdaToken = FixedToken( "-\\", "lambda @A @PO" ) ;
+TOKEN RSLImplementsRelToken = FixedToken( "{=", "@Eq { preceq } @FA @PO" ) ;
+TOKEN RSLInfListToken = FixedToken( "-inflist", "@InfList @FA @PO" ) ;
+TOKEN RSLMapToken = FixedToken( "-m->", "@Map @FA @PO" ) ;
+TOKEN RSLSTToken = FixedToken( ":-", "dotmath @A @PO" ) ;
+TOKEN RSLNotEqualToken = FixedToken( "~=", "notequal @A @PO" ) ;
+TOKEN RSLPowerToken = FixedToken( "**", "arrowup @A @PO" ) ;
+TOKEN RSLProperSubsetToken = FixedToken( "<<", "propersubset @A @PO" ) ;
+TOKEN RSLSupersetToken = FixedToken( ">>=", "reflexsuperset @A @PO" ) ;
+TOKEN RSLOverrideToken = FixedToken( "!!", "@Dagger @FA @PO" ) ;
+TOKEN RSLMapletToken = FixedToken( "+>", "@Eq { mapsto } @FA @PO" ) ;
+TOKEN RSLExtChoiceToken = FixedToken( "|=|", "@ExtChoice @FA @PO" ) ;
+TOKEN RSLApplyToken = FixedToken( "#", "degree @A @PO" ) ;
+TOKEN RSLImplementsExprToken = FixedToken( "[=", "@Eq { sqsubseteq } @FA @PO" ) ;
+TOKEN RSLPrimeToken = NoParameterToken( "'", "{'}" ) ;
+TOKEN RSLExistsOneToken = FixedToken( "exists!", "{@Sym existential}! @FA @PO" );
+
+
+
+/*****************************************************************************/
+/* */
/* Perl (quarantined from other languages since it's very different). */
/* */
/* Perl code co-authored by Jeffrey H. Kingston and Mark Summerfield */
@@ -1421,7 +1683,7 @@ TOKEN PerlSTypeStringToken = {
}
-TOKEN PerlRegExpLPar = PerlREToken("(", "@PO{\"(\"} @PS{\"/\"}@PS");
+TOKEN PerlRegExpLPar = PerlREToken("(", "@PO{\"(\"}@PS{\"/\"}@PS");
TOKEN PerlRegExpEq = PerlREToken("=", "@PO{\"=\"} @PS{\"/\"}@PS");
TOKEN PerlRegExpMatch = PerlREToken("=~", "@PO{\"=~\"} @PS{\"/\"}@PS");
TOKEN PerlRegExpNoMatch = PerlREToken("!~", "@PO{\"!~\"} @PS{\"/\"}@PS");
@@ -2695,9 +2957,7 @@ LANGUAGE RubyLanguage = {
NO_MATCH_ERROR,
{
&BackSlashToken,
- /* &PerlRegExpLPar, */ /* This produces extra space between the paren and
- the slash */
- &PerlRegExpEq, &PerlRegExpMatch, &PerlRegExpNoMatch,
+ &PerlRegExpLPar, &PerlRegExpEq, &PerlRegExpMatch, &PerlRegExpNoMatch,
&PerlRegExpSplit, &PerlRegExpIf, &PerlRegExpAnd, &PerlRegExpAnd2,
&PerlRegExpOr, &PerlRegExpOr2, &PerlRegExpXor, &PerlRegExpNot,
&PerlRegExpNot2, &PerlRegExpUnless,
@@ -2826,31 +3086,122 @@ LANGUAGE NonpareilLanguage = {
"nonpareil", "@Nonpareil",
NO_MATCH_ERROR,
{
- &CStringToken, &IdentifierToken, &NumberToken,
+ &CStringToken, &CCharacterToken, &IdentifierToken, &NumberToken,
&NonpareilCommentToken, &PythonCommentEscapeToken,
- /* overlaps with NonpareilOperatorToken so omitted: &PlusToken, */
&MinusToken,
+ &LeftBraceToken,
+ &RightBraceToken,
&LeftBracketToken,
&RightBracketToken,
&CommaToken,
- &ArrowToken,
&ColonToken,
&AssignToken,
&LeftParenToken,
&RightParenToken,
&EiffelDotToken,
+ &NonpareilExclamationToken,
&DotDotToken,
+ &DotDotDotToken,
&NonpareilOperatorToken,
},
{
- "cvt", "invariant", "pre", "noncreation", "postfix",
- "and", "or", "not", "false", "true",
- "class", "else", "elsif", "end", "extension", "if", "in", "infix",
- "inherit", "inspect", "is", "let", "prefix", "private", "public",
- "then", "when", "yield",
+ "builtin", "case", "class", "creation", "coerce", "else", "elsif", "end",
+ "extend", "extension", "false", "from", "fun", "if", "in", "infix",
+ "inherit", "introduce", "invariant", "is", "let", "local", "meet",
+ "module", "noncreation", "norename", "prefix", "private", "postfix",
+ "rename", "require", "self", "system", "then", "to", "true", "use",
+ "when", "yield",
+
+ /* not reserved words strictly speaking, but conventionally set like them */
+ "and", "or", "not"
}
};
+
+/*****************************************************************************/
+/* */
+/* Haskell */
+/* */
+/*****************************************************************************/
+
+LANGUAGE HaskellLanguage = {
+ { "Haskell", "haskell" },
+ "haskell", "@Haskell",
+ NO_MATCH_ERROR,
+ {
+ /*&EqualToken, &PlusToken, &MinusToken, &DotToken,
+ &StarToken, &HaskellColonToken,
+ &LessToken, &GreaterToken,
+ these overlap with HaskellOperatorToken */
+ &HaskellStringToken, &HaskellCharacterToken,
+ &HaskellIdentifierToken, &NumberToken,
+ &HaskellLineCommentToken, &HaskellCommentToken,
+ &HaskellCommentEscapeToken, &HaskellLineCommentEscapeToken,
+ &SemicolonToken, &CommaToken, &DoubleColonToken,
+ &HaskellEquivalenceToken, &FunctionCompositionToken,
+ &ArrowToken, &LeftArrowToken, &HaskellLambdaToken,
+ &LeftParenToken, &RightParenToken, &LeftBracketToken, &RightBracketToken,
+ &LeftBraceToken, &RightBraceToken, &EiffelNotEqualToken, &LessEqualToken,
+ &ImpliesToken, &GreaterEqualToken, &HaskellConcatenationToken,
+ &HaskellOperatorToken, &HaskellOrToken, &HaskellAndToken
+ },
+ {
+ "case", "class", "data", "default", "deriving", "do",
+ "else", "if", "import", "in", "infix", "infixl", "infixr", "instance",
+ "let", "module", "newtype", "of", "then", "type", "where",
+
+ "as", "hiding", "qualified",
+
+ "True", "False"
+ }
+};
+
+
+/*****************************************************************************/
+/* */
+/* RSL */
+/* */
+/*****************************************************************************/
+/* Tokens, keywords taken from UNU/IIST Report No. 249 */
+
+LANGUAGE RSLLanguage = {
+ { "RSL", "rsl" },
+ "rsl", "@RSL",
+ NO_MATCH_ERROR,
+ {
+ &RSLIdentifierToken, &CommaToken, &EqualToken, &ColonToken,
+ &LeftParenToken, &RightParenToken, &LeftBraceToken,
+ &RightBraceToken, &EiffelDotToken, &CircumToken, &NumberToken,
+ &SemicolonToken, &MinusToken, &LeftBracketToken,
+ &RightBracketToken, &PlusToken, &BarToken, &CCommentToken, &HatToken,
+ &SlashToken, &LessToken, &GreaterToken, &RSLPrimeToken,
+ &RSLProductToken, &ArrowToken, &RSLPartialMapToken, &RSLAndToken,
+ &RSLAlwaysToken, &LessEqualToken, &RSLIsInToken,
+ &RSLSubsetToken, &RSLUnionToken, &RSLListStartToken, &RSLParToken,
+ &RSLIntChoiceToken, &RSLTurnstileToken, &RSLListToken,
+ &RSLPartialFnToken, &RSLRelationToken, &RSLOrToken,
+ &GreaterEqualToken,
+ &RSLNotIsInToken, &RSLProperSupersetToken, &RSLInterToken,
+ &RSLListEndToken, &RSLInterlockToken, &RSLLambdaToken,
+ &RSLImplementsRelToken, &RSLInfListToken, &RSLMapToken, &ImpliesToken,
+ &RSLSTToken, &RSLNotEqualToken, &RSLPowerToken,
+ &RSLProperSubsetToken, &RSLSupersetToken, &RSLOverrideToken,
+ &RSLMapletToken, &RSLExtChoiceToken, &RSLApplyToken,
+ &RSLImplementsExprToken, &CCommentEscapeToken, &EiffelCommentToken,
+ &EiffelCommentEscapeToken, &BackSlashToken, &RSLExistsOneToken, &StarToken
+ },
+ { "Bool", "Char", "Int", "Nat", "Real", "Text", "Unit", "abs", "any",
+ "as", "axiom", "card", "case", "channel", "chaos", "class", "do",
+ "dom", "elems", "else", "elsif", "end", "extend", "false", "for",
+ "hd", "hide", "if", "in", "inds", "initialise", "int", "len", "let",
+ "local", "object", "of", "out", "post", "pre", "read", "real",
+ "rng", "scheme", "skip", "stop", "swap", "test_case", "then", "tl",
+ "true", "type", "until", "use", "value", "variable", "while", "with",
+ "write", "is", "exists", "all"
+ }
+};
+
+
/*****************************************************************************/
/* */
/* Perl and Pod */
@@ -3041,11 +3392,13 @@ LANGUAGE *languages[] = {
& BlueLanguage,
& CLanguage,
& EiffelLanguage,
+ & HaskellLanguage,
& JavaLanguage,
& NonpareilLanguage,
& PerlLanguage,
& PodLanguage,
& PythonLanguage,
+ & RSLLanguage,
& RubyLanguage,
NO_LANGUAGE
};
diff --git a/whatsnew b/whatsnew
index bc31b56..9f3441c 100644
--- a/whatsnew
+++ b/whatsnew
@@ -350,4 +350,23 @@ Changes and new features introduced in Version 3.28 [December 2002]
@Ding symbol (like @Sym) for dingbats
Dingbats fully documented in Chapter 1 of the User's Guide
+Changes and new features introduced in Version 3.29 [August 2003]
+
+ Fixed latest table running headers bug
+ @PageLabel value "?" usually now replaced by a guess at a page number
+ Index entry types (Ordinary, Main, Special) for index pagenum format
+ Haskell programming language support in prg2lout (ack Thorsten Seitz)
+ RSL programming language support in prg2lout (ack Darren Bane)
+ @OneOrBoth symbol added to syntax diagrams, for "X | Y | XY" grammar
+ New outlinestyle/pathstyle options for @Diag: dotdashed, dotcdashed,
+ dotdotdashed, dotdotcdashed, dotdotdotdashed, and dotdotdotcdashed
+ New pairs options for @Graph: dotdashed, dotdotdashed, dotdotdotdashed;
+ plus @GraphDotDashed, @GraphDotDotDashed, @GraphDotDotDotDashed syms
+
+Things to do (or not)
+
+ I may have promised to add dashed, dotted etc. options to @Tbl's
+ rules, but existing code does not lend itself to it, so I haven't.
+ Bug in placement of Index/Glossary headings (awaiting example of bug).
+
Jeff Kingston
diff --git a/z01.c b/z01.c
index 9ac09bc..39b767f 100644
--- a/z01.c
+++ b/z01.c
@@ -1,10 +1,10 @@
/*@z01.c:Supervise:StartSym, AllowCrossDb, etc.@******************************/
/* */
-/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */
-/* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */
+/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.29) */
+/* COPYRIGHT (C) 1991, 2003 Jeffrey H. Kingston */
/* */
/* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */
-/* Basser Department of Computer Science */
+/* School of Information Technologies */
/* The University of Sydney 2006 */
/* AUSTRALIA */
/* */
diff --git a/z02.c b/z02.c
index 2c9a138..c4130a9 100644
--- a/z02.c
+++ b/z02.c
@@ -1,10 +1,10 @@
/*@z02.c:Lexical Analyser:Declarations@***************************************/
/* */
-/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */
-/* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */
+/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.29) */
+/* COPYRIGHT (C) 1991, 2003 Jeffrey H. Kingston */
/* */
/* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */
-/* Basser Department of Computer Science */
+/* School of Information Technologies */
/* The University of Sydney 2006 */
/* AUSTRALIA */
/* */
diff --git a/z03.c b/z03.c
index de680da..07acf17 100644
--- a/z03.c
+++ b/z03.c
@@ -1,10 +1,10 @@
/*@z03.c:File Service:Declarations, no_fpos@******************************** */
/* */
-/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */
-/* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */
+/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.29) */
+/* COPYRIGHT (C) 1991, 2003 Jeffrey H. Kingston */
/* */
/* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */
-/* Basser Department of Computer Science */
+/* School of Information Technologies */
/* The University of Sydney 2006 */
/* AUSTRALIA */
/* */
diff --git a/z04.c b/z04.c
index 8b37181..96b89f1 100644
--- a/z04.c
+++ b/z04.c
@@ -1,10 +1,10 @@
/*@z04.c:Token Service:NewToken(), CopyTokenList()@***************************/
/* */
-/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */
-/* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */
+/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.29) */
+/* COPYRIGHT (C) 1991, 2003 Jeffrey H. Kingston */
/* */
/* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */
-/* Basser Department of Computer Science */
+/* School of Information Technologies */
/* The University of Sydney 2006 */
/* AUSTRALIA */
/* */
diff --git a/z05.c b/z05.c
index d17a70c..79711e0 100644
--- a/z05.c
+++ b/z05.c
@@ -1,10 +1,10 @@
/*@z05.c:Read Definitions:ReadLangDef()@**************************************/
/* */
-/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */
-/* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */
+/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.29) */
+/* COPYRIGHT (C) 1991, 2003 Jeffrey H. Kingston */
/* */
/* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */
-/* Basser Department of Computer Science */
+/* School of Information Technologies */
/* The University of Sydney 2006 */
/* AUSTRALIA */
/* */
diff --git a/z06.c b/z06.c
index ebc487a..060e401 100644
--- a/z06.c
+++ b/z06.c
@@ -1,10 +1,10 @@
/*@z06.c:Parser:PushObj(), PushToken(), etc.@*********************************/
/* */
-/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */
-/* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */
+/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.29) */
+/* COPYRIGHT (C) 1991, 2003 Jeffrey H. Kingston */
/* */
/* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */
-/* Basser Department of Computer Science */
+/* School of Information Technologies */
/* The University of Sydney 2006 */
/* AUSTRALIA */
/* */
diff --git a/z07.c b/z07.c
index fa25705..a1d057f 100644
--- a/z07.c
+++ b/z07.c
@@ -1,10 +1,10 @@
/*@z07.c:Object Service:SplitIsDefinite(), DisposeObject()@*******************/
/* */
-/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */
-/* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */
+/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.29) */
+/* COPYRIGHT (C) 1991, 2003 Jeffrey H. Kingston */
/* */
/* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */
-/* Basser Department of Computer Science */
+/* School of Information Technologies */
/* The University of Sydney 2006 */
/* AUSTRALIA */
/* */
diff --git a/z08.c b/z08.c
index 45bd8de..518236a 100644
--- a/z08.c
+++ b/z08.c
@@ -1,10 +1,10 @@
/*@z08.c:Object Manifest:ReplaceWithSplit()@**********************************/
/* */
-/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */
-/* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */
+/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.29) */
+/* COPYRIGHT (C) 1991, 2003 Jeffrey H. Kingston */
/* */
/* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */
-/* Basser Department of Computer Science */
+/* School of Information Technologies */
/* The University of Sydney 2006 */
/* AUSTRALIA */
/* */
@@ -894,9 +894,10 @@ OBJECT *enclose, BOOLEAN fcr)
OBJECT Manifest(OBJECT x, OBJECT env, STYLE *style, OBJECT bthr[2],
OBJECT fthr[2], OBJECT *target, OBJECT *crs, BOOLEAN ok, BOOLEAN need_expand,
OBJECT *enclose, BOOLEAN fcr)
-{ OBJECT bt[2], ft[2], y, link, nextlink, gaplink, g; register FULL_CHAR *p;
+{ OBJECT bt[2], ft[2], y, link, nextlink, gaplink, g, gword;
+ register FULL_CHAR *p;
OBJECT res = nilobj, res_env, res_env2, hold_env, hold_env2, z, prev;
- OBJECT link1, link2, x1, x2, y1, y2;
+ OBJECT link1, link2, x1, x2, y1, y2, vc;
int i, par, num1, num2; GAP res_gap; unsigned res_inc; STYLE new_style;
BOOLEAN done, multiline; FULL_CHAR ch; float scale_factor;
static int depth = 0;
@@ -1355,24 +1356,44 @@ OBJECT *enclose, BOOLEAN fcr)
y = ReplaceWithTidy(y, ACAT_TIDY);
GetGap(y, style, &line_gap(save_style(x)), &res_inc);
- /* attach MAX_HCOPIES-1 new copies of the right parameter as children */
+ /* make vc, a joined VCAT of MAX_HCOPIES copies of the header */
Child(y, LastDown(x));
+ DeleteLink(Up(y));
+ New(vc, VCAT);
+ Link(vc, y);
for( i = 1; i < MAX_HCOPIES; i++ )
{
+ /* make new gap object and link to vc */
+ New(g, GAP_OBJ);
+ mark(gap(g)) = FALSE;
+ join(gap(g)) = TRUE;
+ FposCopy(fpos(g), fpos(y));
+ gword = MakeWord(WORD, STR_EMPTY, &fpos(g));
+ Link(g, gword);
+ Link(vc, g);
+
+ /* copy y and link to vc */
z = CopyObject(y, &fpos(y));
- Link(x, z);
+ Link(vc, z);
}
ifdebug(DGS, D, DebugObject(x));
- /* manifest all MAX_HCOPIES copies of the right parameter */
- for( link = NextDown(Down(x)); link != x; link = nextlink )
+ /* manifest vc */
+ vc = Manifest(vc, env, style, bthr, fthr, target, crs, ok, need_expand,
+ enclose, fcr);
+
+ /* make the MAX_HCOPIES children of vc into children of header */
+ assert(type(vc) == VCAT, "Manifest/BEGIN_HEADER: vc!");
+ for( link = Down(vc); link != vc; link = nextlink )
{
nextlink = NextDown(link);
- Child(y, link);
- y = Manifest(y, env, style, bthr, fthr, target, crs, ok, need_expand,
- enclose, fcr);
+ Child(z, link);
+ if( type(z) != GAP_OBJ )
+ MoveLink(link, x, PARENT);
}
- debug0(DGS, D, "] Manifest returning.");
+ /* DisposeObject(vc); */
+ debug0(DGS, D, "] Manifest returning");
+ /* ifdebug(DGS, D, DebugObject(x)); */
break;
diff --git a/z09.c b/z09.c
index 65cbc70..5376142 100644
--- a/z09.c
+++ b/z09.c
@@ -1,10 +1,10 @@
/*@z09.c:Closure Expansion:SearchEnv()@***************************************/
/* */
-/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */
-/* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */
+/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.29) */
+/* COPYRIGHT (C) 1991, 2003 Jeffrey H. Kingston */
/* */
/* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */
-/* Basser Department of Computer Science */
+/* School of Information Technologies */
/* The University of Sydney 2006 */
/* AUSTRALIA */
/* */
diff --git a/z10.c b/z10.c
index b96e583..9f612f2 100644
--- a/z10.c
+++ b/z10.c
@@ -1,10 +1,10 @@
/*@z10.c:Cross References:CrossInit(), CrossMake()@***************************/
/* */
-/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */
-/* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */
+/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.29) */
+/* COPYRIGHT (C) 1991, 2003 Jeffrey H. Kingston */
/* */
/* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */
-/* Basser Department of Computer Science */
+/* School of Information Technologies */
/* The University of Sydney 2006 */
/* AUSTRALIA */
/* */
diff --git a/z11.c b/z11.c
index 2633ebc..f5f483e 100644
--- a/z11.c
+++ b/z11.c
@@ -1,10 +1,10 @@
/*@z11.c:Style Service:EchoStyle()@*******************************************/
/* */
-/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */
-/* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */
+/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.29) */
+/* COPYRIGHT (C) 1991, 2003 Jeffrey H. Kingston */
/* */
/* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */
-/* Basser Department of Computer Science */
+/* School of Information Technologies */
/* The University of Sydney 2006 */
/* AUSTRALIA */
/* */
diff --git a/z12.c b/z12.c
index f484529..adf5552 100644
--- a/z12.c
+++ b/z12.c
@@ -1,10 +1,10 @@
/*@z12.c:Size Finder:MinSize()@***********************************************/
/* */
-/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */
-/* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */
+/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.29) */
+/* COPYRIGHT (C) 1991, 2003 Jeffrey H. Kingston */
/* */
/* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */
-/* Basser Department of Computer Science */
+/* School of Information Technologies */
/* The University of Sydney 2006 */
/* AUSTRALIA */
/* */
@@ -38,7 +38,7 @@
#if DEBUG_ON
static int debug_depth = 1;
-static int debug_depth_max = 5;
+static int debug_depth_max = 7;
#endif
/*****************************************************************************/
@@ -676,7 +676,7 @@ OBJECT MinSize(OBJECT x, int dim, OBJECT *extras)
for( link = NextDown(Down(x)); link != x; link = NextDown(link) )
{
Child(y, link);
- New(catch_extras, ACAT)
+ New(catch_extras, ACAT);
y = MinSize(y, dim, &catch_extras);
if( Down(catch_extras) != catch_extras )
{
diff --git a/z13.c b/z13.c
index e2e5d6f..687ddc8 100644
--- a/z13.c
+++ b/z13.c
@@ -1,10 +1,10 @@
/*@z13.c:Object Breaking:BreakJoinedGroup()@**********************************/
/* */
-/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */
-/* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */
+/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.29) */
+/* COPYRIGHT (C) 1991, 2003 Jeffrey H. Kingston */
/* */
/* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */
-/* Basser Department of Computer Science */
+/* School of Information Technologies */
/* The University of Sydney 2006 */
/* AUSTRALIA */
/* */
diff --git a/z14.c b/z14.c
index 72f862d..9220478 100644
--- a/z14.c
+++ b/z14.c
@@ -1,10 +1,10 @@
/*@z14.c:Fill Service:Declarations@*******************************************/
/* */
-/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */
-/* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */
+/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.29) */
+/* COPYRIGHT (C) 1991, 2003 Jeffrey H. Kingston */
/* */
/* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */
-/* Basser Department of Computer Science */
+/* School of Information Technologies */
/* The University of Sydney 2006 */
/* AUSTRALIA */
/* */
diff --git a/z15.c b/z15.c
index 9afe233..b709fcc 100644
--- a/z15.c
+++ b/z15.c
@@ -1,10 +1,10 @@
/*@z15.c:Size Constraints:MinConstraint(), EnlargeToConstraint()@*************/
/* */
-/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */
-/* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */
+/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.29) */
+/* COPYRIGHT (C) 1991, 2003 Jeffrey H. Kingston */
/* */
/* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */
-/* Basser Department of Computer Science */
+/* School of Information Technologies */
/* The University of Sydney 2006 */
/* AUSTRALIA */
/* */
diff --git a/z16.c b/z16.c
index 5085a68..ec2b92c 100644
--- a/z16.c
+++ b/z16.c
@@ -1,10 +1,10 @@
/*@z16.c:Size Adjustment:SetNeighbours(), CatAdjustSize()@********************/
/* */
-/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */
-/* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */
+/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.29) */
+/* COPYRIGHT (C) 1991, 2003 Jeffrey H. Kingston */
/* */
/* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */
-/* Basser Department of Computer Science */
+/* School of Information Technologies */
/* The University of Sydney 2006 */
/* AUSTRALIA */
/* */
diff --git a/z17.c b/z17.c
index c76b0bd..442dc28 100644
--- a/z17.c
+++ b/z17.c
@@ -1,10 +1,10 @@
/*@z17.c:Gap Widths:GetGap()@*************************************************/
/* */
-/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */
-/* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */
+/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.29) */
+/* COPYRIGHT (C) 1991, 2003 Jeffrey H. Kingston */
/* */
/* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */
-/* Basser Department of Computer Science */
+/* School of Information Technologies */
/* The University of Sydney 2006 */
/* AUSTRALIA */
/* */
diff --git a/z18.c b/z18.c
index f30c119..a782deb 100644
--- a/z18.c
+++ b/z18.c
@@ -1,10 +1,10 @@
/*@z18.c:Galley Transfer:Declarations@****************************************/
/* */
-/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */
-/* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */
+/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.29) */
+/* COPYRIGHT (C) 1991, 2003 Jeffrey H. Kingston */
/* */
/* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */
-/* Basser Department of Computer Science */
+/* School of Information Technologies */
/* The University of Sydney 2006 */
/* AUSTRALIA */
/* */
diff --git a/z19.c b/z19.c
index 6f7de3e..d941948 100644
--- a/z19.c
+++ b/z19.c
@@ -1,10 +1,10 @@
/*@z19.c:Galley Attaching:DetachGalley()@*************************************/
/* */
-/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */
-/* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */
+/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.29) */
+/* COPYRIGHT (C) 1991, 2003 Jeffrey H. Kingston */
/* */
/* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */
-/* Basser Department of Computer Science */
+/* School of Information Technologies */
/* The University of Sydney 2006 */
/* AUSTRALIA */
/* */
diff --git a/z20.c b/z20.c
index 73e1988..c82dbdb 100644
--- a/z20.c
+++ b/z20.c
@@ -1,10 +1,10 @@
/*@z20.c:Galley Flushing:DebugInnersNames()@**********************************/
/* */
-/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */
-/* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */
+/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.29) */
+/* COPYRIGHT (C) 1991, 2003 Jeffrey H. Kingston */
/* */
/* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */
-/* Basser Department of Computer Science */
+/* School of Information Technologies */
/* The University of Sydney 2006 */
/* AUSTRALIA */
/* */
diff --git a/z21.c b/z21.c
index 3080965..bc192dc 100644
--- a/z21.c
+++ b/z21.c
@@ -1,10 +1,10 @@
/*@z21.c:Galley Maker:SizeGalley()@*******************************************/
/* */
-/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */
-/* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */
+/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.29) */
+/* COPYRIGHT (C) 1991, 2003 Jeffrey H. Kingston */
/* */
/* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */
-/* Basser Department of Computer Science */
+/* School of Information Technologies */
/* The University of Sydney 2006 */
/* AUSTRALIA */
/* */
diff --git a/z22.c b/z22.c
index 84542f3..7df2b0c 100644
--- a/z22.c
+++ b/z22.c
@@ -1,10 +1,10 @@
/*@z22.c:Galley Service:Interpose()@******************************************/
/* */
-/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */
-/* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */
+/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.29) */
+/* COPYRIGHT (C) 1991, 2003 Jeffrey H. Kingston */
/* */
/* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */
-/* Basser Department of Computer Science */
+/* School of Information Technologies */
/* The University of Sydney 2006 */
/* AUSTRALIA */
/* */
@@ -549,13 +549,15 @@ void HandleHeader(OBJECT hd, OBJECT header)
void Promote(OBJECT hd, OBJECT stop_link, OBJECT dest_index, BOOLEAN join_after)
{
- /* these two variables refer to the root galley only */
- static BOOLEAN first = TRUE; /* TRUE if first component unwritten */
- static OBJECT page_label=nilobj; /* current page label object */
+ /* these three variables refer to the root galley only */
+ static BOOLEAN first = TRUE; /* if first component unwritten */
+ static OBJECT page_label = nilobj; /* current page label object */
+ static OBJECT prev_page_label = nilobj; /* previous page label object */
- OBJECT dest, link, y, z, tmp1, tmp2, why, top_y; FULL_CHAR *label_string;
+ OBJECT dest, link, y, z, tmp1, tmp2, why, top_y;
+ FULL_CHAR *label_string, buff[MAX_LINE];
FULL_LENGTH aback, afwd;
- int dim;
+ int dim, pnval;
debug1(DGS, DD, "[ Promote(%s, stop_link):", SymName(actual(hd)));
ifdebug(DGS, DD, DebugGalley(hd, stop_link, 2));
@@ -871,9 +873,19 @@ void Promote(OBJECT hd, OBJECT stop_link, OBJECT dest_index, BOOLEAN join_after)
FixAndPrintObject(y, back(y, COLM), back(y, COLM), fwd(y, COLM),
COLM, FALSE, 0, 0, &aback, &afwd);
+ /* get label string from page_label, or prev_page_label + 1 */
+ if( page_label != nilobj && is_word(type(page_label)) )
+ label_string = string(page_label);
+ else if( prev_page_label!=nilobj && is_word(type(prev_page_label))
+ && sscanf( (char *) string(prev_page_label), "%d", &pnval)==1 )
+ {
+ sprintf( (char *) buff, "%d", pnval + 1);
+ label_string = buff;
+ }
+ else
+ label_string = AsciiToFull("?");
+
/* print prefatory or page separating material, including fonts */
- label_string = page_label != nilobj && is_word(type(page_label)) ?
- string(page_label) : AsciiToFull("?");
debug1(DGS, DD, "root promote definite; label_string = %s",
label_string);
debug1(DCR, DD, "label_string = %s", label_string);
@@ -885,10 +897,12 @@ void Promote(OBJECT hd, OBJECT stop_link, OBJECT dest_index, BOOLEAN join_after)
else
BackEnd->PrintBetweenPages(size(hd, COLM), size(y, ROWM),
label_string);
- if( page_label != nilobj )
- { DisposeObject(page_label);
- page_label = nilobj;
- }
+
+ /* dispose prev_page_label and move page_label to prev_page_label */
+ if( prev_page_label != nilobj )
+ DisposeObject(prev_page_label);
+ prev_page_label = page_label;
+ page_label = nilobj;
/* fix and print vertically */
debug1(DGF,D, " Promote calling FixAndPrint %s", Image(type(y)));
diff --git a/z23.c b/z23.c
index f54fd2e..cccedeb 100644
--- a/z23.c
+++ b/z23.c
@@ -1,10 +1,10 @@
/*@z23.c:Galley Printer:ScaleFactor()@****************************************/
/* */
-/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */
-/* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */
+/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.29) */
+/* COPYRIGHT (C) 1991, 2003 Jeffrey H. Kingston */
/* */
/* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */
-/* Basser Department of Computer Science */
+/* School of Information Technologies */
/* The University of Sydney 2006 */
/* AUSTRALIA */
/* */
diff --git a/z24.c b/z24.c
index 93c893f..b07c446 100644
--- a/z24.c
+++ b/z24.c
@@ -1,10 +1,10 @@
/*@z24.c:Print Service:PrintInit()@*******************************************/
/* */
-/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */
-/* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */
+/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.29) */
+/* COPYRIGHT (C) 1991, 2003 Jeffrey H. Kingston */
/* */
/* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */
-/* Basser Department of Computer Science */
+/* School of Information Technologies */
/* The University of Sydney 2006 */
/* AUSTRALIA */
/* */
diff --git a/z25.c b/z25.c
index 08d0b88..c28ff8d 100644
--- a/z25.c
+++ b/z25.c
@@ -1,10 +1,10 @@
/*@z25.c:Object Echo:aprint(), cprint(), printnum()@**************************/
/* */
-/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */
-/* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */
+/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.29) */
+/* COPYRIGHT (C) 1991, 2003 Jeffrey H. Kingston */
/* */
/* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */
-/* Basser Department of Computer Science */
+/* School of Information Technologies */
/* The University of Sydney 2006 */
/* AUSTRALIA */
/* */
diff --git a/z26.c b/z26.c
index 9dc4eb3..ab00984 100644
--- a/z26.c
+++ b/z26.c
@@ -1,10 +1,10 @@
/*@z26.c:Echo Service:BeginString()@******************************************/
/* */
-/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */
-/* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */
+/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.29) */
+/* COPYRIGHT (C) 1991, 2003 Jeffrey H. Kingston */
/* */
/* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */
-/* Basser Department of Computer Science */
+/* School of Information Technologies */
/* The University of Sydney 2006 */
/* AUSTRALIA */
/* */
diff --git a/z27.c b/z27.c
index 17aab7c..4575cd0 100644
--- a/z27.c
+++ b/z27.c
@@ -1,10 +1,10 @@
/*@z27.c:Debug Service:Debug flags@*******************************************/
/* */
-/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */
-/* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */
+/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.29) */
+/* COPYRIGHT (C) 1991, 2003 Jeffrey H. Kingston */
/* */
/* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */
-/* Basser Department of Computer Science */
+/* School of Information Technologies */
/* The University of Sydney 2006 */
/* AUSTRALIA */
/* */
diff --git a/z28.c b/z28.c
index 361970a..697f9d1 100644
--- a/z28.c
+++ b/z28.c
@@ -1,10 +1,10 @@
/*@z28.c:Error Service:ErrorInit(), ErrorSeen()@******************************/
/* */
-/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */
-/* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */
+/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.29) */
+/* COPYRIGHT (C) 1991, 2003 Jeffrey H. Kingston */
/* */
/* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */
-/* Basser Department of Computer Science */
+/* School of Information Technologies */
/* The University of Sydney 2006 */
/* AUSTRALIA */
/* */
diff --git a/z29.c b/z29.c
index 5efc0a7..853200a 100644
--- a/z29.c
+++ b/z29.c
@@ -1,10 +1,10 @@
/*@z29.c:Symbol Table:Declarations, hash()@***********************************/
/* */
-/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */
-/* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */
+/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.29) */
+/* COPYRIGHT (C) 1991, 2003 Jeffrey H. Kingston */
/* */
/* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */
-/* Basser Department of Computer Science */
+/* School of Information Technologies */
/* The University of Sydney 2006 */
/* AUSTRALIA */
/* */
diff --git a/z30.c b/z30.c
index 4a96255..5b918eb 100644
--- a/z30.c
+++ b/z30.c
@@ -1,10 +1,10 @@
/*@z30.c:Symbol uses:InsertUses()@********************************************/
/* */
-/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */
-/* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */
+/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.29) */
+/* COPYRIGHT (C) 1991, 2003 Jeffrey H. Kingston */
/* */
/* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */
-/* Basser Department of Computer Science */
+/* School of Information Technologies */
/* The University of Sydney 2006 */
/* AUSTRALIA */
/* */
diff --git a/z31.c b/z31.c
index ba6a045..09767e4 100644
--- a/z31.c
+++ b/z31.c
@@ -1,10 +1,10 @@
/*@z31.c:Memory Allocator:DebugMemory()@**************************************/
/* */
-/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */
-/* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */
+/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.29) */
+/* COPYRIGHT (C) 1991, 2003 Jeffrey H. Kingston */
/* */
/* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */
-/* Basser Department of Computer Science */
+/* School of Information Technologies */
/* The University of Sydney 2006 */
/* AUSTRALIA */
/* */
diff --git a/z32.c b/z32.c
index e7aa89d..3a67403 100644
--- a/z32.c
+++ b/z32.c
@@ -1,10 +1,10 @@
/*@z32.c:Counter Service:Next()@**********************************************/
/* */
-/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */
-/* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */
+/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.29) */
+/* COPYRIGHT (C) 1991, 2003 Jeffrey H. Kingston */
/* */
/* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */
-/* Basser Department of Computer Science */
+/* School of Information Technologies */
/* The University of Sydney 2006 */
/* AUSTRALIA */
/* */
diff --git a/z33.c b/z33.c
index a633235..02e1cd6 100644
--- a/z33.c
+++ b/z33.c
@@ -1,10 +1,10 @@
/*@z33.c:Database Service:OldCrossDb(), NewCrossDb(), SymToNum()@*************/
/* */
-/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */
-/* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */
+/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.29) */
+/* COPYRIGHT (C) 1991, 2003 Jeffrey H. Kingston */
/* */
/* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */
-/* Basser Department of Computer Science */
+/* School of Information Technologies */
/* The University of Sydney 2006 */
/* AUSTRALIA */
/* */
diff --git a/z34.c b/z34.c
index 555c586..1c840da 100644
--- a/z34.c
+++ b/z34.c
@@ -1,10 +1,10 @@
/*@z34.c:Rotation Service:Declarations@***************************************/
/* */
-/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */
-/* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */
+/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.29) */
+/* COPYRIGHT (C) 1991, 2003 Jeffrey H. Kingston */
/* */
/* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */
-/* Basser Department of Computer Science */
+/* School of Information Technologies */
/* The University of Sydney 2006 */
/* AUSTRALIA */
/* */
diff --git a/z35.c b/z35.c
index 35e87fe..3036efa 100644
--- a/z35.c
+++ b/z35.c
@@ -1,10 +1,10 @@
/*@z35.c:Time Keeper: MomentSym(), TimeString()@******************************/
/* */
-/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */
-/* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */
+/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.29) */
+/* COPYRIGHT (C) 1991, 2003 Jeffrey H. Kingston */
/* */
/* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */
-/* Basser Department of Computer Science */
+/* School of Information Technologies */
/* The University of Sydney 2006 */
/* AUSTRALIA */
/* */
diff --git a/z36.c b/z36.c
index d74053f..9a2ed4b 100644
--- a/z36.c
+++ b/z36.c
@@ -1,10 +1,10 @@
/*@z36.c:Hyphenation: Declarations@*******************************************/
/* */
-/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */
-/* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */
+/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.29) */
+/* COPYRIGHT (C) 1991, 2003 Jeffrey H. Kingston */
/* */
/* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */
-/* Basser Department of Computer Science */
+/* School of Information Technologies */
/* The University of Sydney 2006 */
/* AUSTRALIA */
/* */
diff --git a/z37.c b/z37.c
index 4b90b6f..fb74cb8 100644
--- a/z37.c
+++ b/z37.c
@@ -1,10 +1,10 @@
/*@z37.c:Font Service:Declarations@*******************************************/
/* */
-/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */
-/* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */
+/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.29) */
+/* COPYRIGHT (C) 1991, 2003 Jeffrey H. Kingston */
/* */
/* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */
-/* Basser Department of Computer Science */
+/* School of Information Technologies */
/* The University of Sydney 2006 */
/* AUSTRALIA */
/* */
diff --git a/z38.c b/z38.c
index ebe1045..32e9b75 100644
--- a/z38.c
+++ b/z38.c
@@ -1,10 +1,10 @@
/*@z38.c:Character Mappings:Declarations@*************************************/
/* */
-/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */
-/* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */
+/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.29) */
+/* COPYRIGHT (C) 1991, 2003 Jeffrey H. Kingston */
/* */
/* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */
-/* Basser Department of Computer Science */
+/* School of Information Technologies */
/* The University of Sydney 2006 */
/* AUSTRALIA */
/* */
diff --git a/z39.c b/z39.c
index c42b12c..e2c97c3 100644
--- a/z39.c
+++ b/z39.c
@@ -1,10 +1,10 @@
/*@z39.c:String Handler:AsciiToFull(), StringEqual(), etc.@*******************/
/* */
-/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */
-/* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */
+/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.29) */
+/* COPYRIGHT (C) 1991, 2003 Jeffrey H. Kingston */
/* */
/* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */
-/* Basser Department of Computer Science */
+/* School of Information Technologies */
/* The University of Sydney 2006 */
/* AUSTRALIA */
/* */
diff --git a/z40.c b/z40.c
index 9d799b2..3de4341 100644
--- a/z40.c
+++ b/z40.c
@@ -1,10 +1,10 @@
/*@z40.c:Filter Handler:FilterInit()@*****************************************/
/* */
-/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */
-/* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */
+/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.29) */
+/* COPYRIGHT (C) 1991, 2003 Jeffrey H. Kingston */
/* */
/* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */
-/* Basser Department of Computer Science */
+/* School of Information Technologies */
/* The University of Sydney 2006 */
/* AUSTRALIA */
/* */
diff --git a/z41.c b/z41.c
index c1a8d39..06d063e 100644
--- a/z41.c
+++ b/z41.c
@@ -1,10 +1,10 @@
/*@z41.c:Object Input-Output:AppendToFile, ReadFromFile@**********************/
/* */
-/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */
-/* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */
+/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.29) */
+/* COPYRIGHT (C) 1991, 2003 Jeffrey H. Kingston */
/* */
/* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */
-/* Basser Department of Computer Science */
+/* School of Information Technologies */
/* The University of Sydney 2006 */
/* AUSTRALIA */
/* */
diff --git a/z42.c b/z42.c
index 41e979a..d093396 100644
--- a/z42.c
+++ b/z42.c
@@ -1,10 +1,10 @@
/*@z42.c:Colour Service:ColourChange, ColourCommand@**************************/
/* */
-/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */
-/* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */
+/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.29) */
+/* COPYRIGHT (C) 1991, 2003 Jeffrey H. Kingston */
/* */
/* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */
-/* Basser Department of Computer Science */
+/* School of Information Technologies */
/* The University of Sydney 2006 */
/* AUSTRALIA */
/* */
diff --git a/z43.c b/z43.c
index 7eab684..f92bf37 100644
--- a/z43.c
+++ b/z43.c
@@ -1,10 +1,10 @@
/*@z43.c:Language Service:LanguageChange, LanguageString@*********************/
/* */
-/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */
-/* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */
+/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.29) */
+/* COPYRIGHT (C) 1991, 2003 Jeffrey H. Kingston */
/* */
/* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */
-/* Basser Department of Computer Science */
+/* School of Information Technologies */
/* The University of Sydney 2006 */
/* AUSTRALIA */
/* */
diff --git a/z44.c b/z44.c
index e244de9..97c7398 100644
--- a/z44.c
+++ b/z44.c
@@ -1,10 +1,10 @@
/*@z44.c:Vertical Hyphenation:VerticalHyphenate()@****************************/
/* */
-/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */
-/* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */
+/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.29) */
+/* COPYRIGHT (C) 1991, 2003 Jeffrey H. Kingston */
/* */
/* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */
-/* Basser Department of Computer Science */
+/* School of Information Technologies */
/* The University of Sydney 2006 */
/* AUSTRALIA */
/* */
diff --git a/z45.c b/z45.c
index 3e95835..7698906 100644
--- a/z45.c
+++ b/z45.c
@@ -1,10 +1,10 @@
/*@z45.c:External Sort:SortFile()@********************************************/
/* */
-/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */
-/* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */
+/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.29) */
+/* COPYRIGHT (C) 1991, 2003 Jeffrey H. Kingston */
/* */
/* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */
-/* Basser Department of Computer Science */
+/* School of Information Technologies */
/* The University of Sydney 2006 */
/* AUSTRALIA */
/* */
diff --git a/z46.c b/z46.c
index 82256cc..0e55ddc 100644
--- a/z46.c
+++ b/z46.c
@@ -1,10 +1,10 @@
/*@z46.c:Optimal Galleys:FindOptimize()@**************************************/
/* */
-/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */
-/* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */
+/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.29) */
+/* COPYRIGHT (C) 1991, 2003 Jeffrey H. Kingston */
/* */
/* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */
-/* Basser Department of Computer Science */
+/* School of Information Technologies */
/* The University of Sydney 2006 */
/* AUSTRALIA */
/* */
diff --git a/z47.c b/z47.c
index 240e47a..c8c2672 100644
--- a/z47.c
+++ b/z47.c
@@ -1,10 +1,10 @@
/*@z47.c:Environment Table:EnvReadRetrieve()@*********************************/
/* */
-/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */
-/* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */
+/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.29) */
+/* COPYRIGHT (C) 1991, 2003 Jeffrey H. Kingston */
/* */
/* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */
-/* Basser Department of Computer Science */
+/* School of Information Technologies */
/* The University of Sydney 2006 */
/* AUSTRALIA */
/* */
diff --git a/z48.c b/z48.c
index e7b6666..3cd9827 100644
--- a/z48.c
+++ b/z48.c
@@ -1,10 +1,10 @@
/*@z48.c:PDF back end@********************************************************/
/* */
-/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */
-/* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */
+/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.29) */
+/* COPYRIGHT (C) 1991, 2003 Jeffrey H. Kingston */
/* */
/* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */
-/* Basser Department of Computer Science */
+/* School of Information Technologies */
/* The University of Sydney 2006 */
/* AUSTRALIA */
/* */
diff --git a/z49.c b/z49.c
index bc24add..f49f1ff 100644
--- a/z49.c
+++ b/z49.c
@@ -1,10 +1,10 @@
/*@z49.c:PostScript Back End:PS_BackEnd@**************************************/
/* */
-/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */
-/* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */
+/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.29) */
+/* COPYRIGHT (C) 1991, 2003 Jeffrey H. Kingston */
/* */
/* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */
-/* Basser Department of Computer Science */
+/* School of Information Technologies */
/* The University of Sydney 2006 */
/* AUSTRALIA */
/* */
diff --git a/z50.c b/z50.c
index 68f3050..d04ff2c 100644
--- a/z50.c
+++ b/z50.c
@@ -1,10 +1,10 @@
/*@z50.c:PDF Back End:PDF_BackEnd@********************************************/
/* */
-/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */
-/* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */
+/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.29) */
+/* COPYRIGHT (C) 1991, 2003 Jeffrey H. Kingston */
/* */
/* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */
-/* Basser Department of Computer Science */
+/* School of Information Technologies */
/* The University of Sydney 2006 */
/* AUSTRALIA */
/* */
diff --git a/z51.c b/z51.c
index 23cfda5..c7fb7cf 100644
--- a/z51.c
+++ b/z51.c
@@ -1,10 +1,10 @@
/*@z51.c:Plain Text Back End:Plain_BackEnd@***********************************/
/* */
-/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */
-/* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */
+/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.29) */
+/* COPYRIGHT (C) 1991, 2003 Jeffrey H. Kingston */
/* */
/* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */
-/* Basser Department of Computer Science */
+/* School of Information Technologies */
/* The University of Sydney 2006 */
/* AUSTRALIA */
/* */
diff --git a/z52.c b/z52.c
index 2830d4a..4068aad 100644
--- a/z52.c
+++ b/z52.c
@@ -1,10 +1,10 @@
/*@z52.c:Texture Service:TextureChange, TextureCommand@***********************/
/* */
-/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */
-/* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */
+/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.29) */
+/* COPYRIGHT (C) 1991, 2003 Jeffrey H. Kingston */
/* */
/* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */
-/* Basser Department of Computer Science */
+/* School of Information Technologies */
/* The University of Sydney 2006 */
/* AUSTRALIA */
/* */
@@ -152,7 +152,7 @@ static void ptab_debug(TEXTURE_TABLE S, FILE *fp)
fprintf(fp, " %s",
is_word(type(y)) ? string(y) : AsciiToFull("not-WORD!"));
}
- fprintf(fp, STR_NEWLINE);
+ fprintf(fp, "%s", STR_NEWLINE);
}
} /* end ptab_debug */
#endif