MAKEINDEX(1)                        TeX Live                        MAKEINDEX(1)



NAME
       makeindex - a general purpose, formatter-independent index processor

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

DESCRIPTION
       The program makeindex is a general purpose hierarchical index  generator;
       it  accepts  one  or more input files (often produced by a text formatter
       such as TeX (tex(1L)) or troff(1), sorts the  entries,  and  produces  an
       output  file which can be formatted.  The index can have up to three lev‐
       els (0, 1, and 2) of subitem nesting.  The way in which words are flagged
       for  indexing within the main document is specific to the formatter used;
       makeindex does not automate the process of selecting these words.  As the
       output  index  is hierarchical, makeindex can be considered complimentary
       to the awk(1)-based make.index(1L) system of Bentley and Kernighan, which
       is  specific to troff(1), generates non-hierarchical indices, and employs
       a much simpler syntax for indicating index entries.  For illustration  of
       use with troff and TeX, see the section EXAMPLES below.

       The  formats of the input and output files are specified in a style file;
       by default, input is assumed to be a .idx file, as generated by LaTeX.

       Unless specified explicitly, the base name of the first input file (idx0)
       is  used to determine the names of other files.  For each input file name
       specified, a file of that name is sought.  If this file is not found  and
       the  file  name  has no extension, the extension .idx is appended.  If no
       file with this name is found, makeindex aborts.

       If exactly one input file was given and no explicit style file was speci‐
       fied  using  -s, makeindex uses a file with the extension .mst as default
       style file (when present).

       For important notes on how to select index keywords, see the document  by
       Lamport cited below.  As an issue separate from selecting index keywords,
       a systematic mechanism for placing index terms in a document is suggested
       in Index Preparation and Processing, a paper cited below.

OPTIONS
       -c        Compress  intermediate  blanks  (ignoring  leading and trailing
                 blanks and tabs).  By default, blanks  in  the  index  key  are
                 retained.

       -g        Employ  German word ordering in the index, in accord with rules
                 set forth in DIN 5007.  By default, makeindex  employs  a  word
                 ordering  in  which  precedence is: symbols, numbers, uppercase
                 letters, lowercase letters.  The sequence in German word order‐
                 ing is: symbols, lowercase letters, uppercase letters, numbers.
                 Additionally, this option enables makeindex  to  recognize  the
                 German  TeX-commands {"a, "o, "u and "s} as {ae, oe, ue and ss}
                 during the sorting of the entries.  The quote character must be
                 redefined in a style file (for example, redefine quote as '+').
                 If the quote character is not redefined, makeindex will produce
                 an error message and abort.

       -i        Take input from stdin.  When this option is specified and -o is
                 not, output is written to stdout.

       -l        Letter ordering; by default, word ordering  is  used  (see  the
                 ORDERING section).
       -o ind    Employ ind as the output index file.  By default, the file name
                 is created by appending the extension .ind to the base name  of
                 the first input file (idx0).

       -p num    Set the starting page number of the output index file to be num
                 (useful when the index file is  to  be  formatted  separately).
                 The argument num may be numerical or one of the following:

                 any       The starting page is the last source page number plus
                           1.

                 odd       The starting page is the first odd page following the
                           last source page number.

                 even      The  starting  page  is the first even page following
                           the last source page number.

                 The last source page is obtained by searching backward  in  the
                 log  file  for  the  first instance of a number included within
                 paired square brackets ([...]).  If a page number is missing or
                 the  log  file is not found, no attempt will be made to set the
                 starting page number.  The source log file name  is  determined
                 by  appending  the extension .log to the base name of the first
                 input file (idx0).

       -q        Quiet mode; send no messages to stderr.  By  default,  progress
                 and  error  messages are sent to stderr as well as to the tran‐
                 script file.

       -r        Disable implicit page range formation; page ranges must be cre‐
                 ated  by  using  explicit  range operators; see SPECIAL EFFECTS
                 below.  By default, three or more successive pages are automat‐
                 ically abbreviated as a range (e.g. 1—5).

       -s sty    Employ  sty  as  the  style file (no default).  The environment
                 variable INDEXSTYLE defines  the  path  where  the  style  file
                 should be found.

       -t log    Employ  log  as the transcript file.  By default, the file name
                 is created by appending the extension .ilg to the base name  of
                 the first input file (idx0).

       -L        sort based on locale settings. Not available on all systems.

       -T        special  support  for Thai documents. Not available on all sys‐
                 tems.

STYLE FILE
       The style file informs makeindex about the format of the .idx input files
       and  the intended format of the final output file; examples appear below.
       This file can reside anywhere in the  path  defined  by  the  environment
       variable  INDEXSTYLE.   The  style  file  contains  a list of <specifier,
       attribute> pairs.  There are two types of specifiers: input  and  output.
       Pairs do not have to appear in any particular order.  A line begun by `%'
       is a comment.   In  the  following  list  of  specifiers  and  arguments,
       <string>  is  an  arbitrary  string  delimited  by double quotes ("..."),
       <char> is a single letter embraced by single quotes ('...'), and <number>
       is  a  nonnegative integer.  The maximum length of a <string> is 2048.  A
       literal backslash or quote must be escaped (by  a  backslash).   Anything
       not  specified  in the style file will be assigned a default value, which
       is shown at the head of the rightmost column.

   INPUT STYLE SPECIFIERS
       actual <char>            ´@´
                                Symbol indicating that  the  next  entry  is  to
                                appear in the output file.

       arg_close <char>         ´}´
                                Closing delimiter for the index entry argument.

       arg_open <char>          ´{´
                                Opening delimiter for the index entry argument.

       encap <char>             ´|´
                                Symbol  indicating that the rest of the argument
                                list is to be used as the encapsulating  command
                                for the page number.

       escape <char>            ´\\´
                                Symbol   which  escapes  the  following  letter,
                                unless its preceding letter  is  escape.   Note:
                                quote is used to escape the letter which immedi‐
                                ately follows it,  but  if  it  is  preceded  by
                                escape,  it  is treated as a ordinary character.
                                These two symbols must be distinct.

       keyword <string>         "\\indexentry"
                                Command which tells makeindex that its  argument
                                is an index entry.

       level <char>             ´!´
                                Delimiter denoting a new level of subitem.

       page_compositor <string> "-"
                                Delimiter  separating  parts of a composite page
                                number (see SPECIAL EFFECTS below).

       quote <char>             ´"´
                                Note: quote is used to escape the  letter  which
                                immediately follows it, but if it is preceded by
                                escape, it is treated as a  ordinary  character.
                                These two symbols must be distinct.

       range_close <char>       ´)´
                                Closing  delimiter  indicating  the  end  of  an
                                explicit page range.

       range_open <char>        ´(´
                                Opening delimiter indicating the beginning of an
                                explicit page range.

   OUTPUT STYLE SPECIFIERS
       preamble <string>        "\\begin{theindex}\n"
                                Preamble of output file.

       postamble <string>       "\n\n\\end{theindex}\n"
                                Postamble of output file.

       setpage_prefix <string>  "\n  \\setcounter{page}{"
                                Prefix  of  command which sets the starting page
                                number.

       setpage_suffix <string>  "}\n"
                                Suffix of command which sets the  starting  page
                                number.

       group_skip <string>      "\n\n  \\indexspace\n"
                                Vertical space to be inserted before a new group
                                begins.

       headings_flag <string>   0
                                Flag indicating treatment of new group  headers,
                                which are inserted when before a new group (sym‐
                                bols, numbers, and  the  26  letters):  positive
                                values  cause an uppercase letter to be inserted
                                between prefix and suffix, and  negative  values
                                cause a lowercase letter to be inserted (default
                                is 0, which produces no header).

       heading_prefix <string>  ""
                                Header prefix to be inserted before a new letter
                                begins.

       symhead_positive <string>
                                "Symbols"
                                Heading  for  symbols  to  be  inserted if head‐
                                ings_flag is positive.

       symhead_negative <string>
                                "symbols"
                                Heading for symbols  to  be  inserted  if  head‐
                                ings_flag is negative.

       numhead_positive <string>
                                "Numbers"
                                Heading  for  numbers  to  be  inserted if head‐
                                ings_flag is positive.

       numhead_negative <string>
                                "numbers"
                                Heading for numbers  to  be  inserted  if  head‐
                                ings_flag is negative.

       item_0 <string>          "\n  \\item "
                                Command  to  be  inserted  between  two  primary
                                (level 0) items.

       item_1 <string>          "\n     \\subitem "
                                Command to be  inserted  between  two  secondary
                                (level 1) items.

       item_2 <string>          "\n       \\subsubitem "
                                Command  to  be  inserted  between  two  level 2
                                items.

       item_01  <string>        "\n    \\subitem "
                                Command to be inserted between a  level  0  item
                                and a level 1 item.

       item_x1 <string>         "\n    \\subitem "
                                Command  to  be  inserted between a level 0 item
                                and a level 1 item, where the level 0 item  does
                                not have associated page numbers.

       item_12 <string>         "\n    \\subsubitem "
                                Command  to  be  inserted between a level 1 item
                                and a level 2 item.

       item_x2 <string>         "\n    \\subsubitem "
                                Command to be inserted between a  level  1  item
                                and  a level 2 item, where the level 1 item does
                                not have associated page numbers.

       delim_0 <string>         ", "
                                Delimiter to be inserted between a level  0  key
                                and  its  first page number (default: comma fol‐
                                lowed by a blank).
       delim_1 <string>         ", "
                                Delimiter to be inserted between a level  1  key
                                and  its  first page number (default: comma fol‐
                                lowed by a blank).

       delim_2 <string>         ", "
                                Delimiter to be inserted between a level  2  key
                                and  its  first page number (default: comma fol‐
                                lowed by a blank).

       delim_n <string>         ", "
                                Delimiter to be inserted between two  page  num‐
                                bers  for  the  same  key in any level (default:
                                comma followed by a blank).

       delim_r <string>         "--"
                                Delimiter to be inserted  between  the  starting
                                and ending page numbers of a range.

       delim_t <string>         ""
                                Delimiter  to  be  inserted at the end of a page
                                list.  This delimiter has no effect  on  entries
                                which have no associated page list.

       encap_prefix <string>    "\\"
                                First  part  of  prefix  for  the  command which
                                encapsulates the page number.

       encap_infix <string>     "{"
                                Second part of  prefix  for  the  command  which
                                encapsulates the page number.

       encap_suffix <string>    "}".
                                Suffix  for  the  command which encapsulates the
                                page number.

       line_max <number>        72
                                Maximum length of a line in the  output,  beyond
                                which a line wraps.

       indent_space <string>    "\t\t"
                                Space  to be inserted in front of a wrapped line
                                (default: two tabs).

       indent_length <number>   16
                                Length of indent_space (default: 16,  equivalent
                                to 2 tabs).

       suffix_2p <string>       ""
                                Delimiter to replace the range delimiter and the
                                second page number of  a  two  page  list.  When
                                present, it overrides delim_r.  Example: "f.".

       suffix_3p <string>       ""
                                Delimiter to replace the range delimiter and the
                                second page number of a three  page  list.  When
                                present,  it  overrides  delim_r  and suffix_mp.
                                Example: "ff.".

       suffix_mp <string>       ""
                                Delimiter to replace the range delimiter and the
                                second  page  number  of  a  multiple  page list
                                (three or more pages). When  present,  it  over‐
                                rides delim_r.  Example: "f.".

EXAMPLES
   TeX EXAMPLE
       The  following  example shows a style file called book.ist, which defines
       an index for a book which can be  formatted  independently  of  the  main
       source:

              preamble
              "\\documentstyle[12pt]{book}
              \\begin{document}
              \\begin{theindex}
              {\\small\n"
              postamble
              "\n\n}
              \\end{theindex}
              \\end{document}\n"

       Assuming  that a particular book style requires the index (as well as any
       chapters) to start from an odd page number, and that the  input  file  is
       named  foo.idx,  the  following  command  line  produces  output  in file
       footmp.ind:

              makeindex  -s book.ist  -o footmp.ind  -p odd  foo

       Here a non-default output file name is used to avoid clobbering the  out‐
       put  for  the  book itself (presumably foo.dvi, which would have been the
       default name for the index output file!).

   TROFF EXAMPLE
       A sample control file for creating an index, which we will assume resides
       in the file sample.ist:

              keyword "IX:"
              preamble
              ".\\\" start of index output
              \".\\\" enter two column mode
              .2C
              .SH
              .ce
              INDEX
              .XS
              INDEX
              .XE
              .R
              .ps 9p
              .vs 11p
              .sp
              .de I1
              .ti 0.25i
              ..
              .de I2
              .ti 0.5i
              .."
              postamble "\n.\\\" end of index output"
              setpage_prefix "\n.nr % "
              setpage_suffix ""
              group_skip "\n.sp 1.0"
              headings_flag 1
              heading_prefix "\n.IS\n"
              heading_suffix "\n.IE"
              item_0 "\n.br\n"
              item_1 "\n.I1\n"
              item_2 "\n.I2\n"
              item_01 "\n.I1\n"
              item_x1 "\n.I1\n"
              item_12 "\n.I2\n"
              item_x2 "\n.I2\n"
              delim_0 ", "
              delim_1 ", "
              delim_2 ", "
              delim_r "-"
              delim_t "."
              encap_prefix "\\fB"
              encap_infix ""
              encap_suffix "\\fP"
              indent_space ""
              indent_length 0

       The  local  macro package may require modification, as in this example of
       an extension to the -ms macros (note  that  at  some  sites,  this  macro
       should replace a pre-existing macro of the same name):

              .
              .de IX
              .ie '\\n(.z'' .tm IX: \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 {\\n(PN}
              .el \\!.IX \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 {\\n(PN}
              ..

       (note  that the string {\\n(PN} is separated from the rest of the line by
       a tab.  If your local macro package does not contain this extension, just
       include  those  lines  at  the  beginning of your file.  Here is a simple
       troff(1) input file, which we will assume is named sample.txt:

              This is a sample file to test the \fImakeindex\fP(1L)
              program, and see
              .IX {indexing!programs!C language}
              .IX {makeindex@\fImakeindex\fP(1L)}
              .bp
              .rs
              .IX {Knuth}
              .IX {typesetting!computer-aided}
              how well it functions in the \fItroff\fP(1) environment.

       Note that index entries are indicated by the .IX macro, which causes  the
       following  text  to be written to stdout along with the current page num‐
       ber.

   CREATING THE INDEX FILE IN THE BOURNE SHELL
       To create an input file for makeindex, in the Bourne  shell  environment,
       do the equivalent at your site of the command:

       psroff -ms -Tpsc -t sample.txt > /dev/null 2> sample.tmp

       Some  sites  will  require  ditroff instead of psroff.  To filter out any
       genuine error messages, invoke grep(1):

              grep '^IX: ' sample.tmp > sample.idx

   CREATING THE INDEX FILE USING UCSF ENHANCED TROFF/TRANSCRIPT
       With UCSF Enhanced troff/TRANSCRIPT, the -I option of psroff(1L) can pro‐
       duce both formatter output and an index file:

              psroff -ms -I sample.inp -Tpsc sample.txt

       If it is wished to suppress the formatter output:

              psroff -ms -I sample.inp -Tpsc -t sample.txt > /dev/null

   COMPLETING THE INDEX
       Any of the above procedures leaves the input for makeindex in sample.inp.
       The next step is to invoke makeindex:

              makeindex -s sample.ist sample.idx

       This leaves troff(1)-ready output in the file sample.ind.

ORDERING
       By default, makeindex assumes word ordering;  if  the  -l  option  is  in
       effect,  letter ordering is used.  In word ordering, a blank precedes any
       letter in the alphabet, whereas in letter ordering, it does not count  at
       all.  This is illustrated by the following example:

              word order                      letter order
              sea lion                        seal
              seal                            sea lion

       Numbers are always sorted in numeric order.  For instance,

              9 (nine),  123
              10 (ten), see Derek, Bo

       Letters  are  first sorted without regard to case; when words are identi‐
       cal, the uppercase version precedes its lowercase counterpart.

       A special symbol is defined here to be any character not appearing in the
       union of digits and the English alphabetic characters.  Patterns starting
       with special symbols precede numbers,  which  precede  patterns  starting
       with  letters.   As  a  special  case, a string starting with a digit but
       mixed with non-digits is considered to be a pattern starting with a  spe‐
       cial character.

SPECIAL EFFECTS
       Entries such as

              \indexentry{alpha}{1}
              \indexentry{alpha!beta}{3}
              \indexentry{alpha!beta!gamma}{10}

       in the input file will be converted to

              \item alpha, 1
                 \subitem beta, 3
                    \subsubitem gamma, 10

       in  the  output  index  file.  Notice that the level symbol (`!') is used
       above to delimit hierarchical levels.

       It is possible to make an item appear in a designated form by  using  the
       actual (`@') operator.  For instance,

              \indexentry{alpha@{\it alpha\/}}{1}

       will become

              \item {\it alpha\/},  1

       after processing.  The pattern preceding `@' is used as sort key, whereas
       the one following it is written  to  the  output  file.   Note  that  two
       appearances  of  the same key, one with and one without the actual opera‐
       tor, are regarded as distinct entries.

       The item, subitem, and subsubitem fields may have individual sort keys:

              \indexentry{aa@{\it aa\/}!bb@{\it bb\/}!cc@{\it cc\/}}{1}

       This will be converted to

              \item {\it aa}, 1
                 \subitem {\it bb}, 3
                    \subsubitem {\it cc}, 10

       It is possible to encapsulate a page number  with  a  designated  command
       using the encap (`|') operator:

              \indexentry{alpha|bold}{1}

       will be converted to

              \item alpha, \bold{1}

       where,  with  a suitable definition for TeX, \bold{n} will expand to {\bf
       n}.  In this example, the three output attributes  associated  with  page
       encapsulation  encap_prefix, encap_infix, and encap_suffix, correspond to
       backslash, left brace, and right  brace,  respectively.   This  mechanism
       allows  page numbers to be set in different fonts.  For example, the page
       where the definition of a keyword appears can be in one font,  the  loca‐
       tion  of  a primary example can be in another font, and other appearances
       in yet a third font.

       The encap operator can also be used to create  cross  references  in  the
       index:

              \indexentry{alpha|see{beta}}{1}

       will become

              \item alpha, \see{beta}{1}

       in the output file, where

              \see{beta}{1}

       will expand to

              {\it see\/} beta

       Note that in a cross reference like this the page number disappears.

       A  pair  of  encap  concatenated  with  range_open (`|(') and range_close
       (`|)') creates an explicit page range:

              \indexentry{alpha|(}{1}
              \indexentry{alpha|)}{5}

       will become

              \item alpha, 1—5

       Intermediate pages indexed by the same key will be merged into the  range
       implicitly.   This  is  especially  useful when an entire section about a
       particular subject is to be indexed, in which case only the range opening
       and closing operators need to be inserted at the beginning and end of the
       section.  Explicit page range formation can also include an extra command
       to set the page range in a designated font:

              \indexentry{alpha|(bold}{1}
              \indexentry{alpha|)}{5}

       will become

              \item alpha, \bold{1--5}

       Several potential problems are worth mentioning.  First, entries like

              \indexentry{alpha|(}{1}
              \indexentry{alpha|bold}{3}
              \indexentry{alpha|)}{5}

       will be interpreted as

              \item alpha, \bold{3}, 1--5

       but with a warning message in the transcript about encountering an incon‐
       sistent page encapsulator.  An explicit range beginning in a  Roman  page
       number  and  ending  in  Arabic  is  also  considered  an error.  In this
       instance, (if possible) the range is broken into two  subranges,  one  in
       Roman and the other in Arabic.  For instance,

              \indexentry{alpha|(}{i}
              \indexentry{alpha}{iv}
              \indexentry{alpha}{3}
              \indexentry{alpha|)}{7}

       will be turned into

              \item alpha, i--iv, 3--7

       with  a warning message in the transcript file complaining about an ille‐
       gal range formation.

       Every special symbol mentioned in this section  may  be  escaped  by  the
       quote operator (`"').  Thus

              \indexentry{alpha"@beta}{1}

       will actually become

              \item alpha@beta,  1

       as a result of executing makeindex.  The quoting power of quote is elimi‐
       nated if it is immediately preceded by escape (`\').  For example,

              \indexentry{f\"ur}{1}

       becomes

              \item f\"ur, 1

       which represents an umlaut-accented `u' to the TeX family of processors.

       A page number can be a composite of one or more fields separated  by  the
       delimiter  bound  to  page_compositor  (`-'),  e.g., II-12 for page 12 of
       Chapter II.  Page numbers may contain up to ten fields.

       Since version 2.11 of makeindex, the quote operator may quote any charac‐
       ter  in the range 1 ... 255.   Character 0 is excluded because it is used
       internally in the makeindex source code as  a  string  terminator.   With
       this change, sort keys can be created for all eight-bit characters except
       0.  The sorting order is

              punctuation characters (in ASCII order),
              digits,
              control characters (1 ... 31),
              space (32),
              letters (ignoring case),
              characters 127 ... 255.

       Here is an example showing the indexing of all printable ASCII characters
       other than letters and digits, assuming the default TeX format.  For con‐
       venience, the page number references are the corresponding ASCII  ordinal
       values.

              \indexentry{" @"  (space)}{32}
              \indexentry{"!@"! (exclamation point)}{33}
              \indexentry{""@"" (quotation mark)}{34}
              \indexentry{"#@"\# (sharp sign)}{35}
              \indexentry{"$@"\$ (dollar sign)}{36}
              \indexentry{"%@"\% (percent sign)}{37}
              \indexentry{"&@"\& (ampersand)}{38}
              \indexentry{"<@"$<$ (left angle bracket)}{60}
              \indexentry{"=@"= (equals)}{61}
              \indexentry{">@"$>$ (right angle bracket)}{62}
              \indexentry{"?@"? (query)}{63}
              \indexentry{"@@"@ (at sign)}{64}
              \indexentry{"[@"[ (left square bracket)}{91}
              \indexentry{"\@"\verb=\= (backslash)}{92}
              \indexentry{"]@"] (right square bracket)}{93}
              \indexentry{"^@"\verb=^= (caret)}{94}
              \indexentry{"_@"\verb=_= (underscore)}{95}
              \indexentry{"`@"\verb=~= (grave accent)}{96}
              \indexentry{"{@"\"{ (left brace)}{123}
              \indexentry{"|@"\verb="|= (vertical bar)}{124}
              \indexentry{"}@"\"} (right brace)}{125}
              \indexentry{"~@"\verb=~= (tilde)}{126}

       Characters  in  the  actual fields following the `@' character which have
       special significance to TeX must be represented as control sequences,  or
       as  math  mode  characters.  Note particularly how the entries for the at
       sign, left and right braces, and the vertical bar, are coded.  The  index
       file output by makeindex for this example looks like this:

              \begin{theindex}

                \item ! (exclamation point), 33
                \item " (quotation mark), 34
                \item \# (sharp sign), 35
                \item \$ (dollar sign), 36
                \item \% (percent sign), 37
                \item \& (ampersand), 38
                \item $<$ (left angle bracket), 60
                \item = (equals), 61
                \item $>$ (right angle bracket), 62
                \item ? (query), 63
                \item @ (at sign), 64
                \item [ (left square bracket), 91
                \item \verb=\= (backslash), 92
                \item ] (right square bracket), 93
                \item \verb=^= (caret), 94
                \item \verb=_= (underscore), 95
                \item \verb=~= (grave accent), 96
                \item \{ (left brace), 123
                \item \verb=|= (vertical bar), 124
                \item \} (right brace), 125
                \item \verb=~= (tilde), 126

                \indexspace

                \item   (space), 32

              \end{theindex}

FILES
       makeindex             executable file

       $TEXMFMAIN/tex/plain/misc/idxmac.tex
                             TeX macro file used by makeindex

       $TEXMFMAIN/tex/latex/base/makeidx.sty
                             TeX macro file used by makeindex

SEE ALSO
       ditroff(1L), latex(1L), make.index (1L), qsort(3), tex(1L), troff(1L)

       UCSF Enhanced troff/TRANSCRIPT — An Overview, R. P. C. Rodgers and Conrad
       Huang, LSMB Technical Report 90-2, UCSF School  of  Pharmacy,  San  Fran‐
       cisco, 1990.

       Index  Preparation  and  Processing, Pehong Chen and Michael A. Harrison,
       Software: Practice and Experience, 19(9), 897–915, September 1988.

       Automating Index Preparation, Pehong Chen and Michael A. Harrison.  Tech‐
       nical Report 87/347, Computer Science Division, University of California,
       Berkeley, 1987 (a LaTeX document supplied with makeindex).

       MakeIndex: An Index Processor for LaTeX, Leslie Lamport, February 1987 (a
       LaTeX document supplied with makeindex).

       Tools  for Printing Indices, Jon L. Bentley and Brian W. Kernighan, Elec‐
       tronic Publishing — Origination, Dissemination, and Design,  1(1),  3–18,
       June 1988 (also available as: Computing Science Technical Report No. 128,
       AT&T Bell Laboratories, Murray Hill, NJ 07974, 1986).

AUTHOR
       Pehong Chen, Chen & Harrison International Systems, Inc.  Palo Alto, Cal‐
       ifornia, USA.
       Manual page extensively revised and corrected, and troff(1) examples cre‐
       ated   by   Rick   P.   C.   Rodgers,    UCSF    School    of    Pharmacy
       <rodgers@cca.ucsf.edu>.

ACKNOWLEDGMENTS
       Leslie Lamport contributed significantly to the design.  Michael Harrison
       provided valuable comments and suggestions.  Nelson Beebe improved on the
       portable version, and maintains the source distribution for the TeX Users
       Group.  Andreas Brosig contributed to the German word ordering.  The mod‐
       ification  to  the  -ms macros was derived from a method proposed by Ravi
       Sethi of AT&T Bell Laboratories.   The  LOG  and  CONTRIB  files  in  the
       makeindex source distribution record other contributions.



TeX Live                        24 September 2011                   MAKEINDEX(1)