.LEFT MARGIN
.ifnot hlp
.HL 1 Indexing
Runoff can produce an index to your document.  To do this you must use the
_.INDEX command for each occurrence of a keyword you wish to index.
.ifnot small
This does not automatically cause all occurrences of a keyword to be
indexed.  The index facility is intended to
produce indexes not concordances.
Then when you wish to print the index, you use _.PRINT INDEX or _.DO INDEX.
.s
.endif small
.endif hlp
.left margin +5
.if hlp.i-6;3 INDEX
.endif hlp
.S.I-5; _.INDEX [text] 
.i-5; _.X [text] 
.p.index  INDEX
takes the remaining text on the line as a keyword and adds it, along with the
current page number, to the internal index buffer. The command does not cause
a break. 
.ifnot small
If in FILL mode the index command must appear immediately after the
item to be indexed. If you are in NO FILL mode the index command must appear
immediately after the line containing the index item.  If the line is broken
because it is too long the index page number may be incorrect. 
Underlining, overstriking, and escape
sequences are not recognized in index keywords. These special features can not
be recognized because there is no rational way to alphabetize keywords if they
are used. A given keyword may be indexed more than once. If a keyword is
indexed more than one time on a page the extra times are ignored. 
.p;SEE also the commands _.ENABLE INDEXING and _.DISABLE INDEXING.
.if hlp
.if RSX .s.i5;ADDITIONAL HELP AVAILABLE: ENTRY DO PRINT
DELETE RESET format Subindex Autoindex
.endif RSX
.i-6;4 ENTRY
.endif hlp
.endif small
.q _.ENTRY index term
.i-5; _.Y index term
.p.x ENTRY
This puts an index term into the index, but doesn't include the current page
number.
.ifnot small
.if hlp.i-6;4 DO
.endif hlp
.endif small
.s.tp8.i-5; _.DO INDEX [;][text] 
.i-5; _.DX [;][text]
.p.x  DO INDEX  
This command clears the title and subtitle,
uses the text as a header, and starts a new page. 
Then the entire contents of the index buffer is printed and reset.
.ifnot small
This is equivalent to:
.i5;_.TITLE
.i5;_.SUBTITLE
.i5;_.FLUSH _.PAGE _.C; [text]
.i5;_.S 4 _.PRINT INDEX
.p;If no text is specified the INDEX is printed as the header.
.if hlp.i-6;4 PRINT
.endif hlp
.endif small
.s.tp8.i-5; _.PRINT INDEX ["entry"]
.i-5; _.PX ["entry"]
.p.index  PRINT INDEX  
This prints the specified entry in the index buffer.  If no entry is specified
the entire index buffer is printed and reset.  
.ifnot small
The index buffer is not reset
if an entry is specified. The entry must be an index
term.  This term and all of its subindex terms will be printed. 
.if hlp .i-6;4 format
.endif hlp
.p
Entries are printed in alphabetic order and are set against the left margin.
The chapter and subpage numbers are printed in the same format as specified
by the last _.DISPLAY CHAPTER or _.DISPLAY SUBPAGE commands.
Regular line spacing is used, except that a new paragraph is formed between
entries with different first letter.  The entries of different first letter
may be separated by non zero paragraph spacing, and orphan lines at the end of
the page are prevented by the paragraph test page value. The paragraph
indentation is used to indent extra page numbers which can not fit on the line
with the index entry. 
.P; If both FILL and JUSTIFY are enabled the entry is followed by ellipses
(#.#.#.#) and the page numbers are printed right justified with respect to the
current right margin. If FILL is disabled the ellipses are omitted.  If
JUSTIFY is disabled the page numbers will start 2 spaces after the index
entry, and no justification will occurr. 
.i5;(The use of FILL and JUSTIFY as well as the paragraph spacing is not
the same as in DSR)
.if hlp.i-6;4 DELETE
.endif hlp
.endif small
.s.tp5.i-5; _.DELETE INDEX "entry"
.s.index DELETE>INDEX
This deletes an index entry from the index buffer.  
.ifnot small
The buffer is not
shortened, so no space is saved.
This command is useful in breaking up the index into several parts.
Each part may be printed separately by _.PRINT INDEX and the deleted.
Finally all of the remaining parts can be printed and the index buffer
reset.
.if hlp.i-6;4 RESET
.endif hlp
.endif small
.s.tp5.i-5; _.RESET INDEX
.s.index RESET>INDEX
This resets the index buffer so that it contains no entries.
.ifnot small
This is done automatically by _.DO INDEX or an unqualified _.PRINT INDEX.
.if hlp.i-6;4 Subindex
.endif hlp
.s.c;SUBINDEX
.p.x Subindex
If the command _.FLAGS SUBINDEX is issued, then you may also subindex
terms. Each subindex item is marked by a subindex flag.  Each item
will appear indented by 2 extra spaces more than the previous item
when a _.PRINT INDEX command or _.DO INDEX is issued.
For example the following text:
.lm+5 .nf
_.FLAGS SUBINDEX
_.INDEX flags>substitute
_.INDEX flags>index
_.PRINT INDEX
.i-5;produces the following:
flags
  index      1
  substitute 1
.f.lm-5
.if hlp.i-6;4 Autoindex
.endif hlp
.s.c;AUTOINDEX
.p.x Autoindex
Index terms may also be generated automatically without using the _.INDEX
command if the _.FLAGS INDEX command has been issued.  Any term preceeded by
an index flag (_>) will be automatically indexed.  For further information see:
FLAGS INDEX.  Autoindexing may not be done inside a _.TITLE, _.SUBTITLE, 
_.CHAPTER, _.APPENDIX,  or _.HEADER LEVEL command.
.endif small
