From 68c155de3c3e83f53404288a318c5e29f0c4610f Mon Sep 17 00:00:00 2001 From: "Jeffrey H. Kingston" Date: Tue, 14 Sep 2010 20:38:39 +0000 Subject: Lout 3.28. git-svn-id: http://svn.savannah.nongnu.org/svn/lout/trunk@25 9365b830-b601-4143-9ba8-b4a8e2c3339c --- README | 2 +- blurb | 10 +- data/standard.ld | 34 +- doc/README | 1 - doc/design/README | 2 +- doc/design/outfile.ps | 36 +- doc/expert/README | 2 +- doc/expert/all | 6 +- doc/expert/outfile.ps | 1291 +++++++------ doc/expert/preface | 2 +- doc/slides/README | 2 +- doc/slides/outfile.ps | 30 +- doc/user/README | 6 +- doc/user/all | 4 +- doc/user/bas | 2 +- doc/user/bas_char | 278 +++ doc/user/bas_lang | 55 +- doc/user/bgr_text | 13 +- doc/user/dia_tags | 22 +- doc/user/preface | 2 +- doc/user/prg | 17 +- doc/user/typ_book | 67 +- doc/user/typ_orga | 1 + doc/user/typ_over | 25 +- doc/user/typ_plai | 2 +- externs.h | 6 +- include/README | 4 + include/book | 8 + include/bookf | 56 +- include/bsf | 19 +- include/dsf | 30 + include/np | 108 ++ include/npf | 389 ++++ include/report | 2 +- include/ruby | 109 ++ include/rubyf | 393 ++++ include/save_bookf | 1358 ++++++++++++++ include/save_dsf | 4930 +++++++++++++++++++++++++++++++++++++++++++++++++ makefile | 2 +- man/lout.1 | 6 +- man/lout.txt | 343 ++-- prg2lout.c | 229 ++- whatsnew | 10 + z01.c | 11 +- z02.c | 2 +- z03.c | 2 +- z04.c | 2 +- z05.c | 2 +- z06.c | 2 +- z07.c | 2 +- z08.c | 2 +- z09.c | 2 +- z10.c | 2 +- z11.c | 2 +- z12.c | 2 +- z13.c | 2 +- z14.c | 2 +- z15.c | 2 +- z16.c | 2 +- z17.c | 2 +- z18.c | 2 +- z19.c | 2 +- z20.c | 2 +- z21.c | 2 +- z22.c | 2 +- z23.c | 4 +- z24.c | 2 +- z25.c | 2 +- z26.c | 2 +- z27.c | 2 +- z28.c | 2 +- z29.c | 2 +- z30.c | 2 +- z31.c | 2 +- z32.c | 2 +- z33.c | 2 +- z34.c | 2 +- z35.c | 2 +- z36.c | 2 +- z37.c | 2 +- z38.c | 2 +- z39.c | 2 +- z40.c | 2 +- z41.c | 2 +- z42.c | 2 +- z43.c | 2 +- z44.c | 2 +- z45.c | 2 +- z46.c | 2 +- z47.c | 2 +- z48.c | 2 +- z49.c | 4 +- z50.c | 2 +- z51.c | 2 +- z52.c | 19 +- 95 files changed, 9027 insertions(+), 1021 deletions(-) create mode 100644 include/np create mode 100644 include/npf create mode 100644 include/ruby create mode 100644 include/rubyf create mode 100644 include/save_bookf create mode 100644 include/save_dsf diff --git a/README b/README index 46878c1..ae36a8b 100644 --- a/README +++ b/README @@ -1,4 +1,4 @@ -THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.27) +THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) BASSER LOUT VERSION 3 COPYRIGHT (C) 1994, 2002 Jeffrey H. Kingston Jeffrey H. Kingston diff --git a/blurb b/blurb index 681edf3..81ef5a4 100644 --- a/blurb +++ b/blurb @@ -1,7 +1,7 @@ - THE LOUT DOCUMENT FORMATTING SYSTEM, VERSION 3.27 + THE LOUT DOCUMENT FORMATTING SYSTEM, VERSION 3.28 -Version 3.27 of the Lout document formatting system is now available +Version 3.28 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.27.tar.gz + ftp://ftp.it.usyd.edu.au/jeff/lout/lout-3.28.tar.gz -In other words, in a gzipped tar file called "lout-3.27.tar.gz" in the +In other words, in a gzipped tar file called "lout-3.28.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,7 +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.27.user.ps.gz + ftp://ftp.it.usyd.edu.au/jeff/lout/lout-3.28.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 diff --git a/data/standard.ld b/data/standard.ld index ad6d481..d75028a 100644 --- a/data/standard.ld +++ b/data/standard.ld @@ -554,23 +554,23 @@ { glossary @Word @CurrLang @Case { Croatian @Yield { ?? } Czech @Yield { ?? } - Danish @Yield { ?? } + Danish @Yield { Ordforklaringer } Dutch @Yield { ?? } English @Yield { Glossary } EnglishUK @Yield { Glossary } Finnish @Yield { ?? } - French @Yield { ?? } + French @Yield { Glossaire } German @Yield { Glossar } Hungarian @Yield { ?? } Italian @Yield { ?? } - Norwegian @Yield { ?? } + Norwegian @Yield { Ordforklaringer } Polish @Yield { ?? } Portuguese @Yield { ?? } Russian @Yield { ?? } Slovak @Yield { ?? } Slovenian @Yield { ?? } - Spanish @Yield { ?? } - Swedish @Yield { ?? } + Spanish @Yield { Glosario } + Swedish @Yield { Ordf{@Char odieresis}rklaringar } UpperSorbian @Yield { ?? } } } @@ -599,6 +599,30 @@ } } +{ colophon @Word @CurrLang @Case { + Croatian @Yield { ?? } + Czech @Yield { ?? } + Danish @Yield { ?? } + Dutch @Yield { ?? } + English @Yield { Colophon } + EnglishUK @Yield { Colophon } + Finnish @Yield { ?? } + French @Yield { ?? } + German @Yield { ?? } + Hungarian @Yield { ?? } + Italian @Yield { ?? } + Norwegian @Yield { ?? } + Polish @Yield { ?? } + Portuguese @Yield { ?? } + Russian @Yield { ?? } + Slovak @Yield { ?? } + Slovenian @Yield { ?? } + Spanish @Yield { ?? } + Swedish @Yield { ?? } + UpperSorbian @Yield { ?? } + } +} + { notitle @Word @CurrLang @Case { Croatian @Yield { Bez naslova } Czech @Yield { Bez n{@Char aacute}zvu } diff --git a/doc/README b/doc/README index 4603f0d..3c14e41 100644 --- a/doc/README +++ b/doc/README @@ -15,4 +15,3 @@ slides A Practical Introduction to the Lout Document Formatting user A User's Guide to the Lout Document Formatting System Jeffrey H. Kingston -222 November 2002 diff --git a/doc/design/README b/doc/design/README index ddc9564..6c37462 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 -22 November 2002 +20 December 2002 diff --git a/doc/design/outfile.ps b/doc/design/outfile.ps index 8182125..9fae4d7 100644 --- a/doc/design/outfile.ps +++ b/doc/design/outfile.ps @@ -1,6 +1,6 @@ %!PS-Adobe-3.0 -%%Creator: Basser Lout Version 3.27 (November 2002) -%%CreationDate: Fri Nov 22 09:07:35 2002 +%%Creator: Basser Lout Version 3.28 (December 2002) +%%CreationDate: Fri Dec 20 10:16:39 2002 %%DocumentData: Binary %%DocumentNeededResources: (atend) %%DocumentSuppliedResources: (atend) @@ -6679,13 +6679,13 @@ grestore 2662 3918(f)m 240 fnt4 2823 3910(\))m 2973(\255)s 240 fnt3 3194 3918(width)m 240 fnt4 3733 3910(\()m 240 fnt3 3817 3918(i)m 240 fnt4 3892 3910(\))m -[ /Dest /LOUT12_1489_s2_4_1 /DEST pdfmark +[ /Dest /LOUT12_1490_s2_4_1 /DEST pdfmark 240 fnt3 480 3367(y)m 240 fnt4 666 3359(=)m 240 fnt3 879 3367(width)m 240 fnt4 1418 3359(\()m 240 fnt3 1502 3367(d)m 240 fnt4 1688 3359(\))m 1838(\255)s 240 fnt3 2059 3367(width)m 240 fnt4 2598 3359(\()m 240 fnt3 2682 3367(g)m 240 fnt4 2808 3359(\))m -[ /Dest /LOUT12_1489_s2_4_2 /DEST pdfmark +[ /Dest /LOUT12_1490_s2_4_2 /DEST pdfmark 240 fnt3 480 2816(z)m 240 fnt4 655 2808(=)m 240 fnt3 868 2816(width)m 240 fnt4 1407 2808(\()m 240 fnt3 1491 2816(b)m 240 fnt4 1617 2808(\))m @@ -6693,7 +6693,7 @@ grestore 240 fnt3 2611 2816(e)m 240 fnt4 2722 2808(\))m 2872(\255)s 240 fnt3 3093 2816(width)m 240 fnt4 3632 2808(\()m 240 fnt3 3716 2816(h)m 240 fnt4 3843 2808(\))m -[ /Dest /LOUT12_1489_s2_4_3 /DEST pdfmark +[ /Dest /LOUT12_1490_s2_4_3 /DEST pdfmark 240 fnt1 0 2312(It)m 224(seems)s 878(clear)s 1420(that)s 240 fnt3 1857 2314(y)m 240 fnt1 2038 2312(at)m 2289(least)s 2805(must)s 3349(appear)s @@ -12352,7 +12352,7 @@ grestore 1668(of)s 1939(Computer)s 2956(Science,)s 3806(The)s 4234(Uni)s 6(v)k 3(ersity)k 5288(of)s 5559(Sydne)s 3(y)k 15(,)k 6367(Australia)s 7242(.)s -[ /Dest /LOUT12_1489_s7_0_1 /DEST pdfmark +[ /Dest /LOUT12_1490_s7_0_1 /DEST pdfmark 0 11716(2.)m 480(Kingston,)s 1492(Jef)s 6(fre)k 3(y)k 2227(H..)s 2652(A)s 2910(ne)s 6(w)k 3385(approach)s 4347(to)s 4613(document)s 5645(formatting)s 6646(.)s 6838(T)s 16(ech.)k @@ -12360,7 +12360,7 @@ grestore 1177(Department)s 2365(of)s 2636(Computer)s 3653(Science,)s 4503(The)s 4931(Uni)s 6(v)k 3(ersity)k 5985(of)s 6256(Sydne)s 3(y)k 15(,)k 7064(Australia)s 7939(.)s -[ /Dest /LOUT12_1489_s7_0_2 /DEST pdfmark +[ /Dest /LOUT12_1490_s7_0_2 /DEST pdfmark 0 10925(3.)m 480(Kingston,)s 1491(Jef)s 6(fre)k 3(y)k 2224(H..)s 2647(The)s 3101(Basser)s 3824(Lout)s 4362(Document)s 5445(F)s 3(ormatter)k 6383(,)s 6516(1991)s 6971(.)s @@ -12376,7 +12376,7 @@ grestore 1388(for)s 1726(non-)s 240 fnt3 2154 10063(ftp)m 240 fnt1 2459 10061(sites.)m 3047(All)s 3407(enquiries)s 4334(to)s 4573(jef)s 6(f@cs.su.oz.au.)k -[ /Dest /LOUT12_1489_s7_0_3 /DEST pdfmark +[ /Dest /LOUT12_1490_s7_0_3 /DEST pdfmark 0 9558(4.)m 480(Furuta,)s 1211(Richard,)s 2075(Sco\207eld,)s 2965(Jef)s 6(fre)k 3(y)k 15(,)k 3710(and)s 4113(Sha)s 3(w)k 15(,)k 4734(Alan.)s 5363(Document)s 6419(formatting)s 7480(systems:)s 8402(surv)s 3(e)k 3(y)k 15(,)k @@ -12384,14 +12384,14 @@ grestore 2554 9272(Computing)m 3673(Surve)s 7(ys)k 240 fnt2 4465 9269(14)m 240 fnt1 4699 9270(,)m 4806(417\211472)s 5700(\(1982\))s 6327(.)s -[ /Dest /LOUT12_1489_s7_0_4 /DEST pdfmark +[ /Dest /LOUT12_1490_s7_0_4 /DEST pdfmark 0 8765(5.)m 480(K)s 6(ernighan,)k 1645(Brian)s 2287(W)s 22(.)k 2649(and)s 3107(Cherry)s 15(,)k 3917(Lorinda)s 4789(L..)s 5213(A)s 5497(system)s 6275(for)s 6667(typesetting)s 7824(mathematics)s 9022(.)s 240 fnt3 480 8479(Communications)m 2158(of)s 2439(the)s 2784(A)s 7(CM)k 240 fnt2 3351 8476(18)m 240 fnt1 3585 8477(,)m 3692(182\211193)s 4576(\(1975\))s 5203(.)s -[ /Dest /LOUT12_1489_s7_0_5 /DEST pdfmark +[ /Dest /LOUT12_1490_s7_0_5 /DEST pdfmark 0 7977(6.)m 480(Kingston,)s 1488(Jef)s 6(fre)k 3(y)k 2218(H..)s 2638(Fig)s 3033(\211)s 3236(a)s 3425(Lout)s 3961(package)s @@ -12401,7 +12401,7 @@ grestore 3653(Science,)s 4503(The)s 4931(Uni)s 6(v)k 3(ersity)k 5985(of)s 6256(Sydne)s 3(y)k 15(,)k 7064(Australia)s 7939(.)s -[ /Dest /LOUT12_1489_s7_0_6 /DEST pdfmark +[ /Dest /LOUT12_1490_s7_0_6 /DEST pdfmark 0 7184(7.)m 480(Reid,)s 1042(Brian)s 1633(K..)s 2033(A)s 2266(High-)s 2813(Le)s 6(v)k 3(el)k 3406(Approach)s 4410(to)s 4652(Computer)s 5672(Document)s 6732(Production)s @@ -12412,19 +12412,19 @@ grestore 7527(\(POPL\),)s 8377(Las)s 8780(V)s 26(e)k 8999(-)s 480 6610(gas)m 868(NV)s 240 fnt1 1192 6608(,)m 1299(pages)s 1895(24\21131)s 2470(,)s 2577(1980)s 3052(.)s -[ /Dest /LOUT12_1489_s7_0_7 /DEST pdfmark +[ /Dest /LOUT12_1490_s7_0_7 /DEST pdfmark 0 6103(8.)m 480(Joseph)s 1207(F)s 19(.)k 1443(Ossanna.)s 2436(Nrof)s 6(f/T)k 8(rof)k 6(f)k 3605(User')s 13(s)k 4284(Manual)s 5010(.)s 5193(T)s 16(ech.)k 5777(Rep.)s 6285(54)s 6597(\(1976\))s 7224(,)s 7349(Bell)s 7821(Laboratories)s 9019(,)s 480 5815(Murray)m 1251(Hill,)s 1729(NJ)s 2051(07974)s 2645(.)s -[ /Dest /LOUT12_1489_s7_0_8 /DEST pdfmark +[ /Dest /LOUT12_1490_s7_0_8 /DEST pdfmark 0 5310(9.)m 480(Knuth,)s 1186(Donald)s 1949(E..)s 240 fnt3 2319 5312(The)m 2731(T)s 2882 5264(E)m 3033 5312(XBook)m 240 fnt1 3675 5310(.)m 3839(Addison-W)s 19(esle)k 3(y)k 5419(,)s 5526(1984)s 6000(.)s -[ /Dest /LOUT12_1489_s7_0_9 /DEST pdfmark +[ /Dest /LOUT12_1490_s7_0_9 /DEST pdfmark 0 4807(10.)m 480(Kingston,)s 1485(Jef)s 6(fre)k 3(y)k 2212(H..)s 2629(Eq)s 2973(\211)s 3173(a)s 3359(Lout)s 3892(package)s 4752(for)s @@ -12435,7 +12435,7 @@ grestore 8147(Australia)s 9022(.)s 480 4231(\(Contains)m 1461(an)s 1744(appendix)s 2677(describing)s 3726(the)s 4074(P)s 3(as)k 4454(P)s 3(ascal)k 5116(formatter)s 13(.\))k -[ /Dest /LOUT12_1489_s7_0_10 /DEST pdfmark +[ /Dest /LOUT12_1490_s7_0_10 /DEST pdfmark 0 3728(11.)m 480(Kingston,)s 1478(Jef)s 6(fre)k 3(y)k 2198(H..)s 2608(A)s 2851(be)s 3(ginners')k 3903(guide)s 4504(to)s 4756(Lout)s 5208(.)s 5385(T)s 16(ech.)k @@ -12444,7 +12444,7 @@ grestore 2306(Science,)s 3156(The)s 3584(Uni)s 6(v)k 3(ersity)k 4638(of)s 4909(Sydne)s 3(y)k 15(,)k 5717(Australia)s 6592(.)s -[ /Dest /LOUT12_1489_s7_0_11 /DEST pdfmark +[ /Dest /LOUT12_1490_s7_0_11 /DEST pdfmark 0 2937(12.)m 480(Kingston,)s 1475(Jef)s 6(fre)k 3(y)k 2193(H..)s 2600(T)s 19(ab)k 3017(\211)s 3207(a)s 3384(Lout)s 3907(package)s 4757(for)s 5106(formatting)s 6177(tables)s @@ -12453,13 +12453,13 @@ grestore 2636(Computer)s 3653(Science,)s 4503(The)s 4931(Uni)s 6(v)k 3(ersity)k 5985(of)s 6256(Sydne)s 3(y)k 15(,)k 7064(Australia)s 7939(.)s -[ /Dest /LOUT12_1489_s7_0_12 /DEST pdfmark +[ /Dest /LOUT12_1490_s7_0_12 /DEST pdfmark 0 2146(13.)m 480(Brooks,)s 1279(K)s 6(enneth)k 2141(P)s 26(..)k 2472(Lilac:)s 3068(a)s 3234(tw)s 2(o-vie)k 6(w)k 4183(document)s 5187(editor)s 5744(.)s 240 fnt3 5908 2148(IEEE)m 6490(Computer)s 240 fnt1 7453 2146(,)m 7560(7\21119)s 8091(\(1991\))s 8718(.)s -[ /Dest /LOUT12_1489_s7_0_13 /DEST pdfmark +[ /Dest /LOUT12_1490_s7_0_13 /DEST pdfmark grestore 0 0 0 0 240 288 60 1417 -15423 LoutGr2 diff --git a/doc/expert/README b/doc/expert/README index 95b2954..f9160b2 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 -22 November 2002 +20 December 2002 diff --git a/doc/expert/all b/doc/expert/all index 05f7fb8..7ea71cb 100644 --- a/doc/expert/all +++ b/doc/expert/all @@ -11,10 +11,10 @@ Lout Document Formatting System } @Author { Jeffrey H. Kingston } - @Edition { Version 3.27 -October, 2002 } + @Edition { Version 3.28 +December, 2002 } @Publisher { @I { @CopyRight Copyright 1991, 2002, Jeffrey -H. Kingston, Basser Department of Computer Science, The University +H. Kingston, School of Information Technologies, The University of Sydney 2006, Australia.} } @InitialLanguage { English } @OptimizePages { No } diff --git a/doc/expert/outfile.ps b/doc/expert/outfile.ps index 4bc8bed..fc7f97b 100644 --- a/doc/expert/outfile.ps +++ b/doc/expert/outfile.ps @@ -1,6 +1,6 @@ %!PS-Adobe-3.0 -%%Creator: Basser Lout Version 3.27 (November 2002) -%%CreationDate: Fri Nov 22 09:10:37 2002 +%%Creator: Basser Lout Version 3.28 (December 2002) +%%CreationDate: Fri Dec 20 10:59:34 2002 %%DocumentData: Binary %%DocumentNeededResources: (atend) %%DocumentSuppliedResources: (atend) @@ -1583,12 +1583,12 @@ 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 3882 4395(V)m 19(ersion)k 4725(3.27)s 3797 4107(October)m 12(,)k -4747(2002)s 240 fnt4 0 342(\343)m 240 fnt3 315 340(Cop)m 7(yr)k -3(ight)k -1493(1991,)s 2214(2002,)s 2935(Jeffre)s 4(y)k 3811(H.)s -4173(Kingston,)s 5293(Basser)s 6203(Depar)s -9(tment)k 7619(of)s -7990(Computer)s 0 52(Science)m 3(,)k 966(The)s 1449(Univ)s 6(ersity)k -2583(of)s 2881(Sydne)s 4(y)k 3766(2006,)s 4415(A)s 7(ustr)k 2(alia.)k +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 +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 grestore 0 0 0 0 240 288 60 1417 -15423 LoutGr2 @@ -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 3969(manual)s -4738(w)s 2(as)k 5168(rendered)s 6071(into)s 6506(PostScript)s +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 -[ /Dest /LOUT19_4213_preface_1 /DEST pdfmark -7557(by)s 7860(V)s 26(ersion)k 8658(3.27)s 0 8755(of)m +[ /Dest /LOUT19_4226_preface_1 /DEST pdfmark +7558(by)s 7861(V)s 26(ersion)k 8659(3.28)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 @@ -1724,7 +1724,7 @@ gsave grestore 480 fnt5 0 12955(Contents)m -[ /Dest /LOUT20_370_all_1 /DEST pdfmark +[ /Dest /LOUT20_373_all_1 /DEST pdfmark [ /Rect [0 11893 8346 12147] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUTpreface /ANN pdfmark 240 fnt5 0 11982(Pr)m 4(eface)k 240 fnt1 1018 11983(..)m @@ -2392,23 +2392,23 @@ grestore 7898(..)s 8242(..)s [ /Rect [8731 11641 9066 11806] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUTtex /ANN pdfmark 8731(101)s -[ /Rect [0 10926 8346 11180] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT20_434_all_1 /ANN pdfmark +[ /Rect [0 10926 8346 11180] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT20_437_all_1 /ANN pdfmark 240 fnt5 0 11015(Refer)m 4(ences)k 240 fnt1 1362 11016(..)m 1706(..)s 2050(..)s 2394(..)s 2738(..)s 3082(..)s 3426(..)s 3770(..)s 4114(..)s 4458(..)s 4802(..)s 5146(..)s 5490(..)s 5834(..)s 6178(..)s 6522(..)s 6866(..)s 7210(..)s 7554(..)s 7898(..)s 8242(..)s -[ /Rect [8713 11013 9066 11180] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT20_434_all_1 /ANN pdfmark +[ /Rect [8713 11013 9066 11180] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT20_437_all_1 /ANN pdfmark 8713(106)s -[ /Rect [0 10300 8346 10552] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT20_489_all_1 /ANN pdfmark +[ /Rect [0 10300 8346 10552] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT20_492_all_1 /ANN pdfmark 240 fnt5 0 10389(Index)m 240 fnt1 1018 10390(..)m 1362(..)s 1706(..)s 2050(..)s 2394(..)s 2738(..)s 3082(..)s 3426(..)s 3770(..)s 4114(..)s 4458(..)s 4802(..)s 5146(..)s 5490(..)s 5834(..)s 6178(..)s 6522(..)s 6866(..)s 7210(..)s 7554(..)s 7898(..)s 8242(..)s -[ /Rect [8718 10387 9066 10552] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT20_489_all_1 /ANN pdfmark +[ /Rect [8718 10387 9066 10552] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT20_492_all_1 /ANN pdfmark 8718(107)s grestore 0 0 0 0 240 288 60 1417 -14887 LoutGr2 @@ -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_4213_pri_obje_1 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_pri_obje_2 /DEST pdfmark +[ /Dest /LOUT19_4226_pri_obje_2 /DEST pdfmark -[ /Dest /LOUT19_4213_pri_obje_3 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_pri_obje_4 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_pri_obje_5 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_pri_obje_6 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_pri_obje_7 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_pri_defi_1 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_pri_defi_2 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_pri_defi_3 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_pri_defi_4 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_pri_defi_5 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_pri_defi_6 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_pri_defi_7 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_pri_cros_1 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_pri_cros_2 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_pri_cros_3 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_pri_cros_4 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_pri_cros_5 /DEST pdfmark +[ /Dest /LOUT19_4226_pri_cros_5 /DEST pdfmark -[ /Dest /LOUT19_4213_pri_cros_6 /DEST pdfmark +[ /Dest /LOUT19_4226_pri_cros_6 /DEST pdfmark -[ /Dest /LOUT19_4213_pri_cros_7 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_pri_gall_1 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_pri_gall_2 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_pri_gall_3 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_pri_gall_4 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_pri_gall_5 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_det_lexi_1 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_det_lexi_2 /DEST pdfmark +[ /Dest /LOUT19_4226_det_lexi_2 /DEST pdfmark -[ /Dest /LOUT19_4213_det_lexi_3 /DEST pdfmark +[ /Dest /LOUT19_4226_det_lexi_3 /DEST pdfmark -[ /Dest /LOUT19_4213_det_lexi_4 /DEST pdfmark +[ /Dest /LOUT19_4226_det_lexi_4 /DEST pdfmark -[ /Dest /LOUT19_4213_det_lexi_5 /DEST pdfmark +[ /Dest /LOUT19_4226_det_lexi_5 /DEST pdfmark -[ /Dest /LOUT19_4213_det_lexi_6 /DEST pdfmark +[ /Dest /LOUT19_4226_det_lexi_6 /DEST pdfmark -[ /Dest /LOUT19_4213_det_lexi_7 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_det_lexi_8 /DEST pdfmark +[ /Dest /LOUT19_4226_det_lexi_8 /DEST pdfmark -[ /Dest /LOUT19_4213_det_lexi_9 /DEST pdfmark +[ /Dest /LOUT19_4226_det_lexi_9 /DEST pdfmark -[ /Dest /LOUT19_4213_det_lexi_10 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_det_lexi_11 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_det_lexi_12 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_det_lexi_13 /DEST pdfmark +[ /Dest /LOUT19_4226_det_lexi_13 /DEST pdfmark -[ /Dest /LOUT19_4213_det_lexi_14 /DEST pdfmark +[ /Dest /LOUT19_4226_det_lexi_14 /DEST pdfmark -[ /Dest /LOUT19_4213_det_lexi_15 /DEST pdfmark +[ /Dest /LOUT19_4226_det_lexi_15 /DEST pdfmark -[ /Dest /LOUT19_4213_det_lexi_16 /DEST pdfmark +[ /Dest /LOUT19_4226_det_lexi_16 /DEST pdfmark -[ /Dest /LOUT19_4213_det_lexi_17 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_det_lexi_18 /DEST pdfmark +[ /Dest /LOUT19_4226_det_lexi_18 /DEST pdfmark -[ /Dest /LOUT19_4213_det_lexi_19 /DEST pdfmark +[ /Dest /LOUT19_4226_det_lexi_19 /DEST pdfmark -[ /Dest /LOUT19_4213_det_lexi_20 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_det_lexi_21 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_det_lexi_22 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_det_name_1 /DEST pdfmark +[ /Dest /LOUT19_4226_det_name_1 /DEST pdfmark -[ /Dest /LOUT19_4213_det_name_2 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_det_name_3 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_det_name_4 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_det_visi_1 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_det_visi_2 /DEST pdfmark +[ /Dest /LOUT19_4226_det_visi_2 /DEST pdfmark -[ /Dest /LOUT19_4213_det_visi_3 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_det_visi_4 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_det_visi_5 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_det_prec_1 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_det_prec_2 /DEST pdfmark +[ /Dest /LOUT19_4226_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,14 +6588,14 @@ 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_4213_det_size_1 /DEST pdfmark +[ /Dest /LOUT19_4226_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 2333(f)s 2(ace)k 2784(and)s 3188(size)s 3615(to)s 3854(use)s 4229(\(also)s 4746(de\207ning)s 5584(the)s 220 fnt2 5932 6159(f)m 240 fnt1 6050 6162(unit\);)m -[ /Dest /LOUT16_1489_det_size_1 /DEST pdfmark +[ /Dest /LOUT16_1490_det_size_1 /DEST pdfmark 0 5659(\213)m 480(Whether)s 1391(small)s 1991(capitals)s 2799(are)s 3175(in)s 3446(ef)s 6(fect)k 4070(or)s 4358(not,)s 4799(and)s 5231(also)s 5698(what)s @@ -6603,13 +6603,13 @@ grestore 8740(full)s 480 5371(capitals)m 1260(the)s 1608(small)s 2180(capitals)s 2960(are)s 3307(to)s 3546(ha)s 4(v)k 3(e;)k -[ /Dest /LOUT16_1489_det_size_2 /DEST pdfmark +[ /Dest /LOUT16_1490_det_size_2 /DEST pdfmark 0 4868(\213)m 480(What)s 1058(g)s 1(ap)k 1456(to)s 1695(replace)s 2440(a)s 2606(single)s 3233(space)s 3820(between)s 4674(tw)s 2(o)k 5084(objects)s 5812(by)s 6106(\(also)s 6623(de\207ning)s 7461(the)s 220 fnt2 7809 4865(s)m 240 fnt1 7972 4868(unit\);)m -[ /Dest /LOUT16_1489_det_size_3 /DEST pdfmark +[ /Dest /LOUT16_1490_det_size_3 /DEST pdfmark 0 4365(\213)m 480(The)s 900(interpretation)s 2235(to)s 2465(place)s 3017(on)s 3306(white)s 3884(space)s 4463(separating)s 5490(tw)s 2(o)k 5891(objects)s 6611(\()s 220 fnt2 @@ -6619,42 +6619,42 @@ grestore 855 4077(,)m 962(or)s 220 fnt2 1221 4074(te)m 6(x)k 240 fnt1 1566 4077(as)m 1816(in)s 2059(Section)s 2833(3.5\);)s -[ /Dest /LOUT16_1489_det_size_4 /DEST pdfmark +[ /Dest /LOUT16_1490_det_size_4 /DEST pdfmark 0 3583(\213)m 480(The)s 908(current)s 1644(v)s 6(alue)k 2212(of)s 2483(the)s 220 fnt2 2831 3580(y)m 240 fnt1 2999 3583(and)m 220 fnt2 3403 3580(z)m 240 fnt1 3567 3583(units)m 4083(of)s 4354(measurement)s 5688(\(Section)s 6541(3.6\);)s -[ /Dest /LOUT16_1489_det_size_5 /DEST pdfmark +[ /Dest /LOUT16_1490_det_size_5 /DEST pdfmark 0 3082(\213)m 480(The)s 908(kind)s 1392(of)s 1663(paragraph)s 2676(breaking)s 3566(to)s 3805(emplo)s 2(y)k 4575(\()s 220 fnt2 4648 3079(adjust)m 240 fnt1 5229 3082(,)m 220 fnt2 5336 3079(r)m 2(agged)k 240 fnt1 6005 3082(,)m 6112(etc.\))s -[ /Dest /LOUT16_1489_det_size_6 /DEST pdfmark +[ /Dest /LOUT16_1490_det_size_6 /DEST pdfmark 0 2579(\213)m 480(What)s 1058(g)s 1(ap)k 1456(to)s 1695(insert)s 2285(between)s 3139(the)s 3487(lines)s 3989(of)s 4260(paragraphs)s 5360(\(also)s 5877(de\207ning)s 6715(the)s 220 fnt2 7063 2576(v)m 240 fnt1 7232 2579(unit\);)m -[ /Dest /LOUT16_1489_det_size_7 /DEST pdfmark +[ /Dest /LOUT16_1490_det_size_7 /DEST pdfmark 0 2076(\213)m 480(The)s 908(size)s 1335(of)s 1606(the)s 1954(outdent)s 2732(to)s 2971(use)s 3346(in)s 3589(the)s 220 fnt2 3937 2073(outdent)m 240 fnt1 4725 2076(paragraph)m 5738(breaking)s 6628(style;)s -[ /Dest /LOUT16_1489_det_size_8 /DEST pdfmark +[ /Dest /LOUT16_1490_det_size_8 /DEST pdfmark 0 1573(\213)m 480(Whether)s 1462(the)s 220 fnt2 1909 1570(unbreakab)m 4(le\207rst)k 240 fnt1 3621 1573(and)m 220 fnt2 4124 1570(unbreakab)m 4(lelast)k 240 fnt1 5823 1573(paragraph)m 6935(breaking)s 7924(options)s 8779(are)s 480 1285(in)m 723(ef)s 6(fect;)k -[ /Dest /LOUT16_1489_det_size_9 /DEST pdfmark +[ /Dest /LOUT16_1490_det_size_9 /DEST pdfmark 0 801(\213)m 480(Whether)s 1366(the)s 1717(ro)s 6(w)k 2141(marks)s 2779(of)s 3053(w)s 2(ords)k 3691(are)s 4041(to)s 4284(pass)s 4750(along)s 5338(the)s 5690(baseline)s 6532(or)s 6795(half)s 7241(the)s 7592(height)s 8254(of)s 8528(an)s 8815(`x')s 480 513(abo)m 3(v)k 3(e)k 1102(the)s 1450(baseline;)s -[ /Dest /LOUT16_1489_det_size_10 /DEST pdfmark +[ /Dest /LOUT16_1490_det_size_10 /DEST pdfmark grestore gsave @@ -6713,23 +6713,23 @@ gsave grestore 0 13205(\213)m 480(Whether)s 1363(to)s 1602(permit)s 2285(h)s 1(yphenation)k 3525(or)s 3784(not;)s -[ /Dest /LOUT16_1489_det_size_11 /DEST pdfmark +[ /Dest /LOUT16_1490_det_size_11 /DEST pdfmark 0 12702(\213)m 480(What)s 1058(colour)s 1729(the)s 2077(object)s 2721(is)s 2931(to)s 3170(appear)s 3867(in;)s -[ /Dest /LOUT16_1489_det_size_12 /DEST pdfmark +[ /Dest /LOUT16_1490_det_size_12 /DEST pdfmark 0 12199(\213)m 480(Whether)s 220 fnt2 1363 12196(@Outline)m 240 fnt1 2332 12199(is)m 2542(in)s 2785(ef)s 6(fect;)k -[ /Dest /LOUT16_1489_det_size_13 /DEST pdfmark +[ /Dest /LOUT16_1490_det_size_13 /DEST pdfmark 0 11715(\213)m 480(The)s 908(language)s 1828(of)s 2099(the)s 2447(object;)s -[ /Dest /LOUT16_1489_det_size_14 /DEST pdfmark +[ /Dest /LOUT16_1490_det_size_14 /DEST pdfmark 0 11212(\213)m 480(Whether)s 220 fnt2 1363 11209(@V)m 17(Adjust)k 240 fnt1 2320 11212(,)m 220 fnt2 2427 11209(@HAdjust)m 240 fnt1 3473 11212(and)m 220 fnt2 3877 11209(@P)m 26(Adjust)k 240 fnt1 4885 11212(are)m 5232(in)s 5475(ef)s 6(fect.)k -[ /Dest /LOUT16_1489_det_size_15 /DEST pdfmark +[ /Dest /LOUT16_1490_det_size_15 /DEST pdfmark 0 10712(The)m 423(style)s 925(of)s 1191(an)s 1468(object)s 2107(depends)s 2938(on)s 3229(where)s 3864(it)s 4051(appears)s 4827(in)s @@ -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_4213_det_size_2 /DEST pdfmark +[ /Dest /LOUT19_4226_det_size_2 /DEST pdfmark -[ /Dest /LOUT19_4213_det_size_3 /DEST pdfmark +[ /Dest /LOUT19_4226_det_size_3 /DEST pdfmark -[ /Dest /LOUT19_4213_det_size_4 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_det_size_5 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_det_gall_1 /DEST pdfmark +[ /Dest /LOUT19_4226_det_gall_1 /DEST pdfmark -[ /Dest /LOUT19_4213_det_gall_2 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_det_gall_3 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_det_gall_4 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_det_gall_5 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_det_gall_6 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_det_gall_7 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_det_gall_8 /DEST pdfmark +[ /Dest /LOUT19_4226_det_gall_8 /DEST pdfmark -[ /Dest /LOUT19_4213_det_gall_9 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_det_gall_10 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_det_gall_11 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_det_gall_12 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_det_sort_1 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_det_sort_2 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_det_sort_3 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_det_opti_1 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_det_opti_2 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_pre_begi_1 /DEST pdfmark +[ /Dest /LOUT19_4226_pre_begi_1 /DEST pdfmark -[ /Dest /LOUT19_4213_pre_begi_2 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_pre_conc_1 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_pre_conc_2 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_pre_conc_3 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_pre_conc_4 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_pre_conc_5 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_pre_conc_6 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_pre_conc_7 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_pre_conc_8 /DEST pdfmark +[ /Dest /LOUT19_4226_pre_conc_8 /DEST pdfmark -[ /Dest /LOUT19_4213_pre_conc_9 /DEST pdfmark +[ /Dest /LOUT19_4226_pre_conc_9 /DEST pdfmark -[ /Dest /LOUT19_4213_pre_conc_10 /DEST pdfmark +[ /Dest /LOUT19_4226_pre_conc_10 /DEST pdfmark -[ /Dest /LOUT19_4213_pre_conc_11 /DEST pdfmark +[ /Dest /LOUT19_4226_pre_conc_11 /DEST pdfmark -[ /Dest /LOUT19_4213_pre_conc_12 /DEST pdfmark +[ /Dest /LOUT19_4226_pre_conc_12 /DEST pdfmark -[ /Dest /LOUT19_4213_pre_conc_13 /DEST pdfmark +[ /Dest /LOUT19_4226_pre_conc_13 /DEST pdfmark -[ /Dest /LOUT19_4213_pre_conc_14 /DEST pdfmark +[ /Dest /LOUT19_4226_pre_conc_14 /DEST pdfmark -[ /Dest /LOUT19_4213_pre_conc_15 /DEST pdfmark +[ /Dest /LOUT19_4226_pre_conc_15 /DEST pdfmark -[ /Dest /LOUT19_4213_pre_conc_16 /DEST pdfmark +[ /Dest /LOUT19_4226_pre_conc_16 /DEST pdfmark -[ /Dest /LOUT19_4213_pre_conc_17 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_pre_conc_18 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_pre_conc_19 /DEST pdfmark +[ /Dest /LOUT19_4226_pre_conc_19 /DEST pdfmark -[ /Dest /LOUT19_4213_pre_conc_20 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_pre_conc_21 /DEST pdfmark +[ /Dest /LOUT19_4226_pre_conc_21 /DEST pdfmark -[ /Dest /LOUT19_4213_pre_conc_22 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_pre_conc_23 /DEST pdfmark +[ /Dest /LOUT19_4226_pre_conc_23 /DEST pdfmark -[ /Dest /LOUT19_4213_pre_conc_24 /DEST pdfmark +[ /Dest /LOUT19_4226_pre_conc_24 /DEST pdfmark 1957(o)s 3(v)k 3(erstrik)k 2(e,)k -[ /Dest /LOUT19_4213_pre_conc_25 /DEST pdfmark +[ /Dest /LOUT19_4226_pre_conc_25 /DEST pdfmark -[ /Dest /LOUT19_4213_pre_conc_26 /DEST pdfmark +[ /Dest /LOUT19_4226_pre_conc_26 /DEST pdfmark 3028(and)s 3450(k)s 2(erning)k -[ /Dest /LOUT19_4213_pre_conc_27 /DEST pdfmark +[ /Dest /LOUT19_4226_pre_conc_27 /DEST pdfmark -[ /Dest /LOUT19_4213_pre_conc_28 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_pre_conc_29 /DEST pdfmark +[ /Dest /LOUT19_4226_pre_conc_29 /DEST pdfmark -[ /Dest /LOUT19_4213_pre_conc_30 /DEST pdfmark +[ /Dest /LOUT19_4226_pre_conc_30 /DEST pdfmark -[ /Dest /LOUT19_4213_pre_conc_31 /DEST pdfmark +[ /Dest /LOUT19_4226_pre_conc_31 /DEST pdfmark -[ /Dest /LOUT19_4213_pre_conc_32 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_pre_conc_33 /DEST pdfmark +[ /Dest /LOUT19_4226_pre_conc_33 /DEST pdfmark -[ /Dest /LOUT19_4213_pre_conc_34 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_pre_conc_35 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_pre_conc_36 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_pre_conc_37 /DEST pdfmark +[ /Dest /LOUT19_4226_pre_conc_37 /DEST pdfmark -[ /Dest /LOUT19_4213_pre_conc_38 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_pre_font_1 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_pre_font_2 /DEST pdfmark +[ /Dest /LOUT19_4226_pre_font_2 /DEST pdfmark -[ /Dest /LOUT19_4213_pre_font_3 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_pre_font_4 /DEST pdfmark +[ /Dest /LOUT19_4226_pre_font_4 /DEST pdfmark -[ /Dest /LOUT19_4213_pre_font_5 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_pre_font_6 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_pre_font_7 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_pre_font_8 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_pre_font_9 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_pre_font_10 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_pre_brea_1 /DEST pdfmark +[ /Dest /LOUT19_4226_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 @@ -11363,10 +11363,10 @@ grestore 5511(3.17\))s 6084(to)s 6348(e)s 6(v)k 3(ery)k 6949(line)s 7388(e)s 3(xcept)k 8094(the)s 8467(last)s 8883(in)s 3600 1161(each)m 4095(paragraph;)s -[ /Dest /LOUT16_1489_pre_brea_1 /DEST pdfmark +[ /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_4213_pre_brea_2 /DEST pdfmark +[ /Dest /LOUT19_4226_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 @@ -11432,46 +11432,46 @@ gsave 1 LoutMargSet grestore 3600 13249(see)m 3961(belo)s 6(w\);)k -[ /Dest /LOUT16_1489_pre_brea_2 /DEST pdfmark +[ /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_4213_pre_brea_3 /DEST pdfmark +[ /Dest /LOUT19_4226_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 7858(do)s 8140(not)s 8495(adjust)s 3600 12466(the)m 3948(lines)s 4450(\(`ragged)s 5317(right'\);)s -[ /Dest /LOUT16_1489_pre_brea_3 /DEST pdfmark +[ /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_4213_pre_brea_4 /DEST pdfmark +[ /Dest /LOUT19_4226_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 7075(will)s 7534(be)s 7849(centred)s 8644(with)s 3600 11673(respect)m 4336(to)s 4575(the)s 4923(others;)s -[ /Dest /LOUT16_1489_pre_brea_4 /DEST pdfmark +[ /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_4213_pre_brea_5 /DEST pdfmark +[ /Dest /LOUT19_4226_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 7014(will)s 7463(be)s 7768(right-justi\207ed)s 3600 10880(with)m 4082(respect)s 4818(to)s 5057(the)s 5405(others)s 6040(\(`ragged)s 6907(left'\);)s -[ /Dest /LOUT16_1489_pre_brea_5 /DEST pdfmark +[ /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_4213_pre_brea_6 /DEST pdfmark +[ /Dest /LOUT19_4226_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 8220 10375(;)m -[ /Dest /LOUT16_1489_pre_brea_6 /DEST pdfmark +[ /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_4213_pre_brea_7 /DEST pdfmark +[ /Dest /LOUT19_4226_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 @@ -11487,20 +11487,20 @@ grestore 3600 8719(a)m 3766(line)s 4180(other)s 4731(than)s 5200(the)s 5548(\207rst)s 5979(line)s 6393(will)s 6819(appear)s 7516(in)s 7759(the)s 8107(output;)s -[ /Dest /LOUT16_1489_pre_brea_7 /DEST pdfmark +[ /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_4213_pre_brea_8 /DEST pdfmark +[ /Dest /LOUT19_4226_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 8623 8211(lines)m 3600 7923(@Break)m 240 fnt1 4396 7926(,)m 4503(then)s 4972(centre)s 5611(each)s 6106(line)s 6520(with)s 7002(respect)s 7738(to)s 7977(the)s 8325(others;)s -[ /Dest /LOUT16_1489_pre_brea_8 /DEST pdfmark +[ /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_4213_pre_brea_9 /DEST pdfmark +[ /Dest /LOUT19_4226_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 @@ -11508,7 +11508,7 @@ grestore 4535(then)s 5036(right-)s 5555(justify)s 6251(each)s 6778(line)s 7224(with)s 7738(respect)s 8506(to)s 8778(the)s 3600 6845(others.)m -[ /Dest /LOUT16_1489_pre_brea_9 /DEST pdfmark +[ /Dest /LOUT16_1490_pre_brea_9 /DEST pdfmark 0 6392(If)m 235(the)s 588(paragraph)s 1606(w)s 2(as)k 2032(an)s 2320(entire)s 2924(component)s 4053(of)s 4329(a)s 4501(g)s 1(alle)k 3(y)k 15(,)k 5178(so)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_4213_pre_brea_10 /DEST pdfmark +[ /Dest /LOUT19_4226_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 @@ -11533,7 +11533,7 @@ grestore 6998 4934(v)m 240 fnt1 7167 4937(unit)m 7600(to)s 7839(be)s 8122(the)s 8471(length)s 3600 4649(of)m 240 fnt6 3871 4651(gap)m 240 fnt1 4224 4649(;)m -[ /Dest /LOUT16_1489_pre_brea_10 /DEST pdfmark +[ /Dest /LOUT16_1490_pre_brea_10 /DEST pdfmark 1375 4148(+)m 240 fnt6 1503 4150(gap)m 220 fnt2 1916 4145(@Break)m 240 fnt6 2772 4150(object)m 240 fnt1 3600 4148(W)m 9(ithin)k 240 fnt6 4320 4150(object)m 240 fnt1 @@ -11544,7 +11544,7 @@ grestore 4874 3862(gap)m 240 fnt1 5287 3860(than)m 5756(it)s 5948(w)s 2(ould)k 6603(otherwise)s 7588(ha)s 4(v)k 3(e)k 8089(been;)s -[ /Dest /LOUT16_1489_pre_brea_11 /DEST pdfmark +[ /Dest /LOUT16_1490_pre_brea_11 /DEST pdfmark 1383 3355(\211)m 240 fnt6 1503 3357(gap)m 220 fnt2 1916 3352(@Break)m 240 fnt6 2772 3357(object)m 240 fnt1 3600 3355(W)m 9(ithin)k 240 fnt6 4309 3357(object)m 240 fnt1 4897 3355(,)m 5000(tak)s 2(e)k @@ -11554,7 +11554,7 @@ grestore 4603(of)s 240 fnt6 4874 3069(gap)m 240 fnt1 5287 3067(than)m 5756(it)s 5948(w)s 2(ould)k 6603(otherwise)s 7588(ha)s 4(v)k 3(e)k 8089(been.)s -[ /Dest /LOUT16_1489_pre_brea_12 /DEST pdfmark +[ /Dest /LOUT16_1490_pre_brea_12 /DEST pdfmark 0 2562(In)m 256(each)s 751(case,)s 1269(the)s 1617(mode)s 2205(of)s 240 fnt6 2476 2564(gap)m 240 fnt1 2889 2562(is)m 3099(adopted)s 3915(within)s 240 fnt6 4583 2564(object)m @@ -11562,21 +11562,21 @@ 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_4213_pre_brea_11 /DEST pdfmark +[ /Dest /LOUT19_4226_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_1489_pre_brea_13 /DEST pdfmark +[ /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_4213_pre_brea_12 /DEST pdfmark +[ /Dest /LOUT19_4226_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 4897(g)s 1(aps)k 5443(without)s 6291(e)s 3(xception)k 7332(re)s 6(v)k 3(ert)k 7996(to)s 8292(edge-)s 8812(to-)s 3600 602(edge)m 4108(mode.)s -[ /Dest /LOUT16_1489_pre_brea_14 /DEST pdfmark +[ /Dest /LOUT16_1490_pre_brea_14 /DEST pdfmark 0 99(The)m 220 fnt2 428 96(@Break)m 240 fnt1 1284 99(also)m 1722(has)s 2092(options)s 2848(which)s 3490(control)s 4222(wido)s 6(w)k 4922(and)s @@ -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_4213_pre_brea_13 /DEST pdfmark +[ /Dest /LOUT19_4226_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 @@ -11647,16 +11647,16 @@ grestore 7212(second)s 7958(lines)s 8483(of)s 8778(the)s 3600 12627(paragraphs)m 4700(of)s 240 fnt6 4971 12629(object)m 240 fnt1 5559 12627(;)m -[ /Dest /LOUT16_1489_pre_brea_15 /DEST pdfmark +[ /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_4213_pre_brea_14 /DEST pdfmark +[ /Dest /LOUT19_4226_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 4714(lines)s 5216(of)s 5487(the)s 5835(paragraphs)s 6935(of)s 240 fnt6 7206 11836(object)m 240 fnt1 7794 11834(.)m -[ /Dest /LOUT16_1489_pre_brea_16 /DEST pdfmark +[ /Dest /LOUT16_1490_pre_brea_16 /DEST pdfmark 0 11331(These)m 612(options)s 1353(w)s 2(ork)k 1889(by)s 2168(adding)s 2858(the)s 220 fnt2 3191 11328(u)m 240 fnt1 3344 11331(\(unbreakable\))m @@ -11684,7 +11684,7 @@ grestore 5562 9095(\211)m 240 fnt1 5749 9098(to)m 5993(indicate)s 6811(a)s 6982(change)s 7721(to)s 7965(the)s 8319(e)s 3(xisting)k 3600 8810(outdent)m 4378(v)s 6(alue.)k -[ /Dest /LOUT16_1489_pre_brea_17 /DEST pdfmark +[ /Dest /LOUT16_1490_pre_brea_17 /DEST pdfmark 480 8091(Se)m 6(v)k 3(eral)k 1310(options)s 2135(may)s 2669(be)s 3020(gi)s 6(v)k 3(en)k 3668(to)s 3976(the)s 220 fnt2 4392 8088(@Break)m 240 fnt1 @@ -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_4213_pre_spac_1 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_pre_spac_2 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_pre_yuni_1 /DEST pdfmark +[ /Dest /LOUT19_4226_pre_yuni_1 /DEST pdfmark -[ /Dest /LOUT19_4213_pre_yuni_2 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_pre_colo_1 /DEST pdfmark +[ /Dest /LOUT19_4226_pre_colo_1 /DEST pdfmark -[ /Dest /LOUT19_4213_pre_colo_2 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_pre_text_1 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_pre_outl_1 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_pre_lang_1 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_pre_lang_2 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_pre_lang_3 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_pre_oner_1 /DEST pdfmark +[ /Dest /LOUT19_4226_pre_oner_1 /DEST pdfmark -[ /Dest /LOUT19_4213_pre_oner_2 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_pre_oner_3 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_pre_wide_1 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_pre_wide_2 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_pre_hshi_1 /DEST pdfmark +[ /Dest /LOUT19_4226_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 @@ -12818,13 +12818,13 @@ grestore 240 fnt1 3600 3888(Principal)m 4517(mark)s 5069(shifted)s 5777(to)s 6016(the)s 6364(right)s 6875(by)s 240 fnt6 7169 3890(length)m 240 fnt1 7762 3888(;)m -[ /Dest /LOUT16_1489_pre_hshi_1 /DEST pdfmark +[ /Dest /LOUT16_1490_pre_hshi_1 /DEST pdfmark 220 fnt2 1180 3380(-)m 240 fnt6 1244 3385(length)m 220 fnt2 1897 3380(@HShift)m 240 fnt6 2772 3385(object)m 240 fnt1 3600 3383(Principal)m 4517(mark)s 5069(shifted)s 5777(to)s 6016(the)s 6364(left)s 6741(by)s 240 fnt6 7035 3385(length)m 240 fnt1 7628 3383(;)m -[ /Dest /LOUT16_1489_pre_hshi_2 /DEST pdfmark +[ /Dest /LOUT16_1490_pre_hshi_2 /DEST pdfmark 240 fnt6 1244 2880(length)m 220 fnt2 1897 2875(@HShift)m 240 fnt6 2772 2880(object)m 240 fnt1 3600 2878(Principal)m 4512(mark)s 5058(shifted)s 5760(so)s 6020(as)s 6264(to)s @@ -12832,7 +12832,7 @@ grestore 7666(the)s 8008(right)s 8513(of)s 8778(the)s 3600 2590(left)m 3977(edge)s 4485(of)s 240 fnt6 4756 2592(object)m 240 fnt1 5344 2590(;)m -[ /Dest /LOUT16_1489_pre_hshi_3 /DEST pdfmark +[ /Dest /LOUT16_1490_pre_hshi_3 /DEST pdfmark 0 2087(In)m 256(each)s 751(chase)s 220 fnt2 1338 2084(@HShift)m 240 fnt1 2213 2087(includes)m 3061(a)s 220 fnt2 3227 2084(@OneCol)m 240 fnt1 4239 2087(ef)m 6(fect.)k 480 1713(The)m @@ -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_4213_pre_hshi_2 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_pre_hexp_1 /DEST pdfmark +[ /Dest /LOUT19_4226_pre_hexp_1 /DEST pdfmark -[ /Dest /LOUT19_4213_pre_hexp_2 /DEST pdfmark +[ /Dest /LOUT19_4226_pre_hexp_2 /DEST pdfmark -[ /Dest /LOUT19_4213_pre_hexp_3 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_pre_hcon_1 /DEST pdfmark +[ /Dest /LOUT19_4226_pre_hcon_1 /DEST pdfmark -[ /Dest /LOUT19_4213_pre_hcon_2 /DEST pdfmark +[ /Dest /LOUT19_4226_pre_hcon_2 /DEST pdfmark -[ /Dest /LOUT19_4213_pre_hcon_3 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_pre_hlim_1 /DEST pdfmark +[ /Dest /LOUT19_4226_pre_hlim_1 /DEST pdfmark -[ /Dest /LOUT19_4213_pre_hlim_2 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_pre_hadj_1 /DEST pdfmark +[ /Dest /LOUT19_4226_pre_hadj_1 /DEST pdfmark -[ /Dest /LOUT19_4213_pre_hadj_2 /DEST pdfmark +[ /Dest /LOUT19_4226_pre_hadj_2 /DEST pdfmark -[ /Dest /LOUT19_4213_pre_hadj_3 /DEST pdfmark +[ /Dest /LOUT19_4226_pre_hadj_3 /DEST pdfmark -[ /Dest /LOUT19_4213_pre_hadj_4 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_pre_hsca_1 /DEST pdfmark +[ /Dest /LOUT19_4226_pre_hsca_1 /DEST pdfmark -[ /Dest /LOUT19_4213_pre_hsca_2 /DEST pdfmark +[ /Dest /LOUT19_4226_pre_hsca_2 /DEST pdfmark -[ /Dest /LOUT19_4213_pre_hsca_3 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_pre_cove_1 /DEST pdfmark +[ /Dest /LOUT19_4226_pre_cove_1 /DEST pdfmark -[ /Dest /LOUT19_4213_pre_cove_2 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_pre_span_1 /DEST pdfmark +[ /Dest /LOUT19_4226_pre_span_1 /DEST pdfmark -[ /Dest /LOUT19_4213_pre_span_2 /DEST pdfmark +[ /Dest /LOUT19_4226_pre_span_2 /DEST pdfmark -[ /Dest /LOUT19_4213_pre_span_3 /DEST pdfmark +[ /Dest /LOUT19_4226_pre_span_3 /DEST pdfmark -[ /Dest /LOUT19_4213_pre_span_4 /DEST pdfmark +[ /Dest /LOUT19_4226_pre_span_4 /DEST pdfmark -[ /Dest /LOUT19_4213_pre_span_5 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_pre_scal_1 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_pre_rota_1 /DEST pdfmark +[ /Dest /LOUT19_4226_pre_rota_1 /DEST pdfmark -[ /Dest /LOUT19_4213_pre_rota_2 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_pre_back_1 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_pre_kshr_1 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_pre_rump_1 /DEST pdfmark +[ /Dest /LOUT19_4226_pre_rump_1 /DEST pdfmark -[ /Dest /LOUT19_4213_pre_rump_2 /DEST pdfmark +[ /Dest /LOUT19_4226_pre_rump_2 /DEST pdfmark -[ /Dest /LOUT19_4213_pre_rump_3 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_pre_inse_1 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_pre_oneo_1 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_pre_next_1 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_pre_case_1 /DEST pdfmark +[ /Dest /LOUT19_4226_pre_case_1 /DEST pdfmark -[ /Dest /LOUT19_4213_pre_case_2 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_pre_mome_1 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_pre_mome_2 /DEST pdfmark +[ /Dest /LOUT19_4226_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,14 +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(22)s 2671(No)s 3(v)k 3(ember)k 9(,)k -3773(2002)s 4307(gi)s 6(v)k 3(en)k 4887(a)s -5053(suitable)s 5852(database)s 6731(of)s 7002(months.)s 240 fnt5 -0 7336(3.31.)m 591(@Null)s +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 +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_4213_pre_null_1 /DEST pdfmark +240 fnt1 480 6904(This)m +979(symbol)s +[ /Dest /LOUT19_4226_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 @@ -14640,9 +14639,9 @@ grestore [ /Dest /LOUTgalley /DEST pdfmark 240 fnt1 480 2157(These)m 1131(symbols)s -[ /Dest /LOUT19_4213_pre_gall_1 /DEST pdfmark +[ /Dest /LOUT19_4226_pre_gall_1 /DEST pdfmark -[ /Dest /LOUT19_4213_pre_gall_2 /DEST pdfmark +[ /Dest /LOUT19_4226_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 @@ -14725,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_4213_pre_head_1 /DEST pdfmark +[ /Dest /LOUT19_4226_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 @@ -14834,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_4213_pre_head_2 /DEST pdfmark +[ /Dest /LOUT19_4226_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 @@ -14932,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_4213_pre_head_3 /DEST pdfmark +[ /Dest /LOUT19_4226_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 @@ -14957,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_4213_pre_head_4 /DEST pdfmark +[ /Dest /LOUT19_4226_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 @@ -14973,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_4213_pre_head_5 /DEST pdfmark +[ /Dest /LOUT19_4226_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 @@ -15024,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_4213_pre_notr_1 /DEST pdfmark +[ /Dest /LOUT19_4226_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 @@ -15311,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_4213_pre_tagg_1 /DEST pdfmark +[ /Dest /LOUT19_4226_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 @@ -15337,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_4213_pre_open_1 /DEST pdfmark +[ /Dest /LOUT19_4226_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 @@ -15364,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_4213_pre_open_2 /DEST pdfmark +[ /Dest /LOUT19_4226_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 @@ -15454,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_4213_pre_link_1 /DEST pdfmark +[ /Dest /LOUT19_4226_pre_link_1 /DEST pdfmark -[ /Dest /LOUT19_4213_pre_link_2 /DEST pdfmark +[ /Dest /LOUT19_4226_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 @@ -15674,7 +15673,7 @@ grestore 240 fnt5 0 4448(3.39.)m 591(@Database and @SysDatabase)s [ /Dest /LOUTdatabase /DEST pdfmark -[ /Dest /LOUT19_4213_pre_data_1 /DEST pdfmark +[ /Dest /LOUT19_4226_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 @@ -15713,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_4213_pre_data_2 /DEST pdfmark +[ /Dest /LOUT19_4226_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 @@ -15791,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_4213_pre_data_3 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_pre_grap_1 /DEST pdfmark +[ /Dest /LOUT19_4226_pre_grap_1 /DEST pdfmark -[ /Dest /LOUT19_4213_pre_grap_2 /DEST pdfmark +[ /Dest /LOUT19_4226_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 @@ -15809,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_4213_pre_grap_3 /DEST pdfmark +[ /Dest /LOUT19_4226_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 @@ -16145,7 +16144,7 @@ grestore 240 fnt1 3600 3482(The)m 4028(pen)s 4431(will)s 4857(dra)s 3(w)k 5386(lines)s 5888(of)s 6159(the)s 6507(gi)s 6(v)k 3(en)k 7087(width.)s -[ /Dest /LOUT16_1489_pre_grap_1 /DEST pdfmark +[ /Dest /LOUT16_1490_pre_grap_1 /DEST pdfmark 220 fnt2 1553 2974([)m 240 fnt6 1668 2979(length)m 220 fnt2 2321 2974(])m 2430(0)s 2605(setdash)s 240 fnt1 3600 2977(The)m 4034(pen)s 4444(will)s 4876(dra)s 3(w)k @@ -16153,7 +16152,7 @@ grestore 7648(do)s 6(wn,)k 8289(with)s 8778(the)s 3600 2689(dashes)m 4289(each)s 4784(of)s 5055(the)s 5403(gi)s 6(v)k 3(en)k 5983(length.)s -[ /Dest /LOUT16_1489_pre_grap_2 /DEST pdfmark +[ /Dest /LOUT16_1490_pre_grap_2 /DEST pdfmark 0 2186(These)m 627(options)s 1383(are)s 1730(follo)s 6(wed)k 2632(by)s 2926(the)s 3274(w)s 2(ord)k 220 fnt2 3822 2183(strok)m 4(e)k 240 fnt1 4408 2186(.)m 4572(So,)s @@ -16271,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_4213_pre_grap_4 /DEST pdfmark +[ /Dest /LOUT19_4226_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 @@ -16379,7 +16378,7 @@ grestore 0 11836(3.41.)m 591(@PlainGraphic)s [ /Dest /LOUTplaingraphic /DEST pdfmark -[ /Dest /LOUT19_4213_pre_plai_1 /DEST pdfmark +[ /Dest /LOUT19_4226_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 @@ -16401,11 +16400,11 @@ grestore 2932(@SysIncludeGraphic)s [ /Dest /LOUTincludegraphic /DEST pdfmark -[ /Dest /LOUT19_4213_pre_incg_1 /DEST pdfmark +[ /Dest /LOUT19_4226_pre_incg_1 /DEST pdfmark -[ /Dest /LOUT19_4213_pre_incg_2 /DEST pdfmark +[ /Dest /LOUT19_4226_pre_incg_2 /DEST pdfmark -[ /Dest /LOUT19_4213_pre_incg_3 /DEST pdfmark +[ /Dest /LOUT19_4226_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 @@ -16466,11 +16465,11 @@ grestore 0 2135(3.43.)m 591(@IncludeGraphicRepeated)s 3445(and)s 3886(@SysIncludeGraphicRepeated)s [ /Dest /LOUTincludegraphicrepeated /DEST pdfmark -[ /Dest /LOUT19_4213_pre_incr_1 /DEST pdfmark +[ /Dest /LOUT19_4226_pre_incr_1 /DEST pdfmark -[ /Dest /LOUT19_4213_pre_incr_2 /DEST pdfmark +[ /Dest /LOUT19_4226_pre_incr_2 /DEST pdfmark -[ /Dest /LOUT19_4213_pre_incr_3 /DEST pdfmark +[ /Dest /LOUT19_4226_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 @@ -16614,11 +16613,11 @@ grestore [ /Dest /LOUTprependgraphic /DEST pdfmark -[ /Dest /LOUT19_4213_pre_prep_1 /DEST pdfmark +[ /Dest /LOUT19_4226_pre_prep_1 /DEST pdfmark -[ /Dest /LOUT19_4213_pre_prep_2 /DEST pdfmark +[ /Dest /LOUT19_4226_pre_prep_2 /DEST pdfmark -[ /Dest /LOUT19_4213_pre_prep_3 /DEST pdfmark +[ /Dest /LOUT19_4226_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 @@ -16665,9 +16664,9 @@ grestore 591(@Include and @SysInclude)s [ /Dest /LOUTinclude /DEST pdfmark -[ /Dest /LOUT19_4213_pre_incl_1 /DEST pdfmark +[ /Dest /LOUT19_4226_pre_incl_1 /DEST pdfmark -[ /Dest /LOUT19_4213_pre_incl_2 /DEST pdfmark +[ /Dest /LOUT19_4226_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 @@ -16799,7 +16798,7 @@ grestore 5172(ends)s [ /Dest /LOUTbackend /DEST pdfmark -[ /Dest /LOUT19_4213_pre_bend_1 /DEST pdfmark +[ /Dest /LOUT19_4226_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 @@ -16968,9 +16967,9 @@ grestore [ /Dest /LOUTverbatim /DEST pdfmark -[ /Dest /LOUT19_4213_pre_verb_1 /DEST pdfmark +[ /Dest /LOUT19_4226_pre_verb_1 /DEST pdfmark -[ /Dest /LOUT19_4213_pre_verb_2 /DEST pdfmark +[ /Dest /LOUT19_4226_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 @@ -17064,7 +17063,7 @@ grestore [ /Dest /LOUTunderline /DEST pdfmark -[ /Dest /LOUT19_4213_pre_unde_1 /DEST pdfmark +[ /Dest /LOUT19_4226_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 @@ -17119,7 +17118,7 @@ grestore [ /Dest /LOUTpagelabel /DEST pdfmark -[ /Dest /LOUT19_4213_pre_page_1 /DEST pdfmark +[ /Dest /LOUT19_4226_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 @@ -17230,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_4213_exa_equa_1 /DEST pdfmark +[ /Dest /LOUT19_4226_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 @@ -17264,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_4213_exa_equa_2 /DEST pdfmark +[ /Dest /LOUT19_4226_exa_equa_2 /DEST pdfmark -[ /Dest /LOUT19_4213_exa_equa_3 /DEST pdfmark +[ /Dest /LOUT19_4226_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 @@ -17279,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_4213_exa_equa_4 /DEST pdfmark +[ /Dest /LOUT19_4226_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 @@ -17378,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_4213_exa_equa_5 /DEST pdfmark +[ /Dest /LOUT19_4226_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 @@ -17405,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_4213_exa_equa_6 /DEST pdfmark +[ /Dest /LOUT19_4226_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 @@ -17486,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_4213_exa_equa_7 /DEST pdfmark +[ /Dest /LOUT19_4226_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 @@ -17501,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_4213_exa_equa_8 /DEST pdfmark +[ /Dest /LOUT19_4226_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 @@ -17556,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_4213_exa_para_1 /DEST pdfmark +[ /Dest /LOUT19_4226_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 @@ -17629,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_4213_exa_para_2 /DEST pdfmark +[ /Dest /LOUT19_4226_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 @@ -17671,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_4213_exa_para_3 /DEST pdfmark +[ /Dest /LOUT19_4226_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 @@ -17683,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_4213_exa_para_4 /DEST pdfmark +[ /Dest /LOUT19_4226_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 @@ -17701,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_4213_exa_para_5 /DEST pdfmark +[ /Dest /LOUT19_4226_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 @@ -17800,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_4213_exa_para_6 /DEST pdfmark +[ /Dest /LOUT19_4226_exa_para_6 /DEST pdfmark -[ /Dest /LOUT19_4213_exa_para_7 /DEST pdfmark +[ /Dest /LOUT19_4226_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 @@ -17901,19 +17900,19 @@ 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_4213_exa_para_8 /DEST pdfmark +[ /Dest /LOUT19_4226_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_1489_exa_para_1 /DEST pdfmark +[ /Dest /LOUT16_1490_exa_para_1 /DEST pdfmark 480 10484(def @EndListPlace { @Galle)m 4(y })k 480 10196(def @EndList f)m 6(orce into { @EndListPlace&&preceding })k 480 9908({})m -[ /Dest /LOUT16_1489_exa_para_2 /DEST pdfmark +[ /Dest /LOUT16_1490_exa_para_2 /DEST pdfmark 480 9416(def @Ra)m 4(wIndentedList)k 480 9128( named style r)m -3(ight tag {})k 480 8840( named indent { @DispIndent })m 480 8552( named gap { @DispGap })m 480 8264( named star)m -8(t { 1 })k 480 7976({)m 480 7688( def @IList r)m -3(ight n)k 2(um)k 480 7400( {)m 480 7112( indent @Wide {style n)m 2(um} | @ItemPlace)k 480 6824( //gap @IList @Ne)m 6(xt n)k 2(um)k 480 6536( })m 480 5960( @IList star)m -8(t // @EndListPlace)k 480 5672(})m -[ /Dest /LOUT16_1489_exa_para_3 /DEST pdfmark +[ /Dest /LOUT16_1490_exa_para_3 /DEST pdfmark 240 fnt1 0 5178(No)m 6(w)k 514(gi)s 6(v)k 3(en)k 1094(the)s 1442(input)s 220 fnt2 480 4677(@Ra)m 4(wIndentedList)k @@ -18019,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_4213_exa_para_9 /DEST pdfmark +[ /Dest /LOUT19_4226_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 @@ -18054,9 +18053,9 @@ grestore [ /Dest /LOUTpagelayout /DEST pdfmark 240 fnt1 480 2608(The)m 921(page)s 1443(layout)s -[ /Dest /LOUT19_4213_exa_page_1 /DEST pdfmark +[ /Dest /LOUT19_4226_exa_page_1 /DEST pdfmark -[ /Dest /LOUT19_4213_exa_page_2 /DEST pdfmark +[ /Dest /LOUT19_4226_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 @@ -18083,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_4213_exa_page_3 /DEST pdfmark +[ /Dest /LOUT19_4226_exa_page_3 /DEST pdfmark grestore gsave @@ -18143,15 +18142,15 @@ grestore 220 fnt2 480 13207(e)m 6(xpor)k -8(t @T)k 26(ag)k 480 12919(def @P)m 8(ageMar)k -3(k)k 4(er r)k -3(ight @T)k 26(ag { @Null })k -[ /Dest /LOUT16_1489_exa_page_1 /DEST pdfmark +[ /Dest /LOUT16_1490_exa_page_1 /DEST pdfmark 480 12422(def @P)m 8(ageMar)k -3(k r)k -3(ight x)k 480 12134({)m 480 11846( @P)m 8(ageMar)k -3(k)k 4(er&&preceding @T)k 26(agged x)k 480 11558(})m -[ /Dest /LOUT16_1489_exa_page_2 /DEST pdfmark +[ /Dest /LOUT16_1490_exa_page_2 /DEST pdfmark 480 11066(def @P)m 8(ageOf r)k -3(ight x)k 480 10778({)m 480 10490( @P)m 8(ageMar)k -3(k)k 4(er&&x @Open { @T)k 26(ag })k 480 10202(})m -[ /Dest /LOUT16_1489_exa_page_3 /DEST pdfmark +[ /Dest /LOUT16_1490_exa_page_3 /DEST pdfmark 240 fnt1 0 9708(W)m 19(e)k 385(will)s 828(see)s 1206(belo)s 6(w)k 1856(that)s 2291(an)s 2591(in)s 9(v)k 4(ocation)k 3662(of)s 220 fnt2 @@ -18210,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_4213_exa_page_4 /DEST pdfmark +[ /Dest /LOUT19_4226_exa_page_4 /DEST pdfmark 220 fnt2 480 96(e)m 6(xpor)k -8(t @T)k 26(ag)k grestore @@ -18272,11 +18271,11 @@ grestore 220 fnt2 480 13207(def @F)m 6(ootList r)k -3(ight @T)k 26(ag)k 480 12919({)m 480 12631( @Galle)m 4(y)k 480 12343( //@F)m 6(ootGap @F)k 6(ootList @Ne)k 6(xt @T)k 26(ag)k 480 12055(})m -[ /Dest /LOUT16_1489_exa_page_4 /DEST pdfmark +[ /Dest /LOUT16_1490_exa_page_4 /DEST pdfmark 480 11563(def @F)m 6(ootSect)k 480 11275({)m 480 10987( @F)m 6(ootLen @Wide @HLine)k 480 10699( //@F)m 6(ootGap @F)k 6(ootList 1 ||@F)k 6(ootLen)k 480 10411(})m -[ /Dest /LOUT16_1489_exa_page_5 /DEST pdfmark +[ /Dest /LOUT16_1490_exa_page_5 /DEST pdfmark 240 fnt1 0 9917(Similarly)m 15(,)k 220 fnt2 988 9914(@ColF)m 6(ootList)k 240 fnt1 2378 9917(and)m 220 fnt2 2791 9914(@ColF)m 6(ootSect)k 240 fnt1 4279 9917(pro)m 3(vide)k 5072(a)s 5247(sequence)s @@ -18290,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_4213_exa_page_5 /DEST pdfmark +[ /Dest /LOUT19_4226_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 @@ -18315,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_4213_exa_page_6 /DEST pdfmark +[ /Dest /LOUT19_4226_exa_page_6 /DEST pdfmark grestore gsave @@ -18391,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_4213_exa_page_7 /DEST pdfmark +[ /Dest /LOUT19_4226_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 @@ -18425,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_4213_exa_page_8 /DEST pdfmark +[ /Dest /LOUT19_4226_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 @@ -18513,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_4213_exa_page_9 /DEST pdfmark +[ /Dest /LOUT19_4226_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 @@ -18552,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_4213_exa_page_10 /DEST pdfmark +[ /Dest /LOUT19_4226_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 @@ -18644,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_4213_exa_chap_1 /DEST pdfmark +[ /Dest /LOUT19_4226_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 @@ -18652,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_4213_exa_chap_2 /DEST pdfmark +[ /Dest /LOUT19_4226_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 @@ -18672,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_4213_exa_chap_3 /DEST pdfmark +[ /Dest /LOUT19_4226_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 @@ -18749,18 +18748,18 @@ 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_4213_exa_chap_4 /DEST pdfmark +[ /Dest /LOUT19_4226_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 480 6727( def @BeginSections ...)m 480 6439( def @EndSections ...)m 480 6151( def @Section ...)m -[ /Dest /LOUT16_1489_exa_chap_1 /DEST pdfmark +[ /Dest /LOUT16_1490_exa_chap_1 /DEST pdfmark 480 5698( def @ChapterTitle)m 480 5410( {)m 480 5122( @ChapterNumbers @Case {)m 480 4834( {Y)m 30(es y)k 4(es} @Y)k 4(ield { Chapter {@NumberOf @T)k 26(ag}.)k 13( |2s @Title })k 480 4546( else @Y)m 4(ield @Title)k 480 4258( })m 480 3970( })m 480 3394( def @ChapterNum)m 480 3106( {)m 480 2818( @ChapterNumbers @Case {)m 480 2530( {Y)m 30(es y)k 4(es} @Y)k 4(ield { Chapter {@NumberOf @T)k 26(ag} })k 480 2242( else @Y)m 4(ield @Null)k 480 1954( })m 480 1666( })m -[ /Dest /LOUT16_1489_exa_chap_2 /DEST pdfmark +[ /Dest /LOUT16_1490_exa_chap_2 /DEST pdfmark 480 1174( r)m 2(agged @Break @BookTitleF)k 6(or)k -5(mat @ChapterTitle)k 480 886( // @NumberMar)m -3(k)k 4(er {)k 480 598( @ChapterList&&@T)m 26(ag @Open { @T)k 26(ag })k 480 310( })m @@ -18827,7 +18826,7 @@ grestore 480 11191( // @Body)m 480 10903( //@SectionGap @ChapRefSection)m 480 10615( // @Runner)m 480 10327( @T)m 26(opEv)k 5(en { @B @P)k 8(ageNum |1r)k -8(t @I @ChapterNum })k 480 10039( @T)m 26(opOdd { @I {@RunningTitle @OrElse @Title} |1r)k -8(t @B @P)k 8(ageNum })k 480 9751(})m -[ /Dest /LOUT16_1489_exa_chap_3 /DEST pdfmark +[ /Dest /LOUT16_1490_exa_chap_3 /DEST pdfmark 240 fnt1 0 9257(W)m 19(e)k 371(will)s 800(see)s 1164(the)s 1515(symbols)s 2366(for)s 2707(sections)s 3531(shortly)s 15(.)k 4347(Notice)s 5042(ho)s 6(w)k 5506(their)s 6006(use)s @@ -19047,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_4213_exa_chap_5 /DEST pdfmark +[ /Dest /LOUT19_4226_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 @@ -19060,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_4213_exa_chap_6 /DEST pdfmark +[ /Dest /LOUT19_4226_exa_chap_6 /DEST pdfmark 220 fnt2 480 75(def @EndSectionsPlace { @Galle)m 4(y })k grestore @@ -19119,7 +19118,7 @@ gsave 0 LoutMargSet grestore 220 fnt2 480 13207(def @EndSections f)m 6(orce into { @EndSectionsPlace&&preceding } {})k 480 12919(macro @BeginSections { //@SectionGap @SectionList 1 // @EndSectionsPlace // })m -[ /Dest /LOUT16_1489_exa_chap_4 /DEST pdfmark +[ /Dest /LOUT16_1490_exa_chap_4 /DEST pdfmark 480 12422(def @Section f)m 6(orce into { @SectionList&&preceding })k 480 12134( named @T)m 26(ag {})k 480 11846( named @Title {})m 480 11558( named @RunningTitle { dft })m 480 11270( body @Body)m 480 10982({)m 480 10694( def @SectionTitle)m 480 10406( {)m 480 10118( @SectionNumbers @Case {)m 480 9830( {Y)m 30(es y)k 4(es} @Y)k 4(ield { {@NumberOf @T)k 26(ag}.)k 13( |2s @Title })k @@ -19130,7 +19129,7 @@ grestore 480 6086( // @P)m 8(ageMar)k -3(k)k 4(er&&preceding @T)k 26(agged @T)k 26(ag)k 480 5798( // { &3f @SectionTitle } @ContentsEntr)m -6(y {@P)k 8(ageOf @T)k 26(ag})k 480 5510( //0io @Body)m 480 5222(})m -[ /Dest /LOUT16_1489_exa_chap_5 /DEST pdfmark +[ /Dest /LOUT16_1490_exa_chap_5 /DEST pdfmark 240 fnt1 0 4728(The)m 220 fnt2 409 4725(@BeginSections)m 240 fnt1 2066 4728(macro)m 2696(in)s 9(v)k 4(ok)k 2(es)k 220 fnt2 3457 4725(@SectionList)m 240 fnt1 4748 4728(,)m 4835(preceded)s @@ -19242,14 +19241,14 @@ grestore 240 fnt5 0 12412(4.5.)m 471(Bibliographies)s [ /Dest /LOUTbiblio /DEST pdfmark -[ /Dest /LOUT19_4213_exa_bibl_1 /DEST pdfmark +[ /Dest /LOUT19_4226_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_4213_exa_bibl_2 /DEST pdfmark +[ /Dest /LOUT19_4226_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 @@ -19266,13 +19265,13 @@ grestore 480 4729( @T)m 26(ype { Book })k 480 4441( @A)m 6(uthor { Str)k -3(unk, )k 8(William and )k 8(White)k 3(, E.)k 13( B)k 4(.)k 13( })k 480 4153( @Title { )m 11(The Elements of Style })k 480 3865( @Pub)m 4(lisher { MacMillan, third edition })k 480 3577( @Y)m 30(ear { 1979 })k 480 3289(})m -[ /Dest /LOUT16_1489_exa_bibl_1 /DEST pdfmark +[ /Dest /LOUT16_1490_exa_bibl_1 /DEST pdfmark 480 2797({ @Ref)m 6(erence)k 480 2509( @T)m 26(ag { kingston92 })k 480 2221( @T)m 26(ype { )k 11(T)k 26(echRepor)k -8(t })k 480 1933( @A)m 6(uthor { Kingston, Jeffre)k 4(y H.)k 13( })k 480 1645( @Title { Document F)m 6(or)k -5(matting with Lout \(Second Edition\) })k 480 1357( @Number { 449 })m 480 1069( @Institution { Basser Depar)m -8(tment of Computer)k 480 781(Science F09, Univ)m 5(ersity of Sydne)k 4(y 2006, A)k 6(ustr)k 2(alia })k 480 493( @Y)m 30(ear { 1992 })k 480 205(})m -[ /Dest /LOUT16_1489_exa_bibl_2 /DEST pdfmark +[ /Dest /LOUT16_1490_exa_bibl_2 /DEST pdfmark grestore gsave @@ -19481,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_4213_exa_bibl_3 /DEST pdfmark +[ /Dest /LOUT19_4226_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 @@ -19569,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_4213_exa_bibl_4 /DEST pdfmark +[ /Dest /LOUT19_4226_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 @@ -20334,7 +20333,7 @@ grestore 8329 3219(,)m 220 fnt2 8525 3216(/De)m 8858(-)s 3059 2928(viceRGB)m 240 fnt1 3916 2931(,)m 4023(or)s 220 fnt2 4282 2928(/De)m 6(viceCMYK)k -[ /Dest /LOUT16_1489_tex_1 /DEST pdfmark +[ /Dest /LOUT16_1490_tex_1 /DEST pdfmark 240 fnt1 0 2447(\213)m 480(A)s 708(color)s 9(,)k 1294(denoted)s 2107(c,)s 2318(is)s 2525(an)s 2805(array)s 3346(containing)s 4407(a)s 4570(PostScript)s 5609(non-pattern)s 6765(color)s @@ -20354,7 +20353,7 @@ grestore 1633(be)s 1915(unpack)s 2(ed)k 2889(with)s 220 fnt2 3371 149(aload)m 240 fnt1 3955 152(before)m 4621(calling)s 220 fnt2 5324 149(setcolor)m 240 fnt1 6092 152(.)m -[ /Dest /LOUT16_1489_tex_2 /DEST pdfmark +[ /Dest /LOUT16_1490_tex_2 /DEST pdfmark grestore 0 0 0 0 240 288 60 1417 -14865 LoutGr2 @@ -20442,7 +20441,7 @@ grestore 8566(share)s 480 10439(pattern)m 1200(dictionaries)s 2365(among)s 3070(graphics)s 3931(states.)s 4625(W)s 19(e)k 4994(must)s 5519(cop)s 2(y)k 6037(them.)s -[ /Dest /LOUT16_1489_tex_3 /DEST pdfmark +[ /Dest /LOUT16_1490_tex_3 /DEST pdfmark 0 9936(This)m 476(representation)s 1886(obe)s 3(ys)k 2493(the)s 2841(follo)s 6(wing)k 3818(in)s 9(v)k 6(ariant:)k 0 9433(\213)m 480(All)s 853(components)s 2075(of)s 2360(the)s @@ -20453,7 +20452,7 @@ grestore 3096(situation)s 3976(where)s 4616(we)s 4951(set)s 5276(color)s 5827(space)s 6414(b)s 4(ut)k 6776(not)s 7142(color\).)s -[ /Dest /LOUT16_1489_tex_4 /DEST pdfmark +[ /Dest /LOUT16_1490_tex_4 /DEST pdfmark 0 8642(\213)m 480(If)s 709(the)s 1056(PostScript)s 2097(graphics)s 2956(state)s 3448(contains)s 4295(a)s 220 fnt2 4460 8639(/P)m 8(atter)k -5(n)k 240 fnt1 5269 8642(colorspace,)m 6397(the)s 6744(pattern)s 7463(dictionary)s @@ -20463,7 +20462,7 @@ grestore 7027(of)s 7298(types)s 220 fnt2 7854 8351(cs)m 240 fnt1 8127 8354(and)m 220 fnt2 8531 8351(c)m 240 fnt1 8636 8354(.)m -[ /Dest /LOUT16_1489_tex_5 /DEST pdfmark +[ /Dest /LOUT16_1490_tex_5 /DEST pdfmark 0 7851(\213)m 480(If)s 733(the)s 1105(graphics)s 1990(state)s 2507(contains)s 3379(an)s 3685(uncolored)s 220 fnt2 4724 7848(/P)m 8(atter)k -5(n)k 240 fnt1 5559 7851(colorspace,)m 6712(then)s 7205(the)s 220 fnt2 @@ -20474,7 +20473,7 @@ grestore 8644(with)s 480 7275(the)m 828(underlying)s 1918(color)s 2469(space)s 3056(and)s 3460(color)s 4011(stored)s 4653(in)s 4896(the)s 5244(graphics)s 6105(state.)s -[ /Dest /LOUT16_1489_tex_6 /DEST pdfmark +[ /Dest /LOUT16_1490_tex_6 /DEST pdfmark 0 6772(And)m 471(it)s 663(has)s 1033(the)s 1381(follo)s 6(wing)k 2358(abstraction)s 3463(function:)s 0 6269(\213)m 480(If)s 725(the)s 1089(graphics)s 1965(state)s @@ -20488,7 +20487,7 @@ grestore 240 fnt1 9019 5981(,)m 480 5693(then)m 949(the)s 1297(abstract)s 2099(current)s 2835(te)s 3(xture)k 3551(is)s 220 fnt2 3761 5690(n)m 2(ull)k 240 fnt1 4085 5693(.)m -[ /Dest /LOUT16_1489_tex_7 /DEST pdfmark +[ /Dest /LOUT16_1490_tex_7 /DEST pdfmark 0 5236(\213)m 480(If)s 725(the)s 1089(graphics)s 1966(state)s 2475(colorspace)s 3568(is)s 220 fnt2 3794 5233(/P)m 8(atter)k -5(n)k @@ -20505,14 +20504,14 @@ grestore 2294(and)s 2698(color)s 3249(are)s 3596(as)s 3846(returned)s 4700(by)s 220 fnt2 4994 4369(currentcolorspace)m 240 fnt1 6790 4372(and)m 220 fnt2 7194 4369([ currentcolor ])m 240 fnt1 8583 4372(.)m -[ /Dest /LOUT16_1489_tex_8 /DEST pdfmark +[ /Dest /LOUT16_1490_tex_8 /DEST pdfmark 0 3869(The)m 428(follo)s 6(wing)k 1405(functions)s 2346(are)s 2693(pri)s 6(v)k 6(ate)k 3400(helpers)s 4141(for)s 4479(the)s 4827(public)s 5478(functions:)s 220 fnt9 480 3392(% Current pattern \(may be null\): - LoutCurrentP p)m 480 3144(/LoutCurrentP)m 480 2896({ %% -)m 480 2648( currentcolorspace %% [ /name etc ])m 480 2400( 0 get /Pattern eq %% bool)m 480 2152( { %% - \(have pattern\))m 480 1904( [ currentcolor ] %% [ comp0 ... compn p ])m 480 1656( dup length 1 sub get %% p)m 480 1408( })m 480 1160( { %% - \(no pattern\))m 480 912( null %% null)m 480 664( } ifelse %% p)m 480 416(} def)m -[ /Dest /LOUT16_1489_tex_9 /DEST pdfmark +[ /Dest /LOUT16_1490_tex_9 /DEST pdfmark grestore gsave @@ -20573,7 +20572,7 @@ grestore 480 12533( LoutCurrentP dup null eq %% p bool)m 480 12285( { %% null)m 480 12037( pop [ currentcolor ] %% c)m 480 11789( currentcolorspace %% c cs)m 480 11541( })m 480 11293( { %% p)m 480 11045( dup %% p p)m 480 10797( /UnderlyingColor get exch %% c p)m 480 10549( /UnderlyingColorSpace get %% c cs)m 480 10301( } ifelse %% c cs)m 480 10053(} def)m -[ /Dest /LOUT16_1489_tex_10 /DEST pdfmark +[ /Dest /LOUT16_1490_tex_10 /DEST pdfmark 480 9604(% Make c, cs, and p current: c cs p LoutSetCCSP -)m 480 9356(/LoutSetCCSP)m 480 9108({ %% c cs p)m 480 8860( dup null eq %% c cs p bool)m 480 8612( { %% c cs p \(null pattern\))m 480 8364( pop setcolorspace %% c)m 480 8116( aload pop setcolor %% -)m 480 7868( })m 480 7620( { %% c cs p \(non-null pattern\))m 480 7372( % copy pattern dictionary)m 480 7124( 12 dict copy %% c cs p)m 480 6628( % record cs and c in p)m 480 6380( dup /UnderlyingColorSpace %% c cs p p /UCS)m 480 6132( 3 index put %% c cs p)m @@ -20581,7 +20580,7 @@ grestore 480 4396( [/Pattern] setcolorspace %% c cs p)m 480 4148( setcolor %% c cs)m 480 3900( pop pop %% -)m 480 3652( })m 480 3404( { %% c cs p \(uncolored pattern\))m 480 3156( [ /Pattern %% c cs p [ /Pattern)m 480 2908( 4 -1 roll %% c p [ /Pattern cs)m 480 2660( ] setcolorspace %% c p)m 480 2412( exch aload length 1 add %% p comp1 ... compm m+1)m 480 2164( -1 roll %% comp1 ... compm p)m 480 1916( setcolor %% -)m 480 1668( } ifelse %% -)m 480 1420( } ifelse %% -)m 480 1172(} def)m -[ /Dest /LOUT16_1489_tex_11 /DEST pdfmark +[ /Dest /LOUT16_1490_tex_11 /DEST pdfmark 240 fnt1 0 697(W)m 9(ith)k 536(the)s 894(helper)s 1561(functions)s 2513(it')s 13(s)k 2865(no)s 6(w)k 3336(easy)s @@ -20662,21 +20661,21 @@ grestore 4226(of)s 220 fnt2 4497 13202(rgb)m 240 fnt1 4806 13205(.)m 220 fnt9 480 12731(% num LoutSetGray -)m 480 12483(/LoutSetGray)m 480 12235({)m 480 11987( [ 2 1 roll ] %% c)m 480 11739( [ /DeviceGray ] %% c cs)m 480 11491( LoutCurrentP %% c cs p)m 480 11243( LoutSetCCSP %% -)m 480 10995(} def)m -[ /Dest /LOUT16_1489_tex_12 /DEST pdfmark +[ /Dest /LOUT16_1490_tex_12 /DEST pdfmark 480 10546(% r g b LoutSetRGBColor -)m 480 10298(/LoutSetRGBColor)m 480 10050({ %% r g b)m 480 9802( [ 4 1 roll ] %% c)m 480 9554( [ /DeviceRGB ] %% c cs)m 480 9306( LoutCurrentP %% c cs p)m 480 9058( LoutSetCCSP %% -)m 480 8810(} def)m -[ /Dest /LOUT16_1489_tex_13 /DEST pdfmark +[ /Dest /LOUT16_1490_tex_13 /DEST pdfmark 480 8361(% h s b LoutSetHSBColor -)m 480 8113(/LoutSetHSBColor)m 480 7865({ %% h s b)m 480 7617( gsave sethsbcolor %% -)m 480 7369( currentrgbcolor grestore %% r g b)m 480 7121( LoutSetRGBColor %% -)m 480 6873(} def)m -[ /Dest /LOUT16_1489_tex_14 /DEST pdfmark +[ /Dest /LOUT16_1490_tex_14 /DEST pdfmark 480 6424(% c m y k LoutSetRGBColor -)m 480 6176(/LoutSetCMYKColor)m 480 5928({)m 480 5680( [ 5 1 roll ] %% c)m 480 5432( [ /DeviceCMYK ] %% c cs)m 480 5184( LoutCurrentP %% c cs p)m 480 4936( LoutSetCCSP %% -)m 480 4688(} def)m -[ /Dest /LOUT16_1489_tex_15 /DEST pdfmark +[ /Dest /LOUT16_1490_tex_15 /DEST pdfmark 480 4241(% p LoutSetTexture -)m 480 3993(/LoutSetTexture)m 480 3745({)m 480 3497( LoutCurrentCCS %% p c cs)m 480 3249( 3 -1 roll %% c cs p)m 480 3001( LoutSetCCSP %% -)m 480 2753(} def)m -[ /Dest /LOUT16_1489_tex_16 /DEST pdfmark +[ /Dest /LOUT16_1490_tex_16 /DEST pdfmark 240 fnt1 0 2278(All)m 369(we)s 713(need)s 1232(no)s 6(w)k 1702(is)s 1921(some)s 2491(sample)s 3233(te)s 3(xtures.)k @@ -20757,7 +20756,7 @@ grestore 480 8807( matrix scale %% p mat1 mat2 s mat3)m 480 8559( exch dup matrix scale %% p mat1 mat2 mat3 mat4)m 480 8311( matrix concatmatrix %% p mat1 mat2 mat34)m 480 8063( matrix concatmatrix %% p mat1 mat234)m 480 7815( matrix concatmatrix %% p mat1234)m 480 7567( /makepattern where)m 480 7319( { %% p mat123 dict)m 480 7071( pop makepattern %% p)m 480 6823( })m 480 6575( { %% p mat123)m 480 6327( pop pop null %% null)m 480 6079( } ifelse %% p \(may be null\))m 480 5831(} def)m -[ /Dest /LOUT16_1489_tex_17 /DEST pdfmark +[ /Dest /LOUT16_1490_tex_17 /DEST pdfmark 240 fnt1 0 5356(F)m 3(or)k 384(e)s 3(xamples)k 1330(of)s 1596(te)s 3(xtures)k 2395(using)s 220 fnt2 2962 5353(LoutMak)m 4(eT)k 26(e)k 6(xture)k @@ -20768,7 +20767,7 @@ grestore 220 fnt2 2615 5065(LoutT)m 26(e)k 6(xtureSolid)k 240 fnt1 4228 5068(:)m 220 fnt9 480 4585(/LoutTextureSolid)m 480 4337({)m 480 4089( null)m 480 3841( LoutSetTexture)m 480 3593(} def)m -[ /Dest /LOUT16_1489_tex_18 /DEST pdfmark +[ /Dest /LOUT16_1490_tex_18 /DEST pdfmark grestore gsave @@ -20818,7 +20817,7 @@ gsave grestore 480 fnt5 0 12397(Refer)m 8(ences)k -[ /Dest /LOUT20_434_all_1 /DEST pdfmark +[ /Dest /LOUT20_437_all_1 /DEST pdfmark [ /Dest /LOUTadobe1990ps /DEST pdfmark 240 fnt1 0 11800([1])m 480(Adobe)s 1182(Systems,)s 2094(Inc..)s @@ -20937,238 +20936,238 @@ gsave grestore 480 fnt5 0 12404(Index)m -[ /Dest /LOUT20_489_all_1 /DEST pdfmark +[ /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_4213_pre_brea_1 /ANN pdfmark +[ /Rect [1551 11810 1785 11972] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_hadj_4 /ANN pdfmark +[ /Rect [2145 11519 2360 11687] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_font_8 /ANN pdfmark +[ /Rect [2062 11234 2296 11396] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_det_prec_2 /ANN pdfmark +[ /Rect [1363 10658 1597 10820] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_bend_1 /ANN pdfmark +[ /Rect [1959 10081 2193 10244] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_back_1 /ANN pdfmark +[ /Rect [2250 9791 2476 9959] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_begi_1 /ANN pdfmark +[ /Rect [1643 9503 1876 9670] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_head_2 /ANN pdfmark +[ /Rect [3506 9215 3740 9382] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_exa_bibl_1 /ANN pdfmark +[ /Rect [1513 8925 1737 9092] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pri_defi_3 /ANN pdfmark +[ /Rect [2039 8642 2153 8804] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_det_visi_3 /ANN pdfmark +[ /Rect [1602 8353 1830 8516] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pri_obje_6 /ANN pdfmark +[ /Rect [755 8063 859 8228] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_conc_15 /ANN pdfmark +[ /Rect [660 7775 888 7940] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_det_gall_4 /ANN pdfmark +[ /Rect [1513 7489 1741 7652] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_case_1 /ANN pdfmark +[ /Rect [1601 6909 1832 7079] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_conc_31 /ANN pdfmark +[ /Rect [944 6623 1172 6788] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_exa_chap_4 /ANN pdfmark +[ /Rect [1980 6333 2211 6500] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_exa_chap_1 /ANN pdfmark +[ /Rect [2180 6047 2407 6212] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_font_10 /ANN pdfmark +[ /Rect [1572 5762 1806 5924] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_exa_equa_3 /ANN pdfmark +[ /Rect [1060 5473 1288 5632] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_head_5 /ANN pdfmark +[ /Rect [3469 5183 3693 5350] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_brea_8 /ANN pdfmark +[ /Rect [1523 4895 1747 5060] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_exa_page_5 /ANN pdfmark +[ /Rect [1865 4607 2091 4775] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pri_obje_2 /ANN pdfmark +[ /Rect [1435 4322 1530 4484] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_det_lexi_21 /ANN pdfmark +[ /Rect [1058 4031 1284 4199] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_det_lexi_6 /ANN pdfmark +[ /Rect [1992 3743 2216 3908] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_rump_1 /ANN pdfmark +[ /Rect [1973 3455 2206 3623] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_det_gall_3 /ANN pdfmark +[ /Rect [2387 3167 2620 3334] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_det_gall_8 /ANN pdfmark +[ /Rect [1619 2877 1850 3044] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_conc_1 /ANN pdfmark +[ /Rect [2342 2591 2575 2758] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_hcon_3 /ANN pdfmark +[ /Rect [2155 2303 2370 2471] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_brea_4 /ANN pdfmark +[ /Rect [1749 2015 1973 2180] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pri_cros_1 /ANN pdfmark +[ /Rect [1593 1729 1701 1888] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_conc_8 /ANN pdfmark +[ /Rect [651 1439 879 1604] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_lang_3 /ANN pdfmark +[ /Rect [1999 1149 2230 1316] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_data_1 /ANN pdfmark +[ /Rect [2028 575 2256 742] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_mome_2 /ANN pdfmark +[ /Rect [2429 287 2644 454] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_det_name_3 /ANN pdfmark +[ /Rect [7497 11804 7723 11972] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pri_defi_1 /ANN pdfmark +[ /Rect [5984 11519 6098 11681] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_det_lexi_11 /ANN pdfmark +[ /Rect [5844 11228 6068 11393] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_grap_4 /ANN pdfmark +[ /Rect [7924 10942 8139 11105] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_grap_2 /ANN pdfmark +[ /Rect [5850 10652 6077 10819] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_exa_para_1 /ANN pdfmark +[ /Rect [7445 10362 7676 10529] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_exa_chap_2 /ANN pdfmark +[ /Rect [7182 10076 7409 10241] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_exa_para_4 /ANN pdfmark +[ /Rect [5945 9788 6180 9953] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_exa_para_6 /ANN pdfmark +[ /Rect [5545 9500 5760 9665] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_exa_page_2 /ANN pdfmark +[ /Rect [6276 9212 6500 9377] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_exa_para_2 /ANN pdfmark +[ /Rect [6210 8924 6445 9089] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_conc_17 /ANN pdfmark +[ /Rect [5472 8636 5700 8801] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_conc_19 /ANN pdfmark +[ /Rect [7200 8060 7428 8225] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_conc_20 /ANN pdfmark +[ /Rect [6030 7772 6258 7937] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_det_gall_12 /ANN pdfmark +[ /Rect [5925 7484 6140 7649] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_begi_2 /ANN pdfmark +[ /Rect [6291 7196 6524 7363] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_head_3 /ANN pdfmark +[ /Rect [8152 6908 8376 7075] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_exa_equa_1 /ANN pdfmark +[ /Rect [7976 6622 8204 6781] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_exa_equa_4 /ANN pdfmark +[ /Rect [6271 6334 6499 6493] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_det_lexi_5 /ANN pdfmark +[ /Rect [6537 6044 6761 6209] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_exa_page_10 /ANN pdfmark +[ /Rect [7352 5756 7580 5921] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_hexp_3 /ANN pdfmark +[ /Rect [6853 5468 7068 5636] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_det_visi_4 /ANN pdfmark +[ /Rect [6191 5180 6418 5345] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_font_3 /ANN pdfmark +[ /Rect [6256 4604 6491 4769] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_font_2 /ANN pdfmark +[ /Rect [6480 4316 6715 4481] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pri_cros_7 /ANN pdfmark +[ /Rect [5760 4028 5867 4193] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pri_cros_6 /ANN pdfmark +[ /Rect [5760 3740 5867 3905] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_font_1 /ANN pdfmark +[ /Rect [5450 3452 5685 3617] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_font_6 /ANN pdfmark +[ /Rect [6342 3164 6577 3329] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_exa_page_4 /ANN pdfmark +[ /Rect [6884 2876 7118 3041] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_gall_2 /ANN pdfmark +[ /Rect [7083 2588 7298 2755] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_det_gall_10 /ANN pdfmark +[ /Rect [6298 2298 6529 2465] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_det_lexi_9 /ANN pdfmark +[ /Rect [5854 2012 6078 2177] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_conc_11 /ANN pdfmark +[ /Rect [5420 1724 5648 1889] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pri_gall_1 /ANN pdfmark +[ /Rect [5648 1148 5883 1313] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_det_gall_1 /ANN pdfmark +[ /Rect [5938 860 6171 1027] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_gall_1 /ANN pdfmark +[ /Rect [6528 572 6743 739] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_conc_6 /ANN pdfmark +[ /Rect [5322 284 5550 449] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_conc_6 /ANN pdfmark 5322(37)s grestore 0 0 0 0 240 288 60 1417 -14865 LoutGr2 @@ -21223,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_4213_pre_conc_18 /ANN pdfmark +[ /Rect [1094 13246 1322 13411] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_grap_1 /ANN pdfmark +[ /Rect [1858 12958 2085 13125] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_hadj_2 /ANN pdfmark +[ /Rect [1860 12382 2075 12550] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_hcon_1 /ANN pdfmark +[ /Rect [2078 12094 2293 12262] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_cove_1 /ANN pdfmark +[ /Rect [1832 11806 2066 11974] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_head_1 /ANN pdfmark +[ /Rect [2833 11518 3067 11685] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_det_size_3 /ANN pdfmark +[ /Rect [1963 11233 2197 11395] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_hexp_1 /ANN pdfmark +[ /Rect [1987 10942 2202 11110] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_conc_22 /ANN pdfmark +[ /Rect [1208 10654 1436 10819] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_wide_2 /ANN pdfmark +[ /Rect [1533 10366 1768 10534] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_hlim_1 /ANN pdfmark +[ /Rect [1949 10078 2164 10246] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_exa_equa_7 /ANN pdfmark +[ /Rect [1690 9788 1921 9955] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_conc_3 /ANN pdfmark +[ /Rect [2516 9502 2749 9669] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_hsca_1 /ANN pdfmark +[ /Rect [1795 9214 2029 9382] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_hshi_1 /ANN pdfmark +[ /Rect [1689 8926 1924 9094] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_span_4 /ANN pdfmark +[ /Rect [1753 8638 1977 8806] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_conc_37 /ANN pdfmark +[ /Rect [2334 8348 2565 8515] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_conc_21 /ANN pdfmark +[ /Rect [2334 8062 2562 8227] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_brea_11 /ANN pdfmark +[ /Rect [1670 7774 1894 7939] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_brea_13 /ANN pdfmark +[ /Rect [2001 7777 2235 7939] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_det_lexi_12 /ANN pdfmark +[ /Rect [989 7198 1213 7363] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_det_visi_5 /ANN pdfmark +[ /Rect [1380 6910 1607 7075] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_incr_1 /ANN pdfmark +[ /Rect [3509 6624 3743 6787] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_incg_1 /ANN pdfmark +[ /Rect [2565 6336 2799 6499] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_incl_1 /ANN pdfmark +[ /Rect [1796 6046 2020 6211] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_exa_para_5 /ANN pdfmark +[ /Rect [2764 5758 2999 5923] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_exa_para_8 /ANN pdfmark +[ /Rect [2391 5470 2625 5635] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_data_2 /ANN pdfmark +[ /Rect [2473 5182 2701 5349] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_conc_4 /ANN pdfmark +[ /Rect [2730 4894 2958 5059] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_inse_1 /ANN pdfmark +[ /Rect [1650 4606 1877 4774] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pri_gall_2 /ANN pdfmark +[ /Rect [1113 4318 1348 4483] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pri_defi_4 /ANN pdfmark +[ /Rect [2318 4033 2432 4195] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_exa_equa_2 /ANN pdfmark +[ /Rect [1429 3168 1657 3327] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_font_5 /ANN pdfmark +[ /Rect [885 2878 1120 3043] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_conc_27 /ANN pdfmark +[ /Rect [1871 2590 2099 2755] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_kshr_1 /ANN pdfmark +[ /Rect [2181 2302 2414 2470] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_det_sort_2 /ANN pdfmark +[ /Rect [1715 2014 1949 2179] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_conc_28 /ANN pdfmark +[ /Rect [1210 1726 1438 1891] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_exa_equa_8 /ANN pdfmark +[ /Rect [1037 1436 1268 1603] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_lang_2 /ANN pdfmark +[ /Rect [2724 862 2951 1027] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_lang_1 /ANN pdfmark +[ /Rect [2065 574 2292 739] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_det_lexi_13 /ANN pdfmark +[ /Rect [1650 289 1884 451] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_font_9 /ANN pdfmark +[ /Rect [5804 13249 6038 13411] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_conc_7 /ANN pdfmark +[ /Rect [5605 12958 5833 13123] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_det_lexi_14 /ANN pdfmark +[ /Rect [6408 12673 6642 12835] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_det_lexi_2 /ANN pdfmark +[ /Rect [6433 12382 6657 12547] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_font_4 /ANN pdfmark +[ /Rect [5822 12094 6057 12259] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_brea_7 /ANN pdfmark +[ /Rect [6229 11806 6453 11971] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_link_2 /ANN pdfmark +[ /Rect [6762 11518 6995 11685] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_link_1 /ANN pdfmark +[ /Rect [7002 11230 7235 11397] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_det_lexi_15 /ANN pdfmark +[ /Rect [6519 10945 6753 11107] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_det_lexi_19 /ANN pdfmark +[ /Rect [6108 10657 6342 10819] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_det_lexi_17 /ANN pdfmark +[ /Rect [6417 10369 6651 10531] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_det_lexi_16 /ANN pdfmark +[ /Rect [6308 10081 6542 10243] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_det_lexi_22 /ANN pdfmark +[ /Rect [5547 9502 5773 9670] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pri_obje_3 /ANN pdfmark +[ /Rect [6465 9217 6560 9379] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_det_gall_5 /ANN pdfmark +[ /Rect [5938 8926 6165 9091] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_conc_23 /ANN pdfmark +[ /Rect [7270 8638 7498 8803] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_rump_3 /ANN pdfmark +[ /Rect [6376 8350 6609 8518] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_det_sort_3 /ANN pdfmark +[ /Rect [6527 8062 6751 8227] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_mome_1 /ANN pdfmark +[ /Rect [6702 7774 6937 7941] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_conc_10 /ANN pdfmark +[ /Rect [5531 7486 5759 7651] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_det_name_2 /ANN pdfmark +[ /Rect [6603 6910 6829 7078] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_det_visi_1 /ANN pdfmark +[ /Rect [6653 6624 6881 6787] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_next_1 /ANN pdfmark +[ /Rect [6354 6332 6585 6502] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_brea_12 /ANN pdfmark +[ /Rect [6730 6046 6954 6211] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_brea_14 /ANN pdfmark +[ /Rect [7061 6049 7295 6211] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_notr_1 /ANN pdfmark +[ /Rect [7157 5758 7381 5925] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_null_1 /ANN pdfmark +[ /Rect [6275 5470 6490 5637] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_exa_para_7 /ANN pdfmark +[ /Rect [6289 5182 6504 5347] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_exa_chap_3 /ANN pdfmark +[ /Rect [7025 4894 7252 5059] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pri_obje_1 /ANN pdfmark +[ /Rect [5567 4321 5662 4483] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_exa_page_9 /ANN pdfmark +[ /Rect [7272 4030 7500 4195] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_conc_26 /ANN pdfmark +[ /Rect [6031 3742 6259 3907] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_oner_3 /ANN pdfmark +[ /Rect [6642 3454 6877 3622] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_oneo_1 /ANN pdfmark +[ /Rect [6557 3166 6784 3334] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_exa_page_7 /ANN pdfmark +[ /Rect [6927 2878 7160 3045] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_oner_1 /ANN pdfmark +[ /Rect [6761 2588 6992 2755] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_open_1 /ANN pdfmark +[ /Rect [6436 2302 6662 2470] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_det_opti_1 /ANN pdfmark +[ /Rect [7232 2014 7458 2182] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_det_opti_2 /ANN pdfmark +[ /Rect [6767 1726 6993 1894] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_brea_6 /ANN pdfmark +[ /Rect [6577 1438 6801 1603] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_exa_chap_5 /ANN pdfmark +[ /Rect [6678 1148 6893 1315] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_det_lexi_3 /ANN pdfmark +[ /Rect [6408 862 6632 1027] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_brea_2 /ANN pdfmark +[ /Rect [6514 577 6748 739] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_outl_1 /ANN pdfmark +[ /Rect [6599 286 6826 451] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_outl_1 /ANN pdfmark 6599(48)s grestore gsave @@ -21550,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_4213_exa_equa_6 /ANN pdfmark +[ /Rect [1396 13246 1623 13411] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_conc_25 /ANN pdfmark +[ /Rect [2099 12958 2327 13123] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_hadj_1 /ANN pdfmark +[ /Rect [1822 12382 2037 12550] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_exa_page_6 /ANN pdfmark +[ /Rect [1696 12094 1922 12262] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_page_1 /ANN pdfmark +[ /Rect [2123 11806 2356 11973] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pri_defi_7 /ANN pdfmark +[ /Rect [1558 11230 1664 11398] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_exa_page_1 /ANN pdfmark +[ /Rect [1348 10942 1572 11107] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_exa_page_3 /ANN pdfmark +[ /Rect [1933 10654 2157 10819] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pri_obje_7 /ANN pdfmark +[ /Rect [1967 10366 2071 10531] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_conc_35 /ANN pdfmark +[ /Rect [1122 10076 1353 10243] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pri_defi_5 /ANN pdfmark +[ /Rect [1078 9793 1192 9955] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_det_visi_2 /ANN pdfmark +[ /Rect [1842 9504 2070 9667] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_det_name_1 /ANN pdfmark +[ /Rect [2027 9214 2253 9382] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_plai_1 /ANN pdfmark +[ /Rect [2344 8928 2578 9091] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_preface_1 /ANN pdfmark +[ /Rect [1096 8641 1222 8804] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_grap_3 /ANN pdfmark +[ /Rect [2129 8350 2356 8517] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_incg_3 /ANN pdfmark +[ /Rect [2836 8064 3070 8227] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_incr_3 /ANN pdfmark +[ /Rect [3780 7776 4014 7939] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_prep_3 /ANN pdfmark +[ /Rect [2958 7486 3182 7651] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_exa_para_3 /ANN pdfmark +[ /Rect [1483 7198 1718 7363] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_det_prec_1 /ANN pdfmark +[ /Rect [1198 6913 1432 7075] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pri_cros_5 /ANN pdfmark +[ /Rect [1065 6622 1172 6787] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_prep_1 /ANN pdfmark +[ /Rect [2687 6334 2911 6499] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_conc_5 /ANN pdfmark +[ /Rect [1523 6046 1751 6211] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_oner_2 /ANN pdfmark +[ /Rect [3734 5756 3965 5923] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_det_gall_9 /ANN pdfmark +[ /Rect [2600 5468 2831 5635] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_conc_9 /ANN pdfmark +[ /Rect [660 5182 888 5347] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_det_lexi_4 /ANN pdfmark +[ /Rect [1629 4606 1853 4771] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_det_lexi_20 /ANN pdfmark +[ /Rect [1365 4321 1599 4483] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_brea_3 /ANN pdfmark +[ /Rect [1639 3742 1863 3907] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_verb_2 /ANN pdfmark +[ /Rect [2377 3454 2603 3622] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pri_gall_4 /ANN pdfmark +[ /Rect [1817 3169 2032 3331] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pri_defi_6 /ANN pdfmark +[ /Rect [1081 2878 1187 3046] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_exa_bibl_2 /ANN pdfmark +[ /Rect [2198 2588 2422 2755] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_exa_bibl_3 /ANN pdfmark +[ /Rect [2923 2300 3149 2470] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_exa_bibl_4 /ANN pdfmark +[ /Rect [1538 2012 1771 2181] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pri_cros_3 /ANN pdfmark +[ /Rect [1478 1728 1586 1887] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_conc_32 /ANN pdfmark +[ /Rect [1831 1438 2059 1603] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_brea_9 /ANN pdfmark +[ /Rect [1489 1150 1713 1315] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_exa_para_9 /ANN pdfmark +[ /Rect [1730 862 1954 1027] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pri_gall_5 /ANN pdfmark +[ /Rect [1214 577 1429 739] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_det_gall_6 /ANN pdfmark +[ /Rect [1122 286 1349 451] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_det_gall_7 /ANN pdfmark +[ /Rect [6191 12954 6422 13121] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_det_size_5 /ANN pdfmark +[ /Rect [7287 12668 7513 12836] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_rota_1 /ANN pdfmark +[ /Rect [6551 12380 6777 12548] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_rota_2 /ANN pdfmark +[ /Rect [6666 12092 6892 12260] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pri_obje_4 /ANN pdfmark +[ /Rect [5923 11807 6037 11969] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_brea_5 /ANN pdfmark +[ /Rect [6528 11516 6752 11681] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_rump_2 /ANN pdfmark +[ /Rect [6490 11228 6723 11396] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_conc_16 /ANN pdfmark +[ /Rect [5435 10940 5663 11105] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_exa_page_8 /ANN pdfmark +[ /Rect [6735 10652 6968 10819] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_scal_1 /ANN pdfmark +[ /Rect [6453 10076 6687 10244] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_hsca_3 /ANN pdfmark +[ /Rect [6555 9788 6789 9956] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pri_cros_2 /ANN pdfmark +[ /Rect [5536 9502 5644 9661] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_exa_chap_6 /ANN pdfmark +[ /Rect [6733 9210 6948 9377] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_colo_2 /ANN pdfmark +[ /Rect [6765 8924 6991 9092] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_colo_1 /ANN pdfmark +[ /Rect [6887 8636 7113 8804] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_head_4 /ANN pdfmark +[ /Rect [8091 8348 8315 8515] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_text_1 /ANN pdfmark +[ /Rect [6946 8062 7174 8225] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_det_size_4 /ANN pdfmark +[ /Rect [6535 7775 6769 7937] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_font_7 /ANN pdfmark +[ /Rect [6222 7487 6437 7649] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_det_sort_1 /ANN pdfmark +[ /Rect [6276 7196 6510 7361] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_det_lexi_10 /ANN pdfmark +[ /Rect [5497 6908 5721 7073] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_conc_34 /ANN pdfmark +[ /Rect [6742 6620 6969 6785] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_spac_1 /ANN pdfmark +[ /Rect [6527 6335 6761 6497] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_span_1 /ANN pdfmark +[ /Rect [7040 6044 7264 6212] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_span_3 /ANN pdfmark +[ /Rect [7186 5756 7410 5924] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_span_2 /ANN pdfmark +[ /Rect [7028 5468 7252 5636] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_det_size_1 /ANN pdfmark +[ /Rect [6615 5180 6839 5345] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_conc_12 /ANN pdfmark +[ /Rect [5465 4892 5693 5057] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_spac_2 /ANN pdfmark +[ /Rect [7171 4607 7405 4769] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_exa_equa_5 /ANN pdfmark +[ /Rect [6139 4316 6366 4481] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pri_defi_2 /ANN pdfmark +[ /Rect [5670 4031 5784 4193] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_data_3 /ANN pdfmark +[ /Rect [7210 3740 7437 3907] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_incr_2 /ANN pdfmark +[ /Rect [8691 3454 8925 3617] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_incg_2 /ANN pdfmark +[ /Rect [7747 3166 7981 3329] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_incl_2 /ANN pdfmark +[ /Rect [6978 2876 7202 3041] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_prep_2 /ANN pdfmark +[ /Rect [7869 2588 8093 2753] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pri_obje_5 /ANN pdfmark +[ /Rect [5539 2015 5653 2177] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_conc_29 /ANN pdfmark +[ /Rect [6926 1724 7154 1889] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_tagg_1 /ANN pdfmark +[ /Rect [6619 1436 6845 1604] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_det_name_4 /ANN pdfmark +[ /Rect [8105 1148 8338 1315] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pri_cros_4 /ANN pdfmark +[ /Rect [7286 860 7393 1025] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pri_gall_3 /ANN pdfmark +[ /Rect [6601 575 6816 737] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_det_gall_2 /ANN pdfmark +[ /Rect [5938 284 6171 451] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_det_gall_2 /ANN pdfmark 5938(26)s grestore gsave @@ -21879,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_4213_det_gall_11 /ANN pdfmark +[ /Rect [1701 13246 1936 13411] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_conc_38 /ANN pdfmark +[ /Rect [1534 12668 1765 12835] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_conc_36 /ANN pdfmark +[ /Rect [2982 12380 3213 12547] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_det_lexi_1 /ANN pdfmark +[ /Rect [1252 12094 1476 12259] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_conc_30 /ANN pdfmark +[ /Rect [1157 11806 1385 11971] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_unde_1 /ANN pdfmark +[ /Rect [2029 11230 2262 11397] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_det_lexi_7 /ANN pdfmark +[ /Rect [2146 10942 2370 11107] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_open_2 /ANN pdfmark +[ /Rect [1479 10654 1705 10822] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_hadj_3 /ANN pdfmark +[ /Rect [1831 10078 2046 10246] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_hcon_2 /ANN pdfmark +[ /Rect [2066 9790 2281 9958] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_cove_2 /ANN pdfmark +[ /Rect [1820 9502 2054 9670] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_verb_1 /ANN pdfmark +[ /Rect [1943 9214 2169 9382] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_conc_2 /ANN pdfmark +[ /Rect [2236 8926 2469 9093] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_hexp_2 /ANN pdfmark +[ /Rect [1975 8638 2190 8806] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_hlim_2 /ANN pdfmark +[ /Rect [1937 8350 2152 8518] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_hsca_2 /ANN pdfmark +[ /Rect [1783 8062 2017 8230] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_hshi_2 /ANN pdfmark +[ /Rect [1677 7774 1912 7942] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_span_5 /ANN pdfmark +[ /Rect [1741 7486 1965 7654] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_conc_13 /ANN pdfmark +[ /Rect [655 7198 883 7363] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_brea_10 /ANN pdfmark +[ /Rect [3090 6910 3314 7075] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_det_lexi_8 /ANN pdfmark +[ /Rect [1281 6334 1505 6499] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_conc_33 /ANN pdfmark +[ /Rect [1926 6046 2153 6211] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_wide_1 /ANN pdfmark +[ /Rect [1588 5758 1823 5926] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_det_size_2 /ANN pdfmark +[ /Rect [1898 5473 2132 5635] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_det_lexi_18 /ANN pdfmark +[ /Rect [638 5185 872 5347] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_conc_14 /ANN pdfmark +[ /Rect [702 4894 930 5059] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_conc_24 /ANN pdfmark +[ /Rect [1208 4318 1436 4483] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_case_2 /ANN pdfmark +[ /Rect [1567 3740 1798 3910] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_yuni_1 /ANN pdfmark +[ /Rect [1628 3454 1854 3622] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_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_4213_pre_yuni_2 /ANN pdfmark +[ /Rect [1616 2878 1842 3046] /Border [0 0 0] /View [ /XYZ null null null ] /Subtype /Link /Dest /LOUT19_4226_pre_yuni_2 /ANN pdfmark 1616(45)s grestore gsave diff --git a/doc/expert/preface b/doc/expert/preface index a51773c..b5559e3 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.27 of the Basser Lout interpreter, using the symbols +by Version 3.28 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 adc3693..ef1cd6e 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 -22 November 2002 +20 December 2002 diff --git a/doc/slides/outfile.ps b/doc/slides/outfile.ps index 20583fa..719a78f 100644 --- a/doc/slides/outfile.ps +++ b/doc/slides/outfile.ps @@ -1,6 +1,6 @@ %!PS-Adobe-3.0 -%%Creator: Basser Lout Version 3.27 (November 2002) -%%CreationDate: Fri Nov 22 09:08:51 2002 +%%Creator: Basser Lout Version 3.28 (December 2002) +%%CreationDate: Fri Dec 20 11:08:45 2002 %%DocumentData: Binary %%DocumentNeededResources: (atend) %%DocumentSuppliedResources: (atend) @@ -2980,16 +2980,16 @@ grestore 400 fnt4 1440 8364(Operating)m 3287(Instructions)s 400 fnt1 1440 7529(1.)m 2240(Press)s 3166(small)s 4123(green)s 5104(le)s 10(v)k 6(er)k 22(.)k -[ /Dest /LOUT22_1489_all_1 /DEST pdfmark +[ /Dest /LOUT22_1490_all_1 /DEST pdfmark 1440 6689(2.)m 2240(W)s 32(ait)k 3077(approximately)s 5468(10)s 5952(seconds)s 2240 6209(until)m 3065(red)s 3672(light)s 4505(\210ashes.)s -[ /Dest /LOUT22_1489_all_2 /DEST pdfmark +[ /Dest /LOUT22_1490_all_2 /DEST pdfmark 1440 5369(3.)m 2240(If)s 2626(smok)s 4(e)k 3757(emer)s 7(ges)k 5164(from)s 6040(rear)s 6760(of)s 2240 4889(unit,)m 3040(call)s 3708(Service)s 4997(Department.)s -[ /Dest /LOUT22_1489_all_3 /DEST pdfmark +[ /Dest /LOUT22_1490_all_3 /DEST pdfmark grestore @@ -3396,9 +3396,9 @@ grestore 5977(of)s 2240 3961(Computer)m 3938(Science)s 5171(,)s 5349(Uni)s 10(v)k 6(ersity)k 2240 3481(of)m 2693(Sydne)s 6(y)k 3876(,)s 4054(1995)s 4830(.)s -[ /Dest /LOUT22_1489_all_4 /DEST pdfmark +[ /Dest /LOUT22_1490_all_4 /DEST pdfmark 1440 2644(2.)m 2240(\202)s -[ /Dest /LOUT22_1489_all_5 /DEST pdfmark +[ /Dest /LOUT22_1490_all_5 /DEST pdfmark grestore @@ -3512,29 +3512,29 @@ grestore [ /Dest /LOUT26_224_all_19 /DEST pdfmark 400 fnt1 0 9650(\213)m 800(T)s 14(itle)k 1632(page,)s 2564(pref)s 4(ace,)k 3912(introduction)s -[ /Dest /LOUT22_1489_all_6 /DEST pdfmark +[ /Dest /LOUT22_1490_all_6 /DEST pdfmark 0 8810(\213)m 800(Automatic)s 2574(table)s 3442(of)s 3895(contents)s -[ /Dest /LOUT22_1489_all_7 /DEST pdfmark +[ /Dest /LOUT22_1490_all_7 /DEST pdfmark 0 8053(\213)m 800(Pref)s 4(atory)k 2372(pages)s 3365(numbered)s 5060(in)s 5465(Roman)s 6713(numerals)s -[ /Dest /LOUT22_1489_all_8 /DEST pdfmark +[ /Dest /LOUT22_1490_all_8 /DEST pdfmark 0 7213(\213)m 800(Chapters,)s 2397(sections,)s 3861(subsections,)s 5880(appendices)s -[ /Dest /LOUT22_1489_all_9 /DEST pdfmark +[ /Dest /LOUT22_1490_all_9 /DEST pdfmark 0 6374(\213)m 800(References)s 2656(at)s 3044(end)s 3718(of)s 4171(chapters)s 5585(or)s 6018(book)s -[ /Dest /LOUT22_1489_all_10 /DEST pdfmark +[ /Dest /LOUT22_1490_all_10 /DEST pdfmark 0 5535(\213)m 800(Running)s 2265(page)s 3111(headers)s -[ /Dest /LOUT22_1489_all_11 /DEST pdfmark +[ /Dest /LOUT22_1490_all_11 /DEST pdfmark 0 4695(\213)m 800(Odd-e)s 10(v)k 6(en)k 2453(page)s 3299(formats)s -[ /Dest /LOUT22_1489_all_12 /DEST pdfmark +[ /Dest /LOUT22_1490_all_12 /DEST pdfmark 0 3855(\213)m 800(Sorted)s 1940(inde)s 6(x)k -[ /Dest /LOUT22_1489_all_13 /DEST pdfmark +[ /Dest /LOUT22_1490_all_13 /DEST pdfmark grestore gsave diff --git a/doc/user/README b/doc/user/README index 85c95c7..99e1a75 100644 --- a/doc/user/README +++ b/doc/user/README @@ -19,7 +19,7 @@ error message output on the later runs for A4 size printing: 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 112, from "all" line 48): +lout file "prg_tabs" (from "prg" line 127, from "all" line 48): 66,23: prg2lout 2,1: program text ended within comment 68,35: prg2lout 2,1: program text ended within comment @@ -35,7 +35,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.27.user.ps.gz". +stored at "ftp://ftp.cs.su.oz.au/jeff/lout/lout-3.28.user.ps.gz". Jeffrey H. Kingston -22 November 2002 +20 December 2002 diff --git a/doc/user/all b/doc/user/all index b92514b..96aa5af 100644 --- a/doc/user/all +++ b/doc/user/all @@ -22,8 +22,8 @@ Lout Document Formatting System } @Author { Jeffrey H. Kingston } - @Edition { Version 3.27 -November, 2002 } + @Edition { Version 3.28 +December, 2002 } @Publisher { Copyright @CopyRight 1991, 2002 Jeffrey H. Kingston, School of Information Technologies, diff --git a/doc/user/bas b/doc/user/bas index 239d35a..253abd8 100644 --- a/doc/user/bas +++ b/doc/user/bas @@ -21,8 +21,8 @@ simple to use. @Include { bas_line } @Include { bas_hyph } @Include { bas_unde } -@Include { bas_date } @Include { bas_lang } +@Include { bas_date } @Include { bas_supe } @Include { bas_verb } @Include { bas_drop } diff --git a/doc/user/bas_char b/doc/user/bas_char index 7efa566..4f4b8a6 100644 --- a/doc/user/bas_char +++ b/doc/user/bas_char @@ -303,6 +303,284 @@ like the other fonts. Typing @Code "@B @Sym alpha" is therefore useless, and anyway there is no bold @Sym alpha character in any font distributed with Lout (except see Section {@NumberOf teq}). @PP +Next there are the dingbats. Here they are with their +dingbats. @Index { dingbats characters } +(regrettably meaningless) names: +@FootNote { +If you see only conventional characters in this table, the problem +is that your viewer does not have access to the Dingbats font. The +author's viewer has this problem, for example, but his printer doesn't. +} +@CD @Tbl + indent { ctr } + iv { ctr } + rule { yes } + font { -1p } + width { 1.0c } + margin { 0.2f } + aiv { top } + afont { Helvetica Base -2p } + aformat { + @Cell paint { @Xrgb grey95 } -90d @Rotate B | + @Cell ruleright { double } -90d @Rotate C | + @Cell paint { @Xrgb grey95 } -90d @Rotate D | + @Cell ruleright { double } -90d @Rotate E | + @Cell paint { @Xrgb grey95 } -90d @Rotate F | + @Cell ruleright { double } -90d @Rotate G | + @Cell paint { @Xrgb grey95 } -90d @Rotate H | + @Cell ruleright { double } -90d @Rotate I | + @Cell paint { @Xrgb grey95 } -90d @Rotate J | + @Cell ruleright { double } -90d @Rotate K | + @Cell paint { @Xrgb grey95 } -90d @Rotate L | + @Cell -90d @Rotate M | } + bformat { + @Cell paint { @Xrgb grey95 } indent { right } B | + @Cell ruleright { double } font { Dingbats Base -1p } @Char C | + @Cell paint { @Xrgb grey95 } indent { right } D | + @Cell ruleright { double } font { Dingbats Base -1p } @Char E | + @Cell paint { @Xrgb grey95 } indent { right } F | + @Cell ruleright { double } font { Dingbats Base -1p } @Char G | + @Cell paint { @Xrgb grey95 } indent { right } H | + @Cell ruleright { double } font { Dingbats Base -1p } @Char I | + @Cell paint { @Xrgb grey95 } indent { right } J | + @Cell ruleright { double } font { Dingbats Base -1p } @Char K | + @Cell paint { @Xrgb grey95 } indent { right } L | + @Cell font { Dingbats Base -1p } @Char M | } +{ + @Rowa + B { "@"Ding } C{ Dingbat } + D { "@"Ding } E{ Dingbat } + F { "@"Ding } G{ Dingbat } + H { "@"Ding } I{ Dingbat } + J { "@"Ding } K{ Dingbat } + L { "@"Ding } M{ Dingbat } + @Rowb + B{a1} C{a1} + D{a2} E{a2} + F{a202} G{a202} + H{a3} I{a3} + J{a4} K{a4} + L{a5} M{a5} + @Rowb + B{a119} C{a119} + D{a118} E{a118} + F{a117} G{a117} + H{a11} I{a11} + J{a12} K{a12} + L{a13} M{a13} + @Rowb + B{a14} C{a14} + D{a15} E{a15} + F{a16} G{a16} + H{a105}I{a105} + J{a17} K{a17} + L{a18} M{a18} + @Rowb + B{a19} C{a19} + D{a20} E{a20} + F{a21} G{a21} + H{a22} I{a22} + J{a23} K{a23} + L{a24} M{a24} + @Rowb + B{a25} C{a25} + D{a26} E{a26} + F{a27} G{a27} + H{a28}I{a28} + J{a6} K{a6} + L{a7} M{a7} + @Rowb + B{a8} C{a8} + D{a9} E{a9} + F{a10} G{a10} + H{a29} I{a29} + J{a30} K{a30} + L{a31} M{a31} + @Rowb + B{a32} C{a32} + D{a33} E{a33} + F{a34} G{a34} + H{a35} I{a35} + J{a36} K{a36} + L{a37} M{a37} + @Rowb + B{a38} C{a38} + D{a39} E{a39} + F{a40} G{a40} + H{a41} I{a41} + J{a42} K{a42} + L{a43} M{a43} + @Rowb + B{a44} C{a44} + D{a45} E{a45} + F{a46} G{a46} + H{a47} I{a47} + J{a48} K{a48} + L{a49} M{a49} + @Rowb + B{a50} C{a50} + D{a51} E{a51} + F{a52} G{a52} + H{a54} I{a54} + J{a55} K{a55} + L{a56} M{a56} + @Rowb + B{a57} C{a57} + D{a58} E{a58} + F{a59} G{a59} + H{a60} I{a60} + J{a61} K{a61} + L{a62} M{a62} + @Rowb + B{a63} C{a63} + D{a64} E{a64} + F{a65} G{a65} + H{a66} I{a66} + J{a67} K{a67} + L{a68} M{a68} + @Rowb + B{a69} C{a69} + D{a70} E{a70} + F{a71} G{a71} + H{a72} I{a72} + J{a73} K{a73} + L{a74} M{a74} + @Rowb + B{a203} C{a203} + D{a75} E{a75} + F{a204} G{a204} + H{a76} I{a76} + J{a77} K{a77} + L{a78} M{a78} + @Rowb + B{a79} C{a79} + D{a81} E{a81} + F{a82} G{a82} + H{a83} I{a83} + J{a84} K{a84} + L{a97} M{a97} + @Rowb + B{a98} C{a98} + D{a99} E{a99} + F{a100} G{a100} + H{a101} I{a101} + J{a102} K{a102} + L{a103} M{a103} + @Rowb + B{a104} C{a104} + D{a106} E{a106} + F{a107} G{a107} + H{a108} I{a108} + J{a112} K{a112} + L{a111} M{a111} + @Rowb + B{a110} C{a110} + D{a109} E{a109} + F{a120} G{a120} + H{a121} I{a121} + J{a122} K{a122} + L{a123} M{a123} + @Rowb + B{a124} C{a124} + D{a125} E{a125} + F{a126} G{a126} + H{a127} I{a127} + J{a128} K{a128} + L{a129} M{a129} + @Rowb + B{a130} C{a130} + D{a131} E{a131} + F{a132} G{a132} + H{a133} I{a133} + J{a134} K{a134} + L{a135} M{a135} + @Rowb + B{a136} C{a136} + D{a137} E{a137} + F{a138} G{a138} + H{a139} I{a139} + J{a140} K{a140} + L{a141} M{a141} + @Rowb + B{a142} C{a142} + D{a143} E{a143} + F{a144} G{a144} + H{a145} I{a145} + J{a146} K{a146} + L{a147} M{a147} + @Rowb + B{a148} C{a148} + D{a149} E{a149} + F{a150} G{a150} + H{a151} I{a151} + J{a152} K{a152} + L{a153} M{a153} + @Rowb + B{a154} C{a154} + D{a155} E{a155} + F{a156} G{a156} + H{a157} I{a157} + J{a158} K{a158} + L{a159} M{a159} + @Rowb + B{a160} C{a160} + D{a161} E{a161} + F{a163} G{a163} + H{a164} I{a164} + J{a196} K{a196} + L{a165} M{a165} + @Rowb + B{a192} C{a192} + D{a166} E{a166} + F{a167} G{a167} + H{a168} I{a168} + J{a169} K{a169} + L{a170} M{a170} + @Rowb + B{a171} C{a171} + D{a172} E{a172} + F{a173} G{a173} + H{a162} I{a162} + J{a174} K{a174} + L{a175} M{a175} + @Rowb + B{a176} C{a176} + D{a177} E{a177} + F{a178} G{a178} + H{a179} I{a179} + J{a193} K{a193} + L{a180} M{a180} + @Rowb + B{a199} C{a199} + D{a181} E{a181} + F{a200} G{a200} + H{a182} I{a182} + J{a201} K{a201} + L{a183} M{a183} + @Rowb + B{a184} C{a184} + D{a197} E{a197} + F{a185} G{a185} + H{a194} I{a194} + J{a198} K{a198} + L{a186} M{a186} + @Rowb + B{a195} C{a195} + D{a187} E{a187} + F{a188} G{a188} + H{a189} I{a189} + J{a190} K{a190} + L{a191} M{a191} +} +The easiest way to get a dingbat is to write, for example, +@ID @Code "@Ding a123" +which produces the dingbat with the given name from the table +above. This is just a shorthand for +@ID @Code @Verbatim { +{ Dingbats Base } @Font { @Char a123 } +} +In other words, dingbats are just another font. +@PP Finally we have a few more characters that you get with the @Code "@Char" symbol, although they aren't ISO-LATIN-1 characters. @ID @OneRow -3p @Font @Tab diff --git a/doc/user/bas_lang b/doc/user/bas_lang index fea9f3f..7468076 100644 --- a/doc/user/bas_lang +++ b/doc/user/bas_lang @@ -15,27 +15,40 @@ Changing language is quite analogous to changing font using the @Code "@Font" symbol. @PP At the time of writing, the following languages were available: -@ID @OneRow @Code { -Croatian Hrvatski -Czech Cesky Cestina cs -Danish Dansk da -Dutch Nederlands nl -English en -EnglishUK en-GB -Finnish Suomi fi -French Francais Fran{@Char ccedilla}ais fr -German Deutsch de -Hungarian Magyar hu -Italian Italiano it -Norwegian Norsk no -Polish Polski pl -Portuguese Portuguęs pt -Russian ru -Slovak Slovensky Slovencina -Slovenian Slovenia Slovenija sl -Spanish Espa{@Char ntilde}ol es -Swedish Svenska sv -UpperSorbian hornjoserbsce serbsce +@CD @OneRow @Tbl + aformat { @Cell ml { 0i } @Code A | @Cell mr { 0i } @Code B } + mv { 0.5vx } +{ +@Rowa + A { Croatian Hrvatski } + B { Italian Italiano it } +@Rowa + A { Czech Cesky Cestina cs } + B { Norwegian Norsk no } +@Rowa + A { Danish Dansk da } + B { Polish Polski pl } +@Rowa + A { Dutch Nederlands nl } + B { Portuguese Portuguęs pt } +@Rowa + A { English en } + B { Russian ru } +@Rowa + A { EnglishUK en-GB } + B { Slovak Slovensky Slovencina } +@Rowa + A { Finnish Suomi fi } + B { Slovenian Slovenia Slovenija sl } +@Rowa + A { French Francais Fran{@Char ccedilla}ais fr } + B { Spanish Espa{@Char ntilde}ol es } +@Rowa + A { German Deutsch de } + B { Swedish Svenska sv } +@Rowa + A { Hungarian Magyar hu } + B { UpperSorbian hornjoserbsce serbsce } } File @Code "include/langdefs" in the distribution always has the exact list of known languages. As shown, most languages have alternative diff --git a/doc/user/bgr_text b/doc/user/bgr_text index 2c56022..286698a 100644 --- a/doc/user/bgr_text +++ b/doc/user/bgr_text @@ -8,7 +8,7 @@ texture.sym @Index { @Code "@Texture" symbol } and @Code "@Colour" do. It causes the object to its right to be printed in a texture specified by the object to its left: -@ID @Code "striped @Texture 50p @Font ABC" +@ID @Code "striped @Texture 40p @Font ABC" produces @FootNote { If you can't see the result here, or if you can see it but without @@ -16,9 +16,12 @@ texture, then the fault is probably in your PostScript viewer. The PostScript viewer used by the author (a 1997 version of @I { gv }) shows a blank space here and throughout this section wherever a texture is supposed to appear, but when printed on his printer -the textures appear correctly. +the textures appear correctly. Some viewers may fail altogether when +given a PostScript file with textures. In that case, run your document +again using @OneCol @I { lout -t } instead of @I { lout }. This will +cause Lout to ignore all textures and print everything in solid colour. } -@CD striped @Texture 50p @Font ABC +@CD striped @Texture 40p @Font ABC The object to the right of @Code "@Texture" may be arbitrary as usual. @PP # Textures are harder to specify than colours, and only a few @@ -39,7 +42,7 @@ striped @Texture angle { 45d } hshift { 1p } vshift { 3p } -50p @Font ABC +40p @Font ABC } produces @CD striped @Texture @@ -47,7 +50,7 @@ produces angle { 45d } hshift { 1p } vshift { 3p } -50p @Font ABC +40p @Font ABC with the texture scaled by a factor of 2, printed at an angle of 45 degrees, and shifted one point horizontally and three points vertically. The @Code scale option causes equal scaling in the diff --git a/doc/user/dia_tags b/doc/user/dia_tags index ce2e2d7..67ad6a0 100644 --- a/doc/user/dia_tags +++ b/doc/user/dia_tags @@ -122,9 +122,15 @@ A:: { } } In practice one usually only retags individual nodes. It is best to -use only upper-case letters and digits in tags, because Lout and -PostScript have tags of their own containing lower-case letters, and -any mixup causes total disaster. +use only upper-case letters in tags, because Lout and PostScript have +tags of their own containing lower-case letters, and any mixup causes +total disaster. Although the above example uses digits, these can +cause problems since a tag like {@Code "A@1@S"} will be interpreted +by Lout as @Code "A@1" followed by the @Code "@S" small capitals +symbol. (This problem can itself be avoided by enclosing the entire +tag in quotes, as in {@Code "\"A@1@S\""}; this works because tags are +just words to Lout, although they are symbols to PostScript. But +better to avoid the whole problem by not using digits.) @PP When a tag lies within the object following some node, it is automatically retagged in this way with tag {@Code IN}. For example, in @@ -147,8 +153,8 @@ Although @Code from and @Code to are just two of several options within given, they have a special virtue not shared by any other options. It is possible to give the name of an entire node, not just a tag denoting one point, to them: -@ID @Verbatim { -@Code { +@ID { +@Code @Verbatim { A:: @Circle @DP B:: @Ellipse { Hello, world } @@ -173,9 +179,9 @@ The @Code "::" symbol has a @Code restrict option which can be diagrams. @RawIndex { diagrams } diagrams.restrict @SubIndex { @Code "restrict" option } restrict.diagrams @Index { @Code "restrict" option (diagrams) } -used to save printer memory in deeply nested structures (such as -the syntax diagrams of Section {@NumberOf dia_synt}) by restricting -the tags promoted by @Code "::" to a limited set: +used to save printer memory in deeply nested structures (such as the +syntax diagrams of Section {@NumberOf dia_synt}) by restricting the +tags promoted by @Code "::" to a limited set and discarding the rest: @ID { @Code { "A:: restrict { (E) (W) } @Ellipse" diff --git a/doc/user/preface b/doc/user/preface index c2d3da1..ba2ea1a 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.27.tar.gz"}), and various other things including +(currently {@Code "lout-3.28.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 diff --git a/doc/user/prg b/doc/user/prg index 6b64e12..ad5e1fc 100644 --- a/doc/user/prg +++ b/doc/user/prg @@ -33,17 +33,19 @@ blue. @Index { Blue program printing } c. @Index { C and C++ program printing } eiffel. @Index { Eiffel 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 } +ruby. @Index { Ruby program printing } @CD @Tbl mv { 0.5vx } af { Italic } - arb { yes } aformat { @Cell A | @Cell B | @Cell C | @Cell D | @Cell E } bformat { @Cell A | @Cell @Code B | @Cell @Code C | @Cell @Code D | @Cell E } { @Rowa + rb { yes } A { Language name } B { Setup file name } C { Lout symbol } @@ -73,6 +75,12 @@ python. @Index { Python program printing } C { "@Java" } D { fixed } E { No } +@Rowb + A { Nonpareil } + B { np } + C { "@Nonpareil" } + D { symbol } + E { Yes } @Rowb A { Perl } B { perl } @@ -91,6 +99,13 @@ python. @Index { Python program printing } C { "@Python" } D { varying } E { No } +@Rowb + A { Ruby } + B { ruby } + C { "@Ruby" } + D { fixed } + E { No } + rb { yes } } C and C++ are handled together since, for formatting purposes, they differ only in that C++ has some additional keywords plus an extra diff --git a/doc/user/typ_book b/doc/user/typ_book index 6daa713..dec1e20 100644 --- a/doc/user/typ_book +++ b/doc/user/typ_book @@ -64,7 +64,9 @@ with no page headers or footers, and using the same margins as for even pages, after the very last page of the book; even after the index if there is one. It is intended to make it possible to include a back cover, so @Code "@PageOf last.page" (Section {@NumberOf cross}) does -not take account of any @Code "@AtEnd" page. +not take account of any @Code "@AtEnd" page. (To make a colophon, +which occupies any number of numbered pages after the index, consult +the @Code "@Colophon" symbol below.) @PP The remaining options are a selection of setup file options (Section {@NumberOf setup}) that frequently need to be changed. If your changes @@ -265,11 +267,12 @@ beginsubsubappendices.books @SubIndex { in books } endsubsubappendices.books @SubIndex { in books } sub-sub-subappendices. @PP -The book ends with the last chapter or appendix; any reference list or -index will be appended automatically. Although we have described how to -create books as though everything was in one large file, in practice it -is much better to divide the book into multiple files, following the -method given in Section {@NumberOf organizing}. +Apart from any colophon, described below, the book ends with the last +chapter or appendix; any reference list or index will be appended +automatically. Although we have described how to create books as +though everything was in one large file, in practice it is much better +to divide the book into multiple files, following the method given in +Section {@NumberOf organizing}. @PP In addition to the {@Code "@Title"} option, each large-scale structure symbol (i.e. {@Code "@Preface"}, {@Code "@Introduction"}, {@Code "@Chapter"}, @@ -300,6 +303,37 @@ will also be an entry made in the table of contents. Parts are @I not numbered automatically: you have to supply your own numbers or letters as shown above. @PP +After the last chapter or appendix, an optional colophon may be given: +@ID @OneRow @Code @Verbatim { +@Colophon @Begin +This document was typeset using the Lout document +formatting system. The resulting PostScript file +was converted to PDF using GNU @I { ps2pdf }. +@End @Colophon +} +For this to work, however, the @Code "@MakeColophon" option of the +setup file must be changed to @Code Yes (see next paragraph). A +colophon appears at the very end of the book, after the index. It may +occupy several pages, and these will be numbered as usual. See also +the @Code "@AtEnd" option above, which is intended to hold a one-page +unnumbered back cover. As the example suggests, colophons these days +are generally used for notes concerning how a book was produced. They +are an old form that has been revived; previously, according to my +dictionary, they contained information now printed on the title page. +@PP +A colophon is like a preface except that it appears at the end, and +should logically be implemented like the {@Code "@Preface"} symbol. +Unfortunately, owing to problems behind the scenes it has instead +been implemented like glossaries and indexes: you have to set a +@Code "@MakeColophon" option in the setup file to {@Code Yes}. There +are setup file options for setting the font and break style, column +number and column gap, and heading ({@Code "@ColophonFont"}, +{@Code "@ColophonBreak"}, {@Code "@ColophonColumnNumber"}, +{@Code "@ColophonColumnGap"}, and {@Code "@ColophonWord"}). There are +also {@Code "@ColophonInContents"} and {@Code "@ColophonPrefix"} +options for determining whether the colophon appears in the table +of contents, and its prefix when structured page numbers are used. +@PP The features described in other chapters are all available within books. A table of contents and index will appear automatically, and you will need to change the setup file to avoid them. Endnotes will @@ -393,8 +427,7 @@ write, say, "@ChapterHeadingFormat { @Box paint { lightgrey } { number @DP title } }" to get the title below the number, both enclosed in a box. The default value uses the @Code "@DotSep" symbol from Section {@NumberOf headers} -to produce the number and title separated by a dot and two spaces, roughly -the same as +to show the number and title separated by a dot and two spaces, like @ID @Code "@ChapterHeadingFormat { number. title }" except when there is no number. This option is applied to other major headings, in the preface, introduction, table of @@ -414,16 +447,16 @@ within @Code "@PartHeadingFormat" to change this. @PP The example of boxed titles for chapters given above suffers from two practical deficiencies. First, the box won't extend right across the -page, and second, when there is no @Code "number" we don't want the +page, and second, when there is no @Code "number" we don't want @Code "@DP" either. Here is a value for @Code "@ChapterHeadingFormat" -that solves both of these problems and looks good in practice: -@ID @OneCol @Code { -"@ChapterHeadingFormat {" -" number @Case {" -" {} @Yield @Box paint { lightgrey } @HExpand { title }" -" else @Yield @Box paint { lightgrey } @HExpand { number @DP title }" -" }" -"}" +that solves both problems: +@ID @OneCol @Code @Verbatim { +@ChapterHeadingFormat { + number @Case { + {} @Yield @Box paint { lightgrey } @HExpand { title } + else @Yield @Box paint { lightgrey } @HExpand { number @DP title } + } +} } The @Code "@Case" symbol (Expert's Guide @Cite { $kingston1995lout.expert }) distinguishes between the cases where @Code "number" is empty and non-empty; diff --git a/doc/user/typ_orga b/doc/user/typ_orga index 8ba6ab7..1e9aa36 100644 --- a/doc/user/typ_orga +++ b/doc/user/typ_orga @@ -20,6 +20,7 @@ chapter as a whole whose contents are as follows: @ID @OneRow @Code { "@Chapter" " @Title { Australian Native Plants }" +" @Tag { natives }" "@Begin" "Australian native plants provide a distinctive identity to the garden. Although" "less colourful than their European alternatives, some banksias and grevilleas do" diff --git a/doc/user/typ_over b/doc/user/typ_over index fd14e2a..cf3a189 100644 --- a/doc/user/typ_over +++ b/doc/user/typ_over @@ -91,18 +91,6 @@ page numbers only, @Code Titles produces full running titles, and @Code "@FirstOverheadNumber" is the number given to the first overhead, and @Code "@FirstLectureNumber" is the number given to the first lecture, of which more below. See preceding sections for {@Code "@OptimizePages"}. -# Lout ordinarily places lines onto a page until space runs out, then moves -# to the next page and so on. This often produces ugly empty spaces at -# the bottoms of pages preceding large unbreakable displays. Setting the -# @Code "@OptimizePages" option to {@Code "Yes"} causes Lout to examine the -# overall situation and try to minimize the ugliness, using the @TeX -# optimal paragraph breaking algorithm. It takes two runs to do this, -# with intermediate results stored in Lout's cross reference database -# (Section {@NumberOf cross}); so deleting file {@Code lout.li} will reset -# it, which might be wise after major changes. It is possible for the -# optimizer to cycle, never settling on a single final best -# version; this is usually caused by footnotes or floating figures inserted -# at points which end up near page boundaries. @PP After the compulsory {@Code "//"} come the overheads themselves. There are two alternatives: a series of overheads, corresponding to a single @@ -112,6 +100,9 @@ overhead. @Index @Code "@Overhead" @ID @OneRow @Code { "@SysInclude { slides }" "@OverheadTransparencies" +" @Title { ... }" +" @Author { ... }" +" @DateLine { ... }" " ..." "//" "@Overhead ... @End @Overhead" @@ -168,6 +159,9 @@ lecture. @Index @Code "@Lecture" @ID @OneRow @Code { "@SysInclude { slides }" "@OverheadTransparencies" +" @Title { ... }" +" @Author { ... }" +" @DateLine { ... }" " ..." "//" "@Lecture ... @End @Lecture" @@ -191,18 +185,15 @@ If @Code "@Title" is non-empty the series of overheads will begin with an overhead containing the title alone, centred on the page using the @Code "clines" paragraph breaking style. This means that it makes sense to have a multi-line title. Any text following the @Code "@Begin" -will appear under the lecture title as you would expect. -@PP -Within the body of {@Code "@Lecture"}, place a series of overheads +will appear under the lecture title as you would expect. Within the +body of {@Code "@Lecture"}, place a series of overheads bracketed by @Code "@BeginOverheads" and {@Code "@EndOverheads"}: beginoverheads. @Index @Code "@BeginOverheads" endoverheads. @Index @Code "@EndOverheads" @ID @OneRow @Code { "@BeginOverheads" "@Overhead ... @End @Overhead" -"@Overhead ... @End @Overhead" "..." -"@Overhead ... @End @Overhead" "@EndOverheads" } The @Code "@Overhead" symbol is exactly as described earlier. diff --git a/doc/user/typ_plai b/doc/user/typ_plai index a880ccb..8b5c327 100644 --- a/doc/user/typ_plai +++ b/doc/user/typ_plai @@ -70,7 +70,7 @@ the plain text output to appear unpaginated, that is, in one long continous stream with no page breaks. Its value is ignored if plain text output is not in effect, so it can be safely set to @Code "Yes" in documents intended for formatting both ways. The usual margins apply; -footnotes appear at the end; figures and tables do not work. Lout +footnotes appear at the end; floating figures and tables do not work. Lout stupidly reads the entire document before producing any output when this option is used, so if the document is long you might run out of memory. @End @Section diff --git a/externs.h b/externs.h index 0c02544..22ed461 100644 --- a/externs.h +++ b/externs.h @@ -1,6 +1,6 @@ /*@externs.h:External Declarations:Directories and file conventions@**********/ /* */ -/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.27) */ +/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */ /* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */ /* */ /* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */ @@ -95,7 +95,7 @@ extern nl_catd MsgCat; /* */ /*****************************************************************************/ -#define LOUT_VERSION AsciiToFull("Basser Lout Version 3.27 (November 2002)") +#define LOUT_VERSION AsciiToFull("Basser Lout Version 3.28 (December 2002)") #define CROSS_DB AsciiToFull("lout") #define SOURCE_SUFFIX AsciiToFull(".lt") #define INDEX_SUFFIX AsciiToFull(".li") @@ -444,6 +444,7 @@ typedef void *POINTER; #define CH_FLAG_FFPLAIN 'P' /* the -P command line flag */ #define CH_FLAG_SUPPRESS 's' /* the -s command line flag */ #define CH_FLAG_SAFE 'S' /* the -S command line flag */ +#define CH_FLAG_NOTEXTURE 't' /* the -t command line flag */ #define CH_FLAG_USAGE 'u' /* the -u command line flag */ #define CH_FLAG_UNSAFE 'U' /* the -U command line flag */ #define CH_FLAG_VERSION 'V' /* the -V command line flag */ @@ -3498,6 +3499,7 @@ extern FULL_LENGTH PlainCharHeight; /* character height */ extern BOOLEAN PlainFormFeed; /* true if using \f */ /***** z52.c Texture Service **************************************/ +extern BOOLEAN UseTexture; extern void TextureInit(void); extern void TextureChange(STYLE *style, OBJECT x); extern FULL_CHAR *TextureCommand(TEXTURE_NUM pnum); diff --git a/include/README b/include/README index 135cb4b..ebea782 100644 --- a/include/README +++ b/include/README @@ -33,10 +33,12 @@ Setup files (containing mainly lists of options settable by the user) eiffel Eiffel java Java modula Modula-2 (quick hack, does not use prg2lout) + np Nonpareil pas Pascal (quick hack, does not use prg2lout) perl Perl + Pod pod Pod python Python + ruby Ruby Source files containing Lout and PostScript source code for the packages ------------------------------------------------------------------------ @@ -67,10 +69,12 @@ Source files containing Lout and PostScript source code for the packages eiffelf Eiffel javaf Java modulaf Modula-2 + npf Nonpareil pasf Pascal perlf Perl podf Pod pythonf Python + rubyf Ruby Obsolete source files retained for backward compatibility --------------------------------------------------------- diff --git a/include/book b/include/book index d823ab7..e2afc0f 100644 --- a/include/book +++ b/include/book @@ -206,6 +206,11 @@ # @IndexBSpacerBelow { 1v } # space below index B spacer # @IndexBSpacerFont { +3p } # font of index B spacer # @IndexBSpacerFormat { @Body } # format of index B spacer + # @MakeColophon { No } # make colophon? Yes or No + # @ColophonFont { } # font for colophon + # @ColophonBreak { } # break style for colophon + # @ColophonColumnNumber { 1 } # colophon columns (1 to 10) + # @ColophonColumnGap { 1.00c @OrIfPlain 6s } # colophon column gap # @TopGap { 0.75c @OrIfPlain 2f } # gap between figures # @MidGap { 0.75c @OrIfPlain 2f } # gap above/below body text # @FootNoteNumbers { Arabic } # footnote numbers @@ -318,6 +323,7 @@ # @IndexWord { index } # word for "Index" # @IndexAWord { index } # word for "Index" (A) # @IndexBWord { index } # word for "Index" (B) + # @ColophonWord { colophon } # word for "Colophon" # @ChapterNumbers { Arabic } # kind of chapter numbers # @FirstChapterNumber { 1 } # first chapter number (Arabic) # @SectionNumbers { Arabic } # kind of section numbers @@ -379,6 +385,7 @@ # @IndexInContents { Yes } # add index to contents # @IndexAInContents { Yes } # add index A to contents # @IndexBInContents { Yes } # add index B to contents + # @ColophonInContents { Yes } # add colophon to contents # @PartContentsIndent { 0.5rt } # indent of part contents entry # @ChapterNumInTheorems { Yes } # theorem num has chapter num # @SectionNumInTheorems { No } # theorem num has section num @@ -426,6 +433,7 @@ # @IndexPrefix { } # for structured page nums # @IndexAPrefix { } # for structured page nums # @IndexBPrefix { } # for structured page nums + # @ColophonPrefix { } # for structured page nums } diff --git a/include/bookf b/include/bookf index c50d2cd..45a5bed 100644 --- a/include/bookf +++ b/include/bookf @@ -11,7 +11,7 @@ ########################################################################### extend @BasicSetup @DocumentSetup -export @Book @Preface @Abbreviations @Introduction @Chapter @Appendix +export @Book @Preface @Abbreviations @Introduction @Chapter @Appendix @Colophon def @BookSetup named @TitlePageFont { Helvetica Base } named @SeparateIntroNumbering { Yes } @@ -31,6 +31,7 @@ def @BookSetup named @IndexWord { index } named @IndexAWord { index } named @IndexBWord { index } + named @ColophonWord { colophon } named @ChapterNumbers { Arabic } named @FirstChapterNumber { 1 } @@ -111,6 +112,7 @@ def @BookSetup named @IndexInContents { Yes } named @IndexAInContents { Yes } named @IndexBInContents { Yes } + named @ColophonInContents { Yes } named @PartContentsIndent { 0.5rt } named @ChapterNumInTheorems { Yes } @@ -164,6 +166,7 @@ def @BookSetup named @IndexPrefix { } named @IndexAPrefix { } named @IndexBPrefix { } + named @ColophonPrefix { } @Begin @@ -585,6 +588,38 @@ def @BookSetup @IndexBSection @RunB } + def @ColophonPart + named @Tag {} + { + def @RunC + { + NonStart @Runner + @MajorNum {} + @MajorTitle { index @WordVal @ColophonWord } + @MinorNum {} + @MinorTitle { index @WordVal @ColophonWord } + @Owner { @Tag } + @Prefix { @ColophonPrefix } + } + + @LargeScaleStructure + tag { @Tag } + type { Major } + initiallanguage { @InitialLanguage } + title { colophon @WordVal @ColophonWord } + aboveheadinggap { @AboveChapterGap } + headingfont { @ChapterHeadingFont } + headingbreak { @ChapterHeadingBreak } + headingformat { @Num @ChapterHeadingFormat @Body } + incontents { @ColophonInContents } + pnprefix { @ColophonPrefix } + inrunners { Yes } + sendheader { @Full @Body } + innergap { @SectionGap } + wantindefinite { Yes } + @ColophonSection @RunC + } + def @BookIntro force into { @IntroColPlace&&preceding } named @Optimize { @OptimizePages } { @@ -644,6 +679,7 @@ def @BookSetup Bypass @Yield @BypassBeginIndexPlace else @Yield @Null } + // @MakeColophon @Do @ColophonPart } def @BookCombined force into { @ColPlace&&preceding } @@ -694,6 +730,7 @@ def @BookSetup Bypass @Yield @BypassBeginIndexPlace else @Yield @Null } + // @MakeColophon @Do @ColophonPart } @InitialFont @Font { @InitialBreak setoutdent @InitialOutdent } @Break @@ -1321,4 +1358,21 @@ def @BookSetup } + ####################################################################### + # # + # Colophon. # + # # + ####################################################################### + + def @Colophon into { @ColophonList&&preceding } + named @Tag {} + named @InitialLanguage {} + body @Body + { + + @InitialLanguage @Language @Body + + } + + @End @BookSetup diff --git a/include/bsf b/include/bsf index afc3dba..dbf7eeb 100644 --- a/include/bsf +++ b/include/bsf @@ -110,7 +110,7 @@ export @Word @Roman @UCRoman @Alpha @UCAlpha @Months @ShortMonths @WeekDays @ShortWeekDays @TwelveHours @ShortHours @MeriDiems @ShortMeriDiems - @Sym @R @I @B @BI @S @F @II + @Sym @Ding @R @I @B @BI @S @F @II "~" "~~" "``" "''" ",," "--" "---" "..." @Bullet @ParSym @SectSym @Dagger @DaggerDbl @CDot @Sterling @Yen @Florin @@ -279,18 +279,19 @@ def @BasicSetup ########################################################################### # # - # @Sym, font symbols, and miscellaneous special characters. # + # @Sym, @Ding font symbols, and miscellaneous special characters. # # # ########################################################################### - def @Sym right x { { Symbol Base } @Font @Char x } + def @Sym right x { { Symbol Base } @Font @Char x } + def @Ding right x { { Dingbats Base } @Font @Char x } - def @R right x { Base @Font x } - def @I right x { Slope @Font x } - def @B right x { Bold @Font x } - def @BI right x { BoldSlope @Font x } - def @S right x { smallcaps @Font x } - def @F right x { @FixedWidthFont @Font x } + def @R right x { Base @Font x } + def @I right x { Slope @Font x } + def @B right x { Bold @Font x } + def @BI right x { BoldSlope @Font x } + def @S right x { smallcaps @Font x } + def @F right x { @FixedWidthFont @Font x } def @II right x diff --git a/include/dsf b/include/dsf index 5e1ee73..18a3825 100644 --- a/include/dsf +++ b/include/dsf @@ -326,6 +326,11 @@ def @DocumentSetup named @IndexBSpacerFont { +3p } # font of index B spacer named @IndexBSpacerFormat right @Body { @Body } # format of index B spacer + named @MakeColophon { No } # make colophon? Yes or No + named @ColophonFont { } # font for colophon + named @ColophonBreak { } # break style for colophon + named @ColophonColumnNumber { 1 } # colophon columns (1 to 10) + named @ColophonColumnGap { 1.00c @OrIfPlain 6s } # colophon column gap named @TopGap { 0.75c @OrIfPlain 2f } # gap between figures named @MidGap { 0.75c @OrIfPlain 2f } # gap above/below body text @@ -1227,6 +1232,7 @@ def @DocumentSetup def @IndexPlace { @Galley } def @IndexAPlace { @Galley } def @IndexBPlace { @Galley } + def @ColophonPlace { @Galley } def @AfterLinePlace { @ForceGalley } def @TryAfterLinePlace right x @@ -1434,6 +1440,11 @@ def @DocumentSetup { @HExpand num @ColsOf gap { @IndexBColumnGap } @EqualWidth @VExpand @IndexBPlace } + + def @ColophonColList right num + { + @HExpand num @ColsOf gap { @ColophonColumnGap } @EqualWidth @VExpand @ColophonPlace + } ########################################################################### @@ -1567,6 +1578,7 @@ def @DocumentSetup @IndexAColList @IndexAColumnNumber @IndexBColList @IndexBColumnNumber @IndexColList @IndexColumnNumber + @ColophonColList @ColophonColumnNumber } } @@ -1579,6 +1591,7 @@ def @DocumentSetup @IndexAColList @IndexAColumnNumber @IndexBColList @IndexBColumnNumber @IndexColList @IndexColumnNumber + @ColophonColList @ColophonColumnNumber } } @@ -4705,6 +4718,23 @@ def @DocumentSetup def @BypassEndIndexB { @Null } + ########################################################################### + # # + # Colophon. # + # # + ########################################################################### + + def @ColophonList { @Galley //1vx @ColophonList } + + def @ColophonSection into { @ColophonPlace&&following } + right etc + { + // @ColophonBreak @Break @ColophonFont @Font @ColophonList + // etc + //1rt + } + + ########################################################################### # # # @LargeScaleStructure # diff --git a/include/np b/include/np new file mode 100644 index 0000000..247da10 --- /dev/null +++ b/include/np @@ -0,0 +1,108 @@ +############################################################################### +# # +# Lout setup file for Nonpareil program printing # +# # +# Jeffrey H. Kingston # +# 3 December 2002 # +# # +############################################################################### + + +############################################################################### +# # +# @SysInclude line # +# # +# This line causes Lout to read the definitions for this programming # +# language, and should not be touched. # +# # +############################################################################### + +@SysInclude { npf } + + +############################################################################### +# # +# @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 { @NonpareilSetup + # 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/npf b/include/npf new file mode 100644 index 0000000..a45a94c --- /dev/null +++ b/include/npf @@ -0,0 +1,389 @@ + +############################################################################### +# # +# Lout @NonpareilSetup package for formatting Nonpareil programs # +# # +# Jeffrey H. Kingston # +# 3 December 2002 # +# # +# 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 @Nonpareil +def @NonpareilSetup + named pipe { } # pipe through this + named numbered { No } # numbered lines? + 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 + @A "$>" + + def @Nonpareil + 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 -lNonpareil" wantnumbered -i{@FilterIn} + -o{@FilterOut} -e{@FilterErr} + -t{@InitTab} -T{@InitTabWidth} + } + else @Yield { + "cat" @FilterIn "|" pipe "|" + "prg2lout -r -lNonpareil" 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 + { + 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 @A # get characters from the Adobe Symbol font + left sym + right x + { + style @Case { + symbol @Yield { { Symbol Base } @Font @Char sym } + else @Yield { x } + } + } + + + macro "$>" { {} & } + + + { @InitFontFamily Base @InitSize } @Font + { @InitLine lines nohyphen } @Break @Body + + @End @Nonpareil + +@End @NonpareilSetup diff --git a/include/report b/include/report index aa79533..7666e93 100644 --- a/include/report +++ b/include/report @@ -325,7 +325,7 @@ # @AbstractWord { abstract } # word for "Abstract" # @ContentsWord { contents } # word for "Contents" # @AppendixWord { appendix } # word for "Appendix" - # @GlossaryWor { glossary } # word for "Glossary" + # @GlossaryWord { glossary } # word for "Glossary" # @IndexWord { index } # word for "Index" # @IndexAWord { index } # word for "Index" (A) # @IndexBWord { index } # word for "Index" (B) diff --git a/include/ruby b/include/ruby new file mode 100644 index 0000000..8ee57d5 --- /dev/null +++ b/include/ruby @@ -0,0 +1,109 @@ +############################################################################### +# # +# Lout setup file for Ruby program printing # +# # +# Version 3.0 # +# Jeffrey H. Kingston # +# 5 April 2000 # +# # +############################################################################### + + +############################################################################### +# # +# @SysInclude line # +# # +# This line causes Lout to read the definitions for this programming # +# language, and should not be touched. # +# # +############################################################################### + +@SysInclude { rubyf } + + +############################################################################### +# # +# @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 { @RubySetup + # pipe { } # pipe source through this + # numbered { No } # No, Yes, or a line number + style { fixed @OrIfPlain fixed } # fixed, varying, or symbol + + # the following options apply when style is "fixed" + + # fixedfont { LetterGothic } # 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 { Bold } # keyword face + # fixedoperators { Base } # operator face + # fixednumbers { Base } # number face + # fixedstrings { Base } # string face + # fixedcomments { Slope } # 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/rubyf b/include/rubyf new file mode 100644 index 0000000..89f38e0 --- /dev/null +++ b/include/rubyf @@ -0,0 +1,393 @@ + +############################################################################### +# # +# Lout @RubySetup package for formatting Ruby programs # +# # +# Version 3.0 # +# Jeffrey H. Kingston # +# 5 April 2000 # +# # +# 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 @Ruby +def @RubySetup + 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 } } + { varying @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 { Bold } # keyword face + named fixedoperators { Base } # operator face + named fixednumbers { Base } # number face + named fixedstrings { Base } # string face + named fixedcomments { Slope } # 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 + @A "$>" + + def @Ruby + 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 -lRuby" wantnumbered -i{@FilterIn} + -o{@FilterOut} -e{@FilterErr} + -t{@InitTab} -T{@InitTabWidth} + } + else @Yield { + "cat" @FilterIn "|" pipe "|" + "prg2lout -r -lRuby" 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 + { + 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 + } + } + } + + + export "'''" + def @PS # for formatting strings + body x + { + def "'''" { "'''" } + + 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 @A # get characters from the Adobe Symbol font + left sym + right x + { + style @Case { + symbol @Yield { { Symbol Base } @Font @Char sym } + else @Yield { x } + } + } + + + macro "$>" { {} & } + + + { @InitFontFamily Base @InitSize } @Font + { @InitLine lines nohyphen } @Break @Body + + @End @Ruby + +@End @RubySetup diff --git a/include/save_bookf b/include/save_bookf new file mode 100644 index 0000000..001f946 --- /dev/null +++ b/include/save_bookf @@ -0,0 +1,1358 @@ + +########################################################################### +# # +# @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 new file mode 100644 index 0000000..5e1ee73 --- /dev/null +++ b/include/save_dsf @@ -0,0 +1,4930 @@ +############################################################################### +# # +# 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/makefile b/makefile index df7f78f..dd279af 100644 --- a/makefile +++ b/makefile @@ -1,6 +1,6 @@ ############################################################################### # # -# Make file for installing Basser Lout Version 3.27 # +# Make file for installing Basser Lout Version 3.28 # # # # Jeffrey H. Kingston # # undated # diff --git a/man/lout.1 b/man/lout.1 index b20ea36..048da8d 100644 --- a/man/lout.1 +++ b/man/lout.1 @@ -65,7 +65,11 @@ links, but the more advanced graphics packages of Lout are not supported. .TP .B \-PDF Synonym for -.BR \-Z . +.BR \-Z. +.TP +.B \-t +Ignore texture-changing options; everything that would otherwise have +been printed using a texture will be printed in solid colour. .SS Cross-reference database .TP \" \n(oi .B \-s diff --git a/man/lout.txt b/man/lout.txt index c09a943..81d7199 100644 --- a/man/lout.txt +++ b/man/lout.txt @@ -1,187 +1,198 @@ - - - -User Commands LOUT(1) +LOUT(1) LOUT(1) NAME - lout - prepare Lout document for printing + lout - prepare Lout document for printing SYNOPSIS - lout [ options ] file... + lout [ options ] file... DESCRIPTION - Invoke the Basser Lout interpreter on the concatenation of - the named files, producing a PostScript file on standard - output suitable for printing on PostScript printers using - lpr(1). If no files are named, stdin is used instead. The - special file name `-' may be used to denote standard input. - White space between flags and their associated option values - is optional. - - An optional .lt suffix may be used for Lout source and - include files. When invoking files ending in this suffix - the suffix may be omitted. + Invoke the Basser Lout interpreter on the concatenation of + the named files, producing a PostScript file on standard + output suitable for printing on PostScript printers using + lpr(1). If no files are named, stdin is used instead. + The special file name `-' may be used to denote standard + input. White space between flags and their associated + option values is optional. + + An optional .lt suffix may be used for Lout source and + include files. When invoking files ending in this suffix + the suffix may be omitted. OPTIONS - Output - -o filename - Direct output to filename instead of to stdout. - - -e filename - Direct error messages to filename instead of to stderr. - - -a Use "filename:linenum:colnum:message" alternative error - message format (useful with Emacs compilation mode and - other tools). - - Output format - -EPS Produce output in the form of an EPS (Encapsulated - PostScript) file, suitable for inclusion in another - document. Useful with stand-alone illustrations. - - -p Produce plain text output instead of PostScript. - - -P Like -p, but with a form-feed character between pages. - - -Z Produce Adobe Portable Document Format (PDF) output. - This includes links, but the more advanced graphics - packages of Lout are not supported. - - -PDF Synonym for -Z. - - Cross-reference database - -s Suppress all reading and writing of the cross reference - database; other databases are not affected. Useful - when many simple documents that don't do any cross - referencing are stored in one directory. - - -l Use ASCII order when sorting index entries etc.; the - default depends on the COLLATE compilation option (use - -V option to find out your default value). - - -L Use your locale's order when sorting index entries - etc.; the default depends on the COLLATE compilation - option (use -V option to find out your default value). - - Execution of filters - -S Safe execution: disable all calls to system(3), instead - echoing the commands that would have been executed. - Although this makes the Lout run certainly safe, the - PostScript output file may not be. - - -U Unsafe execution: allow calls to system(3). This is - usually the default behavior, but it is possible to - make safe execution the default during installation - (use -V option to find out whether this was done or - not), hence the need for this flag. - - Changing document setup options - --option{value} - Set setup file option to value, overriding any value - assigned to option in the setup file. For example, - --@PageType{Letter} will set the @PageType setup file - option to Letter. The value may be a sequence of words - but not an arbitrary Lout object. If there are spaces - you must ensure that it is passed to Lout as a single - option; the usual way to do this is to enclose it in - quotes. - - Searching for files - -i filename - Search the directories of the include file path (see - below) for filename or filename.lt and include it. - There may be multiple -i options. - - -I dirname - Add dirname to the list of directories searched for - @Include files and -i option files. There may be mul- - tiple -I options. @Include first searches the current - directory, then searches the -I directories in the - order given, and finally searches the default include - file directory (see below). @SysInclude and the -i - option omit the search of the current directory. - - -C dirname - Add dirname to the list of directories searched for - Lout character mapping (.LCM) files. There may be mul- - tiple -C options; the directories are searched in the - order given, and finally the default character mappings - directory is searched (see below). - - -F dirname - Add dirname to the list of directories searched for - font metrics (formerly .AFM) files. There may be mul- - tiple -F options; the directories are searched in the - order given, and finally the default font metrics - directory is searched (see below). - - -H dirname - Add dirname to the list of directories searched for - hyphenation patterns files, both unpacked (.lh) and - packed (.lp). There may be multiple -H options; the - directories are searched in the order given, and - finally the default hyphenation directory is searched - (see below). - - -D dirname - Add dirname to the list of directories searched for - Lout database files. There may be multiple -D options. - @Database searches the current directory, then the -D - directories in the order given, and finally searches - the default databases directory (see below). @SysData- - base omits the search of the current directory. - - Miscellaneous options - -x Initializing run, not for ordinary use: read and check - all font files mentioned in font definitions, read and - check all hyphenation files mentioned in language - definitions and build compressed versions, read and - check all database files mentioned in database clauses - and build index files. - - -u Print usage information on stderr and exit. - - -V Print version information on stderr and exit. - - -M Use less memory and run more slowly (the cross refer- - ence database index will be kept in a file rather than - in memory). - - -w Show the total number of non-empty words printed in the - output file. This includes words and numbers in page - headers and footers; section numbers and other numbers; - every punctuation character in a font different from - its adjacent word; and every little fragment of every - equation; so it will always somewhat overestimate the - true number. + Output + -o filename + Direct output to filename instead of to stdout. + + -e filename + Direct error messages to filename instead of to + stderr. + + -a Use "filename:linenum:colnum:message" alternative + error message format (useful with Emacs compilation + mode and other tools). + + Output format + -EPS Produce output in the form of an EPS (Encapsulated + PostScript) file, suitable for inclusion in another + document. Useful with stand-alone illustrations. + + -p Produce plain text output instead of PostScript. + + -P Like -p, but with a form-feed character between + pages. + + -Z Produce Adobe Portable Document Format (PDF) out­ + put. This includes links, but the more advanced + graphics packages of Lout are not supported. + + -PDF Synonym for -Z. + + -t Ignore texture-changing options; everything that + would otherwise have been printed using a texture + will be printed in solid colour. + + Cross-reference database + -s Suppress all reading and writing of the cross ref­ + erence database; other databases are not affected. + Useful when many simple documents that don't do any + cross referencing are stored in one directory. + + -l Use ASCII order when sorting index entries etc.; + the default depends on the COLLATE compilation + option (use -V option to find out your default + value). + + -L Use your locale's order when sorting index entries + etc.; the default depends on the COLLATE compila­ + tion option (use -V option to find out your default + value). + + Execution of filters + -S Safe execution: disable all calls to system(3), + instead echoing the commands that would have been + executed. Although this makes the Lout run cer­ + tainly safe, the PostScript output file may not be. + + -U Unsafe execution: allow calls to system(3). This + is usually the default behavior, but it is possible + to make safe execution the default during installa­ + tion (use -V option to find out whether this was + done or not), hence the need for this flag. + + Changing document setup options + --option{value} + Set setup file option to value, overriding any + value assigned to option in the setup file. For + example, --@PageType{Letter} will set the @PageType + setup file option to Letter. The value may be a + sequence of words but not an arbitrary Lout object. + If there are spaces you must ensure that it is + passed to Lout as a single option; the usual way to + do this is to enclose it in quotes. + + Searching for files + -i filename + Search the directories of the include file path + (see below) for filename or filename.lt and include + it. There may be multiple -i options. + + -I dirname + Add dirname to the list of directories searched for + @Include files and -i option files. There may be + multiple -I options. @Include first searches the + current directory, then searches the -I directories + in the order given, and finally searches the + default include file directory (see below). @Sys­ + Include and the -i option omit the search of the + current directory. + + -C dirname + Add dirname to the list of directories searched for + Lout character mapping (.LCM) files. There may be + multiple -C options; the directories are searched + in the order given, and finally the default charac­ + ter mappings directory is searched (see below). + + -F dirname + Add dirname to the list of directories searched for + font metrics (formerly .AFM) files. There may be + multiple -F options; the directories are searched + in the order given, and finally the default font + metrics directory is searched (see below). + + -H dirname + Add dirname to the list of directories searched for + hyphenation patterns files, both unpacked (.lh) and + packed (.lp). There may be multiple -H options; + the directories are searched in the order given, + and finally the default hyphenation directory is + searched (see below). + + -D dirname + Add dirname to the list of directories searched for + Lout database files. There may be multiple -D + options. @Database searches the current directory, + then the -D directories in the order given, and + finally searches the default databases directory + (see below). @SysDatabase omits the search of the + current directory. + + Miscellaneous options + -x Initializing run, not for ordinary use: read and + check all font files mentioned in font definitions, + read and check all hyphenation files mentioned in + language definitions and build compressed versions, + read and check all database files mentioned in + database clauses and build index files. + + -u Print usage information on stderr and exit. + + -V Print version information on stderr and exit. + + -M Use less memory and run more slowly (the cross ref­ + erence database index will be kept in a file rather + than in memory). + + -w Show the total number of non-empty words printed in + the output file. This includes words and numbers + in page headers and footers; section numbers and + other numbers; every punctuation character in a + font different from its adjacent word; and every + little fragment of every equation; so it will + always somewhat overestimate the true number. FILES AND ENVIRONMENT VARIABLE - Default include file directory: LOUTLIB/include - Default databases directory: LOUTLIB/data - Default font metrics directory: LOUTLIB/font - Default hyphenation directory: LOUTLIB/hyph - Default character mappings dir.: LOUTLIB/maps - Default locales directory: LOUTLIB/locale + Default include file directory: LOUTLIB/include + Default databases directory: LOUTLIB/data + Default font metrics directory: LOUTLIB/font + Default hyphenation directory: LOUTLIB/hyph + Default character mappings dir.: LOUTLIB/maps + Default locales directory: LOUTLIB/locale - The default library directory, usually /usr/local/lib/lout, - can be changed by setting environment variable LOUTLIB to an - alternative directory name. + The default library directory, usually + /usr/local/lib/lout, can be changed by setting environment + variable LOUTLIB to an alternative directory name. SEE ALSO - prg2lout(1), lpr(1), ghostview(1) + prg2lout(1), lpr(1), ghostview(1) MAILING LIST - A public mailing list for discussion of Lout exists. To - subscribe, mail lout-request@ptc.spbu.ru with the word sub- - scribe in the Subject line. To post an item, mail it to - lout@ptc.spbu.ru. + A public mailing list for discussion of Lout exists. To + subscribe, mail lout-request@ptc.spbu.ru with the word + subscribe in the Subject line. To post an item, mail it + to lout@ptc.spbu.ru. REFERENCES - Jeffrey H. Kingston, A User's Guide to the Lout Document - Formatting System, and An Expert's Guide to the Lout Docu- - ment Formatting System. + Jeffrey H. Kingston, "A User's Guide to the Lout Document + Formatting System", and "An Expert's Guide to the Lout + Document Formatting System". AUTHOR - Jeffrey H. Kingston + Jeffrey H. Kingston + + + + LOUT(1) diff --git a/prg2lout.c b/prg2lout.c index 621a179..f4b3359 100644 --- a/prg2lout.c +++ b/prg2lout.c @@ -11,9 +11,10 @@ /* The University of Sydney 2006 */ /* AUSTRALIA */ /* */ -/* C and C++, Eiffel, and Blue by Jeff Kingston */ +/* C and C++, Eiffel, Blue, Java, Nonpareil by Jeff Kingston */ /* Perl and Pod by Jeff Kingston and Mark Summerfield */ /* Python by Mark Summerfield */ +/* Ruby by Michael Piotrowski */ /* */ /* 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 */ @@ -191,31 +192,47 @@ CHAR_PAIR pairs[] = { #define AllCharacters NULL /* code will recognize NULL and do this */ +/* It is not possible to further categorize the characters in the G1 + * area of ISO 8859 code sets (code points 0xA0 through 0xFF) because + * there are no fixed ranges (e.g., 0xA1 is a punctuation mark in + * Latin 1, but a letter in Latin 2). However, this is not really a + * problem since all characters in this area can be considered + * printable. */ + +#define G1_Characters "\240\241\242\243\244\245\246\247\250\251\252\253\254\255\256\257\260\261\262\263\264\265\266\267\270\271\272\273\274\275\276\277\300\301\302\303\304\305\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327\330\331\332\333\334\335\336\337\340\341\342\343\344\345\346\347\350\351\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373\374\375\376\377" + + unsigned char AllPrintable[] = " !\"#$%&'()*+,-./0123456789:;<=>?@[\\]^_`\\{|}~\ -ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" ; +ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" G1_Characters ; unsigned char AllPrintablePlusNL[] = " !\"#$%&'()*+,-./0123456789:;<=>?@[\\]^_`\\{|}~\ -ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\n" ; +ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\n" G1_Characters ; unsigned char AllPrintablePlusTab[] = " !\"#$%&'()*+,-./0123456789:;<=>?@[\\]^_`\\{|}~\ -ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\t" ; +ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\t" G1_Characters ; unsigned char AllPrintableTabNL[] = " !\"#$%&'()*+,-./0123456789:;<=>?@[\\]^_`\\{|}~\ -ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\n\t" ; +ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\n\t" G1_Characters ; unsigned char AllPrintableTabNLFF[] = " !\"#$%&'()*+,-./0123456789:;<=>?@[\\]^_`\\{|}~\ -ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\n\t\f" ; +ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\n\t\f" G1_Characters ; unsigned char Letters[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" ; unsigned char Letter_Digit[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_0123456789" ; +unsigned char NonpareilOperatorPunct[] = "!@$%^&*=+|;<>/?"; + +unsigned char Ruby_Methodname[] = + "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_0123456789?!=" ; + + #define SepLetters \ 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", \ @@ -246,6 +263,10 @@ 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 SepNonpareilOperatorPunct \ +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", \ U "%J", U "%K", U "%L", U "%M", U "%N", U "%O", U "%P", U "%Q", U "%R", \ @@ -316,7 +337,7 @@ U "%s", U "%t", U "%u", U "%v", U "%w", U "%x", U "%y", U "%z", U "%_" /* will go through the other filter first. Since the result has to */ /* be verbatim, there is no special treatment of white space characters */ /* and no insertion of line numbers. However, if braces are printed */ -/* they really ought to match, so prog2lout checks this and will */ +/* they really ought to match, so prg2lout checks this and will */ /* complain and insert braces into the verbatim part if necessary. */ /* */ /*****************************************************************************/ @@ -641,12 +662,12 @@ TOKEN PythonSnglStringToken = { { NULL }, /* so no brackets2 either */ { NULL }, /* so no end2 either */ AllPrintable, /* inside, any printable is OK */ - U "\\", /* within strings, \\ is the escape character */ + U "\\", /* within strings, \\ is the escape character */ AllPrintablePlusNL, /* after escape char, any printable char or nl 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 */ + 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 */ }; @@ -756,6 +777,37 @@ TOKEN NumberToken = { }; +/*****************************************************************************/ +/* */ +/* Operators, when user-defined from a set of punctuation characters */ +/* */ +/*****************************************************************************/ + +#define OperatorToken(start, legal) /* define operator token */ \ +{ \ + U "operator", /* name used for debugging only */ \ + PRINT_WHOLE_QUOTED, /* print this token as usual */ \ + U "@PO", /* Lout command for formatting this */ \ + U "", /* no alternate command */ \ + U "", /* no following command */ \ + FALSE, /* token not just start of line */ \ + { start }, /* token begins with any of these */ \ + { NULL }, /* no start2 needed */ \ + { NULL }, /* so no brackets2 either */ \ + { NULL }, /* so no end2 either */ \ + U legal, /* inside, same as start */ \ + U "", U "", /* no escape character */ \ + U "", U "", /* no inner escape; no end inner esc */ \ + U "", /* no bracketing delimiter */ \ + U "", /* no ending delimiter */ \ + FALSE, /* end not have to be at line start */ \ + FALSE, /* don't end delimiter twice to stop */ \ +} + +TOKEN NonpareilOperatorToken = + OperatorToken(SepNonpareilOperatorPunct, NonpareilOperatorPunct); + + /*****************************************************************************/ /* */ /* Tokens defining comments in various languages. */ @@ -851,6 +903,28 @@ TOKEN BlueCommentToken = { FALSE, /* don't need to see end delimiter twice to stop */ }; +TOKEN NonpareilCommentToken = { + U "comment", /* used by error messages involving this token */ + PRINT_WHOLE_QUOTED, /* print this token in quotes etc. as usual */ + 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 */ + AllPrintablePlusTab, /* inside, any printable char is OK (not NL) */ + U "", /* no escape character within comments */ + U "", /* so nothing legal after escape char either */ + U "`", /* start of "inner escape" in Nonpareil comment */ + U "'", /* end of "inner escape" in Nonpareil comment */ + U "", /* no bracketing delimiter */ + U "", /* no end 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 PythonCommentToken = { U "comment", /* used by error messages involving this token */ PRINT_WHOLE_QUOTED, /* print this token in quotes etc. as usual */ @@ -1047,6 +1121,7 @@ TOKEN GreaterToken = FixedToken(">", "greater @A @PO"); TOKEN QuestionToken = FixedToken("?", "@PO"); TOKEN CommaToken = FixedToken(",", "@PO"); TOKEN DotToken = FixedToken(".", "@PO"); +TOKEN DotDotToken = FixedToken("..", "@PO"); TOKEN LessEqualToken = FixedToken("<=", "lessequal @A @PO"); TOKEN GreaterEqualToken = FixedToken(">=", "greaterequal @A @PO"); TOKEN CNotEqualToken = FixedToken("!=", "notequal @A @PO"); @@ -1092,6 +1167,59 @@ TOKEN PythonPowerToken = FixedToken( "**", "@PO" ) ; TOKEN PythonBitLeftShiftToken = FixedToken( "<<", "@PO" ) ; TOKEN PythonBitRightShiftToken = FixedToken( ">>", "@PO" ) ; TOKEN PythonBacktickToken = FixedToken( "`", "@PO" ) ; + + +/*****************************************************************************/ +/* */ +/* Ruby specifics */ +/* */ +/*****************************************************************************/ + +TOKEN RubyIdentifierToken = { + 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 "$", + U "@@", U "@" }, /* identifiers begin with these */ + { NULL }, /* no start2 needed */ + { NULL }, /* so no brackets2 either */ + { NULL }, /* so no end2 either */ + Ruby_Methodname, /* inside, letters, underscores, digits, !, ?, = */ + 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 RubyGenDelimStringToken = { + U "generalized 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 "%", U "%q", U "%Q", U "%w", + U "%r", U "%x" }, /* generalized strings begin with these */ + { SepPunct }, /* start2 can be any punctuation character */ + { BktPunct }, /* bracketing delimiters to match SepPunct */ + { EndPunct }, /* end2 must match start2 */ + AllCharacters, /* inside, any character at all is OK */ + U "\\", /* within strings, \\ is the escape character */ + AllCharacters, /* after escape char, any character at all is OK */ + U "", /* strings do not permit "inner escapes" */ + U "", /* and so there is no end innner escape either */ + U "", /* will be using bracket2 for bracket delimiter */ + U "", /* will be using end2 for the end delimiter here */ + FALSE, /* end delimiter does not have to be at line start */ + FALSE, /* don't need to see end delimiter twice to stop */ +}; /*****************************************************************************/ @@ -1185,7 +1313,7 @@ TOKEN PerlDoubleQuoteStringToken = { AllCharacters, /* after escape char, any character at all is OK */ U "", U "", /* no "inner escapes"; no end innner escape */ U "", /* no bracketing delimiter */ - U "\"", /* strings end with a " character */ + 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 */ }; @@ -2555,6 +2683,49 @@ LANGUAGE PythonLanguage = { } }; +/*****************************************************************************/ +/* */ +/* Ruby */ +/* */ +/*****************************************************************************/ + +LANGUAGE RubyLanguage = { + { "Ruby", "ruby" }, + "ruby", "@Ruby", + NO_MATCH_ERROR, + { + &BackSlashToken, + /* &PerlRegExpLPar, */ /* This produces extra space between the paren and + the slash */ + &PerlRegExpEq, &PerlRegExpMatch, &PerlRegExpNoMatch, + &PerlRegExpSplit, &PerlRegExpIf, &PerlRegExpAnd, &PerlRegExpAnd2, + &PerlRegExpOr, &PerlRegExpOr2, &PerlRegExpXor, &PerlRegExpNot, + &PerlRegExpNot2, &PerlRegExpUnless, + &PerlDoubleQuoteStringToken, &PerlSingleQuoteStringToken, + &PerlBackQuoteStringToken, &RubyGenDelimStringToken, + &RubyIdentifierToken, &NumberToken, + &PerlCommentToken, &PerlCommentEscapeToken, + &SemicolonToken, &CommaToken, &ColonToken, &EiffelDotToken, + &HereEOTuq, &HereEOTdq, &HereEOTfq, &HereEOTbq, + &HereEOFuq, &HereEOFdq, &HereEOFfq, &HereEOFbq, + &HereENDuq, &HereENDdq, &HereENDfq, &HereENDbq, + &HereBLAuq, &HereBLAdq, &HereBLAfq, &HereBLAbq, + &ExclamationToken, &EqualToken, &CNotEqualToken, &LeftParenToken, + &RightParenToken, &LeftBracketToken, &RightBracketToken, &LeftBraceToken, + &RightBraceToken, &AssignToken, &QuestionAssignToken, &PlusToken, + &MinusToken, &StarToken, &PercentToken, &HatToken, &SlashToken, &BarToken, + &LessToken, &GreaterToken, &LessEqualToken, &CircumToken, + &GreaterEqualToken + }, + { "alias", "and", "begin", "break", "case", "catch", "class", "def", "do", + "elsif", "else", "fail", "ensure", "for", "end", "if", "in", "module", + "next", "not", "or", "raise", "redo", "rescue", "retry", "return", "then", + "throw", "super", "unless", "undef", "until", "when", "while", "yield" + } +}; + + + /*****************************************************************************/ /* */ /* Eiffel and Blue */ @@ -2644,6 +2815,42 @@ LANGUAGE JavaLanguage = { } }; +/*****************************************************************************/ +/* */ +/* Nonpareil (December 2002 - still evolving) */ +/* */ +/*****************************************************************************/ + +LANGUAGE NonpareilLanguage = { + { "Nonpareil", "nonpareil" }, + "nonpareil", "@Nonpareil", + NO_MATCH_ERROR, + { + &CStringToken, &IdentifierToken, &NumberToken, + &NonpareilCommentToken, &PythonCommentEscapeToken, + /* overlaps with NonpareilOperatorToken so omitted: &PlusToken, */ + &MinusToken, + &LeftBracketToken, + &RightBracketToken, + &CommaToken, + &ArrowToken, + &ColonToken, + &AssignToken, + &LeftParenToken, + &RightParenToken, + &EiffelDotToken, + &DotDotToken, + &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", + } +}; + /*****************************************************************************/ /* */ /* Perl and Pod */ @@ -2835,9 +3042,11 @@ LANGUAGE *languages[] = { & CLanguage, & EiffelLanguage, & JavaLanguage, + & NonpareilLanguage, & PerlLanguage, & PodLanguage, & PythonLanguage, + & RubyLanguage, NO_LANGUAGE }; diff --git a/whatsnew b/whatsnew index 1db5de1..bc31b56 100644 --- a/whatsnew +++ b/whatsnew @@ -340,4 +340,14 @@ Changes and new features introduced in Version 3.27 [22 November 2002] In @Diag, @Box and @ShadowBox now have NNW, NNE, SSW, and SSE tags User's Guide has revised and larger (17-page) index +Changes and new features introduced in Version 3.28 [December 2002] + + Bug fixes + @Colophon symbol produces colophons in books + Nonpareil and Ruby programming languages supported by prg2lout + Eight-bit characters considered printable by prg2lout + "lout -t" ignores texture changes, for when tools don't support them + @Ding symbol (like @Sym) for dingbats + Dingbats fully documented in Chapter 1 of the User's Guide + Jeff Kingston diff --git a/z01.c b/z01.c index c499e22..9ac09bc 100644 --- a/z01.c +++ b/z01.c @@ -1,6 +1,6 @@ /*@z01.c:Supervise:StartSym, AllowCrossDb, etc.@******************************/ /* */ -/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.27) */ +/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */ /* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */ /* */ /* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */ @@ -165,6 +165,7 @@ static void PrintUsage(FILE *fp) lput0(" --option{value} set option e.g. --'@InitialFont{Times Base 10p}'"); lput0(" -c file use file.li instead of lout.li for crossrefs" ); lput0(" -M save memory (don't read in database indexes)" ); + lput0(" -t ignore texture changes, always use solid colour" ); lput0(" -x initializing run, not for ordinary use" ); lput0(" -u print this usage message on stderr and exit" ); lput0(" -V print version and configuration information" ); @@ -178,7 +179,7 @@ static void PrintVersion(FULL_CHAR *lib, FILE *fp) lput2("%-28s %s", "Basser Lout written by:", "Jeffrey H. Kingston (jeff@it.usyd.edu.au)"); lput2("%-28s %s", - "Free source available from:", "ftp://ftp.cs.usyd.edu.au/jeff/lout"); + "Free source available from:", "ftp://ftp.it.usyd.edu.au/jeff/lout"); lput3("%-28s %s %s", "This executable compiled:", __TIME__, __DATE__); lput4("%-28s %s%s%s", "System include directory:", lib, STR_DIR, INCL_DIR); @@ -446,6 +447,12 @@ int main(int argc, char *argv[]) break; + case CH_FLAG_NOTEXTURE: + + UseTexture = FALSE; + break; + + case CH_FLAG_VERSION: PrintVersion(lib, stderr); diff --git a/z02.c b/z02.c index c19a4fc..2c9a138 100644 --- a/z02.c +++ b/z02.c @@ -1,6 +1,6 @@ /*@z02.c:Lexical Analyser:Declarations@***************************************/ /* */ -/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.27) */ +/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */ /* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */ /* */ /* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */ diff --git a/z03.c b/z03.c index 6e5ae75..de680da 100644 --- a/z03.c +++ b/z03.c @@ -1,6 +1,6 @@ /*@z03.c:File Service:Declarations, no_fpos@******************************** */ /* */ -/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.27) */ +/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */ /* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */ /* */ /* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */ diff --git a/z04.c b/z04.c index 155a620..8b37181 100644 --- a/z04.c +++ b/z04.c @@ -1,6 +1,6 @@ /*@z04.c:Token Service:NewToken(), CopyTokenList()@***************************/ /* */ -/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.27) */ +/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */ /* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */ /* */ /* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */ diff --git a/z05.c b/z05.c index ff8478e..d17a70c 100644 --- a/z05.c +++ b/z05.c @@ -1,6 +1,6 @@ /*@z05.c:Read Definitions:ReadLangDef()@**************************************/ /* */ -/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.27) */ +/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */ /* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */ /* */ /* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */ diff --git a/z06.c b/z06.c index 1860279..ebc487a 100644 --- a/z06.c +++ b/z06.c @@ -1,6 +1,6 @@ /*@z06.c:Parser:PushObj(), PushToken(), etc.@*********************************/ /* */ -/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.27) */ +/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */ /* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */ /* */ /* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */ diff --git a/z07.c b/z07.c index 49fdd63..fa25705 100644 --- a/z07.c +++ b/z07.c @@ -1,6 +1,6 @@ /*@z07.c:Object Service:SplitIsDefinite(), DisposeObject()@*******************/ /* */ -/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.27) */ +/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */ /* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */ /* */ /* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */ diff --git a/z08.c b/z08.c index e2ea338..45bd8de 100644 --- a/z08.c +++ b/z08.c @@ -1,6 +1,6 @@ /*@z08.c:Object Manifest:ReplaceWithSplit()@**********************************/ /* */ -/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.27) */ +/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */ /* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */ /* */ /* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */ diff --git a/z09.c b/z09.c index 3cbaf0e..65cbc70 100644 --- a/z09.c +++ b/z09.c @@ -1,6 +1,6 @@ /*@z09.c:Closure Expansion:SearchEnv()@***************************************/ /* */ -/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.27) */ +/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */ /* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */ /* */ /* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */ diff --git a/z10.c b/z10.c index 5140f81..b96e583 100644 --- a/z10.c +++ b/z10.c @@ -1,6 +1,6 @@ /*@z10.c:Cross References:CrossInit(), CrossMake()@***************************/ /* */ -/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.27) */ +/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */ /* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */ /* */ /* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */ diff --git a/z11.c b/z11.c index 2c2329d..2633ebc 100644 --- a/z11.c +++ b/z11.c @@ -1,6 +1,6 @@ /*@z11.c:Style Service:EchoStyle()@*******************************************/ /* */ -/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.27) */ +/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */ /* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */ /* */ /* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */ diff --git a/z12.c b/z12.c index e6b6b53..f484529 100644 --- a/z12.c +++ b/z12.c @@ -1,6 +1,6 @@ /*@z12.c:Size Finder:MinSize()@***********************************************/ /* */ -/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.27) */ +/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */ /* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */ /* */ /* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */ diff --git a/z13.c b/z13.c index bf60552..e2e5d6f 100644 --- a/z13.c +++ b/z13.c @@ -1,6 +1,6 @@ /*@z13.c:Object Breaking:BreakJoinedGroup()@**********************************/ /* */ -/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.27) */ +/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */ /* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */ /* */ /* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */ diff --git a/z14.c b/z14.c index e607cc5..72f862d 100644 --- a/z14.c +++ b/z14.c @@ -1,6 +1,6 @@ /*@z14.c:Fill Service:Declarations@*******************************************/ /* */ -/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.27) */ +/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */ /* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */ /* */ /* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */ diff --git a/z15.c b/z15.c index be0c570..9afe233 100644 --- a/z15.c +++ b/z15.c @@ -1,6 +1,6 @@ /*@z15.c:Size Constraints:MinConstraint(), EnlargeToConstraint()@*************/ /* */ -/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.27) */ +/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */ /* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */ /* */ /* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */ diff --git a/z16.c b/z16.c index cdfd65e..5085a68 100644 --- a/z16.c +++ b/z16.c @@ -1,6 +1,6 @@ /*@z16.c:Size Adjustment:SetNeighbours(), CatAdjustSize()@********************/ /* */ -/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.27) */ +/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */ /* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */ /* */ /* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */ diff --git a/z17.c b/z17.c index 970ed85..c76b0bd 100644 --- a/z17.c +++ b/z17.c @@ -1,6 +1,6 @@ /*@z17.c:Gap Widths:GetGap()@*************************************************/ /* */ -/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.27) */ +/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */ /* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */ /* */ /* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */ diff --git a/z18.c b/z18.c index 0d1b9bb..f30c119 100644 --- a/z18.c +++ b/z18.c @@ -1,6 +1,6 @@ /*@z18.c:Galley Transfer:Declarations@****************************************/ /* */ -/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.27) */ +/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */ /* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */ /* */ /* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */ diff --git a/z19.c b/z19.c index 8570858..6f7de3e 100644 --- a/z19.c +++ b/z19.c @@ -1,6 +1,6 @@ /*@z19.c:Galley Attaching:DetachGalley()@*************************************/ /* */ -/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.27) */ +/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */ /* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */ /* */ /* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */ diff --git a/z20.c b/z20.c index 2ca7032..73e1988 100644 --- a/z20.c +++ b/z20.c @@ -1,6 +1,6 @@ /*@z20.c:Galley Flushing:DebugInnersNames()@**********************************/ /* */ -/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.27) */ +/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */ /* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */ /* */ /* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */ diff --git a/z21.c b/z21.c index 8bf0814..3080965 100644 --- a/z21.c +++ b/z21.c @@ -1,6 +1,6 @@ /*@z21.c:Galley Maker:SizeGalley()@*******************************************/ /* */ -/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.27) */ +/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */ /* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */ /* */ /* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */ diff --git a/z22.c b/z22.c index 90d208d..84542f3 100644 --- a/z22.c +++ b/z22.c @@ -1,6 +1,6 @@ /*@z22.c:Galley Service:Interpose()@******************************************/ /* */ -/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.27) */ +/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */ /* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */ /* */ /* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */ diff --git a/z23.c b/z23.c index 1e4e115..f54fd2e 100644 --- a/z23.c +++ b/z23.c @@ -1,6 +1,6 @@ /*@z23.c:Galley Printer:ScaleFactor()@****************************************/ /* */ -/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.27) */ +/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */ /* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */ /* */ /* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */ @@ -1289,7 +1289,7 @@ OBJECT FixAndPrintObject(OBJECT x, FULL_LENGTH xmk, FULL_LENGTH xb, { if( type(y) == UNDER_REC ) /* generate an underline now */ { BackEnd->PrintUnderline(word_font(y),word_colour(y), - word_colour(y), back(y, COLM), fwd(y, COLM), pg - xmk); + word_texture(y), back(y, COLM), fwd(y, COLM), pg - xmk); link = PrevDown(link); /* remove all trace of underlining */ DisposeChild(Up(y)); /* in case we print this object again */ } diff --git a/z24.c b/z24.c index 3a49736..93c893f 100644 --- a/z24.c +++ b/z24.c @@ -1,6 +1,6 @@ /*@z24.c:Print Service:PrintInit()@*******************************************/ /* */ -/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.27) */ +/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */ /* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */ /* */ /* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */ diff --git a/z25.c b/z25.c index ccb5fd5..08d0b88 100644 --- a/z25.c +++ b/z25.c @@ -1,6 +1,6 @@ /*@z25.c:Object Echo:aprint(), cprint(), printnum()@**************************/ /* */ -/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.27) */ +/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */ /* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */ /* */ /* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */ diff --git a/z26.c b/z26.c index 02c32fd..9dc4eb3 100644 --- a/z26.c +++ b/z26.c @@ -1,6 +1,6 @@ /*@z26.c:Echo Service:BeginString()@******************************************/ /* */ -/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.27) */ +/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */ /* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */ /* */ /* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */ diff --git a/z27.c b/z27.c index dc49335..17aab7c 100644 --- a/z27.c +++ b/z27.c @@ -1,6 +1,6 @@ /*@z27.c:Debug Service:Debug flags@*******************************************/ /* */ -/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.27) */ +/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */ /* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */ /* */ /* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */ diff --git a/z28.c b/z28.c index bfbb9ca..361970a 100644 --- a/z28.c +++ b/z28.c @@ -1,6 +1,6 @@ /*@z28.c:Error Service:ErrorInit(), ErrorSeen()@******************************/ /* */ -/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.27) */ +/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */ /* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */ /* */ /* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */ diff --git a/z29.c b/z29.c index 0d28908..5efc0a7 100644 --- a/z29.c +++ b/z29.c @@ -1,6 +1,6 @@ /*@z29.c:Symbol Table:Declarations, hash()@***********************************/ /* */ -/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.27) */ +/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */ /* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */ /* */ /* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */ diff --git a/z30.c b/z30.c index 4860708..4a96255 100644 --- a/z30.c +++ b/z30.c @@ -1,6 +1,6 @@ /*@z30.c:Symbol uses:InsertUses()@********************************************/ /* */ -/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.27) */ +/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */ /* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */ /* */ /* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */ diff --git a/z31.c b/z31.c index 53a88ac..ba6a045 100644 --- a/z31.c +++ b/z31.c @@ -1,6 +1,6 @@ /*@z31.c:Memory Allocator:DebugMemory()@**************************************/ /* */ -/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.27) */ +/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */ /* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */ /* */ /* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */ diff --git a/z32.c b/z32.c index 56a5144..e7aa89d 100644 --- a/z32.c +++ b/z32.c @@ -1,6 +1,6 @@ /*@z32.c:Counter Service:Next()@**********************************************/ /* */ -/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.27) */ +/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */ /* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */ /* */ /* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */ diff --git a/z33.c b/z33.c index e050133..a633235 100644 --- a/z33.c +++ b/z33.c @@ -1,6 +1,6 @@ /*@z33.c:Database Service:OldCrossDb(), NewCrossDb(), SymToNum()@*************/ /* */ -/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.27) */ +/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */ /* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */ /* */ /* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */ diff --git a/z34.c b/z34.c index e7cdf79..555c586 100644 --- a/z34.c +++ b/z34.c @@ -1,6 +1,6 @@ /*@z34.c:Rotation Service:Declarations@***************************************/ /* */ -/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.27) */ +/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */ /* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */ /* */ /* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */ diff --git a/z35.c b/z35.c index 34fc6ad..35e87fe 100644 --- a/z35.c +++ b/z35.c @@ -1,6 +1,6 @@ /*@z35.c:Time Keeper: MomentSym(), TimeString()@******************************/ /* */ -/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.27) */ +/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */ /* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */ /* */ /* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */ diff --git a/z36.c b/z36.c index e6642ad..d74053f 100644 --- a/z36.c +++ b/z36.c @@ -1,6 +1,6 @@ /*@z36.c:Hyphenation: Declarations@*******************************************/ /* */ -/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.27) */ +/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */ /* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */ /* */ /* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */ diff --git a/z37.c b/z37.c index a5428c3..4b90b6f 100644 --- a/z37.c +++ b/z37.c @@ -1,6 +1,6 @@ /*@z37.c:Font Service:Declarations@*******************************************/ /* */ -/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.27) */ +/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */ /* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */ /* */ /* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */ diff --git a/z38.c b/z38.c index 87639fe..ebe1045 100644 --- a/z38.c +++ b/z38.c @@ -1,6 +1,6 @@ /*@z38.c:Character Mappings:Declarations@*************************************/ /* */ -/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.27) */ +/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */ /* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */ /* */ /* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */ diff --git a/z39.c b/z39.c index 796da3e..c42b12c 100644 --- a/z39.c +++ b/z39.c @@ -1,6 +1,6 @@ /*@z39.c:String Handler:AsciiToFull(), StringEqual(), etc.@*******************/ /* */ -/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.27) */ +/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */ /* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */ /* */ /* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */ diff --git a/z40.c b/z40.c index 8dc4436..9d799b2 100644 --- a/z40.c +++ b/z40.c @@ -1,6 +1,6 @@ /*@z40.c:Filter Handler:FilterInit()@*****************************************/ /* */ -/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.27) */ +/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */ /* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */ /* */ /* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */ diff --git a/z41.c b/z41.c index 17230ba..c1a8d39 100644 --- a/z41.c +++ b/z41.c @@ -1,6 +1,6 @@ /*@z41.c:Object Input-Output:AppendToFile, ReadFromFile@**********************/ /* */ -/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.27) */ +/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */ /* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */ /* */ /* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */ diff --git a/z42.c b/z42.c index 0c3717e..41e979a 100644 --- a/z42.c +++ b/z42.c @@ -1,6 +1,6 @@ /*@z42.c:Colour Service:ColourChange, ColourCommand@**************************/ /* */ -/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.27) */ +/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */ /* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */ /* */ /* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */ diff --git a/z43.c b/z43.c index 1ab9594..7eab684 100644 --- a/z43.c +++ b/z43.c @@ -1,6 +1,6 @@ /*@z43.c:Language Service:LanguageChange, LanguageString@*********************/ /* */ -/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.27) */ +/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */ /* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */ /* */ /* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */ diff --git a/z44.c b/z44.c index 83290b6..e244de9 100644 --- a/z44.c +++ b/z44.c @@ -1,6 +1,6 @@ /*@z44.c:Vertical Hyphenation:VerticalHyphenate()@****************************/ /* */ -/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.27) */ +/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */ /* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */ /* */ /* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */ diff --git a/z45.c b/z45.c index 962d680..3e95835 100644 --- a/z45.c +++ b/z45.c @@ -1,6 +1,6 @@ /*@z45.c:External Sort:SortFile()@********************************************/ /* */ -/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.27) */ +/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */ /* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */ /* */ /* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */ diff --git a/z46.c b/z46.c index bd2fece..82256cc 100644 --- a/z46.c +++ b/z46.c @@ -1,6 +1,6 @@ /*@z46.c:Optimal Galleys:FindOptimize()@**************************************/ /* */ -/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.27) */ +/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */ /* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */ /* */ /* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */ diff --git a/z47.c b/z47.c index baa7d47..240e47a 100644 --- a/z47.c +++ b/z47.c @@ -1,6 +1,6 @@ /*@z47.c:Environment Table:EnvReadRetrieve()@*********************************/ /* */ -/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.27) */ +/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */ /* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */ /* */ /* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */ diff --git a/z48.c b/z48.c index 4b643b8..e7b6666 100644 --- a/z48.c +++ b/z48.c @@ -1,6 +1,6 @@ /*@z48.c:PDF back end@********************************************************/ /* */ -/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.27) */ +/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */ /* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */ /* */ /* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */ diff --git a/z49.c b/z49.c index 2649ae4..bc24add 100644 --- a/z49.c +++ b/z49.c @@ -1,6 +1,6 @@ /*@z49.c:PostScript Back End:PS_BackEnd@**************************************/ /* */ -/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.27) */ +/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */ /* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */ /* */ /* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */ @@ -908,7 +908,7 @@ static void PS_PrintBeforeFirstPage(FULL_LENGTH h, FULL_LENGTH v, if( incg_files != nilobj ) { pnl; - p0("LoutReadFormEPS {"); + p0("/LoutReadFormEPS {"); p1(" currentfile 0 (Lout_Marker_%s)", (char *) TimeString()); p0(" /SubFileDecode filter exch 1"); p1(" { 2 copy 4 index %d string readstring 4 1 roll", STRING_SIZE); diff --git a/z50.c b/z50.c index 6c397bc..68f3050 100644 --- a/z50.c +++ b/z50.c @@ -1,6 +1,6 @@ /*@z50.c:PDF Back End:PDF_BackEnd@********************************************/ /* */ -/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.27) */ +/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */ /* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */ /* */ /* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */ diff --git a/z51.c b/z51.c index f864542..23cfda5 100644 --- a/z51.c +++ b/z51.c @@ -1,6 +1,6 @@ /*@z51.c:Plain Text Back End:Plain_BackEnd@***********************************/ /* */ -/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.27) */ +/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */ /* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */ /* */ /* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */ diff --git a/z52.c b/z52.c index 2f6a990..2830d4a 100644 --- a/z52.c +++ b/z52.c @@ -1,6 +1,6 @@ /*@z52.c:Texture Service:TextureChange, TextureCommand@***********************/ /* */ -/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.27) */ +/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.28) */ /* COPYRIGHT (C) 1991, 2002 Jeffrey H. Kingston */ /* */ /* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */ @@ -160,6 +160,17 @@ static void ptab_debug(TEXTURE_TABLE S, FILE *fp) static TEXTURE_TABLE pat_tab; +/*****************************************************************************/ +/* */ +/* UseTexture */ +/* */ +/* When set to FALSE (by z01.c), means to ignore texture changing commands. */ +/* */ +/*****************************************************************************/ + +BOOLEAN UseTexture = TRUE; + + /*****************************************************************************/ /* */ /* TextureInit() */ @@ -200,6 +211,12 @@ void TextureChange(STYLE *style, OBJECT x) return; } + /* if not using textures, do nothing */ + if( !UseTexture ) + { debug0(DTX, D, "TextureChange returning (not UseTexture)"); + return; + } + /* if argument is nochange, do nothing */ if( StringEqual(string(x), STR_TEXTURE_NOCHANGE) || StringEqual(string(x), STR_EMPTY) ) -- cgit