aboutsummaryrefslogtreecommitdiffstats
path: root/doc/user
diff options
context:
space:
mode:
authorJeffrey H. Kingston <jeff@it.usyd.edu.au>2010-09-14 20:36:47 +0000
committerJeffrey H. Kingston <jeff@it.usyd.edu.au>2010-09-14 20:36:47 +0000
commit9cc32a164b926d9df2909186834b6b8ab2994750 (patch)
tree63a1ef3b3f1d2562c498291cda341a2171a1fe1c /doc/user
parent2f4268e5e02216be53cd85816362191373512463 (diff)
downloadlout-9cc32a164b926d9df2909186834b6b8ab2994750.tar.gz
Lout 3.21 tag.3.21
git-svn-id: http://svn.savannah.nongnu.org/svn/lout/tags/3.21@12 9365b830-b601-4143-9ba8-b4a8e2c3339c
Diffstat (limited to 'doc/user')
-rw-r--r--doc/user/README2
-rw-r--r--doc/user/all4
-rw-r--r--doc/user/bas_lang19
-rw-r--r--doc/user/fmt_head8
-rw-r--r--doc/user/fmt_marg30
-rw-r--r--doc/user/fmt_setu9
-rw-r--r--doc/user/letterbook2
-rw-r--r--doc/user/preface12
-rw-r--r--doc/user/prg3
-rw-r--r--doc/user/prg_chan28
-rw-r--r--doc/user/prg_comm6
-rw-r--r--doc/user/prg_erro2
-rw-r--r--doc/user/prg_form54
-rw-r--r--doc/user/prg_lone4
-rw-r--r--doc/user/prg_opti5
-rw-r--r--doc/user/prg_perl62
-rw-r--r--doc/user/prg_pipe6
-rw-r--r--doc/user/prg_prog4
-rw-r--r--doc/user/prg_tabs14
-rw-r--r--doc/user/str_marg26
-rw-r--r--doc/user/tbl_intr7
-rw-r--r--doc/user/typ_repo10
-rw-r--r--doc/user/user.ps2234
-rw-r--r--doc/user/vprg2
24 files changed, 2283 insertions, 270 deletions
diff --git a/doc/user/README b/doc/user/README
index 0cf3731..22b735c 100644
--- a/doc/user/README
+++ b/doc/user/README
@@ -34,4 +34,4 @@ A copy of the final PostScript output file (A4 paper size) is
stored at "ftp://ftp.cs.su.oz.au/jeff/lout/lout-3.19.user.ps.gz".
Jeffrey H. Kingston
-8 April 2000
+11 May 2000
diff --git a/doc/user/all b/doc/user/all
index 64eaf96..cf518db 100644
--- a/doc/user/all
+++ b/doc/user/all
@@ -21,8 +21,8 @@ Lout
Document Formatting System
}
@Author { Jeffrey H. Kingston }
- @Edition { Version 3.20
-April, 2000 }
+ @Edition { Version 3.21
+May, 2000 }
@Publisher {
Copyright @CopyRight 1991, 2000 Jeffrey H. Kingston,
Basser Department of Computer Science,
diff --git a/doc/user/bas_lang b/doc/user/bas_lang
index 01fbf2d..a4c33e9 100644
--- a/doc/user/bas_lang
+++ b/doc/user/bas_lang
@@ -65,15 +65,20 @@ If you are using your own setup file (Section {@NumberOf setup}), you
can change it there. If not, you can change it at the start of your
document, as explained in Section {@NumberOf ordinary}.
@PP
-Czech, Polish, and Slovenian use the ISO-LATIN-2 character set, and
+Czech, Polish, and Slovenian use the Latin2 character set, and
users of these languages have to place
@ID @Code "@SysInclude { latin2 }"
-at the very start of their documents in order to get access to the
-ISO-LATIN-2 versions of the fonts. These have family names such as
-TimesCE, CourierCE, HelveticaCE, and so on, to distinguish them
-from the same fonts encoded in ISO-LATIN-1. The face names are
-unchanged. Consult file @Code "latin2.fd" in the standard include
-directory for a complete list of these fonts.
+at the start of their documents in order to get access to the
+Latin2 versions of the fonts.
+@FootNote { Prior to Version 3.21 of Lout, some accented characters
+were missing from these Latin2 fonts, but this deficiency has now
+been corrected by getting Lout to generate output for these characters
+which prints their base letter and accent separately. } These have
+family names such as TimesCE, CourierCE, HelveticaCE, and so on (CE
+standing for Central European), to distinguish them from the same
+fonts encoded in Latin1. The face names are unchanged. Consult
+database file @Code "latin2.ld" in the standard database directory
+for a complete list of these fonts.
@PP
Russian uses Cyrillic characters. In principle, users of Russian
have to place
diff --git a/doc/user/fmt_head b/doc/user/fmt_head
index 77cbada..ed1f487 100644
--- a/doc/user/fmt_head
+++ b/doc/user/fmt_head
@@ -154,7 +154,7 @@ floating figures and tables, for example, are not from BasicSetup so
cannot be used.
@PP
There are five symbols of special relevance to page headers and
-footers: {@Code "@Null"}, {@Code "@Centre"}, {@Code "@Center"},
+footers: {@Code "@Null"}, {@Code "@Centre"}, {@Code "@Center"},
{@Code "@Right"}, and {@Code "@PageNum"}.
@PP
The @Code "@Null" symbol is similar to the empty object in printing as
@@ -180,6 +180,12 @@ Arabic, Roman, etc. as specified by the @Code "@PageNumbers" or
@Code "@IntroPageNumbers" option. @Code "@PageNum" is available only
within page header and footer options.
@PP
+To get the @I last page into a header, so that you can have page
+headers like `Page 5 of 8', you need @Code "@NumberOf last.page" as
+described in Section {@NumberOf cross}. You might have
+@ID @Code "@Centre { Page @PageNum of @NumberOf last.page }"
+as the value of @Code "@EvenTop" and the rest.
+@PP
At this point you might like to pause and verify that the default
values of the sixteen options given above produce what we said they
would: no footers, and a centred page number between hyphens on every
diff --git a/doc/user/fmt_marg b/doc/user/fmt_marg
index 1b82d41..c1fdcef 100644
--- a/doc/user/fmt_marg
+++ b/doc/user/fmt_marg
@@ -28,6 +28,22 @@ When setting these options you must ensure that
In other words, the total margin on odd pages must be the same as on
even pages.
@PP
+In addition, four options are provided which add extra left and right
+margins to the page @I body (that is, everything but the running headers
+and footers):
+@ID @OneRow @Code {
+"@OddLeftBodyMargin { 0c }"
+"@OddRightBodyMargin { 0c }"
+"@EvenLeftBodyMargin { 0c }"
+"@EvenRightBodyMargin { 0c }"
+}
+The default is to add no page body margins, as shown. Most people who
+use page body margins would change only @Code "@OddRightBodyMargin" and
+{@Code "@EvenLeftBodyMargin"}, since those are the outside margins. As
+for ordinary margins, the total (left plus right) page body margin must
+be the same on odd and even pages. Margin notes
+(Section {@NumberOf marginnotes}) occupy body margin space.
+@PP
You can have a box drawn around each page if you wish. Here are the
relevant options and their default values:
@ID @OneRow @Code {
@@ -77,6 +93,20 @@ centimetre margin between its boundary and the page contents. If the
left margin is 2.5 centimetres, say, this gives a total left margin
from the page edge to the page contents of 3.5 centimetres.
@PP
+More generally, you can enclose each page in any object at all, by
+means of the @Code "@PageEnclose" option:
+@ID @Code {
+"@PageEnclose { @Body }"
+}
+Within this option, @Code "@Body" stands for the page, and it must
+occur exactly once. You could place a curved box around each page,
+for example, by writing
+@ID @Code {
+"@PageEnclose { @CurveBox @Body }"
+}
+This is of course also available from the @Code "@PageBox" symbols, but
+with @Code "@PageEnclose" there are infinitely many other possibilities.
+@PP
Finally, it is possible to have something other than the usual white
background on the page, using the @Code "@PageBackground" option:
page.background @Index @Code "@PageBackground"
diff --git a/doc/user/fmt_setu b/doc/user/fmt_setu
index 6e1bb05..0f59b56 100644
--- a/doc/user/fmt_setu
+++ b/doc/user/fmt_setu
@@ -49,17 +49,15 @@ The remainder of this section is a tour through @Code {doc},
explaining the various parts and how to modify them. The first lines
that actually do anything are these:
@ID @OneRow @Code {
-"@SysInclude { fontdefs }"
"@SysInclude { langdefs }"
"@SysInclude { bsf }"
"@SysInclude { dsf }"
"@SysInclude { docf }"
}
We already know that @Code "@SysInclude" causes Lout to read a file from
-the Lout system include directory. Files @Code fontdefs and @Code langdefs
-fontdefs.file @Index { @Code "fontdefs" file }
+the Lout system include directory. File @Code langdefs
langdefs.file @Index { @Code "langdefs" file }
-tell Lout what fonts and languages there are. Files @Code "bsf" and
+tells Lout what languages there are, and files @Code "bsf" and
@Code "dsf" contain
bsf.file @Index { @Code "bsf" file }
dsf.file @Index { @Code "dsf" file }
@@ -178,7 +176,8 @@ or all document types.
The setup file ends with a comment identifying a spot where database
declarations may
database.dec @Index { database declarations, where to put }
-be put, and one such declaration, for reference printing styles.
+be put, and two such declarations, one for fonts and the other for
+reference printing styles.
@PP
The setup files used with other packages, such as C and C++ program printing,
diagrams, and graphs, are similar to the @Code { doc } setup file we
diff --git a/doc/user/letterbook b/doc/user/letterbook
index 269f073..6d6b749 100644
--- a/doc/user/letterbook
+++ b/doc/user/letterbook
@@ -14,7 +14,6 @@
# #
###############################################################################
- @SysInclude { fontdefs } # font definitions
@SysInclude { langdefs } # language definitions
@SysInclude { bsf } # BasicSetup package
@SysInclude { dsf } # DocumentSetup package
@@ -353,4 +352,5 @@
# #
###############################################################################
+@SysDatabase @FontDef { fontdefs } # fond definitions
@SysDatabase @RefStyle { refstyle } # reference printing styles
diff --git a/doc/user/preface b/doc/user/preface
index 2f258eb..b136bb0 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.cs.usyd.edu.au/jeff/lout"
in which may be found a gzipped tar file containing the main distribution
-(currently {@Code "lout-3.20.tar.gz"}), and various other things including
+(currently {@Code "lout-3.21.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
@@ -52,10 +52,12 @@ E. Knuth's @TeX system @Cite { $knuth1984tex }, and the optimal paragraph
breaking algorithm was applied to the problem of producing optimal page
breaks. The first implementations of horizontal galleys and optimal
page breaking were by my student Gabor Inokai. Vincent Tan contributed
-the PDF back end. The strongest influence during this period has come from
-Lout's users; indeed the number of people who have offered comments and
-suggestions is so great that it is quite out of my power to acknowledge them
-individually. I hope that seeing their ideas adopted will be thanks enough.
+the PDF back end. Valeriy E. Ushakov has smoothed the path for many
+people, by his contributions to improving Lout's robustness, and his
+tireless management of and responses to the Lout mailing list. The
+number of other people who have offered comments and suggestions to me is so
+great that it is quite out of my power to acknowledge them individually. I
+hope that seeing their ideas adopted will be thanks enough.
@DP
@RLD lines @Break {
Jeffrey H. Kingston
diff --git a/doc/user/prg b/doc/user/prg
index ec473aa..792124c 100644
--- a/doc/user/prg
+++ b/doc/user/prg
@@ -24,7 +24,7 @@ breaks and indenting you give to the program. What Lout does do is cope
with characters in the program text that it would ordinarily either reject
or interpret in some way (braces and so on), ensuring that you can include
program texts with absolutely no modifications; plus, if you wish, Lout
-will print keywords in bold, identifiers in italics, etc.
+will print keywords in bold, identifiers in italics, add line numbers, etc.
@PP
At the time of writing, the available programming languages are:
eiffel. @Index { Eiffel program printing }
@@ -94,6 +94,7 @@ source file of that program ({@I prg2lout.c}) if you want to try it yourself.
@Include { prg_opti }
@Include { prg_chan }
@Include { prg_tabs }
+@Include { prg_form }
@Include { prg_comm }
@Include { prg_prog }
@Include { prg_pipe }
diff --git a/doc/user/prg_chan b/doc/user/prg_chan
index 6273b7d..781e9bb 100644
--- a/doc/user/prg_chan
+++ b/doc/user/prg_chan
@@ -23,6 +23,7 @@ cprint. @Index @Code "@CPSetup"
{
@Rowa A { "@Use { @CPSetup" }
@Rowb A { "pipe" } B { }
+@Rowb A { "numbered" } B { No }
@Rowb A { "style" } B { fixed }
@Rowa
@@ -39,6 +40,7 @@ cprint. @Index @Code "@CPSetup"
@Rowb A { "fixednumbers" } B { Base }
@Rowb A { "fixedstrings" } B { Base }
@Rowb A { "fixedcomments" } B { Base }
+@Rowb A { "fixedlinenumbers" } B { Base }
@Rowa
@Rowb A { "fixedidentifiersformat" } B { "@Body" }
@@ -47,6 +49,7 @@ cprint. @Index @Code "@CPSetup"
@Rowb A { "fixednumbersformat" } B { "@Body" }
@Rowb A { "fixedstringsformat" } B { "@Body" }
@Rowb A { "fixedcommentsformat" } B { "@Body" }
+@Rowb A { "fixedlinenumbersformat" } B { "@Body" }
@Rowa
@Rowa A { "..." }
@@ -60,13 +63,24 @@ options whose name begins with @Code "fixed" apply only when
shown, which apply when @Code style is {@Code varying} and {@Code symbol}.
@PP
We can see in this extract that the default value of @Code style is
-{@Code fixed}. We can also see the default font family, font face, font size,
+{@Code fixed}, and of @Code "numbers" is {@Code No}. We can also see the
+default font family, font face, font size,
line spacing, and tab settings when the style is {@Code "fixed"}. The
font family name for @Code "fixed" style is {@Code "Courier"}, but for the
other styles (not shown) it is empty. This causes the @Code "fixed" style
to always switch to Courier, and the other styles to use the same font
family as in the surrounding document.
@PP
+The options from @Code "fixedidentifiers" to @Code "fixedlinenumbers" allow
+you to set the font face to use for each of these parts of your
+program. People who want fixed-width fonts do not usually want very
+exciting font faces either, so the default values above are all
+{@Code "Base"}, but for the {@Code varying} and {@Code symbol} styles,
+the default identifier face is {@Code Slope}, the default keyword
+face is {@Code Bold}, and so on. You can actually give a family name
+before the face name in these options, allowing you to switch font
+families for different parts of the program if you wish.
+@PP
The @Code fixedidentifiersformat option allows you to make a more
radical change to the format of identifiers than just the font. Within
this option, @Code "@Body" stands for the identifier being formatted, and
@@ -99,6 +113,18 @@ Or suppose you like @Code "varying" as it stands, but would like it to be
the default style rather than {@Code "fixed"}. Again, only one line needs
to be changed, to {@Code "style { varying }"}.
@PP
+It is probably not a good idea to change the default value of
+@Code { numbered } to {@Code Yes}, because small fragments of
+code within paragraphs will then get line numbers as well as large
+displayed programs. If you do have many large numbered programs as
+well as small fragments, a better approach would be to place
+@ID @OneRow @Code @Verbatim {
+import @CPSetup
+macro @NCP { @CP numbered { Yes } }
+}
+(or the equivalent for your language) in your @Code mydefs file, so that
+you can type @Code "@NCP" instead of {@Code "@CP numbered { Yes }"}.
+@PP
The setup files for the other languages are identical to this one, except
that the symbol after @Code "@Use" is different, and some of the
default values may be different. Changing an option affects only the
diff --git a/doc/user/prg_comm b/doc/user/prg_comm
index a679f4f..f059388 100644
--- a/doc/user/prg_comm
+++ b/doc/user/prg_comm
@@ -12,10 +12,8 @@ character should then be Lout text. For example, to force Lout to start
a new page at some point within a C program, place
@ID @Code "/*@ @NP */"
at that point. (In this case you can also simply include a formfeed
-formfeed. @Index { formfeed in program texts }
-character, control-L, without any comment; whatever the language, a formfeed
-in program text is taken to be a request to start a new page.) Or, to
-make a heading in an Eiffel program, do this:
+character without any comment; see Section {@NumberOf formfeed}
+for more on this.) Or, to make a heading in an Eiffel program, do this:
@ID @Code "--@ @Display @Heading { treeprint }"
(Eiffel comments begin with @Code "--" and end at the end of the
line.) Other possible uses for this feature include index entries and
diff --git a/doc/user/prg_erro b/doc/user/prg_erro
index 7ebbe3e..a5a19fa 100644
--- a/doc/user/prg_erro
+++ b/doc/user/prg_erro
@@ -26,7 +26,7 @@ involved. Lout will precede this error message with a file name,
line number, and column number pointing to the Lout symbol
({@Code "@CP"}, {@Code "@Eiffel"} etc.) whose program text caused the
error message, like this:
-@ID @Code @Verbatim {
+@ID @OneRow @Code @Verbatim {
lout file "prg_tabs" (from "prg" line 96, from "all" line 46):
56,23: prg2lout 2,1: program text ended within comment
}
diff --git a/doc/user/prg_form b/doc/user/prg_form
new file mode 100644
index 0000000..58b0e37
--- /dev/null
+++ b/doc/user/prg_form
@@ -0,0 +1,54 @@
+@Section
+ @Title { Dealing with formfeed characters in programs }
+ @Tag { formfeed }
+@Begin
+@PP
+The formfeed (Control-L) character is traditionally taken to be a
+request to start a new page. This is explicitly recognized by the
+formal definition of the C language and many others, which treat
+this character as white space from a language point of view, with
+the understanding that it will cause a page break when printed.
+@PP
+There are no @Code { prg2lout } options for dealing with formfeed
+characters. They will be converted into @Code "@NP" (new page)
+symbols, causing a new page or column to be begun in the printing.
+@PP
+Whether formfeed characters end their line or not is a problem. Consider
+this example, where @Code "^L" stands for one formfeed character:
+@ID @Code @Verbatim {
+abc
+def^Lghi
+jhk
+}
+How many lines does this example contain? Your text editor would
+probably say `three', but when you print it you will see four. It
+is not desirable to have printed programs (especially those with
+line numbers attached) disagreeing with text editors about line
+numbers. The solution adopted by @Code { prg2lout } to this
+problem is to treat the formfeed character as including a newline,
+but to assign the same line number to both parts of the original line
+(the parts before and after the formfeed). If the part after the
+formfeed is empty (that is, if the formfeed character is immediately
+followed by a newline or another formfeed), and if the formfeed is not
+inside any lexical unit, then the empty line after the formfeed will
+not be printed at all.
+@PP
+The most common case is that of a formfeed character, outside any
+lexical unit, on a line by itself. Let's see what this rule
+produces in the following example of this case:
+@ID @Code @Verbatim {
+abc
+def
+^L
+ghi
+}
+There will be one blank line numbered 3 at the end of the first page,
+and a line numbered 4 and containing @Code ghi at the start of the
+next page. The blank line is a necessity, at least when lines are
+being numbered, because we want the last line in the example to be
+numbered 4 to agree with text editors, but we don't want the line
+numbers on our print to skip from 2 on the first page to 4 on the
+second, because that would make readers anxious about the apparently
+missing line 3. If you don't want that empty line, move the formfeed
+character to the end of the preceding line.
+@End @Section
diff --git a/doc/user/prg_lone b/doc/user/prg_lone
index 1717998..324f79e 100644
--- a/doc/user/prg_lone
+++ b/doc/user/prg_lone
@@ -31,6 +31,10 @@ Select an inter-line spacing size in Lout units. The default is
@Code -v1.1fx meaning 1.1 times the font size measured from baseline
to baseline.
}
+@TI { {@Code -L}{@I number} } {
+Add line numbers to the program print, starting with {@I number}, or
+1 if {@I number} is omitted.
+}
@TI { {@Code -S}{@I file} } {
Use @I file as the setup file for printing your language. This allows
you to change all the options mentioned in subsequent sections, rather
diff --git a/doc/user/prg_opti b/doc/user/prg_opti
index 9eb1818..0b8dbb6 100644
--- a/doc/user/prg_opti
+++ b/doc/user/prg_opti
@@ -68,6 +68,7 @@ default values:
@ID @OneRow @Code {
"@CP [ or @Eiffel, @Blue, etc. ]"
" style { fixed }"
+" numbered { No }"
" font { Courier }"
" size { -1.0p }"
" line { 1.0vx }"
@@ -84,6 +85,10 @@ default values:
"}"
}
We are already familiar with {@Code "style"}. After that comes
+{@Code "numbered"}, whose value may be {@Code "No"} (the default),
+{@Code "Yes"}, or a number, and which determines whether or not
+line numbers are to be added and if so the value of the first
+one. Next we have
{@Code "font"}, which determines the font family to use, {@Code "size"},
the font size to use, and {@Code "line"}, the inter-line spacing. The
default value for @Code "size" asks for one point smaller than in the
diff --git a/doc/user/prg_perl b/doc/user/prg_perl
index 4a14860..643afa6 100644
--- a/doc/user/prg_perl
+++ b/doc/user/prg_perl
@@ -30,8 +30,8 @@ here-document) is one of @Perl { EOF }, @Perl { EOT }, @Perl { END },
and the empty string, all optionally enclosed in quotes of any of the
three kinds. If this condition is not met, then the here-document will
be treated as Perl program text. If the condition is met, there is still
-another problem: everything after the @Perl { << } symbol on the same
-line will be treated (incorrectly) as a string; the worst consequence
+another problem: the @Perl { << } symbol and everything after it on the
+same line will be treated (incorrectly) as a string. The worst consequence
of this is that stacked here-documents will not be printed properly.
}
@@ -47,11 +47,12 @@ character is immediately preceded by @Code { "q" }, @Code { "qq" },
@Code { "qx" }, @Code { "qw" }, @Code { "qr" }, @Code { "m" },
@Code { "s" }, @Code { "y" }, or @Code { "tr" }. It also chooses the
regular expression interpretation if the @Code "/" character appears
-at the start of a line, or if it is
-immediately preceded by zero, one, or two space or tab characters, which
-are themselves immediately preceded by a complete lexical unit which is
-one of @Code { "(" }, @Code { "=" }, @Code { "=~" }, @Code { "!~" },
-@Code { "split" }, @Code { "if" }, @Code { "not" }, @Code { "unless" },
+at the start of a line, or if it is immediately preceded by zero, one,
+or two space or tab characters, which are themselves immediately preceded
+by a complete lexical unit which is one of @Code { "(" }, @Code { "=" },
+@Code { "=~" }, @Code { "!~" }, @Code { "split" }, @Code { "if" },
+@Code { "and" }, @Code { "&&" }, @Code { "or" }, @Code { "||" },
+@Code { "not" }, @Code { "!" }, @Code { "unless" },
@Code { "for" }, @Code { "foreach" }, and @Code { "while" }. Otherwise
it chooses the division interpretation. In the rare cases where this
rule fails, you can force @Code { prg2lout } to choose the regular expression
@@ -62,23 +63,19 @@ division interpretation by placing at least three spaces before the
}
@LI {
-The @Code { prg2lout } program recognises complete substitution operators,
-such as @Code "s/abc/ABC/" and {@Code "s{abc}{ABC}"}, as individual lexical
-units, and it formats them as it does strings. However, its rule for
-deciding where these units end is rather simple-minded: at the start,
-it works out what character finishes the unit (in the examples above,
-@Code "/" and @Code "}" respectively), and scans along until it reaches
-the second occurrence of this character not preceded by the @Code "\\"
-escape character. This is inadequate in two respects. Firstly,
-@ID @Code "s{{}}{}"
-is a complete legal substitution expression in Perl, but @Code { prg2lout }
-will think it ends after the second {@Code "}"}, and so format the rest
-of it wrongly. Secondly, and more seriously,
-@ID @Code "s{abc}<ABC>"
-is also allowed in Perl, but @Code { prg2lout } does not understand that
-the finishing character can change in this way, so in this example it will
-keep scanning forever, looking for the second @Code "}" character, which is
-disastrous.
+Substitution expressions, even such lexically complex ones as
+@Perl { s{{@D}}[{@I}] }, are handled correctly. However,
+@Code { prg2lout } does not understand that the letters @Code "gimosx"
+in any combination appearing immediately after a substitution
+expression are part of it; it treats them as the start of a new lexical
+unit. This new unit will usually be taken to be an identifier, which
+is harmless enough, but occasionally it is taken to be something
+else. For example, in
+@ID @Code @Verbatim { s///s; }
+the trailing @Code "s" will be mistaken for the start of a new
+substitution expression, with @Code ";" delimiting the first
+pattern. This particular example can be fixed by inserting a
+space before the semicolon.
}
@EndList
@@ -93,7 +90,7 @@ Thus, asking for Perl always gives you Pod as well. If you are using
your own setup files for both languages, it is probably better to
break this connection by deleting this line from your copy of the
@Code perl setup file and placing
-@ID @Code {
+@ID @OneRow @Code {
"@Include { mypod }"
"@Include { myperl }"
}
@@ -105,4 +102,19 @@ do not really apply. So for Pod only these have been discarded and replaced
by a completely different set of options, controlling such things as
the size of headings and the gaps between list items, which you can
find documented in the @Code { pod } setup file.
+@PP
+If you ask for line numbers on a Pod program, or on a Perl program that
+contains Pod, any text blocks in the Pod that would otherwise have
+appeared as filled paragraphs will come out with the line breaks in
+the source respected, and lines numbered accordingly. Because
+@Code "prg2lout" attaches line numbers before Lout breaks paragraphs,
+it is not possible to number the lines after paragraph breaking.
+@PP
+Owing to problems behind the scenes, if a Pod inclusion in a Perl
+program has unbalanced braces, @Code "prg2lout" is forced to insert
+braces into the Pod text to make them balance. It will insert a
+left brace directly before any unbalanced right brace, and it will
+insert right braces at the end of the Pod inclusion to balance any
+preceding unbalanced left braces. It will tell you if it has to do
+this. This problem does not afflict Pod when used as a separate language.
@End @Section
diff --git a/doc/user/prg_pipe b/doc/user/prg_pipe
index afbb87e..813a691 100644
--- a/doc/user/prg_pipe
+++ b/doc/user/prg_pipe
@@ -9,7 +9,7 @@ there is an exception. The program text may contain an
@Code "@Include" or @Code "@SysInclude" command, which, as for the
@Code "@Verbatim" symbol (Section {@NumberOf verbatim}), causes Lout
to take the program text from a file:
-@ID @Code {
+@ID @OneRow @Code {
"@Eiffel"
"{"
" @Include { \"/usr/staff/jeff/Eiffel/hash.e\" }"
@@ -32,7 +32,7 @@ is passed to {@Code prg2lout}.
For example, suppose that all your Eiffel routines begin with the
routine name one tab stop from the left margin and end at the first
following @Eiffel { end } indented two tab stops. Then
-@ID @Code {
+@ID @OneRow @Code {
"@Eiffel"
" pipe { \"sed -n /^.insert/,/^..end/p\" }"
"{"
@@ -44,7 +44,7 @@ file. Assuming that your program text has been laid out in a
disciplined manner, every line of the selection will begin with a
tab character that is not wanted in this display, so an even better
pipe is
-@ID @Code {
+@ID @OneRow @Code {
"@Eiffel"
" pipe { \"sed -n /^.insert/,/^..end/p | cut -c2-\" }"
"{"
diff --git a/doc/user/prg_prog b/doc/user/prg_prog
index 8d343f6..19a525e 100644
--- a/doc/user/prg_prog
+++ b/doc/user/prg_prog
@@ -7,14 +7,14 @@ The standard reference for the Eiffel language @Cite { $meyer1992eiffel }
specifies that identifiers within comments may or should be enclosed
in ` and ' so that they may be noticed and printed in an italic
font:
-@ID @Code @Verbatim {
+@ID @OneRow @Code @Verbatim {
@ID @Eiffel {
deposit(amount: REAL) is
-- deposit `amount' dollars
}
}
produces
-@ID @Eiffel {
+@ID @OneRow @Eiffel {
deposit(amount: REAL) is
-- deposit `amount' dollars
}
diff --git a/doc/user/prg_tabs b/doc/user/prg_tabs
index 3a04bfa..9fe101d 100644
--- a/doc/user/prg_tabs
+++ b/doc/user/prg_tabs
@@ -24,10 +24,10 @@ must be a Lout length. For example,
requests that tab stops be placed at half-inch intervals. In other
words, a distance of one tab stop in the program text will be equivalent to a
distance of half an inch on the printed page. For example,
-@ID @Code "@CP style { varying } tabout { 3f }"
+@ID @Code "@CP style { varying } tabout { 3f } numbered { Yes }"
might produce the following, where tab characters in the program text
have been used for indenting and also to align the comments:
-@ID @OneRow @CP style { varying } tabout { 3f } {
+@ID @OneRow @CP style { varying } tabout { 3f } numbered { Yes } {
struct tnode { /* the basic node */
char *word; /* points to the text */
int count; /* number of occurrences */
@@ -35,10 +35,12 @@ struct tnode { /* the basic node */
struct tnode *right; /* right child */
};
}
-The value {@Code "3f"} means three times the current font size, and
-it is the default value of @Code "tabout" for the @Code { varying }
-and @Code { symbol } styles (Section {@NumberOf cpsetup}). In a
-12 point font this is 36 points, or half an inch.
+We've used @Code "numbered { Yes }" to demonstrate that the features
+for dealing with tabs work even with line numbers. The value {@Code "3f"}
+means three times the current font size, and it is the default value of
+@Code "tabout" for the @Code { varying } and @Code { symbol } styles
+(Section {@NumberOf cpsetup}). In a 12 point font this is 36 points,
+or half an inch.
@PP
If @Code "tabout" is too small, there is a danger that the
alignment might fail. For example,
diff --git a/doc/user/str_marg b/doc/user/str_marg
index 0f9f75d..e2eba2d 100644
--- a/doc/user/str_marg
+++ b/doc/user/str_marg
@@ -55,24 +55,26 @@ similar to the @Code "@InitialBreak" setup file option.
@PP
@Code "@MarginNoteHGap" determines how far away from the
adjacent text column the margin note will appear; the default
-value is 0.5 centimetres. @Code "@MarginNoteVGap" is the minimum
+value is 0.5 centimetres. Notice that, by this definition, margin
+notes will appear in the page body margin (Section {@NumberOf margins})
+if there is one. @Code "@MarginNoteVGap" is the minimum
vertical separation between margin notes (i.e. it determines how
far downwards a note will be shifted to avoid the previous
one). @Code "@MarginNoteWidth" determines the width of the column
in which margin notes (both left and right) are set; the default
value of 1.5 centimetres is suited to the 2.5 centimetre page margins
-that are the default, but if you widen the page margins you will be
-able to increase @Code "@MarginNoteWidth" too.
+that are the default, but if you widen the page or page body margins
+you will be able to increase @Code "@MarginNoteWidth" too.
@PP
-Left notes extend into the left margin a total distance of
-@Code "@MarginNoteHGap" plus {@Code "@MarginNoteWidth"}, and it is
-up to you to make sure that this does not put them off
-the page. Similar remarks apply to right notes. And since notes
-are never shifted to the next page, only downwards, there is also
-a risk that a note will be shifted off the bottom of the page, if
-it is very long or if preceding notes obstruct it. Again, it is
-up to you to avoid this problem by keeping your notes small and not
-too close together.
+Left notes extend into the left margin (including the left page body
+margin) a total distance of @Code "@MarginNoteHGap" plus
+{@Code "@MarginNoteWidth"}, and it is up to you to make sure that this
+does not put them off the page. Similar remarks apply to right
+notes. And since notes are never shifted to the next page, only
+downwards, there is also a risk that a note will be shifted off the
+bottom of the page, if it is very long or if preceding notes obstruct
+it. Again, it is up to you to avoid this problem by keeping your notes
+small and not too close together.
@PP
Margin notes inside footnotes, figures and tables work well. Margin
notes in multi-column documents are disastrous unless used very
diff --git a/doc/user/tbl_intr b/doc/user/tbl_intr
index 51524cb..3f1f557 100644
--- a/doc/user/tbl_intr
+++ b/doc/user/tbl_intr
@@ -91,8 +91,11 @@ In rare cases, when the table occupies an entire paragraph but is not
displayed, a bug in the current version of Basser Lout causes the second
column to appear much too far to the right. Until the problem is fixed,
the first thing to try if this occurs is to replace the very first
-row symbol ({@Code "@Rowa"}, {@Code "@Rowb"}, etc.) by {@Code "@FirstRowa"},
-{@Code "@FirstRowb"}, etc.
+row symbol ({@Code "@Row"}, {@Code "@Rowa"}, {@Code "@Rowb"}, etc.) by
+{@Code "@FirstRow"}, {@Code "@FirstRowa"}, {@Code "@FirstRowb"},
+etc. There are also {@Code "@HeaderFirstRow"}, {@Code "@HeaderFirstRowa"},
+{@Code "@HeaderFirstRowb"} etc. symbols for replacing {@Code "@HeaderRow"},
+{@Code "@HeaderRowa"}, {@Code "@HeaderRowb"}, etc., if required.
# That should work, but if it doesn't, replacing
# @Code "@Tbl" by @Code "@OneCol @Tbl" certainly will, although it also
# prevents the table from breaking across page boundaries.
diff --git a/doc/user/typ_repo b/doc/user/typ_repo
index b73671a..5cd70ba 100644
--- a/doc/user/typ_repo
+++ b/doc/user/typ_repo
@@ -114,10 +114,7 @@ and to set the @Code "@MakeContents" option within it to
on the first page, but if the @Code "@ContentsSeparate" option of
@Code "@Report" is
contents.separate @Index @Code "@ContentsSeparate"
-set to @Code "Yes" it will appear on separate pages. This is only
-effective if @Code "@CoverSheet" is {@Code No}, since a separate cover
-sheet and separate pages for the table of contents would leave nothing on
-the first page.
+set to @Code "Yes" it will appear on separate pages.
@PP
@Code "@InitialFont" is the font of the bulk of the report,
and should contain a family, a face, and a size. The default
@@ -208,9 +205,8 @@ No @Code "@BeginSections" or @Code "@EndSections" symbols are needed. The
beginsections.reports @SubIndex { in reports }
endsections.reports @SubIndex { in reports }
general rule is that you need these bracketing symbols only when you are
-inside something else. Sections lie inside
-@Code "@Text" in ordinary documents, but they don't lie inside anything
-else in technical reports.
+inside something else. Sections lie inside @Code "@Text" in ordinary
+documents, but they don't lie inside anything else in technical reports.
@PP
A section may have subsections, between
subsection.reports @SubIndex { in reports }
diff --git a/doc/user/user.ps b/doc/user/user.ps
index 203f7e3..9cbcb3d 100644
--- a/doc/user/user.ps
+++ b/doc/user/user.ps
@@ -1,6 +1,6 @@
%!PS-Adobe-3.0
-%%Creator: Basser Lout Version 3.19 (March 2000)
-%%CreationDate: Mon Apr 3 16:16:36 2000
+%%Creator: Basser Lout Version 3.20 (April 2000)
+%%CreationDate: Mon Apr 24 13:08:28 2000
%%DocumentData: Binary
%%DocumentNeededResources: (atend)
%%DocumentSuppliedResources: (atend)
@@ -4912,7 +4912,892 @@ end
/fnt78 { /Symbol LoutFont } def
%%EndSetup
-%%Page: 11 1
+%%Page: i 1
+%%BeginPageSetup
+%%PageResources: font Times-Roman
+%%+ font Helvetica
+%%+ font Symbol
+/pgsave save def
+0.0500 dup scale 10 setlinewidth
+%%EndPageSetup
+
+gsave
+0 0 translate
+240 fnt82 0.0 0.0 0.0 setrgbcolor 11900 16840 0 16840 240 288 60 LoutGraphic
+gsave
+LoutPageSet
+grestore
+gsave
+0 16840 translate
+0.0000 rotate
+9066 14006 0 14006 240 288 60 1417 -15423 LoutGr2
+1 LoutMargSet
+grestore
+600 fnt35 1751 12125(A)m 2310(User')s 30(s)k 4123(Guide)s
+5863(to)s 6507(the)s 3956 10685(Lout)m 616 9245(Document)m 3500(F)s 18(or)k -15(matting)k
+6490(System)s 240 fnt35 3544 6059(Jeffre)m 4(y)k 4321(H.)s
+4606(Kingston)s 3883 4395(V)m 19(ersion)k 4726(3.20)s 3974 4107(Apr)m -3(il,)k
+4567(2000)s 0 340(Cop)m 7(yr)k -3(ight)k 240 fnt78
+1080 342(\343)m 240 fnt35 1323 340(1991,)m 1967(2000)s 2558(Jeffre)s 4(y)k
+3335(H.)s 3620(Kingston,)s 4663(Basser)s 5475(Depar)s -9(tment)k
+6793(of)s 7055(Computer)s 8171(Science)s 3(,)k 0 52(The)m
+469(Univ)s 6(ersity)k 1577(of)s 1839(Sydne)s 4(y)k
+2698(2006,)s 3342(A)s 7(ustr)k 2(alia.)k 4441(ISBN)s
+5048(0)s 5239(86758)s 5961(951)s 6379(5.)s
+grestore
+
+grestore
+
+grestore
+
+pgsave restore
+showpage
+
+%%Page: ii 2
+%%BeginPageSetup
+%%PageResources: font Times-Roman
+%%+ font Times-Bold
+/pgsave save def
+%%IncludeResource: font Times-Bold
+/Times-Boldfnt84 vec2 /Times-Bold LoutRecode
+/fnt84 { /Times-Boldfnt84 LoutFont } def
+0.0500 dup scale 10 setlinewidth
+%%EndPageSetup
+gsave
+0 0 translate
+240 fnt82 0.0 0.0 0.0 setrgbcolor 11900 16840 0 16840 240 288 60 LoutGraphic
+gsave
+LoutPageSet
+grestore
+gsave
+0 16840 translate
+0.0000 rotate
+9066 14006 0 14006 240 288 60 1417 -15423 LoutGr2
+0 LoutMargSet
+grestore
+480 fnt84 0 12955(Contents)m 240 fnt84 0 11982(Chapter)m 908(1)s
+240 fnt82 1015 11983(.)m 240 fnt84 1179 11982(Computer)m 2286(Pr)s 4(ograms)k
+240 fnt82 3770 11983(..)m 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
+8971(1)s 720 11638(1.1.)m 1184(T)s 19(ypesetting)k 2347(computer)s
+3310(programs)s 4264(independently)s 5674(of)s 5945(an)s 3(y)k
+6342(document)s 7554(..)s 7898(..)s 8242(..)s 8971(1)s
+720 11293(1.2.)m 1184(T)s 19(ypesetting)k 2347(computer)s 3310(programs)s
+4264(as)s 4514(part)s 4945(of)s 5216(a)s 5382(lar)s 4(ger)k
+5994(document)s 7210(..)s 7554(..)s 7898(..)s 8242(..)s
+8952(2)s 720 10948(1.3.)m 1184(Changing)s 2169(the)s 2517(appearance)s
+3648(of)s 3919(a)s 4085(program)s 5146(..)s 5490(..)s
+5834(..)s 6178(..)s 6522(..)s 6866(..)s 7210(..)s
+7554(..)s 7898(..)s 8242(..)s 8952(4)s 720 10603(1.4.)m
+1184(Changing)s 2169(the)s 2517(appearance)s 3648(of)s 3919(all)s
+4212(programs)s 5166(simultaneously)s 6866(..)s 7210(..)s 7554(..)s
+7898(..)s 8242(..)s 8953(6)s 720 10258(1.5.)m 1184(Dealing)s
+1994(with)s 2476(tab)s 2821(characters)s 3839(in)s 4082(programs)s
+5490(..)s 5834(..)s 6178(..)s 6522(..)s 6866(..)s
+7210(..)s 7554(..)s 7898(..)s 8242(..)s 8959(8)s
+720 9913(1.6.)m 1184(Dealing)s 1994(with)s 2476(formfeed)s 3409(characters)s
+4427(in)s 4670(programs)s 5834(..)s 6178(..)s 6522(..)s
+6866(..)s 7210(..)s 7554(..)s 7898(..)s 8242(..)s
+8955(9)s 720 9568(1.7.)m 1184(Embedding)s 2341(Lout)s 2853(commands)s
+3941(within)s 4609(program)s 5479(comments)s 6866(..)s 7210(..)s
+7554(..)s 7898(..)s 8242(..)s 8831(10)s 720 9223(1.8.)m
+1184(Embedding)s 2341(program)s 3211(te)s 3(xt)k 3626(within)s
+4294(program)s 5164(comments)s 6522(..)s 6866(..)s 7210(..)s
+7554(..)s 7898(..)s 8242(..)s 8831(10)s 720 8878(1.9.)m
+1184(Reading)s 2035(and)s 2439(selecting)s 3341(program)s 4211(te)s 3(xt)k
+4626(from)s 5150(separate)s 5988(\207les)s 6866(..)s 7210(..)s
+7554(..)s 7898(..)s 8242(..)s 8851(11)s 720 8533(1.10.)m
+1304(Error)s 1867(messages)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 8832(12)s 720 8188(1.11.)m
+1304(Notes)s 1913(on)s 2210(Perl)s 2649(and)s 3053(Pod)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 8832(12)s
+240 fnt84 0 7558(Refer)m 4(ences)k 240 fnt82 1362 7559(..)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
+8840(15)s 240 fnt84 0 6930(Index)m 240 fnt82 1018 6931(..)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 8833(16)s
+grestore
+
+grestore
+
+grestore
+
+pgsave restore
+showpage
+
+%%Page: 1 3
+%%BeginPageSetup
+%%PageResources: font Times-Roman
+%%+ font Times-Bold
+%%+ font Helvetica
+%%+ font Times-Italic
+%%+ font Times-Italic
+/pgsave save def
+%%IncludeResource: font Times-Bold
+/Times-Boldfnt84 vec2 /Times-Bold LoutRecode
+/fnt84 { /Times-Boldfnt84 LoutFont } def
+%%IncludeResource: font Times-Italic
+/Times-Italicfnt90 vec2 /Times-Italic LoutRecode
+/fnt90 { /Times-Italicfnt90 LoutFont } def
+%%IncludeResource: font Times-Italic
+/Times-Italicfnt83 vec2 /Times-Italic LoutRecode
+/fnt83 { /Times-Italicfnt83 LoutFont } def
+0.0500 dup scale 10 setlinewidth
+%%EndPageSetup
+gsave
+0 0 translate
+240 fnt82 0.0 0.0 0.0 setrgbcolor 11900 16840 0 16840 240 288 60 LoutGraphic
+gsave
+LoutPageSet
+grestore
+gsave
+0 16840 translate
+0.0000 rotate
+9066 14006 0 14006 240 288 60 1417 -15423 LoutGr2
+1 LoutMargSet
+grestore
+480 fnt84 0 12955(Chapter)m 1819(1.)s 2400(Computer)s 4618(Pr)s 8(ograms)k
+240 fnt82 0 12003(This)m 471(chapter)s 1228(describes)s 2162(ho)s 6(w)k
+2617(to)s 2850(typeset)s 3581(computer)s 4538(program)s 5403(te)s 3(xt)k
+5812(using)s 6378(Lout)s 6884(in)s 7121(conjunction)s 8302(with)s
+8778(the)s 220 fnt35 0 11712(prg2lout)m 153 fnt82 788 11804(1)m
+240 fnt82 908 11715(\207lter)m 1418(program,)s 2335(which)s 2977(is)s
+3187(al)s 2(w)k 2(ays)k 3898(installed)s 4765(where)s 6(v)k 3(er)k
+5705(Lout)s 6217(is.)s 480 11341(It)m 680(is)s 884(possible)s
+1719(to)s 1952(simply)s 2652(print)s 3157(out)s 3518(one)s
+3914(or)s 4168(more)s 4709(program)s 5574(\207les)s 6017(independently)s
+7422(of)s 7687(an)s 3(y)k 8078(document.)s 0 11053(Alternati)m 6(v)k 3(ely)k 15(,)k
+1355(the)s 1715(program)s 2598(te)s 3(xt)k 3025(may)s
+3503(be)s 3798(printed)s 4545(as)s 4807(part)s 5251(of)s
+5534(a)s 5712(lar)s 4(ger)k 6337(Lout)s 6861(document.)s
+7981(Either)s 8637(w)s 2(ay)k 15(,)k 0 10765(Lout)m
+525(does)s 1028(not)s 1407(lay)s 1767(out)s 2146(the)s
+2507(programs)s 3475(in)s 3731(the)s 4092(sense)s 4679(of)s
+4964(choosing)s 5895(line)s 6322(breaks)s 7011(and)s 7428(indenting;)s
+8457(it)s 8663(uses)s 0 10477(whate)m 6(v)k 3(er)k
+942(line)s 1371(breaks)s 2061(and)s 2480(indenting)s 3452(you)s
+3882(gi)s 6(v)k 3(e)k 4356(to)s 4610(the)s
+4973(program.)s 5962(What)s 6555(Lout)s 7082(does)s 7587(do)s
+7895(is)s 8120(cope)s 8644(with)s 0 10189(characters)m 1044(in)s
+1313(the)s 1688(program)s 2584(te)s 3(xt)k 3026(that)s
+3470(it)s 3689(w)s 2(ould)k 4370(ordinarily)s 5393(either)s
+6022(reject)s 6638(or)s 6923(interpret)s 7818(in)s 8087(some)s
+8675(w)s 2(ay)k 0 9901(\(braces)m 729(and)s 1121(so)s
+1375(on\),)s 1790(ensuring)s 2655(that)s 3061(you)s 3464(can)s
+3842(include)s 4590(program)s 5448(te)s 3(xts)k 5936(with)s
+6406(absolutely)s 7431(no)s 7712(modi\207cations;)s 0 9613(plus,)m 506(if)s
+723(you)s 1138(wish,)s 1697(Lout)s 2209(will)s 2635(print)s
+3146(k)s 2(e)k 3(yw)k 2(ords)k 4121(in)s
+4364(bold,)s 4897(identi\207ers)s 5903(in)s 6146(italics,)s 6822(add)s
+7226(line)s 7640(numbers,)s 8571(etc.)s 480 9239(At)m 779(the)s
+1127(time)s 1607(of)s 1878(writing,)s 2675(the)s 3023(a)s 4(v)k 6(ailable)k
+3931(programming)s 5286(languages)s 6294(are:)s 1808 12 0 12 240 288 60 635 8599 LoutGr2
+LoutBox ltblblack
+grestore
+
+grestore
+240 fnt90 779 8703(Langua)m 2(g)k 2(e)k
+1787(name)s gsave
+2443 8599 translate
+240 fnt82 1730 12 0 12 240 288 60 LoutGraphic
+gsave
+LoutBox ltblblack
+grestore
+
+grestore
+2587(Setup)s 3172(\207le)s 3517(name)s gsave
+4173 8599 translate
+240 fnt82 1469 12 0 12 240 288 60 LoutGraphic
+gsave
+LoutBox ltblblack
+grestore
+
+grestore
+4317(Lout)s
+4820(symbol)s gsave
+5642 8599 translate
+240 fnt82 1499 12 0 12 240 288 60 LoutGraphic
+gsave
+LoutBox ltblblack
+grestore
+
+grestore
+5786(Default)s 6567(style)s gsave
+7141 8599 translate
+240 fnt82 1290 12 0 12 240 288 60 LoutGraphic
+gsave
+LoutBox ltblblack
+grestore
+
+grestore
+7285(`)s 7419(')s
+7548(escapes)s 240 fnt82 779 8413(C,)m 1046(C++)s 220 fnt35
+2587 8410(cpr)m -3(int)k 4317(@CP)s 5786(\207x)s 6(ed)k
+240 fnt82 7285 8413(No)m 779 8125(Eif)m 6(fel)k 220 fnt35
+2587 8122(eiff)m 6(el)k 4317(@Eiff)s 6(el)k 5786(v)s 5(ar)k -6(ying)k
+240 fnt82 7285 8125(Y)m 24(es)k 779 7837(Blue)m 220 fnt35
+2587 7834(b)m 4(lue)k 4317(@Blue)s 5786(v)s 5(ar)k -6(ying)k
+240 fnt82 7285 7837(Y)m 24(es)k 779 7549(Perl)m 220 fnt35
+2587 7546(per)m -3(l)k 4317(@P)s 11(er)k -3(l)k
+5786(\207x)s 6(ed)k 240 fnt82 7285 7549(No)m 779 7261(Pod)m
+220 fnt35 2587 7258(pod)m 4317(@P)s 11(od)k 5786(v)s 5(ar)k -6(ying)k
+240 fnt82 7285 7261(No)m 0 6720(C)m 213(and)s 619(C++)s
+1103(are)s 1452(handled)s 2270(together)s 3114(since,)s 3714(for)s
+4054(formatting)s 5116(purposes,)s 6076(the)s 3(y)k 6540(dif)s 6(fer)k
+7125(only)s 7607(in)s 7851(that)s 8271(C++)s 8756(has)s
+0 6432(some)m 558(additional)s 1566(k)s 2(e)k 3(yw)k 2(ords)k
+2538(plus)s 2985(an)s 3265(e)s 3(xtra)k 3796(w)s 2(ay)k
+4244(to)s 4480(mak)s 2(e)k 5049(comments.)s 6193(Whene)s 6(v)k 3(er)k
+7224(we)s 7556(mention)s 8394(C)s 8602(from)s 0 6144(no)m 6(w)k
+465(on,)s 816(we)s 1156(mean)s 1735(both)s 2223(C)s
+2439(and)s 2848(C++.)s 3446(See)s 3852(Section)s 4630(1.11)s
+5089(for)s 5432(more)s 5983(on)s 6285(Perl)s 6728(and)s
+7137(its)s 7417(handmaiden)s 8649(Pod.)s 0 5856(The)m 428(second)s
+1151(to)s 1390(\207fth)s 1845(columns)s 2707(of)s 2978(this)s
+3374(table)s 3894(will)s 4320(be)s 4602(e)s 3(xplained)k
+5587(at)s 5819(v)s 6(arious)k 6568(points)s 7204(later)s
+7687(in)s 7930(this)s 8326(chapter)s 13(.)k 480 5482(The)m
+913(list)s 1270(of)s 1547(languages)s 2560(is)s 2776(lik)s 2(ely)k
+3378(to)s 3623(e)s 3(xpand,)k 4424(because)s 5243(the)s
+220 fnt35 5597 5479(prg2lout)m 240 fnt82 6450 5482(program)m 7326(has)s
+7702(been)s 8217(designed)s 0 5194(to)m 252(mak)s 2(e)k
+838(it)s 1044(relati)s 6(v)k 3(ely)k 2004(easy)s
+2497(to)s 2750(add)s 3168(ne)s 6(w)k 3629(languages)s
+4651(\(you)s 5159(don')s 4(t)k 5734(ha)s 4(v)k 3(e)k
+6249(to)s 6502(write)s 7062(e)s 3(x)k 3(ecutable)k
+8148(code,)s 8721(just)s 0 4906(declare)m 768(a)s 957(lot)s
+1292(of)s 1586(records)s 2363(describing)s 3435(your)s 3957(language\).)s
+5087(Consult)s 5915(the)s 6286(instructions)s 7475(at)s 7730(the)s
+8101(top)s 8483(of)s 8778(the)s 0 4618(source)m 680(\207le)s
+1041(of)s 1312(that)s 1730(program)s 2600(\()s 240 fnt83
+2673 4620(pr)m 8(g2lout.c)k 240 fnt82 3652 4618(\))m 3780(if)s
+3997(you)s 4412(w)s 2(ant)k 4935(to)s 5174(try)s
+5493(it)s 5685(yourself.)s 240 fnt84 0 3825(1.1.)m 471(T)s 17(ypesetting)k
+1705(computer)s 2745(pr)s 4(ograms)k 3792(independently)s 5295(of)s
+5567(any)s 5996(document)s 240 fnt82 480 3348(Printing)m 1299(of)s
+1566(program)s 2432(\207les)s 2876(independently)s 4282(of)s 4549(an)s 3(y)k
+4942(document)s 5941(is)s 6147(accomplished)s 7516(by)s 7806(the)s
+8149(follo)s 6(wing)k 0 3060(Unix)m 534(pipeline:)s 220 fnt35
+480 2559(prg2lout -l language options \207les | lout -s > out.ps)m 240 fnt82 0 2060(where)m 220 fnt35 626 2057(language)m
+240 fnt82 1566 2060(stands)m 2201(for)s 2525(an)s 3(y)k
+2908(one)s 3296(of)s 3553(the)s 3886(programming)s 5227(language)s
+6133(names)s 6781(in)s 7010(the)s 7344(\207rst)s 7761(column)s
+8522(of)s 8778(the)s 1134 0 0 0 240 288 60 0 1553 LoutGr2
+0 0 moveto xsize 0 lineto stroke
+grestore
+
+grestore
+122 fnt82 0 1358(1)m 192 fnt82
+62 1288(Prior)m 496(to)s 693(V)s 21(ersion)k 1328(3.18)s
+1707(of)s 1928(Lout,)s 2380(this)s 2702(chapter)s 3318(described)s
+4103(ho)s 4(w)k 4477(to)s 4674(typeset)s 5268(programs)s
+6036(written)s 6628(in)s 6828(the)s 7112(C)s 7287(programming)s
+8377(language)s 0 1058(using)m 487(the)s 172 fnt35 795 1057(c2lout)m
+192 fnt82 1326 1058(\207lter)m 7(,)k 1794(and)s 2148(Eif)s 4(fel)k
+2651(programs)s 3444(using)s 3931(the)s 172 fnt35 4240 1057(eif2lout)m
+192 fnt82 4864 1058(\207lter)m 10(.)k 5375(These)s 5906(ha)s 3(v)k 2(e)k
+6338(no)s 4(w)k 6736(been)s 7174(withdra)s 2(wn)k
+8065(and)s 8419(replaced)s 0 828(by)m 172 fnt35 270 827(prg2lout)m
+192 fnt82 884 828(,)m 1005(which)s 1553(handles)s 2214(multiple)s
+2931(languages.)s 3863(Ordinary)s 4631(Lout)s 5076(documents)s 5981(require)s
+6602(no)s 6871(modi\207cations)s 7989(as)s 8223(a)s 8391(result)s
+8898(of)s 0 598(this)m 317(change.)s 192 fnt84 4490 0(1)m
+
+grestore
+
+grestore
+
+grestore
+
+pgsave restore
+showpage
+
+%%Page: 2 4
+%%BeginPageSetup
+%%PageResources: font Times-Roman
+%%+ font Times-Bold
+%%+ font Times-Italic
+%%+ font Helvetica
+/pgsave save def
+%%IncludeResource: font Times-Bold
+/Times-Boldfnt84 vec2 /Times-Bold LoutRecode
+/fnt84 { /Times-Boldfnt84 LoutFont } def
+%%IncludeResource: font Times-Italic
+/Times-Italicfnt83 vec2 /Times-Italic LoutRecode
+/fnt83 { /Times-Italicfnt83 LoutFont } def
+0.0500 dup scale 10 setlinewidth
+%%EndPageSetup
+gsave
+0 0 translate
+240 fnt82 0.0 0.0 0.0 setrgbcolor 11900 16840 0 16840 240 288 60 LoutGraphic
+gsave
+LoutPageSet
+grestore
+gsave
+0 16840 translate
+0.0000 rotate
+9066 14006 0 14006 240 288 60 1417 -15423 LoutGr2
+0 LoutMargSet
+grestore
+240 fnt84 0 13840(2)m 240 fnt83 5981 13843(Chapter)m 6831(1.)s
+7105(Computer)s 8128(Pr)s 10(o)k 2(gr)k 3(ams)k
+240 fnt82 0 13205(table)m 509(abo)s 3(v)k 3(e.)k
+1228(As)s 1533(usual)s 2082(with)s 2553(Lout,)s 3100(the)s
+3437(output)s 4098(will)s 4512(be)s 4783(a)s 4938(PostScript)s
+5968(\207le.)s 6426(Each)s 6950(input)s 7490(\207le)s 7840(will)s
+8255(be)s 3(gin)k 8829(on)s 0 12917(a)m 170(ne)s 6(w)k
+622(page)s 1135(of)s 1411(the)s 1764(output,)s 2488(starting)s
+3262(with)s 3749(its)s 4030(name)s 4609(in)s 4857(bold)s
+5346(type.)s 5927(The)s 6360(options)s 7121(pro)s 3(vide)k
+7910(control)s 8647(o)s 3(v)k 3(er)k 0 12629(the)m
+348(\207nal)s 828(appearance,)s 2010(as)s 2260(follo)s 6(ws:)k
+220 fnt35 0 12121(-p)m 240 fnt83 187 12126(style)m 240 fnt82
+960 12124(Select)m 1630(a)s 1823(printing)s 2661(style.)s 3303(Y)s 26(our)k
+3856(choices)s 4652(are)s 220 fnt35 5026 12121(-p\207x)m 6(ed)k
+240 fnt82 5667 12124(,)m 220 fnt35 5801 12121(-pv)m 5(ar)k -6(ying)k
+240 fnt82 6692 12124(,)m 6827(and)s 220 fnt35 7258 12121(-psymbol)m
+240 fnt82 8134 12124(,)m 8268(with)s 8778(the)s 960 11836(def)m 2(ault)k
+1707(v)s 6(alue)k 2302(v)s 6(arying)k 3106(with)s
+3615(the)s 3990(language)s 4936(as)s 5213(gi)s 6(v)k 3(en)k
+5820(in)s 6089(the)s 6464(fourth)s 7132(column)s 7933(of)s
+8231(the)s 8606(table)s 960 11548(abo)m 3(v)k 3(e.)k
+1690(Consult)s 2495(Section)s 3269(1.2)s 3623(for)s 3961(e)s 3(xamples)k
+4912(of)s 5183(these)s 5730(styles.)s 220 fnt35 0 11042(-n)m
+240 fnt82 960 11045(Do)m 1306(not)s 1672(print)s 2183(\207le)s
+2544(names.)s 220 fnt35 0 10539(-f)m 240 fnt83 131 10544(font)m
+240 fnt82 960 10542(Select)m 1589(a)s 1740(Lout)s 2237(font)s
+2667(f)s 2(amily)k 15(.)k 3423(The)s 3836(def)s 2(ault)k
+4542(is)s 220 fnt35 4737 10539(-fCour)m -3(ier)k 240 fnt82
+5637 10542(for)m 220 fnt35 5961 10539(-p\207x)m 6(ed)k 240 fnt82
+6602 10542(,)m 6694(and)s 220 fnt35 7083 10539(-fTimes)m 240 fnt82
+7852 10542(for)m 220 fnt35 8175 10539(-pv)m 5(ar)k -6(ying)k
+240 fnt82 960 10254(and)m 220 fnt35 1364 10251(-psymbol)m 240 fnt82
+2240 10254(.)m 220 fnt35 0 9750(-v)m 240 fnt83 182 9755(vsize)m
+240 fnt82 960 9753(Select)m 1594(an)s 1867(inter)s 4(-line)k
+2783(spacing)s 3557(size)s 3975(in)s 4208(Lout)s 4710(units.)s
+5329(The)s 5747(def)s 2(ault)k 6459(is)s 220 fnt35
+6659 9750(-v1.1fx)m 240 fnt82 7366 9753(meaning)m 8233(1.1)s 8558(times)s
+960 9465(the)m 1308(font)s 1753(size)s 2180(measured)s 3154(from)s
+3678(baseline)s 4517(to)s 4756(baseline.)s 220 fnt35 0 9007(-L)m
+240 fnt83 191 9012(number)m 240 fnt82 960 9010(Add)m 1478(line)s
+1939(numbers)s 2861(to)s 3147(the)s 3542(program)s 4459(print,)s
+5064(starting)s 5880(with)s 240 fnt83 6409 9012(number)m 240 fnt82
+7146 9010(,)m 7300(or)s 7606(1)s 7808(if)s 240 fnt83
+8072 9012(number)m 240 fnt82 8916 9010(is)m 960 8722(omitted.)m 220 fnt35
+0 8264(-S)m 240 fnt83 209 8269(\207le)m 240 fnt82 960 8267(Use)m
+240 fnt83 1389 8269(\207le)m 240 fnt82 1736 8267(as)m 1988(the)s
+2337(setup)s 2897(\207le)s 3260(for)s 3599(printing)s 4411(your)s
+4912(language.)s 5941(This)s 6419(allo)s 6(ws)k 7090(you)s
+7506(to)s 7747(change)s 8483(all)s 8778(the)s 960 7979(options)m
+1716(mentioned)s 2784(in)s 3027(subsequent)s 4151(sections,)s 5028(rather)s
+5644(than)s 6113(just)s 6518(the)s 6866(fe)s 6(w)k
+7272(gi)s 6(v)k 3(en)k 7852(here.)s 0 7474(There)m
+613(are)s 960(also)s 220 fnt35 1398 7471(-t)m 240 fnt82
+1588 7474(and)m 220 fnt35 1992 7471(-T)m 240 fnt82 2256 7474(options)m
+3012(for)s 3350(dealing)s 4107(with)s 4589(tab)s 4934(characters)s
+5952(\(Section)s 6805(1.5\).)s 240 fnt84 0 6681(1.2.)m 471(T)s 17(ypesetting)k
+1705(computer)s 2745(pr)s 4(ograms)k 3792(as)s 4059(part)s
+4557(of)s 4829(a)s 5007(lar)s 2(ger)k 5687(document)s
+240 fnt82 480 6204(When)m 1097(the)s 1432(program)s 2289(te)s 3(xts)k
+2775(are)s 3109(to)s 3336(be)s 3605(part)s 4023(of)s
+4281(a)s 4434(lar)s 4(ger)k 5034(Lout)s 5533(document,)s
+6571(the)s 6906(procedure)s 7905(is)s 8102(some)s 6(what)k
+0 5916(dif)m 6(ferent.)k 979(Y)s 26(ou)k 1421(need)s
+1931(to)s 2170(include)s 2930(the)s 3278(setup)s 3836(\207le)s
+4197(appropriate)s 5341(to)s 5580(your)s 6079(language,)s 7050(lik)s 2(e)k
+7462(this:)s 220 fnt35 480 5415(@SysInclude { cpr)m -3(int })k 480 5127(@SysInclude { doc })m
+480 4839(@Doc @T)m 26(e)k 6(xt @Begin)k 480 4551(...)m 480 4263(@End @T)m 26(e)k 6(xt)k
+240 fnt82 0 3808(The)m 220 fnt35 422 3805(cpr)m -3(int)k
+240 fnt82 1011 3808(setup)m 1563(\207le)s 1917(includes)s 2759(e)s 6(v)k 3(erything)k
+3820(needed)s 4549(to)s 4782(set)s 5101(up)s 5387(for)s
+5719(C)s 5925(program)s 6788(formatting;)s 7902(for)s 8234(the)s
+8575(other)s 0 3520(languages,)m 1064(consult)s 1815(the)s 2163(second)s
+2886(column)s 3661(of)s 3932(the)s 4280(table)s 4800(at)s
+5032(the)s 5380(start)s 5850(of)s 6121(this)s 6517(chapter)s 13(.)k
+480 3146(The)m 914(program)s 1791(te)s 3(xts)k 2297(within)s
+2972(the)s 3327(Lout)s 3846(document)s 4857(are)s 5210(enclosed)s
+6112(in)s 6362(braces)s 7030(preceded)s 7958(by)s 8259(the)s
+8614(Lout)s 0 2858(symbol)m 760(from)s 1284(the)s 1632(third)s
+2141(column)s 2916(of)s 3187(the)s 3535(table,)s 4106(lik)s 2(e)k
+4518(this)s 4914(for)s 5252(the)s 5600(C)s 5812(language:)s
+
+grestore
+
+grestore
+
+grestore
+
+pgsave restore
+showpage
+
+%%Page: 3 5
+%%BeginPageSetup
+%%PageResources: font Times-Roman
+%%+ font Times-Italic
+%%+ font Times-Bold
+%%+ font Helvetica
+%%+ font Courier
+/pgsave save def
+%%IncludeResource: font Times-Italic
+/Times-Italicfnt83 vec2 /Times-Italic LoutRecode
+/fnt83 { /Times-Italicfnt83 LoutFont } def
+%%IncludeResource: font Times-Bold
+/Times-Boldfnt84 vec2 /Times-Bold LoutRecode
+/fnt84 { /Times-Boldfnt84 LoutFont } def
+%%IncludeResource: font Courier
+/Courierfnt29 vec2 /Courier LoutRecode
+/fnt29 { /Courierfnt29 LoutFont } def
+0.0500 dup scale 10 setlinewidth
+%%EndPageSetup
+gsave
+0 0 translate
+240 fnt82 0.0 0.0 0.0 setrgbcolor 11900 16840 0 16840 240 288 60 LoutGraphic
+gsave
+LoutPageSet
+grestore
+gsave
+0 16840 translate
+0.0000 rotate
+9066 14006 0 14006 240 288 60 1417 -15423 LoutGr2
+1 LoutMargSet
+grestore
+240 fnt83 0 13843(1.2.)m 454(T)s 17(ypesetting)k 1593(computer)s
+2562(pr)s 10(o)k 2(gr)k 3(ams)k 3534(as)s
+3802(part)s 4265(of)s 4546(a)s 4721(lar)s 8(g)k 2(er)k
+5374(document)s 240 fnt84 8953 13840(3)m 220 fnt35 480 13207(@IndentedDispla)m 6(y @CP {)k
+480 12919(#include <stdio)m 8(.h>)k 480 12343(treepr)m -3(int\(p\) /* pr)k -3(int tree p recursiv)k 5(ely */)k
+480 12055(str)m -3(uct tnode *p;)k 480 11767({)m 480 11479( if \(p != NULL\) {)m 480 11191( treepr)m -3(int\(p->left\);)k
+480 10903( pr)m -3(intf\("%4d %s\\n", p->count, p->w)k 2(ord\);)k 480 10615( treepr)m -3(int\(p->r)k -3(ight\);)k
+480 10327( })m 480 10039(})m 480 9751(})m 240 fnt82 0 9257(Although)m
+962(computer)s 1925(programs)s 2879(violate)s 3584(the)s 3932(rules)s
+4447(of)s 4718(le)s 3(g)k 1(al)k 5232(Lout)s
+5744(input)s 6296(in)s 6539(man)s 3(y)k 7121(w)s 2(ays,)k
+7718(these)s 8265(rules)s 8779(are)s 0 8969(suspended)m 1042(by)s
+1322(the)s 220 fnt35 1655 8966(@CP)m 240 fnt82 2173 8969(,)m
+220 fnt35 2266 8966(@Eiff)m 6(el)k 240 fnt82 3000 8969(etc.)m
+3368(symbols,A)s 4441(allo)s 6(wing)k 5311(the)s 5645(program)s
+6500(te)s 3(xt)k 6901(to)s 7125(be)s 7393(incorporated)s
+8644(with)s 0 8681(absolutely)m 1037(no)s 1330(modi\207cations.)s 2796(The)s
+3224(result)s 3814(is)s 220 fnt29 480 8198(#include)m 1668(<stdio.h>)s
+480 7622(treeprint\(p\))m 3120(/*)s 3516(print)s 4308(tree)s 4968(p)s
+5232(recursively)s 6816(*/)s 480 7334(struct)m 1404(tnode)s 2196 7291(*)m
+2328 7334(p;)m 480 7046({)m 1536 6758(if)m 1932(\(p)s 2328(!=)s
+2724(NULL\))s 3516({)s 2592 6470(treeprint\(p->left\);)m 2592 6182(printf\("%4d)m 4176(%s\\n",)s
+5100(p->count,)s 6420(p->word\);)s 2592 5894(treeprint\(p->right\);)m 1536 5606(})m 480 5318(})m
+240 fnt82 0 4843(W)m 19(e)k 393(ha)s 4(v)k 3(e)k
+919(chosen)s 1665(to)s 1929(use)s 2328(the)s 220 fnt35
+2701 4840(@IndentedDispla)m 6(y)k 240 fnt82 4572 4843(symbol)m 5357(from)s
+5905(Section)s 6704(??)s 6993(to)s 7257(obtain)s 7936(an)s
+8244(indented)s 0 4555(display)m 15(,)k 780(b)s 4(ut)k
+1138(in)s 1378(f)s 2(act)k 220 fnt35 1789 4552(@CP)m
+240 fnt82 2307 4555(,)m 220 fnt35 2411 4552(@Eiff)m 6(el)k
+240 fnt82 3156 4555(and)m 3557(the)s 3901(rest)s 4301(may)s
+4764(appear)s 5457(an)s 3(ywhere)k 6437(at)s 6665(all:)s
+7066(the)s 7410(result)s 7997(is)s 8203(an)s 8482(object)s
+0 4267(in)m 247(the)s 599(usual)s 1163(w)s 2(ay)k 15(,)k
+1656(which)s 2302(may)s 2772(go)s 3069(an)s 3(ywhere.)k
+4164(When)s 4797(including)s 5758(a)s 5928(program)s 6802(te)s 3(xt)k
+7221(within)s 7893(a)s 8063(paragraph,)s 0 3979(use)m 220 fnt35
+365 3976(@OneCol @CP { ...)m 13( })k 240 fnt82 2459 3979(\(or)m 220 fnt35
+2787 3976(@OneCol @Eiff)m 6(el { ...)k 13( })k 240 fnt82 5057 3979(etc.)m
+5429(for)s 5757(other)s 6298(languages\))s 7373(to)s 7602(pre)s 6(v)k 3(ent)k
+8360(it)s 8541(being)s 0 3691(brok)m 2(en)k 720(across)s
+1368(tw)s 2(o)k 1778(lines,)s 2336(if)s 2553(desired.)s
+480 3317(In)m 732(cases)s 1282(where)s 1917(the)s 2260(program)s
+3125(te)s 3(xt)k 3535(has)s 3900(unbalanced)s 5043(braces,)s
+5755(it)s 5942(is)s 6147(necessary)s 7125(to)s 7359(use)s
+7729(the)s 8072(alternati)s 6(v)k 3(e)k 0 3029(form)m
+220 fnt35 514 3026(@CP @Begin ...)m 13( @End @CP)k 240 fnt82 3418 3029(\(or)m
+3746(the)s 4083(equi)s 6(v)k 6(alent)k 5117(for)s
+5444(other)s 5984(languages\),)s 7117(so)s 7372(that)s 7780(Lout)s
+8281(does)s 8760(not)s 0 2741(confuse)m 793(program)s 1656(braces)s
+2309(with)s 2784(Lout)s 3288(braces.)s 4055(In)s 4303(that)s
+4714(case)s 5173(the)s 5514(program)s 6376(te)s 3(xt)k
+6784(must)s 7301(not)s 7660(contain)s 220 fnt35 8413 2738(@End)m
+240 fnt82 9014 2741(;)m 0 2453(and)m 412(in)s 663(either)s
+1275(case)s 1750(the)s 2106(program)s 2985(te)s 3(xt)k
+3408(must)s 3941(not)s 4316(include)s 220 fnt35 5084 2450(@Include)m
+240 fnt82 6074 2453(or)m 220 fnt35 6342 2450(@SysInclude)m 240 fnt82
+7698 2453(unless)m 8355(you)s 8779(are)s 0 2165(really)m 597(including)s
+1554(a)s 1720(\207le)s 2081(at)s 2313(that)s 2731(point)s
+3283(\(Section)s 4136(1.9\).)s 480 1791(If)m 763(your)s 1316(Lout)s
+1882(document)s 2939(contains)s 3841(program)s 4765(te)s 3(xts)k
+5317(in)s 5614(se)s 6(v)k 3(eral)k 6390(languages,)s
+7507(simply)s 8266(add)s 8724(one)s 220 fnt35 0 1500(@SysInclude)m
+240 fnt82 1342 1503(line)m 1749(for)s 2080(each)s 2569(of)s
+2833(them)s 3364(and)s 3761(proceed)s 4570(as)s 4813(before.)s
+5580(If)s 5803(your)s 6296(programming)s 7644(language)s 8557(is)s
+8760(not)s 0 1215(currently)m 916(supported,)s 1967(a)s 2133(viable)s
+2773(alternati)s 6(v)k 3(e)k 3827(is)s 220 fnt35
+480 714(@F @V)m 17(erbatim { ...)k 13( })k 240 fnt82 0 220(These)m
+612(symbols)s 1445(cause)s 2017(the)s 2349(te)s 3(xt)k
+2749(between)s 3587(braces)s 4233(to)s 4456(be)s 4722(set)s
+5032(v)s 3(erbatim)k 5922(in)s 6150(a)s 6300(\207x)s 3(ed-)k
+6844(width)s 7431(font,)s 7907(as)s 8141(e)s 3(xplained)k
+
+grestore
+
+grestore
+
+grestore
+
+pgsave restore
+showpage
+
+%%Page: 4 6
+%%BeginPageSetup
+%%PageResources: font Times-Roman
+%%+ font Times-Bold
+%%+ font Times-Italic
+%%+ font Helvetica
+/pgsave save def
+%%IncludeResource: font Times-Bold
+/Times-Boldfnt84 vec2 /Times-Bold LoutRecode
+/fnt84 { /Times-Boldfnt84 LoutFont } def
+%%IncludeResource: font Times-Italic
+/Times-Italicfnt83 vec2 /Times-Italic LoutRecode
+/fnt83 { /Times-Italicfnt83 LoutFont } def
+0.0500 dup scale 10 setlinewidth
+%%EndPageSetup
+gsave
+0 0 translate
+240 fnt82 0.0 0.0 0.0 setrgbcolor 11900 16840 0 16840 240 288 60 LoutGraphic
+gsave
+LoutPageSet
+grestore
+gsave
+0 16840 translate
+0.0000 rotate
+9066 14006 0 14006 240 288 60 1417 -15423 LoutGr2
+0 LoutMargSet
+grestore
+240 fnt84 0 13840(4)m 240 fnt83 5981 13843(Chapter)m 6831(1.)s
+7105(Computer)s 8128(Pr)s 10(o)k 2(gr)k 3(ams)k
+240 fnt82 0 13205(else)m 6(where)k 1008(in)s 1254(this)s
+1653(guide.)s 2352(This)s 2831(f)s 2(allback)k 3662(method)s
+4442(will)s 4871(not)s 5240(handle)s 5937(tab)s 6285(and)s
+6692(formfeed)s 7628(characters)s 8650(v)s 3(ery)k 0 12917(well.)m
+571(Ag)s 1(ain,)k 1257(use)s 220 fnt35 1628 12914(@V)m 17(erbatim @Begin ...)k 13( @End @V)k 17(erbatim)k
+240 fnt82 5645 12917(if)m 5858(your)s 6352(program)s 7218(te)s 3(xt)k
+7628(contains)s 8471(unbal)s 8998(-)s 0 12629(anced)m 616(braces.)s
+240 fnt84 0 11886(1.3.)m 471(Changing)s 1525(the)s 1899(appearance)s
+3138(of)s 3410(a)s 3588(pr)s 4(ogram)k 240 fnt82
+480 11409(The)m 220 fnt35 915 11406(@CP)m 240 fnt82 1433 11409(,)m
+220 fnt35 1548 11406(@Eiff)m 6(el)k 240 fnt82 2305 11409(etc.)m
+2695(symbols)s 3551(ha)s 4(v)k 3(e)k 4060(a)s
+4234(number)s 5033(of)s 5312(options)s 6075(for)s 6421(changing)s
+7360(the)s 7716(appearance)s 8855(of)s 0 11121(the)m 357(printed)s
+1102(program.)s 2086(These)s 2723(options)s 3489(are)s 3846(the)s
+4204(same)s 4761(for)s 5109(all)s 5412(symbols,)s 6327(although)s
+7232(their)s 7739(def)s 2(ault)k 8470(v)s 6(alues)k
+0 10833(may)m 468(v)s 6(ary)k 15(.)k 1039(The)s
+220 fnt35 1470 10830(style)m 240 fnt82 1976 10833(option)m 2648(changes)s
+3473(the)s 3824(printing)s 4637(style;)s 5203(its)s 5482(v)s 6(alue)k
+6053(may)s 6522(be)s 220 fnt35 6807 10830(\207x)m 6(ed)k
+240 fnt82 7316 10833(\(\207x)m 3(ed-width)k 8555(font\),)s 220 fnt35
+0 10542(v)m 5(ar)k -6(ying)k 240 fnt82 777 10545(\(v)m 6(arying-width)k
+2284(font\),)s 2876(or)s 220 fnt35 3157 10542(symbol)m 240 fnt82
+3919 10545(\(v)m 6(arying-width)k 5426(font)s 5892(with)s 6396(mathematical)s
+7758(symbols)s 8629(used)s 0 10257(for)m 342(some)s 907(operators\).)s
+2043(Its)s 2336(def)s 2(ault)k 3061(v)s 6(alue)k
+3633(depends)s 4473(on)s 4774(the)s 5126(language,)s 6101(and)s
+6509(may)s 6979(be)s 7265(found)s 7886(in)s 8133(the)s
+8485(fourth)s 0 9969(column)m 775(of)s 1045(the)s 1392(table)s
+1911(at)s 2143(the)s 2490(start)s 2959(of)s 3229(this)s
+3624(chapter)s 13(.)k 4478(The)s 4905(e)s 3(xample)k
+5767(in)s 6009(the)s 6357(pre)s 6(vious)k 7225(section)s
+7958(w)s 2(as)k 8378(in)s 220 fnt35 8620 9966(\207x)m 6(ed)k
+240 fnt82 0 9681(style;)m 563(we)s 898(can)s 1287(switch)s
+1968(styles)s 2563(lik)s 2(e)k 2975(this:)s 220 fnt35
+480 9180(@CP)m 480 8892( style { v)m 5(ar)k -6(ying })k 480 8604({)m
+480 8316(#include <stdio)m 8(.h>)k 480 7740(treepr)m -3(int\(p\) /* pr)k -3(int tree p recursiv)k 5(ely */)k
+480 7452(str)m -3(uct tnode *p;)k 480 7164({)m 480 6876( if \(p != NULL\) {)m 480 6588( treepr)m -3(int\(p->left\);)k
+480 6300( pr)m -3(intf\("%4d %s\\n", p->count, p->w)k 2(ord\);)k 480 6012( treepr)m -3(int\(p->r)k -3(ight\);)k
+480 5724( })m 480 5436(})m 480 5148(})m 240 fnt82 0 4654(The)m
+428(result)s 1018(in)s 1261(this)s 1657(case)s 2124(will)s
+2550(be)s 480 4198(#)m 240 fnt83 600 4200(include)m 240 fnt82
+1357 4198(<)m 240 fnt83 1486 4200(stdio)m 240 fnt82 1944 4198(.)m
+240 fnt83 1988 4200(h)m 240 fnt82 2103 4198(>)m 240 fnt83
+480 3624(tr)m 8(eeprint)k 240 fnt82 1312 3622(\()m 240 fnt83
+1385 3624(p)m 240 fnt82 1498 3622(\))m 2046(/*)s 2276(print)s
+2787(tree)s 3200(p)s 3373(recursi)s 6(v)k 3(ely)k
+4479(*/)s 240 fnt84 480 3333(struct)m 240 fnt83 1136 3336(tnode)m
+240 fnt82 1721 3280(*)m 240 fnt83 1825 3336(p)m 240 fnt82
+1938 3334(;)m 480 3046({)m 240 fnt84 960 2757(if)m 240 fnt82
+1178 2758(\()m 240 fnt83 1251 2760(p)m 240 fnt82 1424 2758(!=)m
+240 fnt83 1691 2760(NULL)m 240 fnt82 2290 2758(\))m 2418({)s
+240 fnt83 1440 2472(tr)m 8(eeprint)k 240 fnt82 2272 2470(\()m
+240 fnt83 2345 2472(p)m 240 fnt82 2458 2470(->)m 240 fnt83
+2666 2472(left)m 240 fnt82 2974 2470(\);)m 240 fnt83 1440 2184(printf)m
+240 fnt82 2006 2182(\()m 240 fnt83 2079 2184("%4d)m 2684(%s\\n")s
+240 fnt82 3264 2182(,)m 240 fnt83 3371 2184(p)m 240 fnt82
+3484 2182(->)m 240 fnt83 3692 2184(count)m 240 fnt82 4228 2182(,)m
+240 fnt83 4335 2184(p)m 240 fnt82 4448 2182(->)m 240 fnt83
+4656 2184(wor)m 8(d)k 240 fnt82 5147 2182(\);)m 240 fnt83
+1440 1896(tr)m 8(eeprint)k 240 fnt82 2272 1894(\()m 240 fnt83
+2345 1896(p)m 240 fnt82 2458 1894(->)m 240 fnt83 2666 1896(right)m
+240 fnt82 3135 1894(\);)m 960 1606(})m 480 1318(})m 0 824(If)m
+230(we)s 565(use)s 220 fnt35 940 821(style { symbol })m 240 fnt82
+2466 824(we)m 2801(get)s 3153(this:)s
+grestore
+
+grestore
+
+grestore
+
+pgsave restore
+showpage
+
+%%Page: 5 7
+%%BeginPageSetup
+%%PageResources: font Times-Roman
+%%+ font Times-Italic
+%%+ font Times-Bold
+%%+ font Symbol
+%%+ font Helvetica
+/pgsave save def
+%%IncludeResource: font Times-Italic
+/Times-Italicfnt83 vec2 /Times-Italic LoutRecode
+/fnt83 { /Times-Italicfnt83 LoutFont } def
+%%IncludeResource: font Times-Bold
+/Times-Boldfnt84 vec2 /Times-Bold LoutRecode
+/fnt84 { /Times-Boldfnt84 LoutFont } def
+0.0500 dup scale 10 setlinewidth
+%%EndPageSetup
+gsave
+0 0 translate
+240 fnt82 0.0 0.0 0.0 setrgbcolor 11900 16840 0 16840 240 288 60 LoutGraphic
+gsave
+LoutPageSet
+grestore
+gsave
+0 16840 translate
+0.0000 rotate
+9066 14006 0 14006 240 288 60 1417 -15423 LoutGr2
+1 LoutMargSet
+grestore
+240 fnt83 0 13843(1.3.)m 454(Changing)s 1454(the)s 1799(appear)s 3(ance)k
+2980(of)s 3261(a)s 3436(pr)s 10(o)k 2(gr)k 3(am)k
+240 fnt84 8953 13840(5)m 240 fnt82 480 13203(#)m 240 fnt83
+600 13205(include)m 240 fnt78 1357 13197(<)m 240 fnt83 1482 13205(stdio)m
+240 fnt82 1940 13203(.)m 240 fnt83 1984 13205(h)m 240 fnt78
+2099 13197(>)m 240 fnt83 480 12629(tr)m 8(eeprint)k 240 fnt82
+1312 12627(\()m 240 fnt83 1385 12629(p)m 240 fnt82 1498 12627(\))m
+2046(/*)s 2276(print)s 2787(tree)s 3200(p)s 3373(recursi)s 6(v)k 3(ely)k
+4479(*/)s 240 fnt84 480 12338(struct)m 240 fnt83 1136 12341(tnode)m
+240 fnt82 1721 12285(*)m 240 fnt83 1825 12341(p)m 240 fnt82
+1938 12339(;)m 480 12051({)m 240 fnt84 960 11762(if)m 240 fnt82
+1178 11763(\()m 240 fnt83 1251 11765(p)m 240 fnt78 1424 11757(\271)m
+240 fnt83 1613 11765(NULL)m 240 fnt82 2212 11763(\))m 2340({)s
+240 fnt83 1440 11477(tr)m 8(eeprint)k 240 fnt82 2272 11475(\()m
+240 fnt83 2345 11477(p)m 240 fnt78 2458 11469(\256)m 240 fnt83
+2688 11477(left)m 240 fnt82 2996 11475(\);)m 240 fnt83 1440 11189(printf)m
+240 fnt82 2006 11187(\()m 240 fnt83 2079 11189("%4d)m 2684(%s\\n")s
+240 fnt82 3264 11187(,)m 240 fnt83 3371 11189(p)m 240 fnt78
+3484 11181(\256)m 240 fnt83 3714 11189(count)m 240 fnt82 4250 11187(,)m
+240 fnt83 4357 11189(p)m 240 fnt78 4470 11181(\256)m 240 fnt83
+4700 11189(wor)m 8(d)k 240 fnt82 5191 11187(\);)m 240 fnt83
+1440 10901(tr)m 8(eeprint)k 240 fnt82 2272 10899(\()m 240 fnt83
+2345 10901(p)m 240 fnt78 2458 10893(\256)m 240 fnt83 2688 10901(right)m
+240 fnt82 3157 10899(\);)m 960 10611(})m 480 10323(})m 0 9829(with)m
+482(mathematical)s 1823(symbols)s 2672(replacing)s 3614(some)s 4175(of)s
+4446(the)s 4794(operators.)s 480 9455(The)m 220 fnt35 901 9452(@CP)m
+240 fnt82 1419 9455(,)m 220 fnt35 1519 9452(@Eiff)m 6(el)k
+240 fnt82 2261 9455(etc.)m 2636(symbols)s 3478(ha)s 4(v)k 3(e)k
+3972(additional)s 4976(options)s 5725(which)s 6360(allo)s 6(w)k
+6932(a)s 7091(\207ner)s 7582(control)s 8307(o)s 3(v)k 3(er)k
+8778(the)s 0 9167(style.)m 615(Here)s 1135(the)s 3(y)k
+1598(all)s 1891(are,)s 2289(with)s 2771(their)s 3268(def)s 2(ault)k
+3989(v)s 6(alues:)k 220 fnt35 480 8666(@CP [ or @Eiff)m 6(el, @Blue)k 3(, etc.)k 13( ])k
+480 8378( style { \207x)m 6(ed })k 480 8090( n)m 2(umbered { No })k 480 7802( f)m 6(ont { Cour)k -3(ier })k
+480 7514( siz)m 3(e { -1.0p })k 480 7226( line { 1.0vx })m 480 6938( tabin { 8 })m 480 6650( tabout { 8s })m
+480 6362( identi\207ers { Base })m 480 6074( k)m 4(e)k 4(yw)k 2(ords { Base })k
+480 5786( oper)m 2(ators { Base })k 480 5498( n)m 2(umbers { Base })k 480 5210( str)m -3(ings { Base })k
+480 4922( comments { Base })m 480 4634({)m 480 4346( ...)m 480 4058(})m 240 fnt82
+0 3564(W)m 19(e)k 387(are)s 753(already)s 1529(f)s 2(amiliar)k
+2360(with)s 220 fnt35 2861 3561(style)m 240 fnt82 3304 3564(.)m
+3487(After)s 4069(that)s 4506(comes)s 220 fnt35 5187 3561(n)m 2(umbered)k
+240 fnt82 6161 3564(,)m 6287(whose)s 6974(v)s 6(alue)k
+7561(may)s 8046(be)s 220 fnt35 8347 3561(No)m 240 fnt82
+8699 3564(\(the)m 0 3276(def)m 2(ault\),)k 220 fnt35 842 3273(Y)m 30(es)k
+240 fnt82 1183 3276(,)m 1285(or)s 1538(a)s 1699(number)s 9(,)k
+2522(and)s 2921(which)s 3557(determines)s 4651(whether)s 5475(or)s
+5729(not)s 6089(line)s 6498(numbers)s 7367(are)s 7709(to)s
+7942(be)s 8219(added)s 8843(an)s 0 2988(if)m 217(so)s
+482(the)s 829(v)s 6(alue)k 1397(of)s 1667(the)s
+2014(\207rst)s 2444(one.)s 2954(Ne)s 3(xt)k 3475(we)s
+3809(ha)s 4(v)k 3(e)k 220 fnt35 4309 2985(f)m 6(ont)k
+240 fnt82 4665 2988(,)m 4772(which)s 5413(determines)s 6511(the)s
+6858(font)s 7303(f)s 2(amily)k 7977(to)s 8215(use,)s
+220 fnt35 8640 2985(siz)m 3(e)k 240 fnt82 9019 2988(,)m
+0 2700(the)m 347(font)s 791(size)s 1217(to)s 1455(use,)s
+1880(and)s 220 fnt35 2283 2697(line)m 240 fnt82 2615 2700(,)m
+2721(the)s 3068(inter)s 4(-line)k 3992(spacing.)s 4886(The)s
+5313(def)s 2(ault)k 6033(v)s 6(alue)k 6600(for)s
+220 fnt35 6937 2697(siz)m 3(e)k 240 fnt82 7375 2700(asks)m
+7837(for)s 8174(one)s 8574(point)s 0 2412(smaller)m 765(than)s
+1238(in)s 1485(the)s 1837(surrounding)s 3051(document;)s 4111(this)s
+4511(w)s 2(as)k 4936(done)s 5462(to)s 5705(compensate)s
+6894(for)s 7236(Courier')s 13(s)k 8180(relati)s 6(v)k 3(ely)k
+0 2124(lar)m 4(ge)k 529(appearance)s 1660(compared)s 2661(to)s
+2900(other)s 3451(fonts)s 3980(of)s 4251(the)s 4599(same)s
+5146(nominal)s 5985(size.)s 480 1750(The)m 220 fnt35 919 1747(tabin)m
+240 fnt82 1451 1750(and)m 220 fnt35 1866 1747(tabout)m 240 fnt82
+2543 1750(options)m 3310(are)s 3668(the)s 4027(subject)s 4775(of)s
+5057(Section)s 5842(1.5.)s 6317(After)s 6891(them)s 7440(come)s
+8025(six)s 8370(options)s 0 1462(gi)m 6(ving)k 701(the)s
+1091(particular)s 2107(font)s 2594(f)s 2(aces)k 3175(in)s
+3461(which)s 4145(to)s 4426(print)s 4979(identi\207ers,)s 6083(k)s 2(e)k 3(yw)k 2(ords,)k
+7156(operators,)s 8195(numbers,)s 0 1174(strings,)m 741(and)s 1141(comments.)s
+220 fnt35 2285 1171(Base)m 240 fnt82 2833 1174(means)m 3492(the)s
+3836(basic)s 4377(f)s 2(ace;)k 4880(other)s 5428(commonly)s
+6502(a)s 4(v)k 6(ailable)k 7407(choices)s 8171(are)s
+220 fnt35 8514 1171(Slope)m 240 fnt82 0 886(and)m 220 fnt35
+415 883(Bold)m 240 fnt82 841 886(.)m 1016(These)s 1654(options)s
+2421(may)s 2898(all)s 3202(be)s 3495(set)s 3831(to)s
+4081(dif)s 6(ferent)k 4967(f)s 2(aces)k 5517(if)s
+5745(desired.)s 6610(The)s 7049(def)s 2(ault)k 7781(v)s 6(alues)k
+8449(sho)s 6(wn)k 0 598(are)m 347(correct)s 1069(for)s
+220 fnt35 1407 595(style { \207x)m 6(ed })k 240 fnt82 2696 598(only;)m
+3234(the)s 3582(other)s 4133(styles)s 4728(ha)s 4(v)k 3(e)k
+5229(other)s 5780(def)s 2(aults)k 6585(\(Section)s 7438(1.4\).)s
+
+grestore
+
+grestore
+
+grestore
+
+pgsave restore
+showpage
+
+%%Page: 6 8
+%%BeginPageSetup
+%%PageResources: font Times-Roman
+%%+ font Times-Bold
+%%+ font Times-Italic
+%%+ font Helvetica
+/pgsave save def
+%%IncludeResource: font Times-Bold
+/Times-Boldfnt84 vec2 /Times-Bold LoutRecode
+/fnt84 { /Times-Boldfnt84 LoutFont } def
+%%IncludeResource: font Times-Italic
+/Times-Italicfnt83 vec2 /Times-Italic LoutRecode
+/fnt83 { /Times-Italicfnt83 LoutFont } def
+0.0500 dup scale 10 setlinewidth
+%%EndPageSetup
+gsave
+0 0 translate
+240 fnt82 0.0 0.0 0.0 setrgbcolor 11900 16840 0 16840 240 288 60 LoutGraphic
+gsave
+LoutPageSet
+grestore
+gsave
+0 16840 translate
+0.0000 rotate
+9066 14006 0 14006 240 288 60 1417 -15423 LoutGr2
+0 LoutMargSet
+grestore
+240 fnt84 0 13840(6)m 240 fnt83 5981 13843(Chapter)m 6831(1.)s
+7105(Computer)s 8128(Pr)s 10(o)k 2(gr)k 3(ams)k
+240 fnt84 0 13203(1.4.)m 471(Changing)s 1525(the)s 1899(appearance)s
+3138(of)s 3410(all)s 3717(pr)s 4(ograms)k 4764(simultaneously)s
+240 fnt82 480 12726(W)m 19(e)k 853(ha)s 4(v)k 3(e)k
+1358(just)s 1767(seen)s 2253(that)s 2675(the)s 220 fnt35
+3027 12723(@CP)m 240 fnt82 3545 12726(,)m 220 fnt35 3656 12723(@Eiff)m 6(el)k
+240 fnt82 4409 12726(etc.)m 4795(symbols)s 5648(ha)s 4(v)k 3(e)k
+6153(man)s 3(y)k 6740(options)s 7500(for)s 7842(changing)s
+8778(the)s 0 12438(appearance)m 1130(of)s 1399(the)s 1746(program)s
+2614(te)s 3(xt.)k 3131(Ho)s 6(we)k 6(v)k 3(er)k 9(,)k
+4090(most)s 4613(people)s 5306(w)s 2(ould)k 5959(not)s
+6323(w)s 2(ant)k 6845(to)s 7082(ha)s 4(v)k 3(e)k
+7582(a)s 7746(dif)s 6(ferent)k 8619(style)s 0 12150(for)m
+333(e)s 6(v)k 3(ery)k 903(program)s 1768(te)s 3(xt)k
+2177(in)s 2415(their)s 2906(document;)s 3957(the)s 3(y)k
+4414(w)s 2(ant)k 4931(to)s 5165(de\207ne)s 5800(the)s
+6143(style)s 6644(once)s 7147(at)s 7373(the)s 7716(start,)s
+8227(and)s 8625(ha)s 4(v)k 3(e)k 0 11862(all)m
+281(their)s 765(program)s 1622(te)s 3(xts)k 2109(come)s
+2670(out)s 3023(in)s 3254(that)s 3659(style)s 4153(without)s
+4932(laboriously)s 6049(setting)s 6726(options)s 7470(on)s 7754(e)s 6(v)k 3(ery)k
+8317(symbol.)s 0 11574(Y)m 26(ou)k 442(do)s 735(this)s
+1131(by)s 1425(cop)s 2(ying)k 2248(the)s 2596(setup)s
+3154(\207le)s 3515(and)s 3919(changing)s 4850(it.)s 480 11200(F)m 3(or)k
+882(general)s 1653(information)s 2852(about)s 3457(ho)s 6(w)k
+3932(to)s 4184(mak)s 2(e)k 4770(your)s 5282(o)s 6(wn)k
+5759(setup)s 6331(\207le,)s 6756(consult)s 7521(Section)s 8308(??.)s
+8698(The)s 0 10912(options)m 775(that)s 1212(determine)s 2242(the)s
+2609(def)s 2(ault)k 3349(v)s 6(alues)k 4024(are)s
+4390(in)s 4652(the)s 220 fnt35 5019 10909(@Use)m 240 fnt82
+5703 10912(clause)m 6375(which)s 7036(occupies)s 7943(most)s 8487(of)s
+8778(the)s 0 10624(setup)m 558(\207le.)s 1027(Here)s 1547(is)s
+1757(part)s 2188(of)s 2459(the)s 220 fnt35 2807 10621(@Use)m
+240 fnt82 3472 10624(clause)m 4125(from)s 220 fnt35 4649 10621(cpr)m -3(int)k
+240 fnt82 5184 10624(:)m 220 fnt35 612 10083(@Use { @CPSetup)m 612 9795( #)m
+1034(pipe)s 3565({)s 4675(})s 612 9507( #)m 1034(n)s 2(umbered)k
+3565({)s 3690(No)s 4675(})s 612 9219( #)m 1034(style)s
+3565({)s 3690(\207x)s 6(ed)k 4675(})s 612 8643( #)m
+1034(\207x)s 6(edf)k 6(ont)k 3565({)s 3690(Cour)s -3(ier)k
+4675(})s 612 8355( #)m 1034(\207x)s 6(edsiz)k 3(e)k
+3565({)s 3690(-1.0p)s 4675(})s 612 8067( #)m 1034(\207x)s 6(edline)k
+3565({)s 3690(1.0vx)s 4675(})s 612 7779( #)m 1034(\207x)s 6(edtabin)k
+3565({)s 3690(8)s 4675(})s 612 7491( #)m 1034(\207x)s 6(edtabout)k
+3565({)s 3690(8s)s 4675(})s 612 6915( #)m 1034(\207x)s 6(edidenti\207ers)k
+3565({)s 3690(Base)s 4675(})s 612 6627( #)m 1034(\207x)s 6(edk)k 4(e)k 4(yw)k 2(ords)k
+3565({)s 3690(Base)s 4675(})s 612 6339( #)m 1034(\207x)s 6(edoper)k 2(ators)k
+3565({)s 3690(Base)s 4675(})s 612 6051( #)m 1034(\207x)s 6(edn)k 2(umbers)k
+3565({)s 3690(Base)s 4675(})s 612 5763( #)m 1034(\207x)s 6(edstr)k -3(ings)k
+3565({)s 3690(Base)s 4675(})s 612 5475( #)m 1034(\207x)s 6(edcomments)k
+3565({)s 3690(Base)s 4675(})s 612 5187( #)m 1034(\207x)s 6(edlinen)k 2(umbers)k
+3565({)s 3690(Base)s 4675(})s 612 4611( #)m 1034(\207x)s 6(edidenti\207ersf)k 6(or)k -5(mat)k
+3565({)s 3690(@Body)s 4675(})s 612 4323( #)m 1034(\207x)s 6(edk)k 4(e)k 4(yw)k 2(ordsf)k 6(or)k -5(mat)k
+3565({)s 3690(@Body)s 4675(})s 612 4035( #)m 1034(\207x)s 6(edoper)k 2(atorsf)k 6(or)k -5(mat)k
+3565({)s 3690(@Body)s 4675(})s 612 3747( #)m 1034(\207x)s 6(edn)k 2(umbersf)k 6(or)k -5(mat)k
+3565({)s 3690(@Body)s 4675(})s 612 3459( #)m 1034(\207x)s 6(edstr)k -3(ingsf)k 6(or)k -5(mat)k
+3565({)s 3690(@Body)s 4675(})s 612 3171( #)m 1034(\207x)s 6(edcommentsf)k 6(or)k -5(mat)k
+3565({)s 3690(@Body)s 4675(})s 612 2883( #)m 1034(\207x)s 6(edlinen)k 2(umbersf)k 6(or)k -5(mat)k
+3565({)s 3690(@Body)s 4675(})s 612 2307(...)m 612 1731(})m
+240 fnt82 0 1193(The)m 220 fnt35 448 1190(pipe)m 240 fnt82
+934 1193(option)m 1623(will)s 2069(be)s 2371(e)s 3(xplained)k
+3376(in)s 3639(Section)s 4434(1.9.)s 4918(The)s 5366(options)s
+6142(whose)s 6830(name)s 7424(be)s 3(gins)k 8117(with)s
+220 fnt35 8620 1190(\207x)m 6(ed)k 240 fnt82 0 905(apply)m
+600(only)s 1094(when)s 220 fnt35 1685 902(style)m 240 fnt82
+2202 905(is)m 220 fnt35 2427 902(\207x)m 6(ed)k 240 fnt82
+2873 905(;)m 2999(there)s 3547(are)s 3908(corresponding)s 5344(options,)s
+6171(not)s 6551(sho)s 6(wn,)k 7293(which)s 7949(apply)s
+8550(when)s 220 fnt35 0 614(style)m 240 fnt82 503 617(is)m
+220 fnt35 713 614(v)m 5(ar)k -6(ying)k 240 fnt82
+1469 617(and)m 220 fnt35 1873 614(symbol)m 240 fnt82 2554 617(.)m
+480 243(W)m 19(e)k 849(can)s 1238(see)s 1599(in)s
+1841(this)s 2237(e)s 3(xtract)k 2943(that)s 3360(the)s
+3708(def)s 2(ault)k 4429(v)s 6(alue)k 4996(of)s
+220 fnt35 5267 240(style)m 240 fnt82 5770 243(is)m 220 fnt35
+5979 240(\207x)m 6(ed)k 240 fnt82 6425 243(,)m 6532(and)s
+6936(of)s 220 fnt35 7206 240(n)m 2(umbers)k 240 fnt82
+8111 243(is)m 220 fnt35 8321 240(No)m 240 fnt82 8594 243(.)m
+8757(W)s 19(e)k
+grestore
+
+grestore
+
+grestore
+
+pgsave restore
+showpage
+
+%%Page: 7 9
%%BeginPageSetup
%%PageResources: font Times-Roman
%%+ font Times-Italic
@@ -4939,143 +5824,1041 @@ gsave
9066 14006 0 14006 240 288 60 1417 -15423 LoutGr2
1 LoutMargSet
grestore
-240 fnt83 0 13843(1.10.)m 574(Notes)s 1174(on)s 1468(P)s 19(erl)k
-1920(and)s 2346(P)s 19(od)k 240 fnt84 8839 13840(11)m
-0 13250(1.10.)m 591(Notes)s 1216(on)s 1525(P)s 4(erl)k
-2000(and)s 2441(P)s 4(od)k 240 fnt82 480 12818(The)m
-923(Perl)s 1378(programming)s 2749(language)s 153 fnt82 3609 12907(1)m
-240 fnt82 3744 12818(is)m 3970(quite)s 4520(a)s 4702(dif\207cult)s
-5533(one)s 5951(for)s 6305(the)s 220 fnt35 6668 12815(prg2lout)m
-240 fnt82 7532 12818(program)m 8418(to)s 8673(deal)s 0 12530(with,)m
-526(and)s 924(our)s 1297(boast)s 1855(that)s 2267(programs)s
-3215(can)s 3598(be)s 3873(included)s 4749(with)s 5225(`absolutely)s
-6335(no)s 6621(modi\207cations')s 8029(is)s 8233(not)s 8592(quite)s
-0 12242(true)m 427(for)s 765(Perl.)s 480 11868(Here)m 1000(is)s
-1211(the)s 1560(complete)s 2493(list)s 2844(of)s 3116(problem)s
-3974(areas.)s 4629(In)s 4885(most)s 5411(cases)s 5967(the)s
-6316(ef)s 6(fect)k 6912(is)s 7123(to)s 7363(get)s
-7716(the)s 8065(formatting)s 0 11580(wrong)m 675(o)s 3(v)k 3(er)k
-1164(a)s 1341(short)s 1889(re)s 3(gion,)k 2615(which)s
-3267(is)s 3488(not)s 3864(perhaps)s 4670(so)s 4946(disastrous;)s
-6025(and)s 6439(it)s 6642(should)s 7349(be)s 7642(easy)s
-8131(to)s 8381(modify)s 0 11292(your)m 507(Perl)s 955(program)s
-1834(without)s 2634(changing)s 3574(its)s 3859(meaning,)s 4799(to)s
-5046(w)s 2(ork)k 5606(around)s 6338(these)s 6894(problems.)s
-7957(After)s 8529(all,)s 8883(in)s 0 11004(Perl)m 439(there)s
-972(is)s 1182(al)s 2(w)k 2(ays)k 1893(more)s
-2440(than)s 2909(one)s 3311(w)s 2(ay)k 3762(to)s
-4001(do)s 4294(it.)s 0 10499(1.)m 240 fnt83 480 10501(Her)m 8(e-documents)k
-240 fnt82 2108 10499(such)m 2604(as)s 960 10047(<<"EOF")m 960 9759(These lines will be read as though)m
-960 9471(enclosed in double quotes)m 960 9183(EOF)m 480 8729(will)m 910(be)s 1196(handled)s
-2017(correctly)s 2923(only)s 3407(if)s 3629(the)s 3981(string)s
-4583(used)s 5084(to)s 5327(terminate)s 6289(the)s 6641(document)s
-7649(is)s 7864(one)s 8270(of)s 240 fnt83 8546 8731(EOF)m
-240 fnt82 9019 8729(,)m 240 fnt83 480 8443(EO)m 9(T)k
-240 fnt82 941 8441(,)m 240 fnt83 1040 8443(END)m 240 fnt82
-1514 8441(,)m 1613(and)s 2009(the)s 2348(empty)s 2992(string.)s
-3692(This)s 4160(terminating)s 5305(string)s 5894(may)s 6352(be)s
-6626(enclosed)s 7512(in)s 7747(all)s 8032(three)s 8556(kinds)s
-480 8153(of)m 761(quotes,)s 1504(or)s 1773(in)s 2027(none.)s
-2668(An)s 3(ything)k 3633(after)s 4140(the)s 4498(<<)s
-4833(symbol)s 5604(on)s 5911(the)s 6270(same)s 6827(line)s
-7252(will)s 7689(be)s 7981(treated)s 8699(as)s 8960(a)s
-480 7865(string,)m 1131(which)s 1773(means)s 2435(that)s 2853(stack)s 2(ed)k
-3626(here-documents)s 5204(will)s 5630(not)s 5996(be)s 6278(printed)s
-7013(properly)s 15(.)k 0 7362(2.)m 480(When)s 220 fnt35
-1115 7359(prg2lout)m 240 fnt82 1969 7362(is)m 2186(scanning)s 3096(the)s
-3451(program)s 4327(looking)s 5118(for)s 5463(the)s 5817(be)s 3(ginning)k
-6832(of)s 7109(a)s 7281(le)s 3(xical)k 7976(unit,)s
-8461(it)s 8660(may)s 480 7074(come)m 1074(upon)s 1632(a)s
-220 fnt35 1819 7071(/)m 240 fnt82 1964 7074(character)m 9(,)k
-2957(and)s 3382(this)s 240 fnt83 3799 7076(initial)m 220 fnt35
-4450 7071(/)m 240 fnt82 4594 7074(\(not)m 5060(subsequent)s 6205(ones)s
-6716(in)s 6980(the)s 7349(same)s 7917(le)s 3(xical)k
-8626(unit\))s 480 6786(it)m 691(\207nds)s 1227(dif\207cult)s 2062(to)s
+240 fnt83 0 13843(1.4.)m 454(Changing)s 1454(the)s 1799(appear)s 3(ance)k
+2980(of)s 3261(all)s 3573(pr)s 10(o)k 2(gr)k 3(ams)k
+4545(simultaneously)s 240 fnt84 8951 13840(7)m 240 fnt82 0 13205(can)m
+396(also)s 842(see)s 1211(the)s 1567(def)s 2(ault)k
+2296(font)s 2749(f)s 2(amily)k 15(,)k 3470(font)s
+3923(f)s 2(ace,)k 4433(font)s 4886(size,)s 5372(line)s
+5794(spacing,)s 6640(and)s 7052(tab)s 7405(settings)s 8194(when)s
+8778(the)s 0 12917(style)m 502(is)s 220 fnt35 706 12914(\207x)m 6(ed)k
+240 fnt82 1152 12917(.)m 1311(The)s 1733(font)s 2173(f)s 2(amily)k
+2842(name)s 3411(for)s 220 fnt35 3743 12914(\207x)m 6(ed)k
+240 fnt82 4244 12917(style)m 4745(is)s 220 fnt35 4950 12914(Cour)m -3(ier)k
+240 fnt82 5671 12917(,)m 5772(b)s 4(ut)k 6129(for)s
+6461(the)s 6804(other)s 7349(styles)s 7939(\(not)s 8378(sho)s 6(wn\))k
+0 12629(it)m 188(is)s 393(empty)s 15(.)k 1135(This)s
+1606(causes)s 2276(the)s 220 fnt35 2619 12626(\207x)m 6(ed)k
+240 fnt82 3120 12629(style)m 3622(to)s 3856(al)s 2(w)k 2(ays)k
+4563(switch)s 5239(to)s 5473(Courier)s 9(,)k 6296(and)s
+6695(the)s 7038(other)s 7584(styles)s 8174(to)s 8408(use)s
+8778(the)s 0 12341(same)m 547(font)s 992(f)s 2(amily)k
+1667(as)s 1917(in)s 2160(the)s 2508(surrounding)s 3718(document.)s
+480 11967(The)m 895(options)s 1637(from)s 220 fnt35 2147 11964(\207x)m 6(edidenti\207ers)k
+240 fnt82 3582 11967(to)m 220 fnt35 3807 11964(\207x)m 6(edlinen)k 2(umbers)k
+240 fnt82 5497 11967(allo)m 6(w)k 6062(you)s 6463(to)s
+6688(set)s 6999(the)s 7334(font)s 7765(f)s 2(ace)k
+8202(to)s 8427(use)s 8788(for)s 0 11679(each)m 481(of)s
+738(these)s 1270(parts)s 1771(of)s 2027(your)s 2512(program.)s
+3471(People)s 4164(who)s 4616(w)s 2(ant)k 5124(\207x)s 3(ed-width)k
+6267(fonts)s 6781(do)s 7060(not)s 7411(usually)s 8142(w)s 2(ant)k
+8650(v)s 3(ery)k 0 11391(e)m 3(xciting)k 813(font)s
+1251(f)s 2(aces)k 1783(either)s 9(,)k 2417(so)s
+2676(the)s 3017(def)s 2(ault)k 3731(v)s 6(alues)k
+4380(abo)s 3(v)k 3(e)k 4995(are)s 5335(all)s
+220 fnt35 5621 11388(Base)m 240 fnt82 6113 11391(,)m 6213(b)s 4(ut)k
+6568(for)s 6899(the)s 220 fnt35 7240 11388(v)m 5(ar)k -6(ying)k
+240 fnt82 7989 11391(and)m 220 fnt35 8385 11388(symbol)m 240 fnt82
+0 11103(styles,)m 657(the)s 1011(def)s 2(ault)k 1738(identi\207er)s
+2667(f)s 2(ace)k 3124(is)s 220 fnt35 3340 11100(Slope)m
+240 fnt82 3892 11103(,)m 4006(the)s 4360(def)s 2(ault)k
+5087(k)s 2(e)k 3(yw)k 2(ord)k 5982(f)s 2(ace)k
+6440(is)s 220 fnt35 6656 11100(Bold)m 240 fnt82 7082 11103(,)m
+7195(and)s 7606(so)s 7878(on.)s 8288(Y)s 26(ou)k
+8737(can)s 0 10815(actually)m 818(gi)s 6(v)k 3(e)k
+1286(a)s 1460(f)s 2(amily)k 2144(name)s 2726(before)s
+3401(the)s 3757(f)s 2(ace)k 4217(name)s 4800(in)s
+5051(these)s 5607(options,)s 6427(allo)s 6(wing)k 7320(you)s
+7743(to)s 7991(switch)s 8681(font)s 0 10527(f)m 2(amilies)k
+817(for)s 1155(dif)s 6(ferent)k 2030(parts)s 2545(of)s
+2816(the)s 3164(program)s 4034(if)s 4251(you)s 4666(wish.)s
+480 10153(The)m 220 fnt35 900 10150(\207x)m 6(edidenti\207ersf)k 6(or)k -5(mat)k
+240 fnt82 2964 10153(option)m 3624(allo)s 6(ws)k 4284(you)s
+4690(to)s 4920(mak)s 2(e)k 5483(a)s 5641(more)s
+6179(radical)s 6874(change)s 7599(to)s 7829(the)s 8168(format)s
+8855(of)s 0 9865(identi\207ers)m 997(than)s 1456(just)s 1851(the)s
+2190(font.)s 2729(W)s 9(ithin)k 3431(this)s 3817(option,)s
+220 fnt35 4527 9862(@Body)m 240 fnt82 5298 9865(stands)m 5937(for)s
+6266(the)s 6604(identi\207er)s 7516(being)s 8091(formatted,)s 0 9577(and)m
+404(by)s 698(applying)s 1589(Lout)s 2101(symbols)s 2950(to)s
+3189(it,)s 3428(you)s 3843(apply)s 4429(them)s 4967(to)s
+5206(e)s 6(v)k 3(ery)k 5782(identi\207er)s 13(.)k
+6795(F)s 3(or)k 7184(e)s 3(xample,)k 220 fnt35
+480 9076(\207x)m 6(edidenti\207ersf)k 6(or)k -5(mat { red @Colour @Body })k 240 fnt82
+0 8549(will)m 444(cause)s 1049(identi\207ers)s 2073(to)s 2330(be)s
+2630(printed)s 3383(red.)s 153 fnt82 3732 8638(1)m 240 fnt82
+3930 8549(If)m 4178(you)s 4611(do)s 4922(use)s 5315(e)s 3(xotic)k
+5967(formats,)s 6821(remember)s 7867(that)s 8303(in)s 8565(some)s
+0 8261(programming)m 1347(languages,)s 2403(comments)s 3428(and)s 3824(e)s 6(v)k 3(en)k
+4316(strings)s 4995(may)s 5453(occup)s 2(y)k 6188(more)s
+6727(than)s 7188(one)s 7581(line:)s 220 fnt35 8097 8258(@Bo)m 6(x)k
+240 fnt82 8690 8261(,)m 8788(for)s 0 7973(e)m 3(xample,)k
+914(will)s 1340(gi)s 6(v)k 3(e)k 1799(a)s
+1965(logical)s 2670(b)s 4(ut)k 3032(probably)s 3937(unw)s 2(anted)k
+4924(result)s 5514(when)s 6090(formatting)s 7151(a)s 7317(multi-line)s
+8314(string.)s 480 7599(As)m 795(al)s 2(w)k 2(ays)k
+1504(with)s 1983(setup)s 2539(\207les,)s 3041(to)s 3278(change)s
+4009(a)s 4173(def)s 2(ault)k 4892(v)s 6(alue,)k
+5508(delete)s 6132(the)s 6477(preceding)s 220 fnt35 7471 7596(#)m
+240 fnt82 7645 7599(and)m 8047(change)s 8778(the)s 0 7311(part)m
+432(between)s 1288(braces.)s 2064(F)s 3(or)k 2455(e)s 3(xample,)k
+3371(suppose)s 4200(you)s 4617(are)s 4966(happ)s 2(y)k
+5606(with)s 220 fnt35 6090 7308(\207x)m 6(ed)k 240 fnt82
+6597 7311(e)m 3(xcept)k 7280(that)s 7700(you)s 8117(w)s 2(ant)k
+8642(bold)s 0 7023(k)m 2(e)k 3(yw)k 2(ords.)k
+1088(Then)s 1637(one)s 2039(line)s 2453(needs)s 3049(to)s
+3288(be)s 3570(changed,)s 4475(to)s 220 fnt35 480 6524(\207x)m 6(edk)k 4(e)k 4(yw)k 2(ords { Bold })k
+240 fnt82 0 6026(Or)m 307(suppose)s 1130(you)s 1540(lik)s 2(e)k
+220 fnt35 1947 6023(v)m 5(ar)k -6(ying)k 240 fnt82
+2698 6026(as)m 2943(it)s 3130(stands,)s 3830(b)s 4(ut)k
+4187(w)s 2(ould)k 4836(lik)s 2(e)k 5243(it)s
+5430(to)s 5664(be)s 5941(the)s 6284(def)s 2(ault)k
+7000(style)s 7502(rather)s 8113(than)s 220 fnt35 8576 6023(\207x)m 6(ed)k
+240 fnt82 9022 6026(.)m 0 5738(Ag)m 1(ain,)k 691(only)s
+1171(one)s 1573(line)s 1987(needs)s 2583(to)s 2822(be)s
+3104(changed,)s 4009(to)s 220 fnt35 4248 5735(style { v)m 5(ar)k -6(ying })k
+240 fnt82 5727 5738(.)m 480 5364(It)m 708(is)s 942(probably)s
+1871(not)s 2261(a)s 2451(good)s 3013(idea)s 3495(to)s
+3758(change)s 4516(the)s 4888(def)s 2(ault)k 5633(v)s 6(alue)k
+6225(of)s 220 fnt35 6520 5361(n)m 2(umbered)k 240 fnt82
+7578 5364(to)m 220 fnt35 7841 5361(Y)m 30(es)k 240 fnt82
+8182 5364(,)m 8313(because)s 0 5076(small)m 572(fragments)s 1578(of)s
+1848(code)s 2356(within)s 3024(paragraphs)s 4123(will)s 4549(then)s
+5018(get)s 5369(line)s 5783(numbers)s 6658(as)s 6907(well)s
+7373(as)s 7623(lar)s 4(ge)k 8151(displayed)s 0 4788(programs.)m
+1078(If)s 1319(you)s 1746(do)s 2050(ha)s 4(v)k 3(e)k
+2562(man)s 3(y)k 3157(lar)s 4(ge)k 3697(numbered)s
+4723(programs)s 5689(as)s 5950(well)s 6427(as)s 6689(small)s
+7272(fragments,)s 8345(a)s 8523(better)s 0 4500(approach)m 934(w)s 2(ould)k
+1589(be)s 1871(to)s 2110(place)s 220 fnt35 480 3999(impor)m -8(t @CPSetup)k
+480 3711(macro @NCP { @CP n)m 2(umbered { )k 19(Y)k 30(es } })k 240 fnt82
+0 3217(\(or)m 336(the)s 681(equi)s 6(v)k 6(alent)k
+1723(for)s 2058(your)s 2555(language\))s 3544(in)s 3785(your)s
+220 fnt35 4281 3214(m)m 3(ydefs)k 240 fnt82 5037 3217(\207le,)m
+5446(so)s 5710(that)s 6125(you)s 6538(can)s 6924(type)s
+220 fnt35 7390 3214(@NCP)m 240 fnt82 8123 3217(instead)m 8855(of)s
+220 fnt35 0 2926(@CP n)m 2(umbered { )k 19(Y)k 30(es })k
+240 fnt82 2223 2929(.)m 480 2555(The)m 905(setup)s 1460(\207les)s
+1906(for)s 2241(the)s 2586(other)s 3134(languages)s 4139(are)s
+4483(identical)s 5357(to)s 5593(this)s 5986(one,)s 6436(e)s 3(xcept)k
+7114(that)s 7529(the)s 7874(symbol)s 8630(after)s 220 fnt35
+0 2264(@Use)m 240 fnt82 666 2267(is)m 878(dif)s 6(ferent,)k
+1801(and)s 2207(some)s 2770(of)s 3042(the)s 3392(def)s 2(ault)k
+4114(v)s 6(alues)k 4772(may)s 5240(be)s 5523(dif)s 6(ferent.)k
+6504(Changing)s 7490(an)s 7775(option)s 8446(af)s 6(fects)k
+0 1979(only)m 480(the)s 828(language)s 1749(of)s 2020(that)s
+2438(setup)s 2997(\207le;)s 3414(if)s 3632(you)s 4047(ha)s 4(v)k 3(e)k
+4548(multiple)s 5401(languages)s 6409(you)s 6824(can)s 7214(ha)s 4(v)k 3(e)k
+7715(multiple)s 8568(setup)s 1134 0 0 0 240 288 60 0 1457 LoutGr2
+0 0 moveto xsize 0 lineto stroke
+grestore
+
+grestore
+122 fnt82 0 1262(1)m 172 fnt35
+56 1191(@Colour)m 192 fnt82 779 1192(is)m 945(not)s 1235(a)s
+1365(Lout)s 1773(primiti)s 4(v)k 2(e)k 2510(lik)s 1(e,)k
+2879(say)s 12(,)k 172 fnt35 3206 1191(@F)m 5(ont)k
+192 fnt82 3714 1192(;)m 3801(it)s 3952(is)s 4118(de\207ned)s
+4726(when)s 5184(you)s 5514(write)s 172 fnt35 5948 1191(@SysInclude { doc })m
+192 fnt82 7528 1192(or)m 7733(the)s 8009(equi)s 4(v)k 4(alent)k
+8844(for)s 0 962(the)m 279(other)s 720(document)s 1524(types.)s
+2060(This)s 2441(is)s 2609(true)s 2952(of)s 3168(quite)s
+3596(a)s 3729(fe)s 4(w)k 4055(generally)s 4811(useful)s
+5322(symbols,)s 6047(including)s 172 fnt35 6814 961(@Bo)m 5(x)k
+192 fnt82 7325 962(and)m 172 fnt35 7649 961(@I)m 192 fnt82
+7855 962(.)m 7987(If)s 8170(you)s 8502(w)s 1(ant)k
+8922(to)s 0 732(use)m 300(these)s 738(symbols)s 1417(here,)s
+1832(you)s 2164(must)s 2583(include)s 3192(your)s 3591(setup)s
+4038(\207le)s 192 fnt83 4327 733(after)m 172 fnt35 4740 731(@SysInclude { doc })m
+192 fnt82 6322 732(or)m 6529(whate)s 4(v)k 2(er)k 7(,)k
+7303(the)s 7582(re)s 4(v)k 2(erse)k 8172(of)s
+8388(the)s 8666(usual)s 0 502(arrangement,)m 1044(so)s 1260(that)s
+1597(the)s 2(y)k 1972(are)s 2253(de\207ned)s 2866(before)s
+3402(Lout)s 3814(reads)s 4261(your)s 4663(setup)s 5112(\207le.)s
+5490(This)s 5873(re)s 4(v)k 2(ersal)k 6518(is)s
+6689(carried)s 7268(out)s 7564(automatically)s 8653(when)s 0 272(formatting)m
+841(programs)s 1594(independently)s 2715(of)s 2921(an)s 2(y)k
+3230(document,)s 4063(so)s 4266(you)s 4588(can)s 4891(use)s
+5181(these)s 5609(symbols)s 6279(in)s 6464(a)s 6587(setup)s
+7025(\207le)s 7304(gi)s 4(v)k 2(en)k 7760(by)s
+7987(a)s 172 fnt35 8110 271(-S)m 192 fnt82 8311 272(command)m
+0 42(line)m 332(\210ag.)s
+grestore
+
+grestore
+
+grestore
+
+pgsave restore
+showpage
+
+%%Page: 8 10
+%%BeginPageSetup
+%%PageResources: font Times-Roman
+%%+ font Times-Bold
+%%+ font Times-Italic
+%%+ font Helvetica
+/pgsave save def
+%%IncludeResource: font Times-Bold
+/Times-Boldfnt84 vec2 /Times-Bold LoutRecode
+/fnt84 { /Times-Boldfnt84 LoutFont } def
+%%IncludeResource: font Times-Italic
+/Times-Italicfnt83 vec2 /Times-Italic LoutRecode
+/fnt83 { /Times-Italicfnt83 LoutFont } def
+0.0500 dup scale 10 setlinewidth
+%%EndPageSetup
+gsave
+0 0 translate
+240 fnt82 0.0 0.0 0.0 setrgbcolor 11900 16840 0 16840 240 288 60 LoutGraphic
+gsave
+LoutPageSet
+grestore
+gsave
+0 16840 translate
+0.0000 rotate
+9066 14006 0 14006 240 288 60 1417 -15423 LoutGr2
+0 LoutMargSet
+grestore
+240 fnt84 0 13840(8)m 240 fnt83 5981 13843(Chapter)m 6831(1.)s
+7105(Computer)s 8128(Pr)s 10(o)k 2(gr)k 3(ams)k
+240 fnt82 0 13205(\207les)m 449(and)s 853(change)s 1587(their)s
+2084(options)s 2840(quite)s 3374(independently)s 4784(of)s 5055(each)s
+5550(other)s 13(.)k 240 fnt84 0 12412(1.5.)m 471(Dealing)s
+1311(with)s 1817(tab)s 2201(characters)s 3330(in)s 3585(pr)s 4(ograms)k
+240 fnt82 480 11935(T)m 19(ab)k 896(characters)s 1924(pro)s 3(vide)k
+2718(a)s 2894(con)s 9(v)k 3(enient)k 4002(w)s 2(ay)k
+4463(to)s 4712(indent)s 5380(and)s 5794(align)s 6339(parts)s
+6864(of)s 7145(computer)s 8119(programs.)s 0 11647(W)m 9(ith)k
+526(care,)s 1030(this)s 1426(alignment)s 2442(can)s 2831(be)s
+3113(preserv)s 3(ed)k 4097(in)s 4340(the)s 4688(\207nal)s
+5168(print)s 5679(e)s 6(v)k 3(en)k 6179(with)s
+6661(v)s 6(arying-width)k 8067(fonts.)s 480 11273(The)m 896(distance)s
+1723(between)s 2565(tw)s 2(o)k 2962(tab)s 3295(stops)s
+3826(in)s 4056(the)s 4392(program)s 5250(te)s 3(xt)k
+5653(is)s 5850(by)s 6132(def)s 2(ault)k 6841(tak)s 2(en)k
+7401(to)s 7628(be)s 7898(8)s 8052(characters,)s 0 10985(which)m
+642(is)s 852(standard)s 1720(for)s 2058(Unix.)s 2701(This)s
+3177(can)s 3566(be)s 3848(changed)s 4704(with)s 5186(the)s
+220 fnt35 5534 10982(tabin)m 240 fnt82 6055 10985(option.)m 6831(F)s 3(or)k
+7220(e)s 3(xample,)k 220 fnt35 480 10484(@CP tabin { 4 })m 240 fnt82
+0 9990(informs)m 789(Lout)s 1296(that)s 1709(tab)s 2049(stops)s
+2587(occur)s 3173(e)s 6(v)k 3(ery)k 3744(4)s
+3913(characters)s 4926(in)s 5164(the)s 5507(program)s 6372(te)s 3(xt.)k
+6886(All)s 7241(the)s 7584(symbols)s 8428(\()s 220 fnt35
+8501 9987(@CP)m 240 fnt82 9019 9990(,)m 220 fnt35 0 9699(@Eiff)m 6(el)k
+240 fnt82 689 9702(,)m 785(etc.\))s 1240(and)s 1633(their)s
+2118(setup)s 2665(\207les)s 3103(ha)s 4(v)k 3(e)k
+3593(this)s 3977(option)s 4635(and)s 5028(the)s 5364(ne)s 3(xt;)k
+5874(b)s 4(ut)k 6225(to)s 6453(sa)s 4(v)k 3(e)k
+6915(repetition)s 7876(we)s 8200(will)s 8614(stick)s 0 9414(with)m
+482(C)s 694(for)s 1032(the)s 1380(rest)s 1784(of)s
+2055(this)s 2451(section.)s 480 9040(The)m 916(distance)s 1764(between)s
+2627(tw)s 2(o)k 3046(tab)s 3399(stops)s 3951(on)s
+4257(the)s 4614(printed)s 5357(page)s 5874(is)s 6093(quite)s
+6636(a)s 6810(dif)s 6(ferent)k 7694(thing,)s 8302(and)s
+8715(it)s 8916(is)s 0 8752(determined)m 1133(by)s 1427(the)s
+1775(v)s 6(alue)k 2343(of)s 2614(the)s 220 fnt35
+2962 8749(tabout)m 240 fnt82 3628 8752(option,)m 4347(which)s 4989(must)s
+5514(be)s 5796(a)s 5962(Lout)s 6474(length.)s 7236(F)s 3(or)k
+7625(e)s 3(xample,)k 220 fnt35 480 8251(@CP tabout { 0.5i })m 240 fnt82
+0 7757(requests)m 857(that)s 1298(tab)s 1666(stops)s 2232(be)s
+2537(placed)s 3243(at)s 3498(half-inch)s 4440(interv)s 6(als.)k
+5443(In)s 5722(other)s 6297(w)s 2(ords,)k 7010(a)s
+7199(distance)s 8061(of)s 8355(one)s 8781(tab)s 0 7469(stop)m
+474(in)s 739(the)s 1109(program)s 2001(te)s 3(xt)k
+2439(will)s 2887(be)s 3191(equi)s 6(v)k 6(alent)k
+4257(to)s 4519(a)s 4707(distance)s 5568(of)s 5861(half)s
+6326(an)s 6632(inch)s 7123(on)s 7442(the)s 7812(printed)s
+8570(page.)s 0 7181(F)m 3(or)k 389(e)s 3(xample,)k
+220 fnt35 480 6680(@CP style { v)m 5(ar)k -6(ying } tabout { 3f } n)k 2(umbered { )k 19(Y)k 30(es })k
+240 fnt82 0 6181(might)m 659(produce)s 1527(the)s 1916(follo)s 6(wing,)k
+2989(where)s 3670(tab)s 4056(characters)s 5116(in)s 5400(the)s
+5789(program)s 6700(te)s 3(xt)k 7157(ha)s 4(v)k 3(e)k
+7699(been)s 8249(used)s 8788(for)s 0 5893(indenting)m 957(and)s
+1361(also)s 1799(to)s 2038(align)s 2573(the)s 2921(comments:)s
+480 5388(1)m 240 fnt84 1200 5387(struct)m 240 fnt83 1856 5390(tnode)m
+240 fnt82 2441 5388({)m 4080(/*)s 4310(the)s 4658(basic)s
+5202(node)s 5724(*/)s 480 5100(2)m 240 fnt84 1920 5099(char)m
+240 fnt82 2443 5046(*)m 240 fnt83 2547 5102(wor)m 8(d)k
+240 fnt82 3038 5100(;)m 4080(/*)s 4310(points)s 4946(to)s
+5185(the)s 5533(te)s 3(xt)k 5948(*/)s 480 4812(3)m
+240 fnt84 1920 4811(int)m 240 fnt83 2258 4814(count)m 240 fnt82
+2794 4812(;)m 4080(/*)s 4310(number)s 5101(of)s 5372(occurrences)s
+6564(*/)s 480 4524(4)m 240 fnt84 1920 4523(struct)m 240 fnt83
+2576 4526(tnode)m 240 fnt82 3161 4470(*)m 240 fnt83 3265 4526(left)m
+240 fnt82 3573 4524(;)m 4080(/*)s 4310(left)s 4687(child)s
+5223(*/)s 480 4236(5)m 240 fnt84 1920 4235(struct)m 240 fnt83
+2576 4238(tnode)m 240 fnt82 3161 4182(*)m 240 fnt83 3265 4238(right)m
+240 fnt82 3734 4236(;)m 4080(/*)s 4310(right)s 4821(child)s
+5357(*/)s 480 3948(6)m 1200(};)s 0 3454(W)m 19(e')k 12(v)k 3(e)k
+672(used)s 220 fnt35 1183 3451(n)m 2(umbered { )k 19(Y)k 30(es })k
+240 fnt82 2891 3454(to)m 3144(demonstrate)s 4381(that)s 4813(the)s
+5174(features)s 5994(for)s 6345(dealing)s 7116(with)s 7611(tabs)s
+8061(w)s 2(ork)k 8626(e)s 6(v)k 3(en)k
+0 3166(with)m 471(line)s 873(numbers.)s 1850(The)s 2266(v)s 6(alue)k
+220 fnt35 2823 3163(3f)m 240 fnt82 3051 3166(means)m 3702(three)s
+4223(times)s 4780(the)s 5116(current)s 5841(font)s 6274(size,)s
+6741(and)s 7133(it)s 7314(is)s 7512(the)s 7849(def)s 2(ault)k
+8558(v)s 6(alue)k 0 2878(of)m 220 fnt35 273 2875(tabout)m
+240 fnt82 942 2878(for)m 1282(the)s 220 fnt35 1633 2875(v)m 5(ar)k -6(ying)k
+240 fnt82 2391 2878(and)m 220 fnt35 2798 2875(symbol)m 240 fnt82
+3541 2878(styles)m 4139(\(Section)s 4994(1.4\).)s 5540(In)s 5798(a)s
+5967(12)s 6263(point)s 6818(font)s 7265(this)s 7664(is)s
+7876(36)s 8172(points,)s 8867(or)s 0 2590(half)m 443(an)s
+726(inch.)s 480 2216(If)m 220 fnt35 710 2213(tabout)m 240 fnt82
+1376 2216(is)m 1586(too)s 1945(small,)s 2569(there)s 3102(is)s
+3312(a)s 3478(danger)s 4189(that)s 4607(the)s 4955(alignment)s
+5971(might)s 6589(f)s 2(ail.)k 7068(F)s 3(or)k
+7457(e)s 3(xample,)k 220 fnt35 480 1715(@CP style { v)m 5(ar)k -6(ying } tabout { 0.2i })k
+240 fnt82 0 1216(produces)m
+grestore
+
+grestore
+
+grestore
+
+pgsave restore
+showpage
+
+%%Page: 9 11
+%%BeginPageSetup
+%%PageResources: font Times-Roman
+%%+ font Times-Italic
+%%+ font Times-Bold
+%%+ font Courier
+%%+ font Helvetica
+/pgsave save def
+%%IncludeResource: font Times-Italic
+/Times-Italicfnt83 vec2 /Times-Italic LoutRecode
+/fnt83 { /Times-Italicfnt83 LoutFont } def
+%%IncludeResource: font Times-Bold
+/Times-Boldfnt84 vec2 /Times-Bold LoutRecode
+/fnt84 { /Times-Boldfnt84 LoutFont } def
+%%IncludeResource: font Courier
+/Courierfnt29 vec2 /Courier LoutRecode
+/fnt29 { /Courierfnt29 LoutFont } def
+0.0500 dup scale 10 setlinewidth
+%%EndPageSetup
+gsave
+0 0 translate
+240 fnt82 0.0 0.0 0.0 setrgbcolor 11900 16840 0 16840 240 288 60 LoutGraphic
+gsave
+LoutPageSet
+grestore
+gsave
+0 16840 translate
+0.0000 rotate
+9066 14006 0 14006 240 288 60 1417 -15423 LoutGr2
+1 LoutMargSet
+grestore
+240 fnt83 0 13843(1.5.)m 454(Dealing)s 1279(with)s 1746(tab)s
+2106(c)s 3(har)k 3(acter)k 2(s)k 3176(in)s
+3416(pr)s 10(o)k 2(gr)k 3(ams)k 240 fnt84
+8952 13840(9)m 480 13202(struct)m 240 fnt83 1136 13205(tnode)m 240 fnt82
+1721 13203({)m 1805(/*)s 2035(the)s 2383(basic)s 2927(node)s
+3449(*/)s 240 fnt84 768 12914(char)m 240 fnt82 1291 12861(*)m
+240 fnt83 1395 12917(wor)m 8(d)k 240 fnt82 1886 12915(;)m
+1938(/*)s 2168(points)s 2804(to)s 3043(the)s 3391(te)s 3(xt)k
+3806(*/)s 240 fnt84 768 12626(int)m 240 fnt83 1106 12629(count)m
+240 fnt82 1642 12627(;)m 1694(/*)s 1924(number)s 2715(of)s
+2986(occurrences)s 4178(*/)s 240 fnt84 768 12338(struct)m 240 fnt83
+1424 12341(tnode)m 240 fnt82 2009 12285(*)m 240 fnt83 2113 12341(left)m
+240 fnt82 2421 12339(;)m 2473(/*)s 2703(left)s 3080(child)s
+3616(*/)s 240 fnt84 768 12050(struct)m 240 fnt83 1424 12053(tnode)m
+240 fnt82 2009 11997(*)m 240 fnt83 2113 12053(right)m 240 fnt82
+2582 12051(;)m 2634(/*)s 2864(right)s 3375(child)s 3911(*/)s
+480 11763(};)m 0 11269(gi)m 6(v)k 3(en)k 590(the)s
+948(same)s 1505(C)s 1727(te)s 3(xt)k 2153(as)s
+2413(the)s 2771(pre)s 6(vious)k 3650(e)s 3(xample.)k
+4632(The)s 5070(problem)s 5937(here)s 6414(is)s 6634(that)s
+7063(we)s 7408(are)s 7765(asking)s 8453(for)s 220 fnt29
+8802 11277(/*)m 240 fnt82 71 10981(to)m 321(appear)s 1029(four)s
+1498(tab)s 1854(stops)s 2408(or)s 2678(0.8)s 3036(inches)s
+3709(from)s 4244(the)s 4603(left)s 4991(edge,)s 5561(and)s
+5976(yet)s 6339(the)s 6698(material)s 7545(to)s 7795(its)s
+8082(left)s 8470(on)s 8778(the)s 0 10693(line)m 419(is)s
+634(wider)s 1244(than)s 1718(this.)s 2232(This)s 2714(causes)s
+220 fnt29 3394 10701(/*)m 240 fnt82 3861 10693(to)m 4105(be)s
+4393(shifted)s 5106(further)s 5820(to)s 6065(the)s 6418(right)s
+6934(than)s 7409(e)s 3(xpected,)k 8368(and)s 8778(the)s
+0 10405(alignment)m 1016(is)s 1226(lost.)s 1735(The)s 2163(only)s
+2643(solution)s 3471(is)s 3681(to)s 3920(increase)s 220 fnt35
+4758 10402(tabout)m 240 fnt82 5364 10405(.)m 480 10031(When)m 1108(typesetting)s
+2208(computer)s 3169(program)s 4038(te)s 3(xts)k 4535(independently)s
+5943(of)s 6213(an)s 3(y)k 6608(document,)s 7657(there)s
+8189(are)s 220 fnt35 8534 10028(-t)m 240 fnt82 8722 10031(and)m
+220 fnt35 0 9740(-T)m 240 fnt82 289 9743(options)m 1070(to)s
+1335(the)s 220 fnt35 1708 9740(prg2lout)m 240 fnt82 2581 9743(program)m
+3477(equi)s 6(v)k 6(alent)k 4546(to)s 220 fnt35
+4811 9740(tabin)m 240 fnt82 5357 9743(and)m 220 fnt35 5786 9740(tabout)m
+240 fnt82 6478 9743(respecti)m 6(v)k 3(ely)k 15(.)k
+7797(F)s 3(or)k 8212(e)s 3(xample,)k 220 fnt35
+0 9452(-T0.5i)m 240 fnt82 606 9455(produces)m 1521(a)s 1687(half-inch)s
+2606(tab)s 2951(width.)s 240 fnt84 0 8662(1.6.)m 471(Dealing)s
+1311(with)s 1817(f)s 6(ormfeed)k 2794(characters)s 3923(in)s
+4178(pr)s 4(ograms)k 240 fnt82 480 8185(The)m 900(formfeed)s
+1824(\(Control-L\))s 2978(character)s 3904(is)s 4105(traditionally)s 5317(tak)s 2(en)k
+5881(to)s 6112(be)s 6385(a)s 6542(request)s 7283(to)s
+7514(start)s 7975(a)s 8132(ne)s 6(w)k 8570(page.)s
+0 7897(This)m 476(is)s 686(e)s 3(xplicitly)k 1639(recognized)s
+2746(by)s 3040(the)s 3388(formal)s 4079(de\207nition)s 5054(of)s
+5325(the)s 5673(C)s 5885(language)s 6805(and)s 7209(man)s 3(y)k
+7792(others,)s 8484(which)s 0 7609(treat)m 486(this)s 886(character)s
+1823(as)s 2077(white)s 2667(space)s 3258(from)s 3785(a)s
+3955(language)s 4878(point)s 5434(of)s 5708(vie)s 6(w)k 15(,)k
+6263(with)s 6748(the)s 7100(understanding)s 8512(that)s 8934(it)s
+0 7321(will)m 426(cause)s 1013(a)s 1179(page)s 1687(break)s
+2279(when)s 2855(printed.)s 480 6947(There)m 1086(are)s 1426(no)s
+220 fnt35 1712 6944(prg2lout)m 240 fnt82 2553 6947(options)m 3302(for)s
+3633(dealing)s 4383(with)s 4858(formfeed)s 5784(characters.)s 6908(The)s 3(y)k
+7444(will)s 7863(be)s 8137(con)s 9(v)k 3(erted)k
+0 6659(into)m 220 fnt35 425 6656(@NP)m 240 fnt82 1003 6659(\(ne)m 6(w)k
+1529(page\))s 2109(symbols,)s 3014(causing)s 3798(a)s 3964(ne)s 6(w)k
+4411(page)s 4919(or)s 5178(column)s 5953(to)s 6192(be)s
+6474(be)s 3(gun)k 7114(in)s 7357(the)s 7705(printing.)s
+480 6285(Whether)m 1386(formfeed)s 2342(characters)s 3383(end)s 3810(their)s
+4330(line)s 4767(or)s 5050(not)s 5439(is)s 5672(a)s
+5861(problem.)s 6845(Consider)s 7792(this)s 8212(e)s 3(xample,)k
+0 5997(where)m 220 fnt35 640 5994(^L)m 240 fnt82 921 5997(stands)m
+1570(for)s 1908(one)s 2310(formfeed)s 3243(character:)s 220 fnt35
+480 5549(abc)m 480 5261(def^Lghi)m 480 4973(jhk)m 240 fnt82 0 4476(Ho)m 6(w)k
+532(man)s 3(y)k 1134(lines)s 1654(does)s 2163(this)s
+2577(e)s 3(xample)k 3459(contain?)s 4401(Y)s 26(our)k
+4945(te)s 3(xt)k 5379(editor)s 6014(w)s 2(ould)k
+6688(probably)s 7611(say)s 8003(`three',)s 8764(b)s 4(ut)k
+0 4188(when)m 571(you)s 980(print)s 1486(it)s 1672(you)s
+2081(will)s 2502(see)s 2857(four)s 13(.)k 3400(It)s
+3600(is)s 3804(not)s 4164(desirable)s 5077(to)s 5310(ha)s 4(v)k 3(e)k
+5805(printed)s 6535(programs)s 7483(\(especially)s 8565(those)s 0 3900(with)m
+465(line)s 861(numbers)s 1718(attached\))s 2624(disagreeing)s 3761(with)s
+4225(te)s 3(xt)k 4623(editors)s 5306(about)s 5880(line)s
+6276(numbers.)s 7246(The)s 7656(solution)s 8466(adopt)s 8998(-)s
+0 3612(ed)m 297(by)s 220 fnt35 604 3609(prg2lout)m 240 fnt82
+1466 3612(to)m 1718(this)s 2128(problem)s 2998(is)s 3222(to)s
+3474(treat)s 3971(the)s 4332(formfeed)s 5279(character)s 6226(as)s
+6490(including)s 7460(a)s 7640(ne)s 6(wline,)k 8511(b)s 4(ut)k
+8887(to)s 0 3324(assign)m 647(the)s 987(same)s 1526(line)s
+1932(number)s 2715(to)s 2946(both)s 3421(parts)s 3928(of)s
+4191(the)s 4531(original)s 5321(line)s 5727(\(the)s 6146(parts)s
+6653(before)s 7311(and)s 7707(after)s 8195(the)s 8534(form)s
+8998(-)s 0 3036(feed\).)m 664(If)s 905(the)s 1264(part)s
+1705(after)s 2212(the)s 2571(formfeed)s 3514(is)s 3735(empty)s
+4398(\(that)s 4905(is,)s 5182(if)s 5410(the)s 5768(formfeed)s
+6712(character)s 7657(is)s 7878(immediately)s 0 2748(follo)m 6(wed)k
+913(by)s 1219(a)s 1397(ne)s 6(wline)k 2216(or)s
+2487(another)s 3276(formfeed\),)s 4349(and)s 4765(if)s 4994(the)s
+5354(formfeed)s 6299(is)s 6521(not)s 6899(inside)s 7538(an)s 3(y)k
+7947(le)s 3(xical)k 8647(unit,)s 0 2460(then)m 469(the)s
+817(empty)s 1469(line)s 1883(after)s 2379(the)s 2727(formfeed)s
+3660(will)s 4086(not)s 4452(be)s 4734(printed)s 5469(at)s
+5701(all.)s 480 2086(The)m 901(most)s 1419(common)s 2307(case)s
+2767(is)s 2970(that)s 3381(of)s 3645(a)s 3804(formfeed)s
+4729(character)s 9(,)k 5694(outside)s 6434(an)s 3(y)k
+6824(le)s 3(xical)k 7505(unit,)s 7977(on)s 8267(a)s
+8426(line)s 8832(by)s 0 1798(itself.)m 640(Let')s 13(s)k
+1168(see)s 1529(what)s 2054(this)s 2450(rule)s 2877(produces)s
+3792(in)s 4035(the)s 4383(follo)s 6(wing)k 5360(e)s 3(xample)k
+6223(of)s 6494(this)s 6890(case:)s 220 fnt35 480 1301(abc)m
+480 1013(def)m 480 725(^L)m 480 437(ghi)m
+grestore
+
+grestore
+
+grestore
+
+pgsave restore
+showpage
+
+%%Page: 10 12
+%%BeginPageSetup
+%%PageResources: font Times-Roman
+%%+ font Times-Bold
+%%+ font Times-Italic
+%%+ font Helvetica
+/pgsave save def
+%%IncludeResource: font Times-Bold
+/Times-Boldfnt84 vec2 /Times-Bold LoutRecode
+/fnt84 { /Times-Boldfnt84 LoutFont } def
+%%IncludeResource: font Times-Italic
+/Times-Italicfnt83 vec2 /Times-Italic LoutRecode
+/fnt83 { /Times-Italicfnt83 LoutFont } def
+0.0500 dup scale 10 setlinewidth
+%%EndPageSetup
+gsave
+0 0 translate
+240 fnt82 0.0 0.0 0.0 setrgbcolor 11900 16840 0 16840 240 288 60 LoutGraphic
+gsave
+LoutPageSet
+grestore
+gsave
+0 16840 translate
+0.0000 rotate
+9066 14006 0 14006 240 288 60 1417 -15423 LoutGr2
+0 LoutMargSet
+grestore
+240 fnt84 0 13840(10)m 240 fnt83 5981 13843(Chapter)m 6831(1.)s
+7105(Computer)s 8128(Pr)s 10(o)k 2(gr)k 3(ams)k
+240 fnt82 0 13205(There)m 615(will)s 1043(be)s 1328(one)s
+1732(blank)s 2327(line)s 2744(numbered)s 3761(3)s 3927(at)s
+4162(the)s 4512(end)s 4918(of)s 5192(the)s 5542(\207rst)s
+5975(page,)s 6537(and)s 6943(a)s 7111(line)s 7528(numbered)s
+8545(4)s 8722(and)s 0 12917(containing)m 220 fnt35 1065 12914(ghi)m
+240 fnt82 1405 12917(at)m 1639(the)s 1989(start)s 2461(of)s
+2734(the)s 3084(ne)s 3(xt)k 3555(page.)s 4173(The)s
+4603(blank)s 5198(line)s 5614(is)s 5826(a)s 5994(necessity)s 15(,)k
+6964(at)s 7198(least)s 7697(when)s 8275(lines)s 8779(are)s
+0 12629(being)m 596(numbered,)s 1671(because)s 2496(we)s 2842(w)s 2(ant)k
+3377(the)s 3736(last)s 4139(line)s 4564(in)s 4819(the)s
+5178(e)s 3(xample)k 6053(to)s 6303(be)s 6597(numbered)s
+7623(4)s 7809(to)s 8059(agree)s 8644(with)s 0 12341(te)m 3(xt)k
+414(editors,)s 1169(b)s 4(ut)k 1529(we)s 1862(don')s 4(t)k
+2422(w)s 2(ant)k 2943(the)s 3289(line)s 3701(numbers)s
+4575(on)s 4870(our)s 5247(print)s 5756(to)s 5994(skip)s
+6444(from)s 6966(2)s 7138(on)s 7434(the)s 7780(\207rst)s
+8209(page)s 8715(to)s 8952(4)s 0 12053(on)m 297(the)s
+644(second,)s 1415(because)s 2227(that)s 2644(w)s 2(ould)k
+3298(mak)s 2(e)k 3869(readers)s 4609(anxious)s 5404(about)s
+5995(the)s 6342(apparently)s 7404(missing)s 8200(line)s 8613(3.)s
+8896(If)s 0 11765(you)m 415(don')s 4(t)k 976(w)s 2(ant)k
+1499(that)s 1917(empty)s 2569(line,)s 3034(mo)s 3(v)k 3(e)k
+3616(the)s 3964(formfeed)s 4897(character)s 5831(to)s 6070(the)s
+6418(end)s 6822(of)s 7093(the)s 7441(preceding)s 8437(line.)s
+240 fnt84 0 10972(1.7.)m 471(Embedding)s 1710(Lout)s 2262(commands)s
+3419(within)s 4125(pr)s 4(ogram)k 5081(comments)s 240 fnt82
+480 10495(It)m 712(is)s 949(possible)s 1817(to)s 2083(embed)s
+2806(Lout)s 3346(te)s 3(xt)k 3788(inside)s 4442(program)s
+5340(comments.)s 6514(Ho)s 6(w)k 7055(this)s 7479(is)s
+7716(done)s 8265(could)s 8883(in)s 0 10207(principle)m 916(v)s 6(ary)k
+1401(from)s 1936(language)s 2868(to)s 3118(language,)s 4101(b)s 4(ut)k
+4474(in)s 4729(e)s 6(v)k 3(ery)k 5317(language)s
+6248(supported)s 7262(so)s 7539(f)s 2(ar)k 7873(it)s
+8076(is)s 8298(done)s 8832(by)s 0 9919(starting)m 757(of)s 6(f)k
+1089(the)s 1424(comment)s 2362(with)s 2831(an)s 220 fnt35
+3102 9916(@)m 240 fnt82 3341 9919(character)m 13(.)k 4353(If)s
+4571(the)s 4906(language)s 5814(has)s 6172(se)s 6(v)k 3(eral)k
+6881(w)s 2(ays)k 7410(to)s 7636(get)s 7976(a)s
+8129(comment,)s 0 9631(this)m 408(will)s 847(w)s 2(ork)k
+1411(e)s 6(v)k 3(ery)k 2000(w)s 2(ay)k 15(.)k
+2559(The)s 3000(entire)s 3612(comment)s 4575(after)s 5083(the)s
+220 fnt35 5444 9628(@)m 240 fnt82 5708 9631(character)m 6655(should)s
+7365(then)s 7847(be)s 8142(Lout)s 8667(te)s 3(xt.)k
+0 9343(F)m 3(or)k 389(e)s 3(xample,)k 1303(to)s
+1542(force)s 2088(Lout)s 2600(to)s 2839(start)s 3309(a)s
+3475(ne)s 6(w)k 3922(page)s 4430(at)s 4662(some)s
+5223(point)s 5775(within)s 6443(a)s 6609(C)s 6821(program,)s
+7738(place)s 220 fnt35 480 8842(/*@ @NP */)m 240 fnt82 0 8387(at)m
+234(that)s 655(point.)s 1314(\(In)s 1652(this)s 2051(case)s
+2521(you)s 2939(can)s 3331(also)s 3772(simply)s 4480(include)s
+5243(a)s 5412(formfeed)s 6348(character)s 9(,)k 7323(control-L,)s
+8335(without)s 0 8099(an)m 3(y)k 414(comment;)s 1433(see)s
+1811(Section)s 2602(1.6)s 2972(for)s 3328(more)s 3892(on)s
+4206(this.\))s 4816(Or)s 9(,)k 5183(to)s 5439(mak)s 2(e)k
+6029(a)s 6212(heading)s 7040(in)s 7300(an)s 7600(Eif)s 6(fel)k
+8209(program,)s 0 7811(do)m 293(this:)s 220 fnt35 480 7360(--@ @Displa)m 6(y @Heading { treepr)k -3(int })k
+240 fnt82 0 6861(\(Eif)m 6(fel)k 658(comments)s 1680(be)s 3(gin)k
+2254(with)s 220 fnt35 2724 6858(--)m 240 fnt82 2909 6861(and)m
+3300(end)s 3692(at)s 3912(the)s 4248(end)s 4640(of)s
+4899(the)s 5234(line.\))s 5828(Other)s 6420(possible)s 7248(uses)s
+7699(for)s 8025(this)s 8408(feature)s 0 6573(include)m 760(inde)s 3(x)k
+1344(entries)s 2031(and)s 2435(mar)s 4(gin)k 3165(notes.)s
+3834(Incredible)s 4858(as)s 5108(it)s 5300(may)s 5766(seem,)s
+6364(you)s 6779(can)s 7168(e)s 6(v)k 3(en)k
+7668(write)s 220 fnt35 480 6072(/*@ @CD @Heading { Function @CP { treepr)m -3(int\(\) } } */)k 240 fnt82
+0 5573(with)m 500(a)s 220 fnt35 684 5570(@CP)m 240 fnt82
+1280 5573(symbol)m 2058(and)s 2481(some)s 3060(C)s 3290(code)s
+3816(inside)s 4462(the)s 4828(Lout)s 5358(code)s 5884(inside)s
+6530(the)s 6896(C)s 7126(code.)s 7760(Y)s 26(ou)k
+8221(probably)s 0 5285(can')m 4(t)k 566(go)s 892(further)s 9(,)k
+1673(ho)s 6(we)k 6(v)k 3(er)k 9(,)k
+2613(at)s 2879(least)s 3409(not)s 3808(in)s 4085(C,)s
+4385(since)s 4966(that)s 5417(w)s 2(ould)k 6105(require)s
+6871(a)s 7070(C)s 7316(comment)s 8299(inside)s 8960(a)s
+0 4997(C)m 212(comment.)s 240 fnt84 0 4253(1.8.)m 471(Embedding)s
+1710(pr)s 4(ogram)k 2666(text)s 3110(within)s 3816(pr)s 4(ogram)k
+4772(comments)s 240 fnt82 480 3776(The)m 902(standard)s 1763(reference)s
+2699(for)s 3030(the)s 3371(Eif)s 6(fel)k 3955(language)s
+4869([1)s 5043(])s 5154(speci\207es)s 6021(that)s 6432(identi\207ers)s
+7431(within)s 8092(comments)s 0 3488(may)m 466(or)s 725(should)s
+1422(be)s 1704(enclosed)s 2599(in)s 2842(`)s 2963(and)s
+3367(')s 3479(so)s 3745(that)s 4163(the)s 3(y)k
+4626(may)s 5092(be)s 5374(noticed)s 6136(and)s 6540(printed)s
+7275(in)s 7518(an)s 7801(italic)s 8330(font:)s 220 fnt35
+480 2987(@ID @Eiff)m 6(el {)k 480 2699(deposit\(amount:)m 11( REAL\) is)k 480 2411( -- deposit )m 13(`amount')k 15( dollars)k
+480 2123(})m 240 fnt82 0 1629(produces)m 240 fnt83 480 1126(deposit)m
+240 fnt82 1175 1124(\()m 240 fnt83 1248 1126(amount)m 240 fnt82
+1971 1124(:)m 240 fnt83 2077 1126(REAL)m 240 fnt82 2648 1124(\))m
+240 fnt84 2776 1123(is)m 240 fnt82 1200 836(--)m 1407(deposit)s
+240 fnt83 2158 838(amount)m 240 fnt82 2941 836(dollars)m 0 333(This)m
+463(has)s 819(been)s 1315(generalized)s 2460(in)s 2690(Lout:)s
+3294(arbitrary)s 4156(te)s 3(xt)k 4557(within)s 5212(an)s
+5481(Eif)s 6(fel)k 6059(comment)s 6995(between)s 7836(`)s
+7943(and)s 8334(')s 8432(will)s 8844(be)s
+grestore
+
+grestore
+
+grestore
+
+pgsave restore
+showpage
+
+%%Page: 11 13
+%%BeginPageSetup
+%%PageResources: font Times-Roman
+%%+ font Times-Italic
+%%+ font Times-Bold
+%%+ font Helvetica
+/pgsave save def
+%%IncludeResource: font Times-Italic
+/Times-Italicfnt83 vec2 /Times-Italic LoutRecode
+/fnt83 { /Times-Italicfnt83 LoutFont } def
+%%IncludeResource: font Times-Bold
+/Times-Boldfnt84 vec2 /Times-Bold LoutRecode
+/fnt84 { /Times-Boldfnt84 LoutFont } def
+0.0500 dup scale 10 setlinewidth
+%%EndPageSetup
+gsave
+0 0 translate
+240 fnt82 0.0 0.0 0.0 setrgbcolor 11900 16840 0 16840 240 288 60 LoutGraphic
+gsave
+LoutPageSet
+grestore
+gsave
+0 16840 translate
+0.0000 rotate
+9066 14006 0 14006 240 288 60 1417 -15423 LoutGr2
+1 LoutMargSet
+grestore
+240 fnt83 0 13843(1.8.)m 454(Embedding)s 1599(pr)s 10(o)k 2(gr)k 3(am)k
+2479(te)s 4(xt)k 2883(within)s 3535(pr)s 10(o)k 2(gr)k 3(am)k
+4415(comments)s 240 fnt84 8839 13840(11)m 240 fnt82 0 13205(treated)m
+707(as)s 957(Eif)s 6(fel)k 1548(te)s 3(xt)k
+1963(and)s 2367(printed)s 3102(accordingly)s 15(.)k 4380(Some)s
+4981(other)s 5532(languages)s 6540(may)s 7006(also)s 7444(of)s 6(fer)k
+7961(this)s 8358(feature:)s 0 12917(see)m 377(the)s 742(\207fth)s
+1214(column)s 2006(of)s 2294(the)s 2659(table)s 3195(at)s
+3444(the)s 3809(start)s 4296(of)s 4584(this)s 4997(chapter)s 13(.)k
+5867(In)s 6140(principle)s 7062(the)s 7427(precise)s 8176(means)s
+8855(of)s 0 12629(getting)m 707(it)s 889(could)s 1469(v)s 6(ary)k
+1932(from)s 2445(language)s 3355(to)s 3584(language,)s 4545(b)s 4(ut)k
+4897(the)s 5234(languages)s 6232(a)s 4(v)k 6(ailable)k
+7130(at)s 7352(the)s 7690(moment)s 8523(either)s 0 12341(do)m
+293(not)s 659(ha)s 4(v)k 3(e)k 1160(it)s
+1352(at)s 1584(all,)s 1929(or)s 2188(else)s 2615(the)s 3(y)k
+3078(use)s 3453(`)s 3574(and)s 3978(')s 4090(lik)s 2(e)k
+4502(Eif)s 6(fel.)k 480 11967(On)m 847(the)s 1213(subject)s
+1967(of)s 2256(Eif)s 6(fel,)k 2917(the)s 3282(Eif)s 6(fel)k
+3891(reference)s 4852([1)s 5026(])s 5161(has)s 5549(some)s
+6128(quite)s 6679(detailed)s 7511(style)s 8036(guidelines,)s 0 11679(and)m
+436(these)s 1016(ha)s 4(v)k 3(e)k 1550(been)s
+2091(closely)s 2855(follo)s 6(wed)k 3790(in)s 4066(the)s
+4446(implementation)s 6036(of)s 6340(the)s 220 fnt35 6720 11676(@Eiff)m 6(el)k
+240 fnt82 7502 11679(symbol.)m 8404(In)s 8693(par)s 8998(-)s
+0 11391(ticular)m 9(,)k 220 fnt35 744 11388(@Eiff)m 6(el)k
+240 fnt82 1531 11391(prints)m 2164(dots)s 2651(lar)s 4(ger)k
+3301(than)s 3808(usual)s 4406(when)s 5019(the)s 3(y)k
+5520(denote)s 6252(feature)s 7007(calls,)s 7589(as)s 7877(the)s
+8263(e)s 3(xample)k 240 fnt83 0 11105(account)m 336 fnt82
+762 11095(.)m 240 fnt83 835 11105(deposit)m 240 fnt82 1530 11103(\(20\))m
+1977(sho)s 6(ws.)k 240 fnt84 0 10314(1.9.)m 471(Reading)s
+1378(and)s 1819(selecting)s 2750(pr)s 4(ogram)k 3706(text)s
+4150(fr)s 4(om)k 4706(separate)s 5625(\207les)s 240 fnt82
+480 9837(W)m 19(e)k 852(ha)s 4(v)k 3(e)k
+1356(said)s 1802(that)s 2223(program)s 3096(te)s 3(xt)k
+3514(within)s 220 fnt35 4186 9834(@CP { ...)m 13( })k 240 fnt82
+5266 9837(and)m 5673(the)s 6024(other)s 6578(symbols)s 7430(is)s
+7643(passed)s 8343(directly)s 0 9549(to)m 220 fnt35 272 9546(prg2lout)m
+240 fnt82 1153 9549(for)m 1525(analysis.)s 2492(Ho)s 6(we)k 6(v)k 3(er)k 9(,)k
+3485(there)s 4052(is)s 4295(an)s 4611(e)s 3(xception.)k
+5736(The)s 6197(program)s 7100(te)s 3(xt)k 7549(may)s
+8048(contain)s 8843(an)s 220 fnt35 0 9258(@Include)m 240 fnt82
+985 9261(or)m 220 fnt35 1248 9258(@SysInclude)m 240 fnt82 2599 9261(command,)m
+3654(which,)s 4349(as)s 4603(for)s 4945(the)s 220 fnt35
+5296 9258(@V)m 17(erbatim)k 240 fnt82 6429 9261(symbol)m 7192(\(Section)s
+8049(??\),)s 8451(causes)s 0 8973(Lout)m 512(to)s 751(tak)s 2(e)k
+1203(the)s 1551(program)s 2421(te)s 3(xt)k 2836(from)s
+3360(a)s 3526(\207le:)s 220 fnt35 480 8472(@Eiff)m 6(el)k
+480 8184({)m 480 7896( @Include { "/usr/staff/jeff/Eiff)m 6(el/hash.e" })k 480 7608(})m 240 fnt82
+0 7114(The)m 421(included)s 1296(\207le)s 1649(is)s 1852(not)s
+2211(e)s 3(xamined)k 3188(for)s 3519(balanced)s 4419(braces)s
+5073(or)s 220 fnt35 5325 7111(@End)m 240 fnt82 5978 7114(or)m
+220 fnt35 6230 7111(@Include)m 240 fnt82 7152 7114(;)m 7257(it)s
+7441(is)s 7644(treated)s 8343(entirely)s 0 6826(v)m 3(erbatim)k
+895(and)s 1288(passed)s 1973(straight)s 2738(on)s 3024(to)s
+220 fnt35 3252 6823(prg2lout)m 240 fnt82 4040 6826(.)m 4193(There)s
+4795(may)s 5250(be)s 5521(se)s 6(v)k 3(eral)k
+220 fnt35 6232 6823(@Include)m 240 fnt82 7203 6826(commands,)m 8336(and)s
+8729(an)s 3(y)k 0 6538(amount)m 778(of)s 1049(program)s
+1919(te)s 3(xt)k 2334(as)s 2584(well,)s 3102(within)s
+220 fnt35 3770 6535(@CP { ...)m 13( })k 240 fnt82 4847 6538(and)m
+5251(the)s 5599(rest.)s 480 6164(When)m 1109(including)s 2066(\207les)s
+2515(in)s 2758(this)s 3153(w)s 2(ay)k 3604(it)s
+3796(often)s 4344(happens)s 5179(that)s 5597(only)s 6077(part)s
+6508(of)s 6778(an)s 7061(actual)s 7686(program)s 8556(\207le)s
+8916(is)s 0 5876(w)m 2(anted)k 753(for)s 1098(display)s 15(.)k
+1945(Rather)s 2649(than)s 3125(placing)s 3888(the)s 4243(w)s 2(anted)k
+4997(part)s 5435(in)s 5685(a)s 5857(separate)s 6702(\207le,)s
+7121(which)s 7770(is)s 7987(error)s 4(-prone)k 0 5588(and)m
+404(tedious)s 1147(when)s 1724(the)s 2073(program)s 2944(is)s
+3154(changing,)s 4140(Unix)s 4675(users)s 5218(can)s 5608(use)s
+5984(the)s 220 fnt35 6332 5585(pipe)m 240 fnt82 6799 5588(option)m
+7469(to)s 7709(pipe)s 8178(the)s 8527(entire)s 0 5300(\207le)m
+369(through)s 1180(an)s 1472(arbitrary)s 2355(sequence)s 3297(of)s
+3577(Unix)s 4119(commands,)s 5272(which)s 5923(may)s 6397(be)s
+6688(used)s 7194(to)s 7441(mak)s 2(e)k 8022(the)s
+8379(w)s 2(anted)k 0 5012(selection)m 906(before)s 1572(the)s
+1920(program)s 2790(te)s 3(xt)k 3205(is)s 3415(passed)s
+4111(to)s 220 fnt35 4350 5009(prg2lout)m 240 fnt82 5138 5012(.)m
+480 4638(F)m 3(or)k 868(e)s 3(xample,)k 1780(suppose)s
+2606(that)s 3022(all)s 3313(your)s 3810(Eif)s 6(fel)k
+4399(routines)s 5218(be)s 3(gin)k 5802(with)s 6282(the)s
+6628(routine)s 7359(name)s 7931(one)s 8331(tab)s 8674(stop)s
+0 4350(from)m 524(the)s 872(left)s 1249(mar)s 4(gin)k
+1979(and)s 2383(end)s 2787(at)s 3019(the)s 3367(\207rst)s
+3798(follo)s 6(wing)k 240 fnt84 4775 4349(end)m 240 fnt82
+5202 4350(indented)m 6084(tw)s 2(o)k 6494(tab)s 6839(stops.)s
+7495(Then)s 220 fnt35 480 3849(@Eiff)m 6(el)k 480 3561( pipe { "sed -n /^.inser)m -8(t/,/^..end/p" })k
+480 3273({)m 480 2985( @Include { "/usr/staff/jeff/Eiff)m 6(el/hash.e" })k 480 2697(})m 240 fnt82
+0 2203(will)m 417(select)s 1010(just)s 1406(the)s 240 fnt83
+1744 2205(insert)m 240 fnt82 2342 2203(routine)m 3066(from)s 3580(the)s
+220 fnt35 3918 2200(hash.e)m 240 fnt82 4620 2203(\207le.)m 5079(Assuming)s
+6094(that)s 6502(your)s 6991(program)s 7852(te)s 3(xt)k
+8257(has)s 8617(been)s 0 1915(laid)m 413(out)s 775(in)s
+1014(a)s 1176(disciplined)s 2279(manner)s 9(,)k 3090(e)s 6(v)k 3(ery)k
+3663(line)s 4073(of)s 4340(the)s 4684(selection)s 5586(will)s
+6008(be)s 3(gin)k 6591(with)s 7069(a)s 7231(tab)s
+7572(character)s 8502(that)s 8916(is)s 0 1627(not)m 366(w)s 2(anted)k
+1113(in)s 1356(this)s 1752(display)s 15(,)k 2535(so)s
+2801(an)s 3084(e)s 6(v)k 3(en)k 3584(better)s
+4187(pipe)s 4655(is)s
+grestore
+
+grestore
+
+grestore
+
+pgsave restore
+showpage
+
+%%Page: 12 14
+%%BeginPageSetup
+%%PageResources: font Times-Roman
+%%+ font Times-Bold
+%%+ font Times-Italic
+%%+ font Helvetica
+/pgsave save def
+%%IncludeResource: font Times-Bold
+/Times-Boldfnt84 vec2 /Times-Bold LoutRecode
+/fnt84 { /Times-Boldfnt84 LoutFont } def
+%%IncludeResource: font Times-Italic
+/Times-Italicfnt83 vec2 /Times-Italic LoutRecode
+/fnt83 { /Times-Italicfnt83 LoutFont } def
+0.0500 dup scale 10 setlinewidth
+%%EndPageSetup
+gsave
+0 0 translate
+240 fnt82 0.0 0.0 0.0 setrgbcolor 11900 16840 0 16840 240 288 60 LoutGraphic
+gsave
+LoutPageSet
+grestore
+gsave
+0 16840 translate
+0.0000 rotate
+9066 14006 0 14006 240 288 60 1417 -15423 LoutGr2
+0 LoutMargSet
+grestore
+240 fnt84 0 13840(12)m 240 fnt83 5981 13843(Chapter)m 6831(1.)s
+7105(Computer)s 8128(Pr)s 10(o)k 2(gr)k 3(ams)k
+220 fnt35 480 13207(@Eiff)m 6(el)k 480 12919( pipe { "sed -n /^.inser)m -8(t/,/^..end/p | cut -c2-" })k
+480 12631({)m 480 12343( @Include { "/usr/staff/jeff/Eiff)m 6(el/hash.e" })k 480 12055(})m 240 fnt82
+0 11561(since)m 584(it)s 813(cuts)s 1286(a)s 3(w)k 2(ay)k
+1878(the)s 2263(unw)s 2(anted)k 3287(tab)s 3670(characters.)s
+4838(Unfortunately)s 15(,)k 6308(we)s 6680(can')s 4(t)k
+7251(sho)s 6(w)k 7842(the)s 8227(result)s 8855(of)s
+0 11273(this)m 430(on)s 761(an)s 1078(actual)s 1737(e)s 3(xample,)k
+2685(since)s 3266(that)s 3718(w)s 2(ould)k 4407(pre)s 6(v)k 3(ent)k
+5209(this)s 5639(manual)s 6432(from)s 6990(being)s 7609(formatted)s
+8629(on)s 8960(a)s 0 10985(non-Unix)m 973(system.)s 240 fnt84
+0 10193(1.10.)m 591(Err)s 4(or)k 1243(messages)s 240 fnt82
+480 9716(In)m 739(order)s 1307(to)s 1550(understand)s 2662(the)s
+3013(error)s 3540(messages)s 4498(produced)s 5451(by)s 5749(program)s
+6622(printing,)s 7490(it)s 7686(is)s 7900(necessary)s 8887(to)s
+0 9428(understand)m 1113(that)s 1536(Lout')s 13(s)k 2203(\207rst)s
+2639(step)s 3082(when)s 3663(gi)s 6(v)k 3(en)k
+4248(a)s 4419(program)s 5294(te)s 3(xt)k 5714(is)s
+5929(to)s 6173(pass)s 6641(it)s 6838(to)s 7082(the)s
+7435(separate)s 220 fnt35 8278 9425(prg2lout)m 240 fnt82 0 9140(program)m
+917(for)s 1303(analysis.)s 2285(This)s 2809(separate)s 3695(program)s
+4613(is)s 4871(the)s 5266(source)s 5994(of)s 6313(most)s
+6886(of)s 7205(the)s 7601(error)s 8172(messages)s 0 8852(associated)m
+1040(with)s 1522(program)s 2392(printing.)s 480 8478(The)m 220 fnt35
+907 8475(prg2lout)m 240 fnt82 1753 8478(program)m 2622(is)s 2830(quite)s
+3362(happ)s 2(y)k 3999(to)s 4236(format)s 4931(a)s
+5095(fragment)s 6015(of)s 6285(a)s 6449(computer)s 7411(program:)s
+8385(there)s 8916(is)s 0 8190(no)m 278(need)s 773(to)s
+997(supply)s 1675(a)s 1826(complete)s 2743(routine,)s 3512(or)s
+3756(a)s 3907(complete)s 4824(statement,)s 5831(or)s 6075(an)s 3(y)k
+6457(such)s 6938(thing.)s 7579(Ho)s 6(we)k 6(v)k 3(er)k 9(,)k
+8524(it)s 8700(will)s 0 7902(complain)m 944(if)s 1157(you)s
+1568(supply)s 2258(only)s 2734(a)s 2896(fragment)s 3815(of)s
+4082(one)s 4480(le)s 3(xical)k 5164(unit,)s 5640(such)s
+6132(as)s 6378(a)s 6541(comment)s 7487(or)s 7742(string)s
+8335(without)s 0 7614(its)m 276(terminating)s 1431(delimiter)s 13(.)k
+2444(It)s 2650(will)s 3077(also)s 3515(complain)s 4463(if)s
+4681(there)s 5215(is)s 5426(a)s 5592(character)s 6527(that)s
+6946(cannot)s 7645(be)s 7928(classi\207ed)s 8876(as)s 0 7326(part)m
+432(of)s 705(an)s 990(identi\207er)s 9(,)k 1952(number)s 9(,)k
+2782(etc.)s 3166(according)s 4164(to)s 4405(the)s 4754(rules)s
+5271(of)s 5544(the)s 5894(language)s 6815(as)s 7067(the)s 3(y)k
+7532(ha)s 4(v)k 3(e)k 8035(been)s 8546(gi)s 6(v)k 3(en)k
+0 7038(to)m 220 fnt35 259 7035(prg2lout)m 240 fnt82 1127 7038(by)m
+1442(the)s 1810(implementer)s 13(.)k 3189(Irrespecti)s 6(v)k 3(e)k
+4382(of)s 4673(the)s 5042(language)s 5982(rules,)s 220 fnt35
+6574 7035(prg2lout)m 240 fnt82 7442 7038(al)m 2(w)k 2(ays)k
+8174(interprets)s 0 6750(spaces,)m 731(tabs,)s 1223(ne)s 6(wlines,)k
+2174(and)s 2578(formfeed)s 3511(characters)s 4529(in)s 4772(the)s
+5120(usual)s 5680(w)s 2(ay)k 15(.)k 480 6376(If)m
+738(an)s 1050(error)s 1601(message)s 2496(is)s 2735(generated)s
+3750(by)s 220 fnt35 4073 6373(prg2lout)m 240 fnt82 4861 6376(,)m
+4996(it)s 5217(will)s 5672(contain)s 6461(a)s 6656(line)s
+7098(and)s 7531(column)s 8335(number)s 0 6088(counting)m 891(from)s
+1415(the)s 1763(start)s 2233(of)s 2504(the)s 2852(program)s
+3722(te)s 3(xt)k 4137(in)s 9(v)k 4(olv)k 3(ed.)k
+5123(Lout)s 5635(will)s 6061(precede)s 6860(this)s 7256(error)s
+7779(message)s 8644(with)s 0 5800(a)m 175(\207le)s 545(name,)s
+1179(line)s 1602(number)s 9(,)k 2441(and)s 2854(column)s
+3638(number)s 4438(pointing)s 5298(to)s 5547(the)s 5904(Lout)s
+6425(symbol)s 7194(\()s 220 fnt35 7267 5797(@CP)m 240 fnt82
+7785 5800(,)m 220 fnt35 7901 5797(@Eiff)m 6(el)k 240 fnt82
+8660 5800(etc.\))m 0 5512(whose)m 668(program)s 1538(te)s 3(xt)k
+1953(caused)s 2662(the)s 3010(error)s 3533(message,)s 4450(lik)s 2(e)k
+4862(this:)s 220 fnt35 480 5012(lout \207le "prg_tabs" \(from "prg" line 96, from "all" line 46\):)m 480 4724( 56,23:)m 11( prg2lout 2,1:)k 11( prog)k 2(r)k 2(am te)k 6(xt ended within comment)k
+240 fnt82 0 4225(This)m 476(is)s 686(an)s 970(actual)s
+1595(message)s 2462(produced)s 3411(when)s 3988(formatting)s 5049(this)s
+5445(chapter)s 13(.)k 6300(The)s 6728(program)s 7599(te)s 3(xt)k
+8014(in)s 8258(question)s 0 3937(has)m 369(only)s 848(one)s
+1249(line,)s 1713(containing)s 2775(an)s 3057(incomplete)s 4174(comment,)s
+5169(so)s 5434(when)s 220 fnt35 6009 3934(prg2lout)m 240 fnt82
+6856 3937(tried)m 7350(to)s 7588(start)s 8057(the)s 8403(second)s
+0 3649(line)m 408(and)s 805(found)s 1416(nothing,)s 2248(it)s
+2434(complained)s 3601(as)s 3845(sho)s 6(wn.)k 4622(In)s
+4872(general,)s 5675(then,)s 6188(you)s 6596(ha)s 4(v)k 3(e)k
+7091(to)s 7323(add)s 220 fnt35 7721 3646(prg2lout)m 240 fnt82
+8509 3649(')m 13(s)k 8712(line)s 0 3361(number)m 791(to)s
+1030(Lout')s 13(s)k 1692(line)s 2106(number)s 9(,)k
+2935(and)s 3339(use)s 3714(some)s 4275(initiati)s 6(v)k 3(e,)k
+5221(to)s 5460(\207nd)s 5891(the)s 6239(precise)s 6971(point)s
+7523(of)s 7794(the)s 8142(problem.)s 240 fnt84 0 2569(1.11.)m
+591(Notes)s 1216(on)s 1525(P)s 4(erl)k 2000(and)s
+2441(P)s 4(od)k 240 fnt82 480 2137(The)m 923(Perl)s
+1378(programming)s 2749(language)s 153 fnt82 3609 2226(1)m 240 fnt82
+3744 2137(is)m 3970(quite)s 4520(a)s 4702(dif\207cult)s 5533(one)s
+5951(for)s 6305(the)s 220 fnt35 6668 2134(prg2lout)m 240 fnt82
+7532 2137(program)m 8418(to)s 8673(deal)s 0 1849(with,)m 526(and)s
+924(our)s 1297(boast)s 1855(that)s 2267(programs)s 3215(can)s
+3598(be)s 3873(included)s 4749(with)s 5225(`absolutely)s 6335(no)s
+6621(modi\207cations')s 8029(is)s 8233(not)s 8592(quite)s 0 1561(true)m
+427(for)s 765(Perl.)s 480 1187(Here)m 992(is)s 1194(the)s
+1534(complete)s 2458(list)s 2801(of)s 3064(problem)s 3913(areas.)s
+4559(In)s 4807(most)s 5324(cases)s 5871(their)s 6360(ef)s 6(fect)k
+6948(is)s 7150(to)s 7381(get)s 7725(the)s 8065(formatting)s
+0 899(wrong)m 675(o)s 3(v)k 3(er)k 1164(a)s
+1341(short)s 1889(re)s 3(gion,)k 2615(which)s 3267(is)s
+3488(not)s 3864(perhaps)s 4670(so)s 4946(disastrous;)s 6025(and)s
+6439(it)s 6642(should)s 7349(be)s 7642(easy)s 8131(to)s
+8381(modify)s 1134 0 0 0 240 288 60 0 307 LoutGr2
+0 0 moveto xsize 0 lineto stroke
+grestore
+
+grestore
+122 fnt82 0 112(1)m 192 fnt82 58 42(My)m
+368(thanks)s 909(to)s 1101(Mark)s 1563(Summer\207eld)s 2598(for)s
+2868(help)s 3241(with)s 3627(Perl)s 3978(and)s 4302(Pod.)s
+
+grestore
+
+grestore
+
+grestore
+
+pgsave restore
+showpage
+
+%%Page: 13 15
+%%BeginPageSetup
+%%PageResources: font Times-Roman
+%%+ font Times-Italic
+%%+ font Times-Bold
+%%+ font Courier
+%%+ font Helvetica
+/pgsave save def
+%%IncludeResource: font Times-Italic
+/Times-Italicfnt83 vec2 /Times-Italic LoutRecode
+/fnt83 { /Times-Italicfnt83 LoutFont } def
+%%IncludeResource: font Times-Bold
+/Times-Boldfnt84 vec2 /Times-Bold LoutRecode
+/fnt84 { /Times-Boldfnt84 LoutFont } def
+%%IncludeResource: font Courier
+/Courierfnt29 vec2 /Courier LoutRecode
+/fnt29 { /Courierfnt29 LoutFont } def
+0.0500 dup scale 10 setlinewidth
+%%EndPageSetup
+gsave
+0 0 translate
+240 fnt82 0.0 0.0 0.0 setrgbcolor 11900 16840 0 16840 240 288 60 LoutGraphic
+gsave
+LoutPageSet
+grestore
+gsave
+0 16840 translate
+0.0000 rotate
+9066 14006 0 14006 240 288 60 1417 -15423 LoutGr2
+1 LoutMargSet
+grestore
+240 fnt83 0 13843(1.11.)m 574(Notes)s 1174(on)s 1468(P)s 19(erl)k
+1920(and)s 2346(P)s 19(od)k 240 fnt84 8833 13840(13)m
+240 fnt82 0 13249(your)m 507(Perl)s 955(program)s 1834(without)s
+2634(changing)s 3574(its)s 3859(meaning,)s 4799(to)s 5046(w)s 2(ork)k
+5606(around)s 6338(these)s 6894(problems.)s 7957(After)s 8529(all,)s
+8883(in)s 0 12961(Perl)m 439(there)s 972(is)s 1182(al)s 2(w)k 2(ays)k
+1893(more)s 2440(than)s 2909(one)s 3311(w)s 2(ay)k
+3762(to)s 4001(do)s 4294(it.)s 0 12456(1.)m 240 fnt83
+480 12458(Her)m 8(e-documents)k 240 fnt82 2108 12456(such)m 2604(as)s
+960 12004(<<"EOF")m 960 11716(These lines will be read as though)m 960 11428(enclosed in double quotes)m 960 11140(EOF)m 480 10686(will)m
+893(be)s 1162(handled)s 1964(correctly)s 2853(only)s 3320(if)s
+3523(the)s 3858(string)s 4442(appearing)s 5424(immediately)s 6659(after)s
+7142(the)s 220 fnt29 7476 10694(<<)m 240 fnt82 7787 10686(operator)m
+8629(\(that)s 480 10398(is,)m 748(the)s 1098(string)s 1697(used)s
+2197(to)s 2438(terminate)s 3397(the)s 3747(here-document\))s 5312(is)s
+5524(one)s 5928(of)s 220 fnt29 6201 10406(EOF)m 240 fnt82
+6597 10398(,)m 220 fnt29 6707 10406(EOT)m 240 fnt82 7103 10398(,)m
+220 fnt29 7212 10406(END)m 240 fnt82 7608 10398(,)m 7717(and)s
+8123(the)s 8474(empty)s 480 10110(string,)m 1116(all)s 1393(optionally)s
+2401(enclosed)s 3281(in)s 3508(quotes)s 4168(of)s 4424(an)s 3(y)k
+4805(of)s 5060(the)s 5392(three)s 5910(kinds.)s 6577(If)s
+6791(this)s 7172(condition)s 8117(is)s 8311(not)s 8661(met,)s
+480 9822(then)m 942(the)s 1283(here-document)s 2770(will)s 3189(be)s
+3464(treated)s 4163(as)s 4406(Perl)s 4838(program)s 5701(te)s 3(xt.)k
+6213(If)s 6435(the)s 6776(condition)s 7730(is)s 7933(met,)s
+8391(there)s 8916(is)s 480 9534(still)m 885(another)s 1655(problem:)s
+2610(the)s 220 fnt29 2951 9542(<<)m 240 fnt82 3268 9534(symbol)m
+4020(and)s 4417(e)s 6(v)k 3(erything)k 5476(after)s
+5965(it)s 6150(on)s 6439(the)s 6780(same)s 7320(line)s
+7726(will)s 8145(be)s 8419(treated)s 480 9246(\(incorrectly\))m 1715(as)s
+1958(a)s 2117(string.)s 2819(The)s 3240(w)s 2(orst)k
+3822(consequence)s 5095(of)s 5359(this)s 5748(is)s 5952(that)s
+6363(stack)s 2(ed)k 7129(here-documents)s 8700(will)s 480 8958(not)m
+846(be)s 1128(printed)s 1863(properly)s 15(.)k 0 8455(2.)m
+480(When)s 220 fnt35 1118 8452(prg2lout)m 240 fnt82 1976 8455(is)m
+2196(scanning)s 3110(the)s 3468(program)s 4347(te)s 3(xt)k
+4772(looking)s 5567(for)s 5915(the)s 6273(be)s 3(ginning)k
+7290(of)s 7571(a)s 7747(le)s 3(xical)k 8445(unit,)s
+8934(it)s 480 8167(may)m 939(come)s 1505(upon)s 2034(a)s
+220 fnt35 2192 8164(/)m 240 fnt82 2309 8167(character)m 9(,)k
+3273(and)s 3669(this)s 240 fnt83 4057 8169(initial)m 220 fnt35
+4680 8164(/)m 240 fnt82 4796 8167(\(not)m 5233(subsequent)s 6349(ones)s
+6832(in)s 7067(the)s 7407(same)s 7946(le)s 3(xical)k
+8626(unit\))s 480 7879(it)m 691(\207nds)s 1227(dif\207cult)s 2062(to)s
2320(interpret,)s 3254(since)s 3820(it)s 4031(may)s 4517(be)s
4818(the)s 5185(be)s 3(ginning)k 6212(of)s 6502(a)s
6687(re)s 3(gular)k 7439(e)s 3(xpression,)k 8585(to)s
-8844(be)s 480 6498(formatted)m 1460(lik)s 2(e)k 1865(a)s
+8844(be)s 480 7591(formatted)m 1460(lik)s 2(e)k 1865(a)s
2024(string,)s 2668(or)s 2920(it)s 3105(may)s 3564(be)s
3839(a)s 3998(complete)s 4923(le)s 3(xical)k 5604(unit)s
6029(denoting)s 6913(di)s 6(vision.)k 7835(The)s 8256(program)s
-480 6210(chooses)m 1308(the)s 1675(re)s 3(gular)k 2427(e)s 3(xpression)k
+480 7303(chooses)m 1308(the)s 1675(re)s 3(gular)k 2427(e)s 3(xpression)k
3524(\(or)s 3881(equi)s 6(v)k 6(alently)k 15(,)k
5162(string\))s 5853(interpretation)s 7216(if)s 7452(the)s 220 fnt35
-7819 6207(/)m 240 fnt82 7962 6210(character)m 8916(is)s 480 5922(immediately)m
-1714(preceded)s 2620(by)s 220 fnt35 2900 5919(q)m 240 fnt82
-3009 5922(,)m 220 fnt35 3101 5919(qq)m 240 fnt82 3332 5922(,)m
-220 fnt35 3424 5919(qx)m 240 fnt82 3654 5922(,)m 220 fnt35
-3747 5919(qw)m 240 fnt82 4025 5922(,)m 220 fnt35 4117 5919(qr)m
-240 fnt82 4312 5922(,)m 220 fnt35 4405 5919(m)m 240 fnt82
-4574 5922(,)m 220 fnt35 4666 5919(s)m 240 fnt82 4769 5922(,)m
-220 fnt35 4861 5919(y)m 240 fnt82 4969 5922(,)m 5062(or)s
-220 fnt35 5306 5919(tr)m 240 fnt82 5440 5922(.)m 5590(It)s
+7819 7300(/)m 240 fnt82 7962 7303(character)m 8916(is)s 480 7015(immediately)m
+1714(preceded)s 2620(by)s 220 fnt35 2900 7012(q)m 240 fnt82
+3009 7015(,)m 220 fnt35 3101 7012(qq)m 240 fnt82 3332 7015(,)m
+220 fnt35 3424 7012(qx)m 240 fnt82 3654 7015(,)m 220 fnt35
+3747 7012(qw)m 240 fnt82 4025 7015(,)m 220 fnt35 4117 7012(qr)m
+240 fnt82 4312 7015(,)m 220 fnt35 4405 7012(m)m 240 fnt82
+4574 7015(,)m 220 fnt35 4666 7012(s)m 240 fnt82 4769 7015(,)m
+220 fnt35 4861 7012(y)m 240 fnt82 4969 7015(,)m 5062(or)s
+220 fnt35 5306 7012(tr)m 240 fnt82 5440 7015(.)m 5590(It)s
5780(also)s 6203(chooses)s 6998(the)s 7331(re)s 3(gular)k
-8049(e)s 3(xpression)k 480 5634(interpretation)m 1834(if)s 2063(the)s
-220 fnt35 2423 5631(/)m 240 fnt82 2558 5634(character)m 3504(is)s
-3726(immediately)s 4986(preceded)s 5918(by)s 6224(zero,)s 6754(one,)s
-7219(or)s 7489(tw)s 2(o)k 7911(space)s 8510(or)s
-8781(tab)s 480 5346(characters,)m 1549(which)s 2186(are)s 2528(themselv)s 3(es)k
-3633(immediately)s 4876(preceded)s 5792(by)s 6081(a)s 6242(complete)s
-7169(le)s 3(xical)k 7852(unit)s 8279(which)s 8916(is)s
-480 5058(either)m 220 fnt35 1078 5055(=)m 240 fnt82 1198 5058(,)m
-220 fnt35 1300 5055(=~)m 240 fnt82 1543 5058(,)m 220 fnt35
-1645 5055(!~)m 240 fnt82 1821 5058(,)m 220 fnt35 1923 5055(split)m
-240 fnt82 2308 5058(,)m 2410(or)s 220 fnt35 2664 5055(if)m
-240 fnt82 2770 5058(.)m 2929(Otherwise)s 3961(it)s 4148(chooses)s
-4952(the)s 5295(di)s 6(vision)k 6112(interpretation.)s 7557(In)s
-7808(the)s 8151(rare)s 8571(cases)s 480 4770(where)m 1120(this)s
-1517(rule)s 1945(f)s 2(ails,)k 2460(you)s 2876(can)s
-3266(force)s 220 fnt35 3812 4767(prg2lout)m 240 fnt82 4661 4770(to)m
-4901(choose)s 5622(the)s 5971(re)s 3(gular)k 6705(e)s 3(xpression)k
-7783(interpretation)s 480 4482(by)m 777(placing)s 1537(an)s 220 fnt35
-1823 4479(m)m 240 fnt82 2055 4482(in)m 2301(front)s 2829(of)s
-3103(the)s 3454(initial)s 220 fnt35 4068 4479(/)m 240 fnt82
-4195 4482(\(this)m 4673(does)s 5167(not)s 5536(change)s 6273(the)s
-6624(meaning)s 7504(of)s 7778(the)s 8130(program\),)s 480 4194(and)m
-910(you)s 1352(can)s 1768(force)s 2341(the)s 2716(di)s 6(vision)k
-3565(interpretation)s 4935(by)s 5256(placing)s 6040(at)s 6299(least)s
-6823(three)s 7383(spaces)s 8085(before)s 8778(the)s 220 fnt35
-480 3903(/)m 240 fnt82 604 3906(character)m 13(.)k 0 3448(3.)m
-480(The)s 220 fnt35 910 3445(prg2lout)m 240 fnt82 1761 3448(program)m
-2634(recognises)s 3697(complete)s 4632(substitution)s 5808(operators,)s 6807(such)s
-7306(as)s 220 fnt35 7559 3445(s/abc/ABC/)m 240 fnt82 8722 3448(and)m
-220 fnt35 480 3157(s{abc}{ABC})m 240 fnt82 1677 3160(,)m 1799(as)s
-2065(indi)s 6(vidual)k 3100(le)s 3(xical)k 3804(units,)s
-4392(and)s 4812(it)s 5019(formats)s 5815(them)s 6369(as)s
-6635(it)s 6843(does)s 7349(strings.)s 8166(Ho)s 6(we)k 6(v)k 3(er)k 9(,)k
-480 2872(its)m 774(rule)s 1219(for)s 1575(deciding)s 2470(where)s
-3128(these)s 3693(units)s 4227(end)s 4650(is)s 4878(rather)s
-5512(simple-minded:)s 7130(at)s 7380(the)s 7746(start,)s 8281(it)s
-8492(w)s 2(orks)k 480 2584(out)m 846(what)s 1372(character)s
-2306(\207nishes)s 3089(the)s 3438(unit)s 3870(\(in)s 4193(the)s
-4541(e)s 3(xamples)k 5493(abo)s 3(v)k 3(e,)k
-220 fnt35 6167 2581(/)m 240 fnt82 6291 2584(and)m 220 fnt35
-6696 2581(})m 240 fnt82 6820 2584(respecti)m 6(v)k 3(ely\),)k
-8152(and)s 8557(scans)s 480 2296(along)m 1070(until)s 1569(it)s
-1767(reaches)s 2540(the)s 2894(second)s 3622(occurrence)s 4732(of)s
-5009(this)s 5411(character)s 6351(not)s 6722(preceded)s 7649(by)s
-7949(the)s 220 fnt35 8303 2293(\\)m 240 fnt82 8433 2296(escape)m
-480 2008(character)m 13(.)k 1505(This)s 1981(is)s 2191(inadequate)s
-3283(in)s 3526(tw)s 2(o)k 3936(respects.)s 4869(Firstly)s 15(,)k
-220 fnt35 960 1510(s{{}}{})m 240 fnt82 480 1016(is)m 698(a)s
-872(complete)s 1812(le)s 3(g)k 1(al)k 2336(substitution)s
-3517(e)s 3(xpression)k 4602(in)s 4853(Perl,)s 5353(b)s 4(ut)k
-220 fnt35 5723 1013(prg2lout)m 240 fnt82 6579 1016(will)m 7013(think)s
-7575(it)s 7775(ends)s 8273(after)s 8778(the)s 480 728(second)m
-220 fnt35 1203 725(})m 240 fnt82 1267 728(,)m 1374(and)s
-1778(so)s 2044(format)s 2740(the)s 3088(rest)s 3492(of)s
-3763(it)s 3955(wrongly)s 15(.)k 4902(Secondly)s 15(,)k
-5885(and)s 6289(more)s 6836(seriously)s 15(,)k 1134 0 0 0 240 288 60 0 307 LoutGr2
-0 0 moveto xsize 0 lineto stroke
-grestore
+8049(e)s 3(xpression)k 480 6727(interpretation)m 1818(if)s 2029(the)s
+220 fnt35 2371 6724(/)m 240 fnt82 2489 6727(character)m 3417(appears)s
+4192(at)s 4418(the)s 4760(start)s 5225(of)s 5490(a)s
+5650(line,)s 6109(or)s 6362(if)s 6573(it)s 6759(is)s
+6963(immediately)s 8205(preceded)s 480 6439(by)m 787(zero,)s 1319(one,)s
+1786(or)s 2059(tw)s 2(o)k 2482(space)s 3083(or)s
+3356(tab)s 3715(characters,)s 4802(which)s 5458(are)s 5819(themselv)s 3(es)k
+6943(immediately)s 8205(preceded)s 480 6151(by)m 784(a)s 961(complete)s
+1903(le)s 3(xical)k 2602(unit)s 3044(which)s 3697(is)s
+3918(one)s 4330(of)s 220 fnt35 4612 6148(\()m 240 fnt82
+4678 6151(,)m 220 fnt35 4795 6148(=)m 240 fnt82 4915 6151(,)m
+220 fnt35 5033 6148(=~)m 240 fnt82 5276 6151(,)m 220 fnt35
+5393 6148(!~)m 240 fnt82 5569 6151(,)m 220 fnt35 5687 6148(split)m
+240 fnt82 6072 6151(,)m 220 fnt35 6190 6148(if)m 240 fnt82
+6296 6151(,)m 220 fnt35 6413 6148(and)m 240 fnt82 6767 6151(,)m
+220 fnt35 6885 6148(&&)m 240 fnt82 7173 6151(,)m 220 fnt35
+7290 6148(or)m 240 fnt82 7485 6151(,)m 220 fnt35 7603 6148(||)m
+240 fnt82 7697 6151(,)m 220 fnt35 7814 6148(not)m 240 fnt82
+8115 6151(,)m 220 fnt35 8233 6148(!)m 240 fnt82 8274 6151(,)m
+220 fnt35 8392 6148(unless)m 240 fnt82 9019 6151(,)m 220 fnt35
+480 5860(f)m 6(or)k 240 fnt82 730 5863(,)m 220 fnt35
+849 5860(f)m 6(oreach)k 240 fnt82 1561 5863(,)m 1681(and)s
+220 fnt35 2098 5860(while)m 240 fnt82 2588 5863(.)m 2765(Otherwise)s
+3816(it)s 4021(chooses)s 4843(the)s 5204(di)s 6(vision)k
+6039(interpretation.)s 7502(In)s 7771(the)s 8132(rare)s 8571(cases)s
+480 5575(where)m 1120(this)s 1517(rule)s 1945(f)s 2(ails,)k
+2460(you)s 2876(can)s 3266(force)s 220 fnt35 3812 5572(prg2lout)m
+240 fnt82 4661 5575(to)m 4901(choose)s 5622(the)s 5971(re)s 3(gular)k
+6705(e)s 3(xpression)k 7783(interpretation)s 480 5287(by)m 777(placing)s
+1537(an)s 220 fnt35 1823 5284(m)m 240 fnt82 2055 5287(in)m
+2301(front)s 2829(of)s 3103(the)s 3454(initial)s 220 fnt35
+4068 5284(/)m 240 fnt82 4195 5287(\(this)m 4673(does)s 5167(not)s
+5536(change)s 6273(the)s 6624(meaning)s 7504(of)s 7778(the)s
+8130(program\),)s 480 4999(and)m 910(you)s 1352(can)s 1768(force)s
+2341(the)s 2716(di)s 6(vision)k 3565(interpretation)s 4935(by)s
+5256(placing)s 6040(at)s 6299(least)s 6823(three)s 7383(spaces)s
+8085(before)s 8778(the)s 220 fnt35 480 4708(/)m 240 fnt82
+604 4711(character)m 13(.)k 0 4253(3.)m 480(Substitution)s 1701(e)s 3(xpressions,)k
+2930(e)s 6(v)k 3(en)k 3439(such)s 3943(le)s 3(xically)k
+4825(comple)s 3(x)k 5710(ones)s 6208(as)s 220 fnt29
+6467 4261(s{{@D}}[{@I}])m 240 fnt82 8183 4253(,)m 8299(are)s 8655(han)s
+8998(-)s 480 3965(dled)m 942(correctly)s 15(.)k 1931(Ho)s 6(we)k 6(v)k 3(er)k 9(,)k
+220 fnt35 2883 3962(prg2lout)m 240 fnt82 3723 3965(does)m 4205(not)s
+4563(understand)s 5663(that)s 6073(the)s 6413(letters)s 220 fnt35
+7038 3962(gimosx)m 240 fnt82 7783 3965(in)m 8018(an)s 3(y)k
+8406(combi)s 8998(-)s 480 3677(nation)m 1135(appearing)s 2131(immediately)s
+3378(after)s 3874(a)s 4040(substitution)s 5212(e)s 3(xpression)k
+6289(are)s 6636(part)s 7066(of)s 7337(it;)s 7581(it)s
+7772(treats)s 8339(them)s 8876(as)s 480 3389(the)m 825(start)s
+1291(of)s 1558(a)s 1721(ne)s 6(w)k 2164(le)s 3(xical)k
+2848(unit.)s 3380(This)s 3853(ne)s 6(w)k 4296(unit)s
+4724(will)s 5147(usually)s 5888(be)s 6166(tak)s 2(en)k
+6735(to)s 6971(be)s 7249(an)s 7528(identi\207er)s 9(,)k
+8484(which)s 480 3101(is)m 690(harmless)s 1590(enough,)s 2403(b)s 4(ut)k
+2765(occasionally)s 4014(it)s 4206(is)s 4416(tak)s 2(en)k
+4989(to)s 5228(be)s 5510(something)s 6560(else.)s 7095(F)s 3(or)k
+7484(e)s 3(xample,)k 8398(in)s 220 fnt35 960 2600(s///s;)m
+240 fnt82 480 2117(the)m 838(trailing)s 220 fnt35 1591 2114(s)m
+240 fnt82 1765 2117(will)m 2201(be)s 2494(mistak)s 2(en)k
+3423(for)s 3771(the)s 4130(start)s 4611(of)s 4892(a)s
+5069(ne)s 6(w)k 5527(substitution)s 6710(e)s 3(xpression,)k
+7848(with)s 220 fnt35 8341 2114(;)m 240 fnt82 8454 2117(delim)m
+8998(-)s 480 1829(iting)m 976(the)s 1329(\207rst)s 1766(pattern.)s
+2598(This)s 3080(particular)s 4059(e)s 3(xample)k 4927(can)s
+5322(be)s 5609(\207x)s 3(ed)k 6149(by)s 6448(inserting)s
+7342(a)s 7514(space)s 8106(before)s 8778(the)s 480 1541(semicolon.)m
+0 1088(Further)m 763(w)s 2(ork)k 1314(may)s 1780(eliminate)s
+2724(some)s 3285(of)s 3556(these)s 4103(problems.)s 480 714(The)m
+953(Pod)s 1429(language)s 2394(is)s 2650(used)s 3192(by)s
+3531(Perl)s 4015(programmers)s 5386(for)s 5769(creating)s 6636(documentation,)s
+8210(and)s 8660(may)s 0 426(be)m 313(found)s 961(within)s
+1660(Perl)s 2131(programs)s 3116(or)s 3406(standing)s 4301(alone.)s
+5015(Lout)s 5558(supports)s 6451(both)s 6965(arrangements)s 8335(without)s
+0 138(an)m 3(y)k 418(special)s 1157(action)s 1819(by)s
+2134(the)s 2503(user)s 13(.)k 3073(At)s 3393(the)s
+3762(be)s 3(ginning)k 4792(of)s 5084(the)s 220 fnt35
+5453 135(per)m -3(l)k 240 fnt82 5888 138(setup)m 6467(line,)s
+6953(the)s 7322(follo)s 6(wing)k 8320(line)s 8756(has)s
grestore
-122 fnt82
-0 112(1)m 192 fnt82 58 42(My)m 368(thanks)s 909(to)s
-1101(Mark)s 1563(Summer\207eld)s 2598(for)s 2868(help)s 3241(with)s
-3627(Perl)s 3978(and)s 4302(Pod.)s
-grestore
grestore
@@ -5084,7 +6867,7 @@ grestore
pgsave restore
showpage
-%%Page: 12 2
+%%Page: 14 16
%%BeginPageSetup
%%PageResources: font Times-Roman
%%+ font Times-Bold
@@ -5111,68 +6894,153 @@ gsave
9066 14006 0 14006 240 288 60 1417 -15423 LoutGr2
0 LoutMargSet
grestore
-240 fnt84 0 13840(12)m 240 fnt83 5981 13843(Chapter)m 6831(1.)s
+240 fnt84 0 13840(14)m 240 fnt83 5981 13843(Chapter)m 6831(1.)s
7105(Computer)s 8128(Pr)s 10(o)k 2(gr)k 3(ams)k
-220 fnt35 960 13207(s{abc}<ABC>)m 240 fnt82 480 12713(is)m 711(also)s
-1171(allo)s 6(wed)k 2001(in)s 2266(Perl,)s 2778(b)s 4(ut)k
-220 fnt35 3162 12710(prg2lout)m 240 fnt82 4031 12713(does)m 4543(not)s
-4930(understand)s 6060(that)s 6499(the)s 6869(\207nishing)s 7781(character)s
-8737(can)s 480 12425(change)m 1215(in)s 1459(this)s 1856(w)s 2(ay)k 15(,)k
-2346(so)s 2613(in)s 2858(this)s 3255(e)s 3(xample)k
-4119(it)s 4312(will)s 4739(k)s 2(eep)k 5244(scanning)s
-6149(fore)s 6(v)k 3(er)k 9(,)k 6928(looking)s
-7714(for)s 8053(the)s 8403(second)s 220 fnt35 480 12134(})m
-240 fnt82 604 12137(character)m 9(,)k 1576(which)s 2218(is)s
-2428(disastrous.)s 0 11640(Further)m 763(w)s 2(ork)k 1314(may)s
-1780(eliminate)s 2724(some)s 3285(of)s 3556(these)s 4103(problems.)s
-480 11266(The)m 953(Pod)s 1429(language)s 2394(is)s 2650(used)s
-3192(by)s 3531(Perl)s 4015(programmers)s 5386(for)s 5769(creating)s
-6636(documentation,)s 8210(and)s 8660(may)s 0 10978(be)m 313(found)s
-961(within)s 1660(Perl)s 2131(programs)s 3116(or)s 3406(standing)s
-4301(alone.)s 5015(Lout)s 5558(supports)s 6451(both)s 6965(arrangements)s
-8335(without)s 0 10690(an)m 3(y)k 418(special)s 1157(action)s
-1819(by)s 2134(the)s 2503(user)s 13(.)k 3073(At)s
-3393(the)s 3762(be)s 3(ginning)k 4792(of)s 5084(the)s
-220 fnt35 5453 10687(per)m -3(l)k 240 fnt82 5888 10690(setup)m
-6467(line,)s 6953(the)s 7322(follo)s 6(wing)k 8320(line)s
-8756(has)s 0 10402(been)m 509(placed:)s 220 fnt35 480 9901(@SysInclude { pod })m
-240 fnt82 0 9403(Thus,)m 576(asking)s 1244(for)s 1571(Perl)s
+240 fnt82 0 13205(been)m 509(placed:)s 220 fnt35 480 12704(@SysInclude { pod })m
+240 fnt82 0 12206(Thus,)m 576(asking)s 1244(for)s 1571(Perl)s
2000(al)s 2(w)k 2(ays)k 2700(gi)s 6(v)k 3(es)k
3237(you)s 3641(Pod)s 4062(as)s 4301(well.)s 4866(If)s
5085(you)s 5490(are)s 5826(using)s 6388(your)s 6876(o)s 6(wn)k
-7330(setup)s 7877(\207les)s 8316(for)s 8643(both)s 0 9115(languages,)m
+7330(setup)s 7877(\207les)s 8316(for)s 8643(both)s 0 11918(languages,)m
1068(it)s 1265(is)s 1480(probably)s 2390(better)s 2998(to)s
3242(break)s 3839(this)s 4240(connection)s 5352(by)s 5651(deleting)s
6479(this)s 6880(line)s 7299(from)s 7828(your)s 8332(cop)s 2(y)k
-8855(of)s 0 8827(the)m 220 fnt35 348 8824(per)m -3(l)k
-240 fnt82 762 8827(setup)m 1320(\207le)s 1681(and)s 2085(placing)s
-220 fnt35 480 8326(@Include { m)m 3(ypod })k 480 8038(@Include { m)m 3(yper)k -3(l })k
-240 fnt82 0 7540(at)m 232(the)s 580(start)s 1050(of)s
+8855(of)s 0 11630(the)m 220 fnt35 348 11627(per)m -3(l)k
+240 fnt82 762 11630(setup)m 1320(\207le)s 1681(and)s 2085(placing)s
+220 fnt35 480 11129(@Include { m)m 3(ypod })k 480 10841(@Include { m)m 3(yper)k -3(l })k
+240 fnt82 0 10343(at)m 232(the)s 580(start)s 1050(of)s
1321(your)s 1820(document)s 2824(in)s 3067(the)s 3415(usual)s
-3975(w)s 2(ay)k 15(.)k 480 7166(Because)m 1341(Pod)s
+3975(w)s 2(ay)k 15(.)k 480 9969(Because)m 1341(Pod)s
1781(is)s 2000(a)s 2174(documentation)s 3662(language)s 4591(rather)s
5215(than)s 5693(a)s 5868(programming)s 7231(language,)s 8211(the)s
-8568(setup)s 0 6878(\207le)m 376(options)s 1148(listed)s 1739(in)s
-1998(Section)s 2787(1.4)s 3157(are)s 3520(mostly)s 4241(of)s
-4527(no)s 4836(rele)s 6(v)k 6(ance.)k 5919(So)s
-6241(for)s 6594(Pod)s 7041(only)s 7537(these)s 8100(ha)s 4(v)k 3(e)k
-8617(been)s 0 6590(discarded)m 987(and)s 1405(replaced)s 2285(by)s
-2593(a)s 2772(completely)s 3902(dif)s 6(ferent)k 4791(set)s
-5129(of)s 5414(options,)s 6239(controlling)s 7355(such)s 7864(things)s
-8514(as)s 8778(the)s 0 6302(size)m 448(of)s 741(headings)s
-1664(and)s 2090(the)s 2460(g)s 1(aps)k 2970(between)s
-3846(list)s 4219(items,)s 4864(which)s 5528(you)s 5964(can)s
-6375(\207nd)s 6828(documented)s 8077(in)s 8342(the)s 220 fnt35
-8712 6299(pod)m 240 fnt82 0 6014(setup)m 558(\207le.)s 480 5640(The)m
-955(only)s 1483(kno)s 6(wn)k 2234(problem)s 3139(with)s
-3669(Pod)s 4147(formatting)s 5256(is)s 5513(that)s 5979(the)s
-220 fnt35 6375 5637(E<>)m 240 fnt82 6874 5640(constructs)m 7942(enclosing)s
-8960(a)s 0 5352(character)m 963(number)s 1783(or)s 2072(a)s
-2267(`non-numeric)s 3650(HTML)s 4415(entity')s 5100(\(to)s 5447(quote)s
-6065(the)s 6442(author)s 7142(of)s 7443(Pod\))s 7973(will)s
-8429(appear)s 0 5064(v)m 3(erbatim)k 906(rather)s 1522(than)s
-1991(being)s 2576(replaced)s 3443(by)s 3737(the)s 4085(characters)s
-5103(the)s 3(y)k 5566(represent.)s
+8568(setup)s 0 9681(\207le)m 363(options)s 1121(listed)s 1699(in)s
+1944(Section)s 2720(1.4)s 3077(do)s 3372(not)s 3740(really)s
+4340(apply)s 15(.)k 5023(So)s 5331(for)s 5672(Pod)s
+6105(only)s 6587(these)s 7137(ha)s 4(v)k 3(e)k
+7640(been)s 8152(discarded)s 0 9393(and)m 435(replaced)s 1333(by)s
+1658(a)s 1855(completely)s 3002(dif)s 6(ferent)k 3908(set)s
+4264(of)s 4566(options,)s 5409(controlling)s 6542(such)s 7069(things)s
+7736(as)s 8017(the)s 8396(size)s 8855(of)s 0 9105(headings)m
+902(and)s 1306(the)s 1654(g)s 1(aps)k 2143(between)s
+2997(list)s 3348(items,)s 3972(which)s 4614(you)s 5029(can)s
+5418(\207nd)s 5849(documented)s 7077(in)s 7320(the)s 220 fnt35
+7668 9102(pod)m 240 fnt82 8082 9105(setup)m 8640(\207le.)s 480 8731(If)m
+710(you)s 1126(ask)s 1506(for)s 1845(line)s 2259(numbers)s
+3135(on)s 3432(a)s 3599(Pod)s 4030(program,)s 4948(or)s
+5207(on)s 5505(a)s 5671(Perl)s 6111(program)s 6981(that)s
+7400(contains)s 8248(Pod,)s 8729(an)s 3(y)k 0 8443(te)m 3(xt)k
+432(blocks)s 1126(in)s 1387(the)s 1753(Pod)s 2202(that)s
+2638(w)s 2(ould)k 3311(otherwise)s 4313(ha)s 4(v)k 3(e)k
+4832(appeared)s 5771(as)s 6039(\207lled)s 6606(paragraphs)s 7724(will)s
+8168(come)s 8760(out)s 0 8155(with)m 484(the)s 834(line)s
+1250(breaks)s 1927(in)s 2172(the)s 2522(source)s 3204(respected,)s
+4215(and)s 4621(lines)s 5125(numbered)s 6142(accordingly)s 15(.)k
+7422(Because)s 220 fnt35 8278 8152(prg2lout)m 240 fnt82 0 7867(attaches)m
+814(line)s 1222(numbers)s 2090(before)s 2750(Lout)s 3255(breaks)s
+3924(paragraphs,)s 5074(it)s 5259(is)s 5463(not)s 5822(possible)s
+6656(to)s 6889(numnber)s 7793(the)s 8135(lines)s 8630(after)s
+0 7579(paragraph)m 1013(breaking.)s 480 7205(Owing)m 1185(to)s 1423(problems)s
+2363(behind)s 3072(the)s 3419(scenes,)s 4150(if)s 4366(a)s
+4531(Pod)s 4961(inclusion)s 5894(in)s 6137(a)s 6302(Perl)s
+6740(program)s 7609(has)s 7978(unbalanced)s 0 6917(braces,)m 220 fnt35
+714 6914(prg2lout)m 240 fnt82 1559 6917(is)m 1766(forced)s 2431(to)s
+2667(insert)s 3254(braces)s 3912(into)s 4334(the)s 4678(Pod)s
+5106(te)s 3(xt)k 5518(to)s 5754(mak)s 2(e)k
+6323(them)s 6858(balance.)s 7749(It)s 7951(will)s 8374(insert)s
+8960(a)s 0 6629(left)m 377(brace)s 950(directly)s 1734(before)s
+2400(an)s 3(y)k 2798(unbalanced)s 3946(right)s 4458(brace,)s
+5082(and)s 5487(it)s 5679(will)s 6106(insert)s 6696(right)s
+7208(braces)s 7869(at)s 8102(the)s 8450(end)s 8855(of)s
+0 6341(the)m 347(Pod)s 777(inclusion)s 1710(to)s 1948(balance)s
+2733(an)s 3(y)k 3129(preceding)s 4124(unbalanced)s 5271(left)s
+5646(braces.)s 6419(It)s 6623(will)s 7048(tell)s 7406(you)s
+7820(if)s 8036(it)s 8227(has)s 8596(to)s 8833(do)s
+0 6053(this.)m 509(This)s 985(problem)s 1842(does)s 2332(not)s
+2698(af\210ict)s 3314(Pod)s 3745(when)s 4321(used)s 4818(as)s
+5068(a)s 5234(separate)s 6072(language.)s
+grestore
+
+grestore
+
+grestore
+
+pgsave restore
+showpage
+
+%%Page: 15 17
+%%BeginPageSetup
+%%PageResources: font Times-Roman
+%%+ font Times-Bold
+%%+ font Times-Italic
+/pgsave save def
+%%IncludeResource: font Times-Bold
+/Times-Boldfnt84 vec2 /Times-Bold LoutRecode
+/fnt84 { /Times-Boldfnt84 LoutFont } def
+%%IncludeResource: font Times-Italic
+/Times-Italicfnt83 vec2 /Times-Italic LoutRecode
+/fnt83 { /Times-Italicfnt83 LoutFont } def
+0.0500 dup scale 10 setlinewidth
+%%EndPageSetup
+gsave
+0 0 translate
+240 fnt82 0.0 0.0 0.0 setrgbcolor 11900 16840 0 16840 240 288 60 LoutGraphic
+gsave
+LoutPageSet
+grestore
+gsave
+0 16840 translate
+0.0000 rotate
+9066 14006 0 14006 240 288 60 1417 -15423 LoutGr2
+1 LoutMargSet
+grestore
+480 fnt84 0 12955(Refer)m 8(ences)k 240 fnt82 0 12358([1])m
+480(Bertrand)s 1374(Me)s 3(yer)k 13(.)k 240 fnt83
+2146 12360(Eif)m 4(fel:)k 2840(The)s 3252(Langua)s 2(g)k 2(e)k
+240 fnt82 4200 12358(.)m 4364(Prentice-Hall)s 5631(,)s 5738(1992)s
+6212(.)s 192 fnt84 4439 1(15)m
+grestore
+
+grestore
+
+grestore
+
+pgsave restore
+showpage
+
+%%Page: 16 18
+%%BeginPageSetup
+%%PageResources: font Times-Roman
+%%+ font Times-Bold
+%%+ font Helvetica
+/pgsave save def
+%%IncludeResource: font Times-Bold
+/Times-Boldfnt84 vec2 /Times-Bold LoutRecode
+/fnt84 { /Times-Boldfnt84 LoutFont } def
+0.0500 dup scale 10 setlinewidth
+%%EndPageSetup
+gsave
+0 0 translate
+240 fnt82 0.0 0.0 0.0 setrgbcolor 11900 16840 0 16840 240 288 60 LoutGraphic
+gsave
+LoutPageSet
+grestore
+gsave
+0 16840 translate
+0.0000 rotate
+9066 14006 0 14006 240 288 60 1417 -15423 LoutGr2
+0 LoutMargSet
+grestore
+480 fnt84 0 12962(Index)m 240 fnt82 0 12367(Blue)m 508(program)s
+1378(printing)s 2135(,)s 2242(1)s 0 12079(C)m 212(and)s
+616(C++)s 1099(program)s 1969(printing)s 2726(,)s 2833(1)s
+220 fnt35 0 11788(@CPSetup)m 240 fnt82 1099 11791(,)m 1206(6)s
+0 11503(Eif)m 6(fel)k 591(program)s 1461(printing)s 2218(,)s
+2325(1)s 0 11215(Perl)m 439(program)s 1309(printing)s 2066(,)s
+2173(1)s 0 10927(Pod)m 431(\(for)s 848(Perl\))s 1360(printing)s
+2117(,)s 2224(1)s 220 fnt35 0 10636(prg2lout)m 240 fnt82
+848 10639(\207lter)m 1358(program)s 2175(,)s 2282(1)s 0 10351(tab)m
+345(characters)s 1363(in)s 1606(programs)s 2507(,)s 2614(8)s
+192 fnt84 4439 2(16)m
grestore
grestore
@@ -5198,5 +7066,5 @@ showpage
%%+ procset LoutFigPrependGraphic
%%+ procset LoutBasicSetup
%%+ encoding vec2
-%%Pages: 2
+%%Pages: 18
%%EOF
diff --git a/doc/user/vprg b/doc/user/vprg
index 21668ba..935d4af 100644
--- a/doc/user/vprg
+++ b/doc/user/vprg
@@ -1 +1 @@
-vi prg prg_lone prg_embe prg_opti prg_chan prg_tabs prg_comm prg_prog prg_pipe prg_erro prg_perl
+vi prg prg_lone prg_embe prg_opti prg_chan prg_tabs prg_form prg_comm prg_prog prg_pipe prg_erro prg_perl