manpagez: man pages & more
man upmendex(1)
Home | html | info | man
upmendex(1)                 General Commands Manual                upmendex(1)





NAME

       upmendex - Multilingual index processor


SYNOPSIS

       upmendex [-ilqrcgf] [-s sty] [-d dic] [-o ind] [-t log] [-p no] [--] [
       idx0 idx1 idx2 ...]
       upmendex --help


DESCRIPTION

       The program upmendex is a general purpose multilingual hierarchical
       index generator working with upLaTeX, XeLaTeX and LuaLaTeX; it accepts
       one or more input files (.idx; often produced by a text formatter such
       as LaTeX families), sorts the entries, and produces an output file
       which can be formatted.  It supports Latin (including non-English),
       Greek, Cyrillic, Korean Hangul and Han (Hanzi ideographs) scripts, as
       well as Japanese Kana.  It is almost compatible with makeindex and
       mendex, and additional feature for handling readings of kanji words is
       also available.
       The formats of the input and output files are specified in a style
       file.  The readings of kanji words can be specified in a dictionary
       file.
       The index can have up to five levels (0, 1, 2, 3, and 4) of subitem
       nesting.


OPTIONS

       -i        Take input from stdin, even when index files are specified.

       -l        Set 'sort by character order'. By default, 'sort by word
                 order' is used.  Details are described below.

       -q        Quiet mode; send no message to stderr, except error messages
                 and warnings.

       -r        Disable implicit page range formation. By default, three or
                 more successive pages are automatically abbreviated as a
                 range (e.g. 1-5).

       -c        Compress sequence of intermediate blanks (space(s) and/or
                 tab(s)) into a space and ignore leading and trailing
                 blank(s).  By default, blanks in the index key are retained.

       -g        Make Japanese index head A-line (A, Ka, Sa, ...; 10
                 characters) of the gojuon table (Japanese syllabary). By
                 default, all 48 characters in the gojuon table are used.

       -f        Force to output characters even if the scripts are not
                 supported by upmendex.

       -s sty    Employ sty as the style file.

       -d dic    Employ dic as the dictionary file. The dictionary file is
                 composed of lists of <index_word reading>.

       -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.

       -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.

       -p no     Set the starting page number of the output index list to be
                 no. The argument no may be numerical or one of the following:
                 any (the next page to the end of contents), odd (the next odd
                 page to the end of contents), even (the next even page to the
                 end of contents).

       --help    Show summary of options.

       --        Arguments after -- are not taken as options.  This is useful
                 when the input file name starts with '-'.



STYLE FILE

       The style file informs upmendex about the format of the idx input files
       and the intended format of the final output file. The format is upper
       compatible with the one for makeindex and mendex.  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.


       Input file style parameter

       keyword  <string>             "\\indexentry"
                                     Command with an argument of index entry
                                     which is going to be processed.

       arg_open  <char>              '{'
                                     Opening delimiter which shows the
                                     beginning of index entry.

       arg_close  <char>             '}'
                                     Closing delimiter which shows the end of
                                     index entry.

       range_open  <char>            '('
                                     Opening delimiter which shows the
                                     beginning of page range.

       range_close  <char>           ')'
                                     Closing delimiter which shows the end of
                                     page range.

       level  <char>                 '!'
                                     Delimiter which shows lower level.

       actual  <char>                '@'
                                     Symbol which shows the next sequence is
                                     to appear as index strings in the output
                                     file.

       encap  <char>                 '|'
                                     Symbol which shows the next sequence is
                                     to be used as command name attached to
                                     the page number.

       page_compositor  <string>     "-"
                                     Separator between page levels for a style
                                     with multi-levels of page numbers.

       page_precedence  <string>     "rnaRA"
                                     Priority of expression for page number.
                                     'R' and 'r' correspond to Roman. 'n'
                                     corresponds to arabic numeral.  'A' and
                                     'a' correspond to Latin alphabet.

       quote  <char>                 '"'
                                     Escape character for upmendex parameters.

       escape  <char>                '\\'
                                     Escape character for general scripts.

       Output file style parameter

       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 page number if start page is
                                     designated.

       setpage_suffix  <string>      "}\n"
                                     Suffix of page number if start page is
                                     designated.

       group_skip  <string>          "\n\n  \\indexspace\n"
                                     Strings to insert vertical space before
                                     new section of index.

       lethead_prefix  <string>      ""
                                     Prefix of heading for newly appeared
                                     heading letter.

       heading_prefix  <string>      ""
                                     Same as lethead_prefix. (compatible with
                                     makeindex)

       lethead_suffix  <string>      ""
                                     Suffix of heading for newly appeared
                                     heading letter.

       heading_suffix  <string>      ""
                                     Same as lethead_suffix. (compatible with
                                     makeindex)

       lethead_flag  <number>        0
                                     Flag to control output of heading letters
                                     in Latin, Greek and Cyrillic scripts.
                                     '0', '1', '-1' and '2' respectively
                                     denotes no output, uppercase, lowercase
                                     and titlecase.

       heading_flag  <number>        0
                                     Same as lethead_flag. (Note: makeindex
                                     uses a different name headings_flag)

       headings_flag  <number>       0
                                     Same as lethead_flag. (compatible with
                                     makeindex)

       kana_head  <string>           ""
                                     Heading characters of Kana specified by a
                                     string.  By default, it is controlled by
                                     letter_head and command line option -g.
                                     (Extended by upmendex)

       hangul_head  <string>         "<?><?><?><?><?><?><?><?><?><?><?><?><?><?>"
                                     Heading characters of Hangul specified by
                                     a string.  (Extended by upmendex)

       tumunja  <string>             "<?><?><?><?><?><?><?><?><?><?><?><?><?><?>"
                                     Heading characters of Hangul specified by
                                     a string.  (Deprecated, Extended by
                                     upmendex)

       hanzi_head  <string>          ""
                                     Heading strings of hanzi (Kanji, Hanja)
                                     specified by a string, which is
                                     concatenated of items with a separator
                                     ';'.  (Extended by upmendex)

       devanagari_head  <string>     "<?><?><?><?><?><?><?><?><?><?><?><?><?><?><?><?><?><?><?><?><?><?><?><?><?><?><?><?><?><?><?><?><?><?><?><?><?><?><?><?><?><?><?><?><?><?><?><?><?><?><?>"
                                     Heading characters of Devanagari
                                     specified by a string.  (Experimental,
                                     Extended by upmendex)

       thai_head  <string>           "<?><?><?><?><?><?><?><?><?><?><?><?><?><?><?><?><?><?><?><?><?><?><?><?><?><?><?><?><?><?><?><?><?><?><?><?><?><?><?><?><?><?><?><?><?><?>"
                                     Heading characters of Thai script
                                     specified by a string.  (Experimental,
                                     Extended by upmendex)

       item_0  <string>              "\n  \\item "

       item_1  <string>              "\n    \\subitem "

       item_2  <string>              "\n      \\subsubitem "

       item_3  <string>              "\n        \\subsubsubitem "

       item_4  <string>              "\n          \\subsubsubsubitem "
                                     Command sequence inserted between two
                                     primary, two secondary, etc. level
                                     entries.

       item_01  <string>             "\n    \\subitem "

       item_12  <string>             "\n      \\subsubitem "

       item_23  <string>             "\n        \\subsubsubitem "

       item_34  <string>             "\n          \\subsubsubsubitem "
                                     Command sequence inserted between primaly
                                     and secondary, secondary and tertiary,
                                     etc. level entries.

       item_x1  <string>             "\n    \\subitem "

       item_x2  <string>             "\n      \\subsubitem "

       item_x3  <string>             "\n        \\subsubsubitem "

       item_x4  <string>             "\n          \\subsubsubsubitem "
                                     Command sequence inserted between primary
                                     and secondary, secondary and tertiary,
                                     etc. level entries when the higher level
                                     entry does not have page number.

       delim_0  <string>             ", "

       delim_1  <string>             ", "

       delim_2  <string>             ", "

       delim_3  <string>             ", "

       delim_4  <string>             ", "
                                     Delimiter string between primary,
                                     secondary, etc. level entry and first
                                     page number.

       delim_n  <string>             ", "
                                     Delimiter string between page numbers
                                     commonly used for any entry level.

       delim_r  <string>             "--"
                                     Delimiter string between pages to show
                                     page range.

       delim_t  <string>             ""
                                     Delimiter string output at the end of
                                     page number list.

       suffix_2p  <string>           ""
                                     String to be inserted in place of delim_n
                                     and the next page number when the two
                                     pages are contiguous.
       It works only when the parameter is defined.

       suffix_3p  <string>           ""
                                     String to be inserted in place of delim_r
                                     and the third page number when the three
                                     pages are contiguous.  The parameter is
                                     prior to suffix_mp.
       It works only when the parameter is defined.

       suffix_mp  <string>           ""
                                     String to be inserted in place of delim_r
                                     and the last page number when the three
                                     or more pages are contiguous.
       It works only when the parameter is defined.

       encap_prefix  <string>        "\\"
                                     Prefix for an encapsulating command when
                                     the encapsulating command is added to the
                                     page number.

       encap_infix  <string>         "{"
                                     Prefix just before the page number when
                                     the encapsulating command is added to the
                                     page number.

       encap_suffix  <string>        "}".
                                     Suffix after the page number when the
                                     encapsulating command is added to the
                                     page number.

       line_max  <number>            72
                                     Maximum number of one line.  If exceed
                                     the number, lines are folded.

       indent_space  <string>        ""
                                     Space for indent which inserted to top of
                                     folded line.

       indent_length  <number>       16
                                     Length of space for indent which inserted
                                     to top of folded line.

       symhead_positive  <string>    "Symbols"
                                     Strings to output as heading letter for
                                     symbols when lethead_flag or heading_flag
                                     or headings_flag is positive number.

       symhead_negative  <string>    "symbols"
                                     Strings to output as heading letter for
                                     symbols when lethead_flag or heading_flag
                                     or headings_flag is negative number.

       symbol  <string>              ""
                                     Strings to output as heading letter for
                                     symbols when symbol_flag is non zero.
       If specified, the option is prior to symhead_positive and
       symhead_negative.  (Extended by (up)mendex)

       numhead_positive  <string>    "Numbers"
                                     Strings to output as heading letter for
                                     numbers when lethead_flag or heading_flag
                                     or headings_flag is positive number and
                                     symbol_flag is 2.

       numhead_negative  <string>    "numbers"
                                     Strings to output as heading letter for
                                     numbers when lethead_flag or heading_flag
                                     or headings_flag is negative number and
                                     symbol_flag is 2.

       symbol_flag  <number>         1
                                     Flag to output of symbol. If '0', do not
                                     output headings for symbols and numbers.
                                     If '1', output symbols and numbers as a
                                     group of symbols.  If '2', output symbols
                                     and numbers separately.  (Extended by
                                     (up)mendex)

       letter_head  <number>         1
                                     Flag of heading letter for Japanese Kana.
                                     If '1' and '2', Katakana and Hiragana is
                                     used, respectively.  (Extended by
                                     (up)mendex)

       priority  <number>            0
                                     Flag of sorting method for index words
                                     composed of Japanese and non-Japanese
                                     (ex. Latin scripts).  If non zero, one
                                     space (U+0020) is inserted between
                                     Japanese sequence and non-Japanese
                                     sequence in sorting procedure.  (Extended
                                     by (up)mendex)

       character_order  <string>     "SNLGCJKHDTah"
                                     Order of scripts and symbols.  'S', 'N',
                                     'L', 'G', 'C', 'J', 'K', 'H', 'D', 'T',
                                     'a' and 'h' respectively denotes symbol,
                                     number, Latin, Greek, Cyrillic, Japanese
                                     Kana, Korean Hangul, Hanzi, Devanagari,
                                     Thai, Arabic and Hebrew script.  '@'
                                     denotes scripts which are not explicitly
                                     designated and the order are configured
                                     by icu_rules or icu_locale.  Please make
                                     sure that 'S' and 'N' are next to each
                                     other if symbol_flag=1, since numbers are
                                     classified as a part of symbol.
                                     (Extended by upmendex)

       script_preamble  <string 1>  <string 2>
                                     ""
                                     Preamble of script block in output file,
                                     specified by string 2.  One of script
                                     names must be specified in the string 1:
                                     'latin', 'cyrillic', 'greek', 'kana',
                                     'hangul', 'hanzi', 'devanagari', 'thai',
                                     'arabic', or 'hebrew'.  (Extended by
                                     upmendex)

       script_postamble  <string 1>  <string 2>
                                     ""
                                     Postamble of script block in output file,
                                     specified by string 2.  One of script
                                     names must be specified in the string 1:
                                     'latin', 'cyrillic', 'greek', 'kana',
                                     'hangul', 'hanzi', 'devanagari', 'thai',
                                     'arabic', or 'hebrew'.  (Extended by
                                     upmendex)

       icu_locale  <string>          ""
                                     Locale in ICU collator.  By default,
                                     "root sort order" is set.  (Extended by
                                     upmendex)

       icu_rules  <string>           ""
                                     Customized collation rules in ICU
                                     collator.  Unicode characters in UTF-8
                                     encoding and following escape sequences
                                     are accepted: \Uhhhhhhhh (8-digit
                                     hexadecimal [0-9A-Fa-f]), \uhhhh (4-digit
                                     hexadecimal), \xhh (2-digit hexadecimal),
                                     \x{h...} (1..8-digit hexadecimal), and
                                     \ooo (3-digit octal [0-7]).  If icu_rules
                                     and icu_locale are simultaneously
                                     specified, collation rules specified by
                                     icu_rules are added on collation rules
                                     specified by icu_locale.  By default,
                                     locale is used.  (Extended by upmendex)
       Ref. <https://unicode-
       org.github.io/icu/userguide/collation/customization/>,
       <http://www.unicode.org/reports/tr35/tr35-collation.html#Rules>

       icu_attributes  <string>      ""
                                     Attributes in ICU collator.  Followings
                                     are available: "alternate:shifted",
                                     "alternate:non-ignorable",
                                     "strength:primary", "strength:secondary",
                                     "strength:tertiary",
                                     "strength:quaternary",
                                     "strength:identical", "french-
                                     collation:on", "french-collation:off",
                                     "case-first:off", "case-first:upper-
                                     first", "case-first:lower-first", "case-
                                     level:on", "case-level:off",
                                     "normalization-mode:on", "normalization-
                                     mode:off", "numeric-ordering:on",
                                     "numeric-ordering:off" (Extended by
                                     upmendex)
       Ref. <https://unicode-
       org.github.io/icu/userguide/collation/customization/#default-options>,
       <http://www.unicode.org/reports/tr35/tr35-collation.html#Setting_Options>


ABOUT JAPANESE PROCESSING

       upmendex has an additional feature to simplify the procedure of
       handling Japanese indexes, compared to makeindex. Users can save the
       effort of manually specifying a reading for every kanji word.
       Japanese kanji words are usually sorted by the syllables of their
       readings ('Yomi'), which can be represented by kana (Hiragana,
       Katakana) scripts.  upmendex accepts index words specified in kana
       expression directly on an input file, and also accepts conversion from
       index words in Kanji or symbols to phonogram scripts by referring to
       Japanese dictionaries.


       Examples of internal simplification of syllables are shown below.

              <?><?><?><?><?><?><?><?>      <?><?><?><?><?><?><?><?>
              <?><?><?><?><?><?><?><?>      <?><?><?><?><?><?><?><?>
              <?><?><?><?>             <?><?><?><?>

       The dictionary file consists of list with <'index_word' 'reading'>.
       The index word can be written in any scripts (kanji, kana, etc), and
       the reading can be in any phonograms such as Hiragana or Katakana
       scripts.  The delimiter between the index word and its reading is one
       or more tab(s) or space(s).
       An example of a Japanese dictionary is shown below.

              <?><?>         <?><?><?>
              <?><?>         <?><?>
              <?><?>         <?><?><?><?><?>
              <?>       <?><?>

       Here, each index word is allowed to have only one Yomi.  Though some
       kanji words (ex. <?><?><?>) may have more than one Yomi's (ex.
       <?><?><?><?><?> and <?><?><?><?><?>), only one of them can be
       registered in the dictionary.  When some different Yomi's are needed,
       they should be specified explicitly in kana expression (ex.
       \index{<?><?><?>@<?>} or \index{<?><?><?>@<?>}) on the input file.
       Moreover, a dictionary file is automatically referred by setting the
       file name at an environment variable INDEXDEFAULTDICTIONARY.  The
       dictionary set by the environment variable can be used together with
       file(s) specified by -d option.


ABOUT SORTING PROCEDURE

       upmendex sorts indexes as is ('sort by word order') by default.
       Setting -l option, spaces between words in an index are truncated prior
       to sorting procedure ('sort by character order').
       Even when sort by character order, the index at output remains the
       original sequence without the truncation.
       Follows show an example.

              sort by word order       sort by character order
              X Window            Xlib
              Xlib                XView
              XView                    X Window

       In addition, two sorting methods can be applied for indexes which
       contains both Japanese kana and other scripts (e.g. Latin script).  By
       setting priority 0 (default) and 1 at a style file, a space between
       Japanese Kana and other scripts is inserted and not inserted
       respectively, prior to the sorting procedure.
       Follows show an example.

              priority=0               priority=1
              index sort               ind<?><?><?><?>
              ind<?><?><?><?>               index sort


ENVIRONMENT VARIABLES

       upmendex refers environment variables as follows.

       INDEXSTYLE
                 Directory where index style files exist.

       INDEXDEFAULTSTYLE
                 Index style file to be referred to as default.

       INDEXDICTIONARY
                 Directory where dictionary files exist.

       INDEXDEFAULTDICTIONARY
                 Dictionary file which is automatically read.


DETAIL

       Detailed specification is compatible with makeindex.


KNOWN ISSUES

       When plural page number expression is used, .idx files should be
       specified along with the order of page numbers. Otherwise, wrong page
       numbers might be output.


SEE ALSO

       tex(1), latex(1), makeindex(1), mendex(1).
       International Components for Unicode (ICU): <http://icu.unicode.org/>,
       <https://unicode-org.github.io/icu/>


AUTHOR

       This manual page was written by Takuji Tanaka based on the mendex
       manual page written by Japanese TeX Development Community.

                                                                   upmendex(1)

texlive-bin-extra 74436 - Generated Thu Mar 13 10:20:23 CDT 2025
© manpagez.com 2000-2026
Individual documents may contain additional copyright information.