aboutsummaryrefslogtreecommitdiffstats
path: root/doc/user
diff options
context:
space:
mode:
Diffstat (limited to 'doc/user')
-rw-r--r--doc/user/README19
-rw-r--r--doc/user/all6
-rw-r--r--doc/user/dia_node17
-rw-r--r--doc/user/dia_summ10
-rw-r--r--doc/user/dia_synt21
-rw-r--r--doc/user/gra_data47
-rw-r--r--doc/user/gra_keys28
-rw-r--r--doc/user/gra_summ2
-rw-r--r--doc/user/preface5
-rw-r--r--doc/user/prg14
-rw-r--r--doc/user/str_cros27
-rw-r--r--doc/user/str_indx68
12 files changed, 199 insertions, 65 deletions
diff --git a/doc/user/README b/doc/user/README
index 99e1a75..f023e85 100644
--- a/doc/user/README
+++ b/doc/user/README
@@ -17,14 +17,21 @@ nearly all beginning with "unresolved cross reference". These
should gradually go away on later runs. The following shows the
error message output on the later runs for A4 size printing:
+lout file "str_glos" (from "str" line 15, from "all" line 38):
+ 8,1: 1.0c object too high for 0.4c space; will try elsewhere
+lout file "str_indx" (from "str" line 16, from "all" line 38):
+ 54,1: 0.3c object too high for 0.2c space; will try elsewhere
+lout file "dia_synt" (from "dia" line 50, from "all" line 45):
+ 80,1: 1.0c object too high for 0.8c space; will try elsewhere
lout file "gra_summ" (from "gra" line 44, from "all" line 46):
- 10,1: 23.7c object too high for 23.6c space; @Scale inserted
-lout file "prg_tabs" (from "prg" line 127, from "all" line 48):
+ 10,1: 24.1c object too high for 23.6c space; @Scale inserted
+lout file "prg_tabs" (from "prg" line 141, from "all" line 48):
66,23: prg2lout 2,1: program text ended within comment
68,35: prg2lout 2,1: program text ended within comment
-The first warning is about a large table that had to be scaled
-down very slightly to fit on the page. The last two warnings
+The first three warnings are about footnotes that did not fit onto
+the first available page. The next is about a large table that had
+to be scaled down slightly to fit on the page. The last two warnings
point to two places where a C program text ended inside a comment,
which in these cases was deliberate. If you set the document in
Letter size paper, you will get a somewhat different set of warning
@@ -35,7 +42,7 @@ repeated failure to converge, caused by footnotes and floating figures
close to large unbreakable displays.
A copy of the final PostScript output file (A4 paper size) is
-stored at "ftp://ftp.cs.su.oz.au/jeff/lout/lout-3.28.user.ps.gz".
+stored at "ftp://ftp.cs.su.oz.au/jeff/lout/lout-3.29.user.ps.gz".
Jeffrey H. Kingston
-20 December 2002
+14 August 2003
diff --git a/doc/user/all b/doc/user/all
index 96aa5af..343e7fe 100644
--- a/doc/user/all
+++ b/doc/user/all
@@ -22,10 +22,10 @@ Lout
Document Formatting System
}
@Author { Jeffrey H. Kingston }
- @Edition { Version 3.28
-December, 2002 }
+ @Edition { Version 3.29
+August, 2003 }
@Publisher {
-Copyright @CopyRight 1991, 2002 Jeffrey H. Kingston,
+Copyright @CopyRight 1991, 2003 Jeffrey H. Kingston,
School of Information Technologies,
The University of Sydney 2006, Australia. ISBN 0 86758 951 5.
}
diff --git a/doc/user/dia_node b/doc/user/dia_node
index fddf3e0..068bca1 100644
--- a/doc/user/dia_node
+++ b/doc/user/dia_node
@@ -285,14 +285,15 @@ options apply to any node and affect the appearance of the outline:
}
}
This example shows the default values of these options. The
-{@Code outlinestyle} option may be {@Code solid}, {@Code dashed},
+{@Code outlinestyle} option's allowed values include {@Code solid},
+{@Code dashed},
diagrams. @RawIndex { diagrams }
diagrams.solid @SubIndex { @Code "solid" outlines }
solid.diagrams @Index { @Code "solid" outlines (diagrams) }
diagrams. @RawIndex { diagrams }
diagrams.dashed @SubIndex { @Code "dashed" outlines }
dashed.diagrams @Index { dashed outlines (diagrams) }
-{@Code cdashed}, {@Code dotted}, or {@Code noline}:
+{@Code cdashed}, {@Code dotted}, and {@Code noline}.
diagrams. @RawIndex { diagrams }
diagrams.cdashed @SubIndex { @Code "cdashed" outlines }
cdashed.diagrams @Index { cdashed outlines (diagrams) }
@@ -302,6 +303,12 @@ dotted.diagrams @Index { dotted outlines (diagrams) }
diagrams. @RawIndex { diagrams }
diagrams.noline @SubIndex { @Code "noline" outlines }
noline.diagrams @Index { noline outlines (diagrams) }
+There are also six values for mixing dots and dashes
+(Section {@NumberOf dia_summ}).
+@PP
+The @Code dashed option makes all dashes the same length, whereas
+@Code cdashed halves the length of the first and last dash on each
+segment, which usually looks better:
@ID @OneRow {
@Code @Verbatim {
@CurveBox
@@ -315,10 +322,8 @@ noline.diagrams @Index { noline outlines (diagrams) }
{ Hello, world }
}
}
-The @Code dashed option makes all dashes the same length, whereas
-@Code cdashed halves the length of the first and last dash on each segment,
-which usually looks better. The length of dashes is {@Code outlinedashlength},
-and the distance between dashes or dots is at most {@Code outlinedashlength},
+The length of dashes is {@Code outlinedashlength}, and the distance
+between dashes or dots is at most {@Code outlinedashlength},
reduced to make the dashes or dots fit evenly. The @Code outlinewidth
option determines the width of the line, dashes, or dots, and may be
{@Code thin}, {@Code medium}, {@Code thick}, or any length. The values
diff --git a/doc/user/dia_summ b/doc/user/dia_summ
index 193417e..c068fe5 100644
--- a/doc/user/dia_summ
+++ b/doc/user/dia_summ
@@ -254,6 +254,8 @@ any outline }
A { " outlinestyle" }
B { solid }
C { {@Code solid}, {@Code dashed}, {@Code cdashed}, {@Code dotted},
+{@Code dotdashed}, {@Code dotcdashed}, {@Code dotdotdashed},
+{@Code dotdotcdashed}, {@Code dotdotdotdashed}, {@Code dotdotdotcdashed},
{@Code noline}, or any sequence of one or more of these values }
@Rowa
A { " outlinedashlength"}
@@ -1186,6 +1188,8 @@ have been omitted where they are the same as the {@Code linklabel} options.
A { " pathstyle" }
B { solid }
C { {@Code solid}, {@Code dashed}, {@Code cdashed}, {@Code dotted},
+{@Code dotdashed}, {@Code dotcdashed}, {@Code dotdotdashed},
+{@Code dotdotcdashed}, {@Code dotdotdotdashed}, {@Code dotdotdotcdashed},
{@Code noline}, or any sequence of one or more of these values }
@Rowa
A { " pathdashlength"}
@@ -1472,6 +1476,12 @@ have up to twelve options, {@Code "A"} to {@Code "L"}.
@LI @SyntaxDiag { @Four code { "@Diverted ..." } @Diverted @ACell "..." }
@LI @SyntaxDiag { @Four code {
+"@OneOrBoth"
+ "A { ... }"
+ "B { ... }"
+} @OneOrBoth A { @ACell A } B { @ACell B } }
+
+@LI @SyntaxDiag { @Four code {
"@Loop"
"A { ... }"
"B { ... }"
diff --git a/doc/user/dia_synt b/doc/user/dia_synt
index 260197e..921b918 100644
--- a/doc/user/dia_synt
+++ b/doc/user/dia_synt
@@ -292,6 +292,27 @@ Here is the same example in the other three directions:
This symbol is a great aid to packing a big syntax diagram into a
compact shape.
@PP
+A variant of the basic selection idea is when you want one thing
+or another, or alternatively both in a particular order. You can get
+this with the @Code "@OneOrBoth" symbol, which takes exactly two
+options, @Code "A" and {@Code "B"}:
+@ID @OneRow {
+@Code @Verbatim {
+@StartRight @OneOrBoth
+ A { @ACell type }
+ B { @ACell body }
+}
+||7ct
+@SyntaxDiag {
+@StartRight @OneOrBoth
+ A { @ACell type }
+ B { @ACell body }
+}
+}
+Although the concept extends to more than two options, the symnbol
+doesn't. The summary at the end of this chapter shows the other
+three directions.
+@PP
That covers sequencing and selection; now for looping. The @Code "@Loop"
symbol produces a loop, with option @Code A going forwards and option
@Code B centred and going backwards:
diff --git a/doc/user/gra_data b/doc/user/gra_data
index 91f87ad..e03c60a 100644
--- a/doc/user/gra_data
+++ b/doc/user/gra_data
@@ -65,21 +65,22 @@ graphs.pairs @SubIndex { @Code pairs option }
pairs.graph @Index { @Code "pairs" option (graphs) }
determines how each pair of points is connected. The choices are
@Code none (not connected, the default), @Code solid (a solid line),
-@Code dashed (a dashed line), or @Code dotted (a dotted line). For
-example,
-@ID @OneRow @Code {
-"@Graph"
-" abovecaption { Estimated population of Boston, New York, and Philadelphia }"
-"{"
-" @Data points { plus } pairs { solid }"
-" { 1720 12000 1730 13000 1740 15601 1760 15631 1770 15877 }"
-""
-" @Data points { plus } pairs { dashed }"
-" { 1720 7000 1730 8622 1740 10451 1750 14255 1760 18000 1770 22667 }"
-""
-" @Data points { plus } pairs { dotted }"
-" { 1720 10000 1730 11500 1740 12654 1750 18202 1760 23750 1770 34583 }"
-"}"
+@Code dashed (a dashed line), @Code dotted (a dotted line), or
+@Code { dotdashed }, @Code { dotdotdashed }, and @Code { dotdotdotdashed }
+for mixing dots and dashes. For example,
+@ID @OneRow @Code @Verbatim {
+@Graph
+ abovecaption { Estimated population of Boston, New York, and Philadelphia }
+{
+ @Data points { plus } pairs { solid }
+ { 1720 12000 1730 13000 1740 15601 1760 15631 1770 15877 }
+
+ @Data points { plus } pairs { dashed }
+ { 1720 7000 1730 8622 1740 10451 1750 14255 1760 18000 1770 22667 }
+
+ @Data points { plus } pairs { dotdashed }
+ { 1720 10000 1730 11500 1740 12654 1750 18202 1760 23750 1770 34583 }
+}
}
produces
@CD @Graph
@@ -92,7 +93,7 @@ produces
@Data points { plus } pairs { dashed }
{ 1720 7000 1730 8622 1740 10451 1750 14255 1760 18000 1770 22667 }
- @Data points { plus } pairs { dotted }
+ @Data points { plus } pairs { dotdashed }
{ 1720 10000 1730 11500 1740 12654 1750 18202 1760 23750 1770 34583 }
}
@@ -113,13 +114,13 @@ graphs. @RawIndex { graphs (statistical) }
graphs.linewidth @SubIndex { @Code linewidth option }
linewidth.graph @Index { @Code "linewidth" option (graphs) }
width (thickness) of the lines and dots:
-@ID @OneRow @Code {
-"@Data"
-" dashlength { 0.2f }"
-" linewidth { 0.5p }"
-"{"
-" ..."
-"}"
+@ID @OneRow @Code @Verbatim {
+@Data
+ dashlength { 0.2f }
+ linewidth { 0.5p }
+{
+ ...
+}
}
This shows the default values, {@Code "0.2f"} for @Code "dashlength"
and {@Code "0.5p"} (half a point) for {@Code "linewidth"}. Actually
diff --git a/doc/user/gra_keys b/doc/user/gra_keys
index 616626b..771a258 100644
--- a/doc/user/gra_keys
+++ b/doc/user/gra_keys
@@ -64,6 +64,19 @@ graphs.graphdashed @SubIndex { @Code "@GraphDashed" symbol }
graphs. @RawIndex { graphs (statistical) }
graphs.graphdotted @SubIndex { @Code "@GraphDotted" symbol }
{ graphadotted } @Index { @Code "@GraphDotted" symbol (graphs) }
+
+graphs. @RawIndex { graphs (statistical) }
+graphs.graphdotdashed @SubIndex { @Code "@GraphDotDashed" symbol }
+{ graphadotdashed } @Index { @Code "@GraphDotDashed" symbol (graphs) }
+
+graphs. @RawIndex { graphs (statistical) }
+graphs.graphdotdotdashed @SubIndex { @Code "@GraphDotDotDashed" symbol }
+{ graphadotdotdashed } @Index { @Code "@GraphDotDotDashed" symbol (graphs) }
+
+graphs. @RawIndex { graphs (statistical) }
+graphs.graphdotdotdotdashed @SubIndex { @Code "@GraphDotDotDotDashed" symbol }
+{ graphadotdotdotdashed } @Index { @Code "@GraphDotDotDotDashed" symbol (graphs) }
+
@ID @Tab
@Fmta { @Col @Code A ! @Col B ! @Col @Code C ! @Col D }
{
@@ -105,6 +118,15 @@ graphs.graphdotted @SubIndex { @Code "@GraphDotted" symbol }
@Rowa
A { "@GraphDotted" }
B { @GraphDotted }
+@Rowa
+ A { "@GraphDotDashed" }
+ B { @GraphDotDashed }
+@Rowa
+ A { "@GraphDotDotDashed" }
+ B { @GraphDotDotDashed }
+@Rowa
+ A { "@GraphDotDotDotDashed" }
+ B { @GraphDotDotDotDashed }
}
These extra symbols may be used anywhere in your document except within
the right parameter of {@Code "@Graph"}; they are commonly used within
@@ -114,7 +136,7 @@ the caption options of {@Code "@Graph"}:
rightcaption {
@GraphPlus @GraphSolid @GraphPlus Boston
@GraphPlus @GraphDashed @GraphPlus New York
-@GraphPlus @GraphDotted @GraphPlus Philadelphia
+@GraphPlus @GraphDotDashed @GraphPlus Philadelphia
}
}
(You can also use them within the @Code objects option, which
@@ -127,7 +149,7 @@ from Section {@NumberOf data}, the complete result is
rightcaption {
@GraphPlus @GraphSolid @GraphPlus Boston
@GraphPlus @GraphDashed @GraphPlus New York
-@GraphPlus @GraphDotted @GraphPlus Philadelphia
+@GraphPlus @GraphDotDashed @GraphPlus Philadelphia
}
{
@Data points { plus } pairs { solid }
@@ -136,7 +158,7 @@ from Section {@NumberOf data}, the complete result is
@Data points { plus } pairs { dashed }
{ 1720 7000 1730 8622 1740 10451 1750 14255 1760 18000 1770 22667 }
- @Data points { plus } pairs { dotted }
+ @Data points { plus } pairs { dotdashed }
{ 1720 10000 1730 11500 1740 12654 1750 18202 1760 23750 1770 34583 }
}
diff --git a/doc/user/gra_summ b/doc/user/gra_summ
index 8506023..d0ca103 100644
--- a/doc/user/gra_summ
+++ b/doc/user/gra_summ
@@ -165,6 +165,7 @@ automatic }
A { pairs }
B { none }
C { {@Code none}, {@Code solid}, {@Code dashed}, {@Code dotted},
+{@Code dotdashed}, {@Code dotdotdashed}, {@Code dotdotdotdashed},
{@Code yhisto}, {@Code xhisto}, {@Code filledyhisto}, {@Code filledxhisto},
{@Code surfaceyhisto}, {@Code surfacexhisto} }
@Rowa
@@ -248,6 +249,7 @@ their possible values are:
@Rowa
A { pairs }
C { {@Code none}, {@Code solid}, {@Code dashed}, {@Code dotted},
+{@Code dotdashed}, {@Code dotdotdashed}, {@Code dotdotdotdashed},
{@Code yhisto}, {@Code xhisto}, {@Code filledyhisto}, {@Code filledxhisto},
{@Code surfaceyhisto}, {@Code surfacexhisto} }
@Rowa
diff --git a/doc/user/preface b/doc/user/preface
index ba2ea1a..9e4ba4e 100644
--- a/doc/user/preface
+++ b/doc/user/preface
@@ -18,7 +18,7 @@ gnu. @Index { GNU Public License }
primary source is directory
@ID @Code "ftp://ftp.it.usyd.edu.au/jeff/lout"
containing a gzipped tar file of the current version
-(currently {@Code "lout-3.28.tar.gz"}), and various other things including
+(currently {@Code "lout-3.29.tar.gz"}), and various other things including
a PostScript version of this guide. The distribution contains source code,
libraries, documentation, license, and installation instructions.
@PP
@@ -53,7 +53,7 @@ E. Knuth's @TeX system @Cite { $knuth1984tex }, and the optimal paragraph
breaking algorithm was applied to the problem of producing optimal page
breaks. The first implementations of horizontal galleys and optimal
page breaking were by my student Gabor Inokai. Vincent Tan contributed
-the PDF back end. Valeriy E. Ushakov has smoothed the path for many
+the PDF back end. Valeriy E. Ushakov smoothed the path for many
people, by his contributions to improving Lout's robustness, and his
tireless management of and responses to the Lout mailing list. The
number of other people who have offered comments and suggestions to me is so
@@ -63,7 +63,6 @@ hope that seeing their ideas adopted will be thanks enough.
@RLD lines @Break {
Jeffrey H. Kingston
School of Information Technologies
-(formerly Basser Department of Computer Science)
The University of Sydney 2006, Australia
@Code "jeff@it.usyd.edu.au"
}
diff --git a/doc/user/prg b/doc/user/prg
index ad5e1fc..5f8aa71 100644
--- a/doc/user/prg
+++ b/doc/user/prg
@@ -32,11 +32,13 @@ At the time of writing, the available programming languages are:
blue. @Index { Blue program printing }
c. @Index { C and C++ program printing }
eiffel. @Index { Eiffel program printing }
+haskell. @Index { Haskell program printing }
java. @Index { Java program printing }
nonpareil. @Index { Nonpareil program printing }
perl. @Index { Perl program printing }
pod. @Index { Pod (for Perl) printing }
python. @Index { Python program printing }
+rsl. @Index { RSL program printing }
ruby. @Index { Ruby program printing }
@CD @Tbl
mv { 0.5vx }
@@ -70,6 +72,12 @@ ruby. @Index { Ruby program printing }
D { varying }
E { Yes }
@Rowb
+ A { Haskell }
+ B { haskell }
+ C { "@Haskell" }
+ D { symbol }
+ E { Yes }
+@Rowb
A { Java }
B { java }
C { "@Java" }
@@ -100,6 +108,12 @@ ruby. @Index { Ruby program printing }
D { varying }
E { No }
@Rowb
+ A { RSL }
+ B { rsl }
+ C { "@RSL" }
+ D { symbol }
+ E { Yes }
+@Rowb
A { Ruby }
B { ruby }
C { "@Ruby" }
diff --git a/doc/user/str_cros b/doc/user/str_cros
index 984da8d..0d3f857 100644
--- a/doc/user/str_cros
+++ b/doc/user/str_cros
@@ -102,12 +102,11 @@ decorations introducted by the list's @Code "style" option.
To work cross references out, Lout has to process your document more
multiple.runs @Index { multiple runs, why needed }
than once, storing information between runs in special files it
-creates whose names end in @Code ".li" and {@Code ".ld"}. A complex
-document like this Guide requires five runs, but since every run
-produces a perfectly good PostScript file suitable for proof reading,
-in fact you need two runs to start with and one run per cycle of
-revision thereafter, only one more than would have been necessary
-in any case.
+creates whose names end in @Code ".li" and {@Code ".ld"}.
+A complex document like this Guide requires five runs, but since every
+run produces a perfectly good PostScript file suitable for proof reading,
+in fact you need two runs to start with and one run per cycle of revision
+thereafter, only one more than would have been necessary in any case.
@PP
The cross referencing system assumes that each Unix directory contains
directories @Index { directories, Lout files and }
@@ -122,6 +121,22 @@ when switching from one document to another, by removing file
lout.li @Index { @Code lout.li file }
{@Code "lout.li"}. You should also remove this file if your document
changes radically -- from a report to a book, say.
+@FootNote {
+An unfortunate and long-standing bug causes Lout to crash occasionally
+when reading from a cross-reference database
+file that it wrote on the preceding run. The problem has to do with
+mistakenly taking a literal word, or part of such a word, as an invocation
+of a symbol. The crash will occur on the @I second run (because the
+database file is written, not read, on the first run), and might be
+accompanied by an error message mentioning routine @I { AttachEnv } or
+@I { SetTarget }. You can make it happen, for example, by including
+@ID @Code "pnformat @Index { watch me crash! }"
+in your document -- the @Code pnformat tag, a literal word, will be
+mistaken for the @Code pnformat option of @Code "@Index" by the
+database reader. If this problem appears, try enclosing tags that you
+entered recently in double quotes. Enclosing @Code pnformat above
+in double quotes fixes the example problem.
+}
@PP
PDF viewers and recent versions of PostScript viewers offer a high-tech
version of cross references called {@I links}, which allow the user to
diff --git a/doc/user/str_indx b/doc/user/str_indx
index f300707..e836588 100644
--- a/doc/user/str_indx
+++ b/doc/user/str_indx
@@ -19,13 +19,14 @@ something like this:
Galileo Galilei
life of, 201
telescope, his use of, 201--203
- trial of, 205--211, 242, 395
+ trial of, 205--211, @I 242, 395
}
Each line shows off one of Lout's four tricks: the first is a
@I { raw entry } (no page number attached); the second is a
@I sub-entry (indented); the third has a @I { page number range }
instead of a single page number; and the fourth is a @I { merged entry }
-(several page numbers or ranges within one entry).
+(several page numbers or ranges within one entry) with a
+@I { special element } (the page number in italics).
@PP
We'll take each of them in turn in a moment, but first, let's see how
to get a basic entry, like this one:
@@ -58,11 +59,6 @@ collation.order @Index { collation order }
sorting.order @Index { sorting order }
if @Code "strcoll()" gets the sorting right for one language, there still
remains the problem of sorting multilingual indexes.
-@PP
-Older versions of Lout assumed that the @I tab character was collated
-before any character that could appear in a sorting key, causing
-problems when this was not so. Recent versions of Lout no longer
-make this assumption.
}
but which is not itself printed anywhere. It is best to construct these
sorting keys from lower-case letters and the . character only, beginning
@@ -218,11 +214,40 @@ entries will be
The first five entries have the same sorting key, and will be merged
as required.
@PP
+Each index entry symbol has a @Code { pnformat } option, which affects the
+way the page number of the entry is printed in the index. For example,
+@ID @Code "galileo.trial @SubIndex pnformat { Main } { trial of }"
+indicates that this is an entry of format {@Code Main}. By default the
+format is {@Code Ordinary}; it may be {@Code Main}, producing a
+bold page number in the index, or {@Code Special}, producing an
+italic page number.
+@PP
+As the name suggests, the @Code pnformat option is actually a format
+option, within which the @Code "@PageNum" symbol stands for the index
+page number, so you could even write
+@ID @Code "galileo.trial @SubIndex pnformat { @Underline @PageNum } { trial of }"
+to get an underlined page number. However, it is rarely a good
+idea to use the @Code { pnformat } option in this way. Better to
+decide once and for all what variants on the basic format you are
+going to have, call one variant {@Code Main} and the other {@Code Special},
+use the setup file options described later in this section to redefine
+the appearance of page numbers for these two index entry formats, and
+explain in the @Code "@IndexText" what the formats mean.
+@PP
+When index entries with different formats are merged, naturally each page
+number preserves its own format. If there are two merged entries with
+the same page number but different formats, the result is plausible but
+indeterminate. A page number range is formatted according to the format
+of the index entry which is its starting point. To change the format
+of the @I stem of the index entry, just do the usual thing. For example,
+@ID @Code "galileo @Index @I { Galileo Galilei }"
+will cause the stem of the entry to appear in an italic font.
+@PP
The language of the index entry will be the initial language of the
document as a whole, which is not necessarily the language at the point
where the index entry occurs. To get the correct language you will need a
@Code "@Language" symbol following the @Code "@Index" symbol:
-@ID @Code "galileo. @Index French @Language { Galileo Galilei }"
+@ID @Code "galileo. @Index Italian @Language { Galileo Galilei }"
or whatever. If you don't do this your index entry might be hyphenated
incorrectly.
@PP
@@ -301,6 +326,9 @@ their default values:
@IndexFormat { @Body }
@SubIndexFormat { {1f @Wide}@Body }
@SubSubIndexFormat { {2f @Wide}@Body }
+@IndexTypeOrdinary { @PageNum }
+@IndexTypeMain { @B @PageNum }
+@IndexTypeSpecial { @I @PageNum }
@IndexColumnNumber { 2 }
@IndexColumnGap { 1.00c }
@IndexCtd { Yes }
@@ -348,6 +376,17 @@ possible format is
which causes the subindex to begin with an en-dash and two spaces
instead of an indent.
@PP
+{@Code "@IndexTypeOrdinary"}, {@Code "@IndexTypeMain"}, and
+{@Code "@IndexTypeSpecial"} give the page number format to use
+when the index entry type is {@Code Ordinary}, {@Code Main}, and
+{@Code Special} respectively. Within them the @Code "@PageNum"
+symbol stands for the page number or page number range being
+printed. The value of these options can be an arbitrary object.
+If the value of a @Code pnformat option is not {@Code Ordinary},
+{@Code Main}, or {@Code Special}, then the @Code pnformat option
+itself is printed; it too may contain a @Code "@PageNum" symbol,
+as explained earlier.
+@PP
@Code "@IndexColumnNumber" and @Code "@IndexColumnGap" determine the
indexcolumnnumber. @Index @Code "@IndexColumnNumber"
indexcolumngap. @Index @Code "@IndexColumnGap"
@@ -358,13 +397,12 @@ options described in Section {@NumberOf columns}.
The next three options work together to control the appearance of
running headers
@FootNote {
-Index running headers are new in Version 3.19 of Lout. Owing to problems
-behind the scenes, if more than three copies of the same running header
-appear on the same page, their horizontal positions will become confused,
-probably resulting in the apparent disappearance of all but the last
-three. Of course, this is highly unlikely to happen, since it means there
-must be a four-column index with a page on which all four columns have
-the same running header.
+Owing to problems behind the scenes, if more than three copies of the
+same running header appear on the same page, their horizontal positions
+will become confused, probably resulting in the apparent disappearance of
+all but the last three. Of course, this is highly unlikely to happen,
+since it means there must be a four-column index with a page on which
+all four columns have the same running header.
}
in the index:
indexctd. @Index { @Code "@IndexCtd" }