1MAKEINDEX(1) TeX Live MAKEINDEX(1)
2
3
4
6 makeindex - a general purpose, formatter-independent index processor
7
9 makeindex [-c] [-g] [-i] [-l] [-o ind] [-p num] [-q] [-r] [-s sfile]
10 [-t log] [-L] [-T] [idx0 idx1 idx2...]
11
13 The program makeindex is a general purpose hierarchical index genera‐
14 tor; it accepts one or more input files (often produced by a text for‐
15 matter such as TeX (tex(1L)) or troff(1), sorts the entries, and pro‐
16 duces an output file which can be formatted. The index can have up to
17 three levels (0, 1, and 2) of subitem nesting. The way in which words
18 are flagged for indexing within the main document is specific to the
19 formatter used; makeindex does not automate the process of selecting
20 these words. As the output index is hierarchical, makeindex can be
21 considered complimentary to the awk(1)-based make.index(1L) system of
22 Bentley and Kernighan, which is specific to troff(1), generates non-
23 hierarchical indices, and employs a much simpler syntax for indicating
24 index entries. For illustration of use with troff and TeX, see the
25 section EXAMPLES below.
26
27 The formats of the input and output files are specified in a style
28 file; by default, input is assumed to be a .idx file, as generated by
29 LaTeX.
30
31 Unless specified explicitly, the base name of the first input file
32 (idx0) is used to determine the names of other files. For each input
33 file name specified, a file of that name is sought. If this file is
34 not found and the file name has no extension, the extension .idx is
35 appended. If no file with this name is found, makeindex aborts.
36
37 If exactly one input file was given and no explicit style file was
38 specified using -s, makeindex uses a file with the extension .mst as
39 default style file (when present).
40
41 For important notes on how to select index keywords, see the document
42 by Lamport cited below. As an issue separate from selecting index key‐
43 words, a systematic mechanism for placing index terms in a document is
44 suggested in Index Preparation and Processing, a paper cited below.
45
47 -c Compress intermediate blanks (ignoring leading and trailing
48 blanks and tabs). By default, blanks in the index key are
49 retained.
50
51 -g Employ German word ordering in the index, in accord with
52 rules set forth in DIN 5007. By default, makeindex employs a
53 word ordering in which precedence is: symbols, numbers,
54 uppercase letters, lowercase letters. The sequence in German
55 word ordering is: symbols, lowercase letters, uppercase let‐
56 ters, numbers. Additionally, this option enables makeindex
57 to recognize the German TeX-commands {"a, "o, "u and "s} as
58 {ae, oe, ue and ss} during the sorting of the entries. The
59 quote character must be redefined in a style file (for exam‐
60 ple, redefine quote as '+'). If the quote character is not
61 redefined, makeindex will produce an error message and abort.
62
63 -i Take input from stdin. When this option is specified and -o
64 is not, output is written to stdout.
65
66 -l Letter ordering; by default, word ordering is used (see the
67 ORDERING section).
68
69 -o ind Employ ind as the output index file. By default, the file
70 name is created by appending the extension .ind to the base
71 name of the first input file (idx0).
72
73 -p num Set the starting page number of the output index file to be
74 num (useful when the index file is to be formatted sepa‐
75 rately). The argument num may be numerical or one of the
76 following:
77
78 any The starting page is the last source page number
79 plus 1.
80
81 odd The starting page is the first odd page following
82 the last source page number.
83
84 even The starting page is the first even page following
85 the last source page number.
86
87 The last source page is obtained by searching backward in the
88 log file for the first instance of a number included within
89 paired square brackets ([...]). If a page number is missing
90 or the log file is not found, no attempt will be made to set
91 the starting page number. The source log file name is deter‐
92 mined by appending the extension .log to the base name of the
93 first input file (idx0).
94
95 -q Quiet mode; send no messages to stderr. By default, progress
96 and error messages are sent to stderr as well as to the tran‐
97 script file.
98
99 -r Disable implicit page range formation; page ranges must be
100 created by using explicit range operators; see SPECIAL
101 EFFECTS below. By default, three or more successive pages
102 are automatically abbreviated as a range (e.g. 1—5).
103
104 -s sty Employ sty as the style file (no default). The environment
105 variable INDEXSTYLE defines the path where the style file
106 should be found.
107
108 -t log Employ log as the transcript file. By default, the file name
109 is created by appending the extension .ilg to the base name
110 of the first input file (idx0).
111
112 -L sort based on locale settings. Not available on all systems.
113
114 -T special support for Thai documents. Not available on all sys‐
115 tems.
116
118 The style file informs makeindex about the format of the .idx input
119 files and the intended format of the final output file; examples appear
120 below. This file can reside anywhere in the path defined by the envi‐
121 ronment variable INDEXSTYLE. The style file contains a list of <speci‐
122 fier, attribute> pairs. There are two types of specifiers: input and
123 output. Pairs do not have to appear in any particular order. A line
124 begun by `%' is a comment. In the following list of specifiers and
125 arguments, <string> is an arbitrary string delimited by double quotes
126 ("..."), <char> is a single letter embraced by single quotes ('...'),
127 and <number> is a nonnegative integer. The maximum length of a
128 <string> is 2048. A literal backslash or quote must be escaped (by a
129 backslash). Anything not specified in the style file will be assigned
130 a default value, which is shown at the head of the rightmost column.
131
132 INPUT STYLE SPECIFIERS
133 actual <char> ´@´
134 Symbol indicating that the next entry is to
135 appear in the output file.
136
137 arg_close <char> ´}´
138 Closing delimiter for the index entry argu‐
139 ment.
140
141 arg_open <char> ´{´
142 Opening delimiter for the index entry argu‐
143 ment.
144
145 encap <char> ´|´
146 Symbol indicating that the rest of the argu‐
147 ment list is to be used as the encapsulating
148 command for the page number.
149
150 escape <char> ´\\´
151 Symbol which escapes the following letter,
152 unless its preceding letter is escape. Note:
153 quote is used to escape the letter which imme‐
154 diately follows it, but if it is preceded by
155 escape, it is treated as a ordinary character.
156 These two symbols must be distinct.
157
158 keyword <string> "\\indexentry"
159 Command which tells makeindex that its argu‐
160 ment is an index entry.
161
162 level <char> ´!´
163 Delimiter denoting a new level of subitem.
164
165 page_compositor <string> "-"
166 Delimiter separating parts of a composite page
167 number (see SPECIAL EFFECTS below).
168
169 quote <char> ´"´
170 Note: quote is used to escape the letter which
171 immediately follows it, but if it is preceded
172 by escape, it is treated as a ordinary charac‐
173 ter. These two symbols must be distinct.
174
175 range_close <char> ´)´
176 Closing delimiter indicating the end of an
177 explicit page range.
178
179 range_open <char> ´(´
180 Opening delimiter indicating the beginning of
181 an explicit page range.
182
183 OUTPUT STYLE SPECIFIERS
184 preamble <string> "\\begin{theindex}\n"
185 Preamble of output file.
186
187 postamble <string> "\n\n\\end{theindex}\n"
188 Postamble of output file.
189
190 setpage_prefix <string> "\n \\setcounter{page}{"
191 Prefix of command which sets the starting page
192 number.
193
194 setpage_suffix <string> "}\n"
195 Suffix of command which sets the starting page
196 number.
197
198 group_skip <string> "\n\n \\indexspace\n"
199 Vertical space to be inserted before a new
200 group begins.
201
202 headings_flag <string> 0
203 Flag indicating treatment of new group head‐
204 ers, which are inserted when before a new
205 group (symbols, numbers, and the 26 letters):
206 positive values cause an uppercase letter to
207 be inserted between prefix and suffix, and
208 negative values cause a lowercase letter to be
209 inserted (default is 0, which produces no
210 header).
211
212 heading_prefix <string> ""
213 Header prefix to be inserted before a new let‐
214 ter begins.
215
216 symhead_positive <string>
217 "Symbols"
218 Heading for symbols to be inserted if head‐
219 ings_flag is positive.
220
221 symhead_negative <string>
222 "symbols"
223 Heading for symbols to be inserted if head‐
224 ings_flag is negative.
225
226 numhead_positive <string>
227 "Numbers"
228 Heading for numbers to be inserted if head‐
229 ings_flag is positive.
230
231 numhead_negative <string>
232 "numbers"
233 Heading for numbers to be inserted if head‐
234 ings_flag is negative.
235
236 item_0 <string> "\n \\item "
237 Command to be inserted between two primary
238 (level 0) items.
239
240 item_1 <string> "\n \\subitem "
241 Command to be inserted between two secondary
242 (level 1) items.
243
244 item_2 <string> "\n \\subsubitem "
245 Command to be inserted between two level 2
246 items.
247
248 item_01 <string> "\n \\subitem "
249 Command to be inserted between a level 0 item
250 and a level 1 item.
251
252 item_x1 <string> "\n \\subitem "
253 Command to be inserted between a level 0 item
254 and a level 1 item, where the level 0 item
255 does not have associated page numbers.
256
257 item_12 <string> "\n \\subsubitem "
258 Command to be inserted between a level 1 item
259 and a level 2 item.
260
261 item_x2 <string> "\n \\subsubitem "
262 Command to be inserted between a level 1 item
263 and a level 2 item, where the level 1 item
264 does not have associated page numbers.
265
266 delim_0 <string> ", "
267 Delimiter to be inserted between a level 0 key
268 and its first page number (default: comma fol‐
269 lowed by a blank).
270
271 delim_1 <string> ", "
272 Delimiter to be inserted between a level 1 key
273 and its first page number (default: comma fol‐
274 lowed by a blank).
275
276 delim_2 <string> ", "
277 Delimiter to be inserted between a level 2 key
278 and its first page number (default: comma fol‐
279 lowed by a blank).
280
281 delim_n <string> ", "
282 Delimiter to be inserted between two page num‐
283 bers for the same key in any level (default:
284 comma followed by a blank).
285
286 delim_r <string> "--"
287 Delimiter to be inserted between the starting
288 and ending page numbers of a range.
289
290 delim_t <string> ""
291 Delimiter to be inserted at the end of a page
292 list. This delimiter has no effect on entries
293 which have no associated page list.
294
295 encap_prefix <string> "\\"
296 First part of prefix for the command which
297 encapsulates the page number.
298
299 encap_infix <string> "{"
300 Second part of prefix for the command which
301 encapsulates the page number.
302
303 encap_suffix <string> "}".
304 Suffix for the command which encapsulates the
305 page number.
306
307 line_max <number> 72
308 Maximum length of a line in the output, beyond
309 which a line wraps.
310
311 indent_space <string> "\t\t"
312 Space to be inserted in front of a wrapped
313 line (default: two tabs).
314
315 indent_length <number> 16
316 Length of indent_space (default: 16, equiva‐
317 lent to 2 tabs).
318
319 suffix_2p <string> ""
320 Delimiter to replace the range delimiter and
321 the second page number of a two page list.
322 When present, it overrides delim_r. Example:
323 "f.".
324
325 suffix_3p <string> ""
326 Delimiter to replace the range delimiter and
327 the second page number of a three page list.
328 When present, it overrides delim_r and suf‐
329 fix_mp. Example: "ff.".
330
331 suffix_mp <string> ""
332 Delimiter to replace the range delimiter and
333 the second page number of a multiple page list
334 (three or more pages). When present, it over‐
335 rides delim_r. Example: "f.".
336
338 TeX EXAMPLE
339 The following example shows a style file called book.ist, which defines
340 an index for a book which can be formatted independently of the main
341 source:
342
343 preamble
344 "\\documentstyle[12pt]{book}
345 \\begin{document}
346 \\begin{theindex}
347 {\\small\n"
348 postamble
349 "\n\n}
350 \\end{theindex}
351 \\end{document}\n"
352
353 Assuming that a particular book style requires the index (as well as
354 any chapters) to start from an odd page number, and that the input file
355 is named foo.idx, the following command line produces output in file
356 footmp.ind:
357
358 makeindex -s book.ist -o footmp.ind -p odd foo
359
360 Here a non-default output file name is used to avoid clobbering the
361 output for the book itself (presumably foo.dvi, which would have been
362 the default name for the index output file!).
363
364 TROFF EXAMPLE
365 A sample control file for creating an index, which we will assume
366 resides in the file sample.ist:
367
368 keyword "IX:"
369 preamble
370 ".\\\" start of index output
371 \".\\\" enter two column mode
372 .2C
373 .SH
374 .ce
375 INDEX
376 .XS
377 INDEX
378 .XE
379 .R
380 .ps 9p
381 .vs 11p
382 .sp
383 .de I1
384 .ti 0.25i
385 ..
386 .de I2
387 .ti 0.5i
388 .."
389 postamble "\n.\\\" end of index output"
390 setpage_prefix "\n.nr % "
391 setpage_suffix ""
392 group_skip "\n.sp 1.0"
393 headings_flag 1
394 heading_prefix "\n.IS\n"
395 heading_suffix "\n.IE"
396 item_0 "\n.br\n"
397 item_1 "\n.I1\n"
398 item_2 "\n.I2\n"
399 item_01 "\n.I1\n"
400 item_x1 "\n.I1\n"
401 item_12 "\n.I2\n"
402 item_x2 "\n.I2\n"
403 delim_0 ", "
404 delim_1 ", "
405 delim_2 ", "
406 delim_r "-"
407 delim_t "."
408 encap_prefix "\\fB"
409 encap_infix ""
410 encap_suffix "\\fP"
411 indent_space ""
412 indent_length 0
413
414 The local macro package may require modification, as in this example of
415 an extension to the -ms macros (note that at some sites, this macro
416 should replace a pre-existing macro of the same name):
417
418 .
419 .de IX
420 .ie '\\n(.z'' .tm IX: \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 {\\n(PN}
421 .el \\!.IX \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 {\\n(PN}
422 ..
423
424 (note that the string {\\n(PN} is separated from the rest of the line
425 by a tab. If your local macro package does not contain this extension,
426 just include those lines at the beginning of your file. Here is a sim‐
427 ple troff(1) input file, which we will assume is named sample.txt:
428
429 This is a sample file to test the \fImakeindex\fP(1L)
430 program, and see
431 .IX {indexing!programs!C language}
432 .IX {makeindex@\fImakeindex\fP(1L)}
433 .bp
434 .rs
435 .IX {Knuth}
436 .IX {typesetting!computer-aided}
437 how well it functions in the \fItroff\fP(1) environment.
438
439 Note that index entries are indicated by the .IX macro, which causes
440 the following text to be written to stdout along with the current page
441 number.
442
443 CREATING THE INDEX FILE IN THE BOURNE SHELL
444 To create an input file for makeindex, in the Bourne shell environment,
445 do the equivalent at your site of the command:
446
447 psroff -ms -Tpsc -t sample.txt > /dev/null 2> sample.tmp
448
449 Some sites will require ditroff instead of psroff. To filter out any
450 genuine error messages, invoke grep(1):
451
452 grep '^IX: ' sample.tmp > sample.idx
453
454 CREATING THE INDEX FILE USING UCSF ENHANCED TROFF/TRANSCRIPT
455 With UCSF Enhanced troff/TRANSCRIPT, the -I option of psroff(1L) can
456 produce both formatter output and an index file:
457
458 psroff -ms -I sample.inp -Tpsc sample.txt
459
460 If it is wished to suppress the formatter output:
461
462 psroff -ms -I sample.inp -Tpsc -t sample.txt > /dev/null
463
464 COMPLETING THE INDEX
465 Any of the above procedures leaves the input for makeindex in sam‐
466 ple.inp. The next step is to invoke makeindex:
467
468 makeindex -s sample.ist sample.idx
469
470 This leaves troff(1)-ready output in the file sample.ind.
471
473 By default, makeindex assumes word ordering; if the -l option is in
474 effect, letter ordering is used. In word ordering, a blank precedes
475 any letter in the alphabet, whereas in letter ordering, it does not
476 count at all. This is illustrated by the following example:
477
478 word order letter order
479 sea lion seal
480 seal sea lion
481
482 Numbers are always sorted in numeric order. For instance,
483
484 9 (nine), 123
485 10 (ten), see Derek, Bo
486
487 Letters are first sorted without regard to case; when words are identi‐
488 cal, the uppercase version precedes its lowercase counterpart.
489
490 A special symbol is defined here to be any character not appearing in
491 the union of digits and the English alphabetic characters. Patterns
492 starting with special symbols precede numbers, which precede patterns
493 starting with letters. As a special case, a string starting with a
494 digit but mixed with non-digits is considered to be a pattern starting
495 with a special character.
496
498 Entries such as
499
500 \indexentry{alpha}{1}
501 \indexentry{alpha!beta}{3}
502 \indexentry{alpha!beta!gamma}{10}
503
504 in the input file will be converted to
505
506 \item alpha, 1
507 \subitem beta, 3
508 \subsubitem gamma, 10
509
510 in the output index file. Notice that the level symbol (`!') is used
511 above to delimit hierarchical levels.
512
513 It is possible to make an item appear in a designated form by using the
514 actual (`@') operator. For instance,
515
516 \indexentry{alpha@{\it alpha\/}}{1}
517
518 will become
519
520 \item {\it alpha\/}, 1
521
522 after processing. The pattern preceding `@' is used as sort key,
523 whereas the one following it is written to the output file. Note that
524 two appearances of the same key, one with and one without the actual
525 operator, are regarded as distinct entries.
526
527 The item, subitem, and subsubitem fields may have individual sort keys:
528
529 \indexentry{aa@{\it aa\/}!bb@{\it bb\/}!cc@{\it cc\/}}{1}
530
531 This will be converted to
532
533 \item {\it aa}, 1
534 \subitem {\it bb}, 3
535 \subsubitem {\it cc}, 10
536
537 It is possible to encapsulate a page number with a designated command
538 using the encap (`|') operator:
539
540 \indexentry{alpha|bold}{1}
541
542 will be converted to
543
544 \item alpha, \bold{1}
545
546 where, with a suitable definition for TeX, \bold{n} will expand to {\bf
547 n}. In this example, the three output attributes associated with page
548 encapsulation encap_prefix, encap_infix, and encap_suffix, correspond
549 to backslash, left brace, and right brace, respectively. This mecha‐
550 nism allows page numbers to be set in different fonts. For example,
551 the page where the definition of a keyword appears can be in one font,
552 the location of a primary example can be in another font, and other
553 appearances in yet a third font.
554
555 The encap operator can also be used to create cross references in the
556 index:
557
558 \indexentry{alpha|see{beta}}{1}
559
560 will become
561
562 \item alpha, \see{beta}{1}
563
564 in the output file, where
565
566 \see{beta}{1}
567
568 will expand to
569
570 {\it see\/} beta
571
572 Note that in a cross reference like this the page number disappears.
573
574 A pair of encap concatenated with range_open (`|(') and range_close
575 (`|)') creates an explicit page range:
576
577 \indexentry{alpha|(}{1}
578 \indexentry{alpha|)}{5}
579
580 will become
581
582 \item alpha, 1—5
583
584 Intermediate pages indexed by the same key will be merged into the
585 range implicitly. This is especially useful when an entire section
586 about a particular subject is to be indexed, in which case only the
587 range opening and closing operators need to be inserted at the begin‐
588 ning and end of the section. Explicit page range formation can also
589 include an extra command to set the page range in a designated font:
590
591 \indexentry{alpha|(bold}{1}
592 \indexentry{alpha|)}{5}
593
594 will become
595
596 \item alpha, \bold{1--5}
597
598 Several potential problems are worth mentioning. First, entries like
599
600 \indexentry{alpha|(}{1}
601 \indexentry{alpha|bold}{3}
602 \indexentry{alpha|)}{5}
603
604 will be interpreted as
605
606 \item alpha, \bold{3}, 1--5
607
608 but with a warning message in the transcript about encountering an
609 inconsistent page encapsulator. An explicit range beginning in a Roman
610 page number and ending in Arabic is also considered an error. In this
611 instance, (if possible) the range is broken into two subranges, one in
612 Roman and the other in Arabic. For instance,
613
614 \indexentry{alpha|(}{i}
615 \indexentry{alpha}{iv}
616 \indexentry{alpha}{3}
617 \indexentry{alpha|)}{7}
618
619 will be turned into
620
621 \item alpha, i--iv, 3--7
622
623 with a warning message in the transcript file complaining about an
624 illegal range formation.
625
626 Every special symbol mentioned in this section may be escaped by the
627 quote operator (`"'). Thus
628
629 \indexentry{alpha"@beta}{1}
630
631 will actually become
632
633 \item alpha@beta, 1
634
635 as a result of executing makeindex. The quoting power of quote is
636 eliminated if it is immediately preceded by escape (`\'). For example,
637
638 \indexentry{f\"ur}{1}
639
640 becomes
641
642 \item f\"ur, 1
643
644 which represents an umlaut-accented `u' to the TeX family of proces‐
645 sors.
646
647 A page number can be a composite of one or more fields separated by the
648 delimiter bound to page_compositor (`-'), e.g., II-12 for page 12 of
649 Chapter II. Page numbers may contain up to ten fields.
650
651 Since version 2.11 of makeindex, the quote operator may quote any char‐
652 acter in the range 1 ... 255. Character 0 is excluded because it is
653 used internally in the makeindex source code as a string terminator.
654 With this change, sort keys can be created for all eight-bit characters
655 except 0. The sorting order is
656
657 punctuation characters (in ASCII order),
658 digits,
659 control characters (1 ... 31),
660 space (32),
661 letters (ignoring case),
662 characters 127 ... 255.
663
664 Here is an example showing the indexing of all printable ASCII charac‐
665 ters other than letters and digits, assuming the default TeX format.
666 For convenience, the page number references are the corresponding ASCII
667 ordinal values.
668
669 \indexentry{" @" (space)}{32}
670 \indexentry{"!@"! (exclamation point)}{33}
671 \indexentry{""@"" (quotation mark)}{34}
672 \indexentry{"#@"\# (sharp sign)}{35}
673 \indexentry{"$@"\$ (dollar sign)}{36}
674 \indexentry{"%@"\% (percent sign)}{37}
675 \indexentry{"&@"\& (ampersand)}{38}
676 \indexentry{"<@"$<$ (left angle bracket)}{60}
677 \indexentry{"=@"= (equals)}{61}
678 \indexentry{">@"$>$ (right angle bracket)}{62}
679 \indexentry{"?@"? (query)}{63}
680 \indexentry{"@@"@ (at sign)}{64}
681 \indexentry{"[@"[ (left square bracket)}{91}
682 \indexentry{"\@"\verb=\= (backslash)}{92}
683 \indexentry{"]@"] (right square bracket)}{93}
684 \indexentry{"^@"\verb=^= (caret)}{94}
685 \indexentry{"_@"\verb=_= (underscore)}{95}
686 \indexentry{"`@"\verb=~= (grave accent)}{96}
687 \indexentry{"{@"\"{ (left brace)}{123}
688 \indexentry{"|@"\verb="|= (vertical bar)}{124}
689 \indexentry{"}@"\"} (right brace)}{125}
690 \indexentry{"~@"\verb=~= (tilde)}{126}
691
692 Characters in the actual fields following the `@' character which have
693 special significance to TeX must be represented as control sequences,
694 or as math mode characters. Note particularly how the entries for the
695 at sign, left and right braces, and the vertical bar, are coded. The
696 index file output by makeindex for this example looks like this:
697
698 \begin{theindex}
699
700 \item ! (exclamation point), 33
701 \item " (quotation mark), 34
702 \item \# (sharp sign), 35
703 \item \$ (dollar sign), 36
704 \item \% (percent sign), 37
705 \item \& (ampersand), 38
706 \item $<$ (left angle bracket), 60
707 \item = (equals), 61
708 \item $>$ (right angle bracket), 62
709 \item ? (query), 63
710 \item @ (at sign), 64
711 \item [ (left square bracket), 91
712 \item \verb=\= (backslash), 92
713 \item ] (right square bracket), 93
714 \item \verb=^= (caret), 94
715 \item \verb=_= (underscore), 95
716 \item \verb=~= (grave accent), 96
717 \item \{ (left brace), 123
718 \item \verb=|= (vertical bar), 124
719 \item \} (right brace), 125
720 \item \verb=~= (tilde), 126
721
722 \indexspace
723
724 \item (space), 32
725
726 \end{theindex}
727
729 makeindex executable file
730
731 $TEXMFMAIN/tex/plain/misc/idxmac.tex
732 TeX macro file used by makeindex
733
734 $TEXMFMAIN/tex/latex/base/makeidx.sty
735 TeX macro file used by makeindex
736
738 ditroff(1L), latex(1L), make.index (1L), qsort(3), tex(1L), troff(1L)
739
740 UCSF Enhanced troff/TRANSCRIPT — An Overview, R. P. C. Rodgers and Con‐
741 rad Huang, LSMB Technical Report 90-2, UCSF School of Pharmacy, San
742 Francisco, 1990.
743
744 Index Preparation and Processing, Pehong Chen and Michael A. Harrison,
745 Software: Practice and Experience, 19(9), 897–915, September 1988.
746
747 Automating Index Preparation, Pehong Chen and Michael A. Harrison.
748 Technical Report 87/347, Computer Science Division, University of Cali‐
749 fornia, Berkeley, 1987 (a LaTeX document supplied with makeindex).
750
751 MakeIndex: An Index Processor for LaTeX, Leslie Lamport, February 1987
752 (a LaTeX document supplied with makeindex).
753
754 Tools for Printing Indices, Jon L. Bentley and Brian W. Kernighan,
755 Electronic Publishing — Origination, Dissemination, and Design, 1(1),
756 3–18, June 1988 (also available as: Computing Science Technical Report
757 No. 128, AT&T Bell Laboratories, Murray Hill, NJ 07974, 1986).
758
760 Pehong Chen, Chen & Harrison International Systems, Inc. Palo Alto,
761 California, USA.
762 Manual page extensively revised and corrected, and troff(1) examples
763 created by Rick P. C. Rodgers, UCSF School of Pharmacy
764 <rodgers@cca.ucsf.edu>.
765
767 Leslie Lamport contributed significantly to the design. Michael Harri‐
768 son provided valuable comments and suggestions. Nelson Beebe improved
769 on the portable version, and maintains the source distribution for the
770 TeX Users Group. Andreas Brosig contributed to the German word order‐
771 ing. The modification to the -ms macros was derived from a method pro‐
772 posed by Ravi Sethi of AT&T Bell Laboratories. The LOG and CONTRIB
773 files in the makeindex source distribution record other contributions.
774
775
776
777TeX Live 24 September 2011 MAKEINDEX(1)