| |
| 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 |