1MAKEINDEX(1L) MAKEINDEX(1L)
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 quote <char> ´"´
166 Note: quote is used to escape the letter which
167 immediately follows it, but if it is preceded
168 by escape, it is treated as a ordinary charac‐
169 ter. These two symbols must be distinct.
170
171 range_close <char> ´)´
172 Closing delimiter indicating the end of an
173 explicit page range.
174
175 range_open <char> ´(´
176 Opening delimiter indicating the beginning of
177 an explicit page range.
178
179 OUTPUT STYLE SPECIFIERS
180 preamble <string> "\\begin{theindex}\n"
181 Preamble of output file.
182
183 postamble <string> "\n\n\\end{theindex}\n"
184 Postamble of output file.
185
186 setpage_prefix <string> "\n \\setcounter{page}{"
187 Prefix of command which sets the starting page
188 number.
189
190 setpage_suffix <string> "}\n"
191 Suffix of command which sets the starting page
192 number.
193
194 group_skip <string> "\n\n \\indexspace\n"
195 Vertical space to be inserted before a new
196 group begins.
197
198 headings_flag <string> 0
199 Flag indicating treatment of new group head‐
200 ers, which are inserted when before a new
201 group (symbols, numbers, and the 26 letters):
202 positive values cause an uppercase letter to
203 be inserted between prefix and suffix, and
204 negative values cause a lowercase letter to be
205 inserted (default is 0, which produces no
206 header).
207
208 heading_prefix <string> ""
209 Header prefix to be inserted before a new let‐
210 ter begins.
211
212 symhead_positive <string>
213 "Symbols"
214 Heading for symbols to be inserted if head‐
215 ings_flag is positive.
216
217 symhead_negative <string>
218 "symbols"
219 Heading for symbols to be inserted if head‐
220 ings_flag is negative.
221
222 numhead_positive <string>
223 "Numbers"
224 Heading for numbers to be inserted if head‐
225 ings_flag is positive.
226
227 numhead_negative <string>
228 "numbers"
229 Heading for numbers to be inserted if head‐
230 ings_flag is negative.
231
232 item_0 <string> "\n \\item "
233 Command to be inserted between two primary
234 (level 0) items.
235
236 item_1 <string> "\n \\subitem "
237 Command to be inserted between two secondary
238 (level 1) items.
239
240 item_2 <string> "\n \\subsubitem "
241 Command to be inserted between two level 2
242 items.
243
244 item_01 <string> "\n \\subitem "
245 Command to be inserted between a level 0 item
246 and a level 1 item.
247
248 item_x1 <string> "\n \\subitem "
249 Command to be inserted between a level 0 item
250 and a level 1 item, where the level 0 item
251 does not have associated page numbers.
252
253 item_12 <string> "\n \\subsubitem "
254 Command to be inserted between a level 1 item
255 and a level 2 item.
256
257 item_x2 <string> "\n \\subsubitem "
258 Command to be inserted between a level 1 item
259 and a level 2 item, where the level 1 item
260 does not have associated page numbers.
261
262 delim_0 <string> ", "
263 Delimiter to be inserted between a level 0 key
264 and its first page number (default: comma fol‐
265 lowed by a blank).
266
267 delim_1 <string> ", "
268 Delimiter to be inserted between a level 1 key
269 and its first page number (default: comma fol‐
270 lowed by a blank).
271
272 delim_2 <string> ", "
273 Delimiter to be inserted between a level 2 key
274 and its first page number (default: comma fol‐
275 lowed by a blank).
276
277 delim_n <string> ", "
278 Delimiter to be inserted between two page num‐
279 bers for the same key in any level (default:
280 comma followed by a blank).
281
282 delim_r <string> "--"
283 Delimiter to be inserted between the starting
284 and ending page numbers of a range.
285
286 delim_t <string> ""
287 Delimiter to be inserted at the end of a page
288 list. This delimiter has no effect on entries
289 which have no associated page list.
290
291 encap_prefix <string> "\\"
292 First part of prefix for the command which
293 encapsulates the page number.
294
295 encap_infix <string> "{"
296 Second part of prefix for the command which
297 encapsulates the page number.
298
299 encap_suffix <string> "}".
300 Suffix for the command which encapsulates the
301 page number.
302
303 line_max <number> 72
304 Maximum length of a line in the output, beyond
305 which a line wraps.
306
307 indent_space <string> "\t\t"
308 Space to be inserted in front of a wrapped
309 line (default: two tabs).
310
311 indent_length <number> 16
312 Length of indent_space (default: 16, equiva‐
313 lent to 2 tabs).
314
315 suffix_2p <string> ""
316 Delimiter to replace the range delimiter and
317 the second page number of a two page list.
318 When present, it overrides delim_r. Example:
319 "f.".
320
321 suffix_3p <string> ""
322 Delimiter to replace the range delimiter and
323 the second page number of a three page list.
324 When present, it overrides delim_r and suf‐
325 fix_mp. Example: "ff.".
326
327 suffix_mp <string> ""
328 Delimiter to replace the range delimiter and
329 the second page number of a multiple page list
330 (three or more pages). When present, it over‐
331 rides delim_r. Example: "f.".
332
334 TeX EXAMPLE
335 The following example shows a style file called book.ist, which defines
336 an index for a book which can be formatted independently of the main
337 source:
338
339 preamble
340 "\\documentstyle[12pt]{book}
341 \\begin{document}
342 \\begin{theindex}
343 {\\small\n"
344 postamble
345 "\n\n}
346 \\end{theindex}
347 \\end{document}\n"
348
349 Assuming that a particular book style requires the index (as well as
350 any chapters) to start from an odd page number, and that the input file
351 is named foo.idx, the following command line produces output in file
352 footmp.ind:
353
354 makeindex -s book.ist -o footmp.ind -p odd foo
355
356 Here a non-default output file name is used to avoid clobbering the
357 output for the book itself (presumably foo.dvi, which would have been
358 the default name for the index output file!).
359
360 TROFF EXAMPLE
361 A sample control file for creating an index, which we will assume
362 resides in the file sample.ist:
363
364 keyword "IX:"
365 preamble
366 ".\\\" start of index output
367 \".\\\" enter two column mode
368 .2C
369 .SH
370 .ce
371 INDEX
372 .XS
373 INDEX
374 .XE
375 .R
376 .ps 9p
377 .vs 11p
378 .sp
379 .de I1
380 .ti 0.25i
381 ..
382 .de I2
383 .ti 0.5i
384 .."
385 postamble "\n.\\\" end of index output"
386 setpage_prefix "\n.nr % "
387 setpage_suffix ""
388 group_skip "\n.sp 1.0"
389 headings_flag 1
390 heading_prefix "\n.IS\n"
391 heading_suffix "\n.IE"
392 item_0 "\n.br\n"
393 item_1 "\n.I1\n"
394 item_2 "\n.I2\n"
395 item_01 "\n.I1\n"
396 item_x1 "\n.I1\n"
397 item_12 "\n.I2\n"
398 item_x2 "\n.I2\n"
399 delim_0 ", "
400 delim_1 ", "
401 delim_2 ", "
402 delim_r "-"
403 delim_t "."
404 encap_prefix "\\fB"
405 encap_infix ""
406 encap_suffix "\\fP"
407 indent_space ""
408 indent_length 0
409
410 The local macro package may require modification, as in this example of
411 an extension to the -ms macros (note that at some sites, this macro
412 should replace a pre-existing macro of the same name):
413
414 .
415 .de IX
416 .ie '\\n(.z'' .tm IX: \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 {\\n(PN}
417 .el \\!.IX \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 {\\n(PN}
418 ..
419
420 (note that the string {\\n(PN} is separated from the rest of the line
421 by a tab. If your local macro package does not contain this extension,
422 just include those lines at the beginning of your file. Here is a sim‐
423 ple troff(1) input file, which we will assume is named sample.txt:
424
425 This is a sample file to test the \fImakeindex\fP(1L)
426 program, and see
427 .IX {indexing!programs!C language}
428 .IX {makeindex@\fImakeindex\fP(1L)}
429 .bp
430 .rs
431 .IX {Knuth}
432 .IX {typesetting!computer-aided}
433 how well it functions in the \fItroff\fP(1) environment.
434
435 Note that index entries are indicated by the .IX macro, which causes
436 the following text to be written to stdout along with the current page
437 number.
438
439 CREATING THE INDEX FILE IN THE BOURNE SHELL
440 To create an input file for makeindex, in the Bourne shell environment,
441 do the equivalent at your site of the command:
442
443 psroff -ms -Tpsc -t sample.txt > /dev/null 2> sample.tmp
444
445 Some sites will require ditroff instead of psroff. To filter out any
446 genuine error messages, invoke grep(1):
447
448 grep '^IX: ' sample.tmp > sample.idx
449
450 CREATING THE INDEX FILE USING UCSF ENHANCED TROFF/TRANSCRIPT
451 With UCSF Enhanced troff/TRANSCRIPT, the -I option of psroff(1L) can
452 produce both formatter output and an index file:
453
454 psroff -ms -I sample.inp -Tpsc sample.txt
455
456 If it is wished to suppress the formatter output:
457
458 psroff -ms -I sample.inp -Tpsc -t sample.txt > /dev/null
459
460 COMPLETING THE INDEX
461 Any of the above procedures leaves the input for makeindex in sam‐
462 ple.inp. The next step is to invoke makeindex:
463
464 makeindex -s sample.ist sample.idx
465
466 This leaves troff(1)-ready output in the file sample.ind.
467
469 By default, makeindex assumes word ordering; if the -l option is in
470 effect, letter ordering is used. In word ordering, a blank precedes
471 any letter in the alphabet, whereas in letter ordering, it does not
472 count at all. This is illustrated by the following example:
473
474 word order letter order
475 sea lion seal
476 seal sea lion
477
478 Numbers are always sorted in numeric order. For instance,
479
480 9 (nine), 123
481 10 (ten), see Derek, Bo
482
483 Letters are first sorted without regard to case; when words are identi‐
484 cal, the uppercase version precedes its lowercase counterpart.
485
486 A special symbol is defined here to be any character not appearing in
487 the union of digits and the English alphabetic characters. Patterns
488 starting with special symbols precede numbers, which precede patterns
489 starting with letters. As a special case, a string starting with a
490 digit but mixed with non-digits is considered to be a pattern starting
491 with a special character.
492
494 Entries such as
495
496 \indexentry{alpha}{1}
497 \indexentry{alpha!beta}{3}
498 \indexentry{alpha!beta!gamma}{10}
499
500 in the input file will be converted to
501
502 \item alpha, 1
503 \subitem beta, 3
504 \subsubitem gamma, 10
505
506 in the output index file. Notice that the level symbol (`!') is used
507 above to delimit hierarchical levels.
508
509 It is possible to make an item appear in a designated form by using the
510 actual (`@') operator. For instance,
511
512 \indexentry{alpha@{\it alpha\/}}{1}
513
514 will become
515
516 \item {\it alpha\/}, 1
517
518 after processing. The pattern preceding `@' is used as sort key,
519 whereas the one following it is written to the output file. Note that
520 two appearances of the same key, one with and one without the actual
521 operator, are regarded as distinct entries.
522
523 The item, subitem, and subsubitem fields may have individual sort keys:
524
525 \indexentry{aa@{\it aa\/}!bb@{\it bb\/}!cc@{\it cc\/}}{1}
526
527 This will be converted to
528
529 \item {\it aa}, 1
530 \subitem {\it bb}, 3
531 \subsubitem {\it cc}, 10
532
533 It is possible to encapsulate a page number with a designated command
534 using the encap (`|') operator:
535
536 \indexentry{alpha|bold}{1}
537
538 will be converted to
539
540 \item alpha, \bold{1}
541
542 where, with a suitable definition for TeX, \bold{n} will expand to {\bf
543 n}. In this example, the three output attributes associated with page
544 encapsulation encap_prefix, encap_infix, and encap_suffix, correspond
545 to backslash, left brace, and right brace, respectively. This mecha‐
546 nism allows page numbers to be set in different fonts. For example,
547 the page where the definition of a keyword appears can be in one font,
548 the location of a primary example can be in another font, and other
549 appearances in yet a third font.
550
551 The encap operator can also be used to create cross references in the
552 index:
553
554 \indexentry{alpha|see{beta}}{1}
555
556 will become
557
558 \item alpha, \see{beta}{1}
559
560 in the output file, where
561
562 \see{beta}{1}
563
564 will expand to
565
566 {\it see\/} beta
567
568 Note that in a cross reference like this the page number disappears.
569
570 A pair of encap concatenated with range_open (`|(') and range_close
571 (`|)') creates an explicit page range:
572
573 \indexentry{alpha|(}{1}
574 \indexentry{alpha|)}{5}
575
576 will become
577
578 \item alpha, 1—5
579
580 Intermediate pages indexed by the same key will be merged into the
581 range implicitly. This is especially useful when an entire section
582 about a particular subject is to be indexed, in which case only the
583 range opening and closing operators need to be inserted at the begin‐
584 ning and end of the section. Explicit page range formation can also
585 include an extra command to set the page range in a designated font:
586
587 \indexentry{alpha|(bold}{1}
588 \indexentry{alpha|)}{5}
589
590 will become
591
592 \item alpha, \bold{1--5}
593
594 Several potential problems are worth mentioning. First, entries like
595
596 \indexentry{alpha|(}{1}
597 \indexentry{alpha|bold}{3}
598 \indexentry{alpha|)}{5}
599
600 will be interpreted as
601
602 \item alpha, \bold{3}, 1--5
603
604 but with a warning message in the transcript about encountering an
605 inconsistent page encapsulator. An explicit range beginning in a Roman
606 page number and ending in Arabic is also considered an error. In this
607 instance, (if possible) the range is broken into two subranges, one in
608 Roman and the other in Arabic. For instance,
609
610 \indexentry{alpha|(}{i}
611 \indexentry{alpha}{iv}
612 \indexentry{alpha}{3}
613 \indexentry{alpha|)}{7}
614
615 will be turned into
616
617 \item alpha, i--iv, 3--7
618
619 with a warning message in the transcript file complaining about an
620 illegal range formation.
621
622 Finally, every special symbol mentioned in this section may be escaped
623 by the quote operator (`"'). Thus
624
625 \indexentry{alpha"@beta}{1}
626
627 will actually become
628
629 \item alpha@beta, 1
630
631 as a result of executing makeindex. The quoting power of quote is
632 eliminated if it is immediately preceded by escape (`\'). For example,
633
634 \indexentry{f\"ur}{1}
635
636 becomes
637
638 \item f\"ur, 1
639
640 which represents an umlaut-accented `u' to the TeX family of proces‐
641 sors.
642
643 From version 2.11 of makeindex, the quote operator may quote any char‐
644 acter in the range 1 ... 255. Character 0 is excluded because it is
645 used internally in the makeindex source code as a string terminator.
646 With this change, sort keys can be created for all eight-bit characters
647 except 0. The sorting order is
648
649 punctuation characters (in ASCII order),
650 digits,
651 control characters (1 ... 31),
652 space (32),
653 letters (ignoring case),
654 characters 127 ... 255.
655
656 Here is an example showing the indexing of all printable ASCII charac‐
657 ters other than letters and digits, assuming the default TeX format.
658 For convenience, the page number references are the corresponding ASCII
659 ordinal values.
660
661 \indexentry{" @" (space)}{32}
662 \indexentry{"!@"! (exclamation point)}{33}
663 \indexentry{""@"" (quotation mark)}{34}
664 \indexentry{"#@"\# (sharp sign)}{35}
665 \indexentry{"$@"\$ (dollar sign)}{36}
666 \indexentry{"%@"\% (percent sign)}{37}
667 \indexentry{"&@"\& (ampersand)}{38}
668 \indexentry{"<@"$<$ (left angle bracket)}{60}
669 \indexentry{"=@"= (equals)}{61}
670 \indexentry{">@"$>$ (right angle bracket)}{62}
671 \indexentry{"?@"? (query)}{63}
672 \indexentry{"@@"@ (at sign)}{64}
673 \indexentry{"[@"[ (left square bracket)}{91}
674 \indexentry{"\@"\verb=\= (backslash)}{92}
675 \indexentry{"]@"] (right square bracket)}{93}
676 \indexentry{"^@"\verb=^= (caret)}{94}
677 \indexentry{"_@"\verb=_= (underscore)}{95}
678 \indexentry{"`@"\verb=~= (grave accent)}{96}
679 \indexentry{"{@"\"{ (left brace)}{123}
680 \indexentry{"|@"\verb="|= (vertical bar)}{124}
681 \indexentry{"}@"\"} (right brace)}{125}
682 \indexentry{"~@"\verb=~= (tilde)}{126}
683
684 Characters in the actual fields following the `@' character which have
685 special significance to TeX must be represented as control sequences,
686 or as math mode characters. Note particularly how the entries for the
687 at sign, left and right braces, and the vertical bar, are coded. The
688 index file output by makeindex for this example looks like this:
689
690 \begin{theindex}
691
692 \item ! (exclamation point), 33
693 \item " (quotation mark), 34
694 \item \# (sharp sign), 35
695 \item \$ (dollar sign), 36
696 \item \% (percent sign), 37
697 \item \& (ampersand), 38
698 \item $<$ (left angle bracket), 60
699 \item = (equals), 61
700 \item $>$ (right angle bracket), 62
701 \item ? (query), 63
702 \item @ (at sign), 64
703 \item [ (left square bracket), 91
704 \item \verb=\= (backslash), 92
705 \item ] (right square bracket), 93
706 \item \verb=^= (caret), 94
707 \item \verb=_= (underscore), 95
708 \item \verb=~= (grave accent), 96
709 \item \{ (left brace), 123
710 \item \verb=|= (vertical bar), 124
711 \item \} (right brace), 125
712 \item \verb=~= (tilde), 126
713
714 \indexspace
715
716 \item (space), 32
717
718 \end{theindex}
719
721 makeindex executable file
722
723 $TEXMFMAIN/tex/plain/misc/idxmac.tex
724 TeX macro file used by makeindex
725
726 $TEXMFMAIN/tex/latex/base/makeidx.sty
727 TeX macro file used by makeindex
728
730 ditroff(1L), latex(1L), make.index (1L), qsort(3), tex(1L), troff(1L)
731
732 UCSF Enhanced troff/TRANSCRIPT — An Overview, R. P. C. Rodgers and Con‐
733 rad Huang, LSMB Technical Report 90-2, UCSF School of Pharmacy, San
734 Francisco, 1990.
735
736 Index Preparation and Processing, Pehong Chen and Michael A. Harrison,
737 Software: Practice and Experience, 19(9), 897–915, September 1988.
738
739 Automating Index Preparation, Pehong Chen and Michael A. Harrison.
740 Technical Report 87/347, Computer Science Division, University of Cali‐
741 fornia, Berkeley, 1987 (a LaTeX document supplied with makeindex).
742
743 MakeIndex: An Index Processor for LaTeX, Leslie Lamport, February 1987
744 (a LaTeX document supplied with makeindex).
745
746 Tools for Printing Indices, Jon L. Bentley and Brian W. Kernighan,
747 Electronic Publishing — Origination, Dissemination, and Design, 1(1),
748 3–18, June 1988 (also available as: Computing Science Technical Report
749 No. 128, AT&T Bell Laboratories, Murray Hill, NJ 07974, 1986).
750
752 Pehong Chen, Chen & Harrison International Systems, Inc. Palo Alto,
753 California, USA <chen@renoir.berkeley.edu>.
754 Manual page extensively revised and corrected, and troff(1) examples
755 created by Rick P. C. Rodgers, UCSF School of Pharmacy
756 <rodgers@cca.ucsf.edu>.
757
759 Leslie Lamport contributed significantly to the design. Michael Harri‐
760 son provided valuable comments and suggestions. Nelson Beebe improved
761 on the portable version, and maintains the source distribution for the
762 TeX Users Group. Andreas Brosig contributed to the German word order‐
763 ing. The modification to the -ms macros was derived from a method pro‐
764 posed by Ravi Sethi of AT&T Bell Laboratories. The LOG and CONTRIB
765 files in the makeindex source distribution record other contributions.
766
767
768
769 10 December 1991 MAKEINDEX(1L)