80 lines
2.6 KiB
Text
80 lines
2.6 KiB
Text
|
|
The indexing programs here are modified from the versions printed in
|
|
Bentley & Kernighan, EP-ODD V1 #1. The programs are also described in
|
|
AT&T Bell Laboratories Computing Science Technical Report No. 128,
|
|
``Tools for Printing Indexes''.
|
|
|
|
Changes from the published version derive from further experience
|
|
after the paper was frozen, plus some cleanup and corrections by Joe
|
|
Kruskal (to whom many thanks), plus some very local features for
|
|
printing the AMPL book.
|
|
|
|
|
|
USING THE PROGRAMS
|
|
|
|
install
|
|
makes the appropriate files executable. since this file
|
|
is not executable, use by typing "sh <install"
|
|
ix.test
|
|
see.terms
|
|
these two files provide test input. make.index produces
|
|
standard output and files
|
|
foo[1-9] foo.regular foo.see foo.hier foo.all
|
|
from ix.test and see.terms. to make sure things
|
|
work when you first unbundle this file, type
|
|
sh <install
|
|
make.index ix.test >foo.ix
|
|
troff -ms foo.ix >foo.out
|
|
and then examine the troff output foo.out
|
|
cleanup
|
|
removes the garbage files left around for debugging
|
|
|
|
|
|
CHANGES FROM THE PAPER
|
|
|
|
make.index
|
|
handles "see" file see.terms. A line like
|
|
algorithms<tab>searching, sorting
|
|
generates in the final index
|
|
algorithms see searching, sorting
|
|
a 3rd field of %also makes it
|
|
algorithms see also searching, sorting
|
|
doclean
|
|
deroman
|
|
range.prep
|
|
minor change to defend against bug in some versions of "sort"
|
|
rotate
|
|
moved here (and changed as necessary) to remove subtle bug.
|
|
see check.data below
|
|
range.sort
|
|
-u option on sort removes duplicate entries on same page
|
|
range.collapse
|
|
reroman
|
|
page number concatenation removed from here ...
|
|
num.collapse
|
|
and moved to here. also commas between numbers now
|
|
inserted here (to make see terms easier)
|
|
gen.key
|
|
literals protected differently in gsub commands.
|
|
rules for non-alpha index terms slightly richer:
|
|
purely nonalphabetic lines first
|
|
lines with leading digits next
|
|
ordinary lines last
|
|
see.prep
|
|
changed to match changes above, and to rely on font-changing {}
|
|
final.sort
|
|
uses -d option for "telephone directory" order.
|
|
hierarchy
|
|
a rather special purpose version to replace runs of items
|
|
with a common one or two word prefix and replace them by
|
|
a head word and indented lines.
|
|
this also does some rearrangement to bring see terms to the top,
|
|
and terms with formatting info to the bottom; this is not
|
|
always the right thing to do.
|
|
format
|
|
letter changes (.YY) determined by first letter.
|
|
minor rearrangement of how output line is created.
|
|
commas no longer added here.
|
|
[Some systems have a disk-formatting program called format.]
|
|
check.data
|
|
new program that catches subtle errors in the data
|