1MAKEINDEX(1L)                                                    MAKEINDEX(1L)
2
3
4

NAME

6       makeindex - a general purpose, formatter-independent index processor
7

SYNOPSIS

9       makeindex  [-c]  [-g]  [-i] [-l] [-o ind] [-p num] [-q] [-r] [-s sfile]
10       [-t log] [-L] [-T] [idx0 idx1 idx2...]
11

DESCRIPTION

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

OPTIONS

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

STYLE FILE

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

EXAMPLES

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

ORDERING

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

SPECIAL EFFECTS

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

FILES

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

SEE ALSO

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

AUTHOR

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

ACKNOWLEDGMENTS

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