1MAKEINDEX(1)                       TeX Live                       MAKEINDEX(1)
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 complementary 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       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                                Letter heading prefix to be inserted before  a
214                                new letter begins.
215
216       heading_suffix <string>  ""
217                                Letter  heading  suffix  to be inserted when a
218                                new letter begins.
219
220       symhead_positive <string>
221                                "Symbols"
222                                Heading for symbols to be  inserted  if  head‐
223                                ings_flag is positive.
224
225       symhead_negative <string>
226                                "symbols"
227                                Heading  for  symbols  to be inserted if head‐
228                                ings_flag is negative.
229
230       numhead_positive <string>
231                                "Numbers"
232                                Heading for numbers to be  inserted  if  head‐
233                                ings_flag is positive.
234
235       numhead_negative <string>
236                                "numbers"
237                                Heading  for  numbers  to be inserted if head‐
238                                ings_flag is negative.
239
240       item_0 <string>          "\n  \\item "
241                                Command to be  inserted  between  two  primary
242                                (level 0) items.
243
244       item_1 <string>          "\n     \\subitem "
245                                Command  to  be inserted between two secondary
246                                (level 1) items.
247
248       item_2 <string>          "\n       \\subsubitem "
249                                Command to be inserted  between  two  level  2
250                                items.
251
252       item_01  <string>        "\n    \\subitem "
253                                Command  to be inserted between a level 0 item
254                                and a level 1 item.
255
256       item_x1 <string>         "\n    \\subitem "
257                                Command to be inserted between a level 0  item
258                                and  a  level  1  item, where the level 0 item
259                                does not have associated page numbers.
260
261       item_12 <string>         "\n    \\subsubitem "
262                                Command to be inserted between a level 1  item
263                                and a level 2 item.
264
265       item_x2 <string>         "\n    \\subsubitem "
266                                Command  to be inserted between a level 1 item
267                                and a level 2 item, where  the  level  1  item
268                                does not have associated page numbers.
269
270       delim_0 <string>         ", "
271                                Delimiter to be inserted between a level 0 key
272                                and its first page number (default: comma fol‐
273                                lowed by a blank).
274
275       delim_1 <string>         ", "
276                                Delimiter to be inserted between a level 1 key
277                                and its first page number (default: comma fol‐
278                                lowed by a blank).
279
280       delim_2 <string>         ", "
281                                Delimiter to be inserted between a level 2 key
282                                and its first page number (default: comma fol‐
283                                lowed by a blank).
284
285       delim_n <string>         ", "
286                                Delimiter to be inserted between two page num‐
287                                bers for the same key in any  level  (default:
288                                comma followed by a blank).
289
290       delim_r <string>         "--"
291                                Delimiter  to be inserted between the starting
292                                and ending page numbers of a range.
293
294       delim_t <string>         ""
295                                Delimiter to be inserted at the end of a  page
296                                list.  This delimiter has no effect on entries
297                                which have no associated page list.
298
299       encap_prefix <string>    "\\"
300                                First part of prefix  for  the  command  which
301                                encapsulates the page number.
302
303       encap_infix <string>     "{"
304                                Second  part  of  prefix for the command which
305                                encapsulates the page number.
306
307       encap_suffix <string>    "}".
308                                Suffix for the command which encapsulates  the
309                                page number.
310
311       page_precedence <string> "rnaRA".
312                                Page type precedence order.  The default spec‐
313                                ifies: lowercase roman, numeric/arabic, lower‐
314                                case  alphabetic,  uppercase  roman, uppercase
315                                alphabetic.
316
317       line_max <number>        72
318                                Maximum length of a line in the output, beyond
319                                which a line wraps.
320
321       indent_space <string>    "\t\t"
322                                Space  to  be  inserted  in front of a wrapped
323                                line (default: two tabs).
324
325       indent_length <number>   16
326                                Length of indent_space (default:  16,  equiva‐
327                                lent to 2 tabs).
328
329       suffix_2p <string>       ""
330                                Delimiter  to  replace the range delimiter and
331                                the second page number of  a  two  page  list.
332                                When  present, it overrides delim_r.  Example:
333                                "f.".
334
335       suffix_3p <string>       ""
336                                Delimiter to replace the range  delimiter  and
337                                the  second  page number of a three page list.
338                                When present, it overrides  delim_r  and  suf‐
339                                fix_mp.  Example: "ff.".
340
341       suffix_mp <string>       ""
342                                Delimiter  to  replace the range delimiter and
343                                the second page number of a multiple page list
344                                (three  or more pages). When present, it over‐
345                                rides delim_r.  Example: "f.".
346

EXAMPLES

348   TeX EXAMPLE
349       The following example shows a style file called book.ist, which defines
350       an  index  for  a book which can be formatted independently of the main
351       source:
352
353              preamble
354              "\\documentstyle[12pt]{book}
355              \\begin{document}
356              \\begin{theindex}
357              {\\small\n"
358              postamble
359              "\n\n}
360              \\end{theindex}
361              \\end{document}\n"
362
363       Assuming that a particular book style requires the index  (as  well  as
364       any chapters) to start from an odd page number, and that the input file
365       is named foo.idx, the following command line produces  output  in  file
366       footmp.ind:
367
368              makeindex  -s book.ist  -o footmp.ind  -p odd  foo
369
370       Here  a  non-default  output  file name is used to avoid clobbering the
371       output for the book itself (presumably foo.dvi, which would  have  been
372       the default name for the index output file!).
373
374   TROFF EXAMPLE
375       A  sample  control  file  for  creating  an index, which we will assume
376       resides in the file sample.ist:
377
378              keyword "IX:"
379              preamble
380              ".\\\" start of index output
381              \".\\\" enter two column mode
382              .2C
383              .SH
384              .ce
385              INDEX
386              .XS
387              INDEX
388              .XE
389              .R
390              .ps 9p
391              .vs 11p
392              .sp
393              .de I1
394              .ti 0.25i
395              ..
396              .de I2
397              .ti 0.5i
398              .."
399              postamble "\n.\\\" end of index output"
400              setpage_prefix "\n.nr % "
401              setpage_suffix ""
402              group_skip "\n.sp 1.0"
403              headings_flag 1
404              heading_prefix "\n.IS\n"
405              heading_suffix "\n.IE"
406              item_0 "\n.br\n"
407              item_1 "\n.I1\n"
408              item_2 "\n.I2\n"
409              item_01 "\n.I1\n"
410              item_x1 "\n.I1\n"
411              item_12 "\n.I2\n"
412              item_x2 "\n.I2\n"
413              delim_0 ", "
414              delim_1 ", "
415              delim_2 ", "
416              delim_r "-"
417              delim_t "."
418              encap_prefix "\\fB"
419              encap_infix ""
420              encap_suffix "\\fP"
421              indent_space ""
422              indent_length 0
423
424       The local macro package may require modification, as in this example of
425       an  extension  to  the  -ms macros (note that at some sites, this macro
426       should replace a pre-existing macro of the same name):
427
428              .
429              .de IX
430              .ie '\\n(.z'' .tm IX: \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 {\\n(PN}
431              .el \\!.IX \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 {\\n(PN}
432              ..
433
434       (note that the string {\\n(PN} is separated from the rest of  the  line
435       by a tab.  If your local macro package does not contain this extension,
436       just include those lines at the beginning of your file.  Here is a sim‐
437       ple troff(1) input file, which we will assume is named sample.txt:
438
439              This is a sample file to test the \fImakeindex\fP(1L)
440              program, and see
441              .IX {indexing!programs!C language}
442              .IX {makeindex@\fImakeindex\fP(1L)}
443              .bp
444              .rs
445              .IX {Knuth}
446              .IX {typesetting!computer-aided}
447              how well it functions in the \fItroff\fP(1) environment.
448
449       Note  that  index  entries are indicated by the .IX macro, which causes
450       the following text to be written to stdout along with the current  page
451       number.
452
453   CREATING THE INDEX FILE IN THE BOURNE SHELL
454       To create an input file for makeindex, in the Bourne shell environment,
455       do the equivalent at your site of the command:
456
457       psroff -ms -Tpsc -t sample.txt > /dev/null 2> sample.tmp
458
459       Some sites will require ditroff instead of psroff.  To filter  out  any
460       genuine error messages, invoke grep(1):
461
462              grep '^IX: ' sample.tmp > sample.idx
463
464   CREATING THE INDEX FILE USING UCSF ENHANCED TROFF/TRANSCRIPT
465       With  UCSF  Enhanced  troff/TRANSCRIPT, the -I option of psroff(1L) can
466       produce both formatter output and an index file:
467
468              psroff -ms -I sample.inp -Tpsc sample.txt
469
470       If it is wished to suppress the formatter output:
471
472              psroff -ms -I sample.inp -Tpsc -t sample.txt > /dev/null
473
474   COMPLETING THE INDEX
475       Any of the above procedures leaves the  input  for  makeindex  in  sam‐
476       ple.inp.  The next step is to invoke makeindex:
477
478              makeindex -s sample.ist sample.idx
479
480       This leaves troff(1)-ready output in the file sample.ind.
481

ORDERING

483       By  default,  makeindex  assumes  word ordering; if the -l option is in
484       effect, letter ordering is used.  In word ordering,  a  blank  precedes
485       any  letter  in  the  alphabet, whereas in letter ordering, it does not
486       count at all.  This is illustrated by the following example:
487
488              word order                      letter order
489              sea lion                        seal
490              seal                            sea lion
491
492       Numbers are always sorted in numeric order.  For instance,
493
494              9 (nine),  123
495              10 (ten), see Derek, Bo
496
497       Letters are first sorted without regard to case; when words are identi‐
498       cal, the uppercase version precedes its lowercase counterpart.
499
500       A  special  symbol is defined here to be any character not appearing in
501       the union of digits and the English  alphabetic  characters.   Patterns
502       starting  with  special symbols precede numbers, which precede patterns
503       starting with letters.  As a special case, a  string  starting  with  a
504       digit  but mixed with non-digits is considered to be a pattern starting
505       with a special character.
506

SPECIAL EFFECTS

508       Entries such as
509
510              \indexentry{alpha}{1}
511              \indexentry{alpha!beta}{3}
512              \indexentry{alpha!beta!gamma}{10}
513
514       in the input file will be converted to
515
516              \item alpha, 1
517                 \subitem beta, 3
518                    \subsubitem gamma, 10
519
520       in the output index file.  Notice that the level symbol (`!')  is  used
521       above to delimit hierarchical levels.
522
523       It is possible to make an item appear in a designated form by using the
524       actual (`@') operator.  For instance,
525
526              \indexentry{alpha@{\it alpha\/}}{1}
527
528       will become
529
530              \item {\it alpha\/},  1
531
532       after processing.  The pattern preceding  `@'  is  used  as  sort  key,
533       whereas  the one following it is written to the output file.  Note that
534       two appearances of the same key, one with and one  without  the  actual
535       operator, are regarded as distinct entries.
536
537       The item, subitem, and subsubitem fields may have individual sort keys:
538
539              \indexentry{aa@{\it aa\/}!bb@{\it bb\/}!cc@{\it cc\/}}{1}
540
541       This will be converted to
542
543              \item {\it aa}, 1
544                 \subitem {\it bb}, 3
545                    \subsubitem {\it cc}, 10
546
547       It  is  possible to encapsulate a page number with a designated command
548       using the encap (`|') operator:
549
550              \indexentry{alpha|bold}{1}
551
552       will be converted to
553
554              \item alpha, \bold{1}
555
556       where, with a suitable definition for TeX, \bold{n} will expand to {\bf
557       n}.   In this example, the three output attributes associated with page
558       encapsulation encap_prefix, encap_infix, and  encap_suffix,  correspond
559       to  backslash,  left brace, and right brace, respectively.  This mecha‐
560       nism allows page numbers to be set in different  fonts.   For  example,
561       the  page where the definition of a keyword appears can be in one font,
562       the location of a primary example can be in  another  font,  and  other
563       appearances in yet a third font.
564
565       The  encap  operator can also be used to create cross references in the
566       index:
567
568              \indexentry{alpha|see{beta}}{1}
569
570       will become
571
572              \item alpha, \see{beta}{1}
573
574       in the output file, where
575
576              \see{beta}{1}
577
578       will expand to
579
580              {\it see\/} beta
581
582       Note that in a cross reference like this the page number disappears.
583
584       A pair of encap concatenated with  range_open  (`|(')  and  range_close
585       (`|)') creates an explicit page range:
586
587              \indexentry{alpha|(}{1}
588              \indexentry{alpha|)}{5}
589
590       will become
591
592              \item alpha, 1—5
593
594       Intermediate  pages  indexed  by  the  same key will be merged into the
595       range implicitly.  This is especially useful  when  an  entire  section
596       about  a  particular  subject  is to be indexed, in which case only the
597       range opening and closing operators need to be inserted at  the  begin‐
598       ning  and  end  of the section.  Explicit page range formation can also
599       include an extra command to set the page range in a designated font:
600
601              \indexentry{alpha|(bold}{1}
602              \indexentry{alpha|)}{5}
603
604       will become
605
606              \item alpha, \bold{1--5}
607
608       Several potential problems are worth mentioning.  First, entries like
609
610              \indexentry{alpha|(}{1}
611              \indexentry{alpha|bold}{3}
612              \indexentry{alpha|)}{5}
613
614       will be interpreted as
615
616              \item alpha, \bold{3}, 1--5
617
618       but with a warning message in  the  transcript  about  encountering  an
619       inconsistent page encapsulator.  An explicit range beginning in a Roman
620       page number and ending in Arabic is also considered an error.  In  this
621       instance,  (if possible) the range is broken into two subranges, one in
622       Roman and the other in Arabic.  For instance,
623
624              \indexentry{alpha|(}{i}
625              \indexentry{alpha}{iv}
626              \indexentry{alpha}{3}
627              \indexentry{alpha|)}{7}
628
629       will be turned into
630
631              \item alpha, i--iv, 3--7
632
633       with a warning message in the  transcript  file  complaining  about  an
634       illegal range formation.
635
636       Every  special  symbol  mentioned in this section may be escaped by the
637       quote operator (`"').  Thus
638
639              \indexentry{alpha"@beta}{1}
640
641       will actually become
642
643              \item alpha@beta,  1
644
645       as a result of executing makeindex.  The  quoting  power  of  quote  is
646       eliminated if it is immediately preceded by escape (`\').  For example,
647
648              \indexentry{f\"ur}{1}
649
650       becomes
651
652              \item f\"ur, 1
653
654       which  represents  an  umlaut-accented `u' to the TeX family of proces‐
655       sors.
656
657       A page number can be a composite of one or more fields separated by the
658       delimiter  bound  to  page_compositor (`-'), e.g., II-12 for page 12 of
659       Chapter II.  Page numbers may contain up to ten fields.
660
661       Since version 2.11 of makeindex, the quote operator may quote any char‐
662       acter  in  the range 1 ... 255.   Character 0 is excluded because it is
663       used internally in the makeindex source code as  a  string  terminator.
664       With this change, sort keys can be created for all eight-bit characters
665       except 0.  The sorting order is
666
667              punctuation characters (in ASCII order),
668              digits,
669              control characters (1 ... 31),
670              space (32),
671              letters (ignoring case),
672              characters 127 ... 255.
673
674       Here is an example showing the indexing of all printable ASCII  charac‐
675       ters  other  than  letters and digits, assuming the default TeX format.
676       For convenience, the page number references are the corresponding ASCII
677       ordinal values.
678
679              \indexentry{" @"  (space)}{32}
680              \indexentry{"!@"! (exclamation point)}{33}
681              \indexentry{""@"" (quotation mark)}{34}
682              \indexentry{"#@"\# (sharp sign)}{35}
683              \indexentry{"$@"\$ (dollar sign)}{36}
684              \indexentry{"%@"\% (percent sign)}{37}
685              \indexentry{"&@"\& (ampersand)}{38}
686              \indexentry{"<@"$<$ (left angle bracket)}{60}
687              \indexentry{"=@"= (equals)}{61}
688              \indexentry{">@"$>$ (right angle bracket)}{62}
689              \indexentry{"?@"? (query)}{63}
690              \indexentry{"@@"@ (at sign)}{64}
691              \indexentry{"[@"[ (left square bracket)}{91}
692              \indexentry{"\@"\verb=\= (backslash)}{92}
693              \indexentry{"]@"] (right square bracket)}{93}
694              \indexentry{"^@"\verb=^= (caret)}{94}
695              \indexentry{"_@"\verb=_= (underscore)}{95}
696              \indexentry{"`@"\verb=~= (grave accent)}{96}
697              \indexentry{"{@"\"{ (left brace)}{123}
698              \indexentry{"|@"\verb="|= (vertical bar)}{124}
699              \indexentry{"}@"\"} (right brace)}{125}
700              \indexentry{"~@"\verb=~= (tilde)}{126}
701
702       Characters  in the actual fields following the `@' character which have
703       special significance to TeX must be represented as  control  sequences,
704       or  as math mode characters.  Note particularly how the entries for the
705       at sign, left and right braces, and the vertical bar, are  coded.   The
706       index file output by makeindex for this example looks like this:
707
708              \begin{theindex}
709
710                \item ! (exclamation point), 33
711                \item " (quotation mark), 34
712                \item \# (sharp sign), 35
713                \item \$ (dollar sign), 36
714                \item \% (percent sign), 37
715                \item \& (ampersand), 38
716                \item $<$ (left angle bracket), 60
717                \item = (equals), 61
718                \item $>$ (right angle bracket), 62
719                \item ? (query), 63
720                \item @ (at sign), 64
721                \item [ (left square bracket), 91
722                \item \verb=\= (backslash), 92
723                \item ] (right square bracket), 93
724                \item \verb=^= (caret), 94
725                \item \verb=_= (underscore), 95
726                \item \verb=~= (grave accent), 96
727                \item \{ (left brace), 123
728                \item \verb=|= (vertical bar), 124
729                \item \} (right brace), 125
730                \item \verb=~= (tilde), 126
731
732                \indexspace
733
734                \item   (space), 32
735
736              \end{theindex}
737

FILES

739       makeindex             executable file
740
741       $TEXMFMAIN/tex/plain/makeindex/idxmac.tex
742                             TeX macro file used by makeindex
743
744       $TEXMFMAIN/tex/latex/base/makeidx.sty
745                             TeX macro file used by makeindex
746

SEE ALSO

748       ditroff(1L), latex(1L), make.index (1L), qsort(3), tex(1L), troff(1L)
749
750       UCSF Enhanced troff/TRANSCRIPT  An Overview, R. P. C. Rodgers and Con‐
751       rad Huang, LSMB Technical Report 90-2, UCSF  School  of  Pharmacy,  San
752       Francisco, 1990.
753
754       Index  Preparation and Processing, Pehong Chen and Michael A. Harrison,
755       Software: Practice and Experience, 19(9), 897–915, September 1988.
756
757       Automating Index Preparation, Pehong  Chen  and  Michael  A.  Harrison.
758       Technical Report 87/347, Computer Science Division, University of Cali‐
759       fornia, Berkeley, 1987 (a LaTeX document supplied with makeindex).
760
761       MakeIndex: An Index Processor for LaTeX, Leslie Lamport, February  1987
762       (a LaTeX document supplied with makeindex).
763
764       Tools  for  Printing  Indices,  Jon  L. Bentley and Brian W. Kernighan,
765       Electronic Publishing  Origination, Dissemination, and  Design,  1(1),
766       3–18,  June 1988 (also available as: Computing Science Technical Report
767       No. 128, AT&T Bell Laboratories, Murray Hill, NJ 07974, 1986).
768

AUTHOR

770       Pehong Chen, Chen & Harrison International Systems,  Inc.   Palo  Alto,
771       California, USA.
772       Manual  page  extensively  revised and corrected, and troff(1) examples
773       created by Rick P. C. Rodgers, UCSF School of Pharmacy.
774

ACKNOWLEDGMENTS

776       Leslie Lamport contributed significantly to the  design  of  MakeIndex.
777       Michael  Harrison  provided  valuable comments and suggestions.  Nelson
778       Beebe improved on the portable version, and maintained the source  dis‐
779       tribution  for the TeX Users Group for many years.  Andreas Brosig con‐
780       tributed to the German word ordering.   The  modification  to  the  -ms
781       macros  was  derived  from a method proposed by Ravi Sethi of AT&T Bell
782       Laboratories.  The LOG and CONTRIB files in the makeindex  source  dis‐
783       tribution record other contributions.
784
785       makeindex  is currently maintained as part of the TeX Live distribution
786       (http://tug.org/texlive); please send bug reports to tex-k@tug.org.
787
788
789
790TeX Live                       12 November 2014                   MAKEINDEX(1)
Impressum