@Appendix
    @Title { Bypass Symbols }
    @Tag { bypass }
@Begin
@PP
The `bypass' symbols described in this appendix are intended to be
bypass.symbols @Index { bypass symbols }
used only in Lout which is generated by computer programs.  Their
purpose is to bypass the Lout cross reference database, and so reduce
the number of passes needed to finalise a document.  These symbols
should not be used by people, because that would only lead back to the
consistency problems that prompted the introduction of cross references
in the first place.
@PP
To produce a bypass table of contents, set the @Code "@MakeContents"
setup file option to @Code "Bypass" and use @Code "@BypassContentsEntry"
symbols at the outermost level just before the introduction or first
chapter:
@ID @Tab
    @Fmta { @Col @Code A ! @Col ! @Col B }
    vmargin { 0.5vx }
{
@Rowa
    A { "@BypassContentsEntry" }
@Rowa
    A { "    indent { 0f }" }
    B { the indent, e.g. {@Code "0f"}, {@Code "2f"}, {@Code "4f"} ... }
@Rowa
    A { "    number {}" }
    B { the section (etc.) number e.g. {@Code "5.2"} }
@Rowa
    A { "    title {}" }
    B { the section (etc.) title e.g. @Code "Azaleas" }
@Rowa
    A { "    pagenum {}" }
    B { the page number e.g. @Code "@PageOf azaleas" }
}
For major entries such as chapters, use @Code "@BypassMajorContentsEntry"
with the same options.  This increases the vertical spacing and uses
bold font.  When @Code "@MakeContents" is {@Code "Bypass"}, no contents
entries will be produced automatically.
@PP
To bypass Lout's automatic numbering of large-scale structure symbols,
use the @Code "@BypassNumber" option:
@ID @Code {
"@Section"
"    @Title { Azaleas }"
"    @Tag { azaleas }"
"    @BypassNumber { 5.2 }"
"..."
}
Give the full `path number' (5.2, B.3 or whatever) of the symbol.  There is
a @Code "@BypassNumber" option for every symbol that has a @Code "@Title"
option and is usually assigned a number automatically by Lout, plus
@Code "@Figure" and {@Code "@Table"}.  No changes to the setup file are
required in order to use {@Code "@BypassNumber"}, and it is permitted
for some large-scale structure symbols to have this option and others not.
@PP
To produce a bypass reference list, set the @Code "@MakeReferences"
setup file option to @Code "Bypass" and place reference entries at the
end of the document, after the last chapter or other large-scale structure
symbol but before any bypass index entries (see below), like this:
@ID @Code {
"@BypassReference"
"    label { [Kin94a] }"
"    value { @RefPrint kingston1995lout.expert }"
}
The two options are objects which become the label and value of the
reference entry.  The @Code "value" option can be any object, including
an explicit reference; but @Code "@RefPrint" does not introduce any
cross-referencing delay if the @Code "@Reference" symbols lie in a
separate database file.  No sorting or removal of duplicate entries
will be done by Lout.  When @Code "@MakeReferences" is {@Code "Bypass"},
@Code "@Cite" and related symbols are ignored.
@PP
There is also @Code "@BypassChapReference" with the same options for
producing bypass chapter reference lists; these symbols should be
placed at the outer level immediately after the preface, introduction,
chapter or appendix that they refer to.
@PP
To produce bypass indexes, set the @Code "@MakeIndex" setup file
option to {@Code Bypass} and use the @Code "@BypassRawIndex" symbol
repeatedly at the very end of the document, enclosed in
@Code "@BypassBeginIndex" and @Code "@BypassEndIndex" symbols:
@ID @Code {
"@BypassBeginIndex"
"@BypassRawIndex  indent { 0f }  { Azaleas, @PageOf azaleas }"
"..."
"@BypassEndIndex"
}
The @Code "indent" option gives the indent ({@Code "0f"}, @Code {"1f"},
@Code {2f}, etc.), and the right parameter is as for @Code "@RawIndex".  No
@Code "@PageMark" operations, sorting, merging, or attachment of page
numbers will be done by Lout.  When @Code "@MakeIndex" is {@Code Bypass},
@Code "@Index" and related symbols are ignored.  At present, bypass
index symbols work only in books, not with ordinary documents or
technical reports.  There are corresponding symbols for creating
bypass indexes A and B.
@End @Appendix
