mendex - 索引整形ツール 株式会社アスキー 出版技術グループ www-ptex@ascii.co.jp 使用法 mendex [-ilqrcgfEJSU] [-s sty] [-d dic] [-o ind] [-t log] [-p no] [-I enc] [--help] [--] [idx0 idx1 idx2 ...] 解説 mendex は文書の索引を作成するツールです。 LaTeX により抽出された索引リストファ イル(.idx)を並べ替え、実際の索引のソースファイルの形に整形します。makeindex と互 換性があり、さらに「読み」の扱いの手間を減らすように特殊化されています。 出力される索引の形式は、スタイルファイルに従って決定されます。また、辞書ファイ ルを与えることにより、索引中の熟語の読みが登録されます。 索引の階層は3段階まで作成することができます。 オプション -i 索引リストファイルが指定されている場合でも、標準入力を索引リストとし て使用します。 -l 索引のソートを文字順で行います。指定されなければ単語順のソートになり ます(ソート方法については後述)。 -q 静粛モードです。エラーおよび警告以外は標準エラー出力に出力しません。 -r ページ範囲表現を無効にします。指定しないと、連続して出てくる索引につ いては "1--5" のようにページ範囲で表現されます。 -c スペースやタブといったブランクを短縮して、すべて1個の半角スペースに します。また、前後のブランクは削除されます。 -g 日本語の頭文字の区切りを "あかさた・・・わ" にします。指定しないと "あいうえ・・・わゐゑをん" になります。 -f 辞書ファイルにない漢字も強制的に出力するモードです。 -s sty sty ファイルをスタイルファイルと見なします。スタイルファイルを指定し なければ、デフォルトの索引形式で作成します。 -d dic dic ファイルを辞書ファイルと見なします。辞書ファイルは日本語の <熟語 読み> のリストで構成されます。 -o ind ind ファイルを出力ファイルと見なします。指定がない場合は最初の入力 ファイルの拡張子を.indとしたもの、入力ファイルが標準入力のみであれば 標準出力に出力します。 -t log log ファイルをログファイルと見なします。指定がない場合は最初の入力 ファイルの拡張子を.ilgとしたもの、入力ファイルが標準入力のみであれば 標準エラー出力のみに出力されます。 -p no no を索引ページの先頭ページとして指定します。また、TeXの.log ファイル を参照することにより any (最終ページの次のページから)、odd (最終ペー ジの次の奇数ページから)、even (最終ページの次の偶数ページから)といっ た指定も可能です。 -E 漢字コードをEUC-JPに指定します。 入力ファイル、出力ファイルともEUC-JPとして扱います。 -J 漢字コードをJIS (ISO-2022-JP)に指定します。 入力ファイル、出力ファイルともJISとして扱います。 -S 漢字コードをShift_JISに指定します。 入力ファイル、出力ファイルともShift_JISとして扱います。 -U 漢字コードをUTF-8に指定します。 入力ファイル、出力ファイルともUTF-8として扱います。 -I enc 内部バッファのコードをencに指定します。enc には euc (EUC-JP) または utf8 (UTF-8) が指定可能です。 このオプションが指定されていない場合のデフォルト値は utf8 です。 --help オプションの要約を表示します。 -- 以降はオプション文字列と解釈しません。 これは,ファイル名の先頭の文字が '-' であるファイルを扱う場合に有用です。 スタイルファイル スタイルファイルは makeindex のものと上位互換です。 形式は <スタイルパラメータ 引数> のリストで構成されます。パラメータの順序は自由です。 以下にスタイルパラメータの一覧を示します。 `%'以降はコメントと見なされます。 入力ファイルスタイルパラメータ keyword <文字列> "\\indexentry" 処理対象とする索引エントリを引数として持つコマンド。 arg_open <文字> '{' 索引エントリ文字列開始を表す文字。 arg_close <文字> '}' 索引エントリ文字列終了を表す文字。 range_open <文字> '(' ページ範囲の開始を示す文字。 range_close <文字> ')' ページ範囲の終了を示す文字。 level <文字> '!' 従属レベルであることを示す文字。 actual <文字> '@' このシンボルに続く文字列が実際の索引文字列として出力ファイルに書かれる。 encap <文字> '|' このシンボルに続く文字列が、ページ番号に付くコマンド名として使われる。 page_compositor <文字列> "-" 階層化されたページ番号における階層間の区切り文字。 page_precedence <文字列> "rnaRA" ページ番号の記法の優先順位。'R'および'r'はローマ数字、'n'はアラビア数字、 'A'および'a'はアルファベットによる記法を表す。 quote <文字> '"' mendex のパラメータ文字に対するエスケープキャラクタ。 escape <文字> '\\' 一般的な文字に対するエスケープキャラクタ。 出力ファイルスタイルパラメータ preamble <文字列> "\\begin{theindex}\n" 出力ファイルの文字列。 postamble <文字列> "\n\n\\end{theindex}\n" 出力ファイルの末尾の文字列。 setpage_prefix <文字列> "\n \\setcounter{page}{" 開始ページを設定するときの、ページ番号の前に付ける文字列。 setpage_suffix <文字列> "}\n" 開始ページを設定するときの、ページ番号の後に付ける文字列。 group_skip <文字列> "\n\n \\indexsapce\n" 新項目(頭文字)の前に挿入する縦スペースを表す文字列。 lethead_prefix <文字列> "" 頭文字の前に付けるコマンド文字列。 heading_prefix <文字列> "" lethead_prefixと同じ。(makeindex互換) lethead_suffix <文字列> "" 頭文字の後に付けるコマンド文字列。 heading_suffix <文字列> "" lethead_suffixと同じ。(makeindex互換) lethead_flag <数値> 0 頭文字の出力のフラグ。0のとき出力しない。0より大きいときは英字を大文字で、 0より小さいときは小文字で出力する。 heading_flag <数値> 0 lethead_flagと同じ。 makeindexではheadings_flagという名称のため、互換性がありません。 item_0 <文字列> "\n \\item " 主エントリ間に挿入するコマンド。 item_1 <文字列> "\n \\subitem " サブエントリ間に挿入するコマンド。 item_2 <文字列> "\n \\subsubitem " サブサブエントリ間に挿入するコマンド。 item_01 <文字列> "\n \\subitem " 主〜サブエントリ間に挿入するコマンド。 item_x1 <文字列> "\n \\subitem " 主〜サブエントリ間に挿入するコマンド。(主エントリにページ番号がないとき) item_12 <文字列> "\n \\subsubitem " サブ〜サブサブエントリ間に挿入するコマンド。 item_x2 <文字列> "\n \\subsubitem " サブ〜サブサブエントリ間に挿入するコマンド。(サブエントリにページ番号が ないとき) delim_0 <文字列> ", " 主エントリと最初のページ番号の間の区切り文字列。 delim_1 <文字列> ", " サブエントリと最初のページ番号の間の区切り文字列。 delim_2 <文字列> ", " サブサブエントリと最初のページ番号の間の区切り文字列。 delim_n <文字列> ", " ページ番号間の区切り文字列。どのエントリレベルにも共通。 delim_r <文字列> "--" ページ範囲を示すときの、ページ番号間の区切り文字列。 delim_t <文字列> "" ページ番号のリストの終端に出力する文字列。 suffix_2p <文字列> "" ページ番号が2ページ連続する場合に、delim_n と2ページ目の番号の代わりに 付加する文字列。 文字列が定義されている場合にのみ有効。 suffix_3p <文字列> "" ページ番号が3ページ連続する場合に、delim_r と3ページ目の番号の代わりに 付加する文字列。suffix_mp より優先される。 文字列が定義されている場合にのみ有効。 suffix_mp <文字列> "" ページ番号が3ページまたはそれ以上連続する場合に、delim_r と末尾のページ 番号の代わりに付加する文字列。 文字列が定義されている場合にのみ有効。 encap_prefix <文字列> "\\" ページ番号にコマンドを付けるときの、コマンド名の前に付ける文字列。 encap_infix <文字列> "{" ページ番号にコマンドを付けるときの、ページ番号の前に付ける文字列。 encap_suffix <文字列> "}" ページ番号にコマンドを付けるときの、ページ番号の後に付ける文字列。 line_max <数値> 72 1行の最大文字数。それを超えると折り返す。 indent_space <文字列> "\t\t" 折り返した行の頭に挿入するスペース。 indent_length <数値> 16 折り返した行の頭に挿入されるスペースの長さ。 symhead_positive <文字列> "Symbols" lethead_flag または heading_flag が正数の場合に数字・記号の頭文字として 出力する文字列。 symhead_negative <文字列> "symbols" lethead_flag または heading_flag が負数の場合に数字・記号の頭文字として 出力する文字列。 symbol <文字列> "" symbol_flag が0でない場合に、数字・記号の頭文字として出力する文字列。 文字列が定義されていれば、symhead_positive および symhead_negative より 優先される。(mendex専用) symbol_flag <数値> 1 symbol の出力フラグ。0のとき出力しない。(mendex専用) letter_head <数値> 1 日本語の頭文字の出力のフラグ。1のときカタカナ、2のときひらがなで出力 する。(mendex専用) priority <数値> 0 英字と日本語との混在した索引語のソート方法についてのフラグ。0でなければ 英字と日本語との間に半角スペースを入れた状態でソートする。(mendex専用) character_order <文字列> "SNEJ" 記号、英字、日本語の優先順位。'S'は記号、'N'は数字、'E'は英字、'J'は 日本語を表す。(mendex専用) mendexでは索引項目の分類として「数字」は「記号」に含める仕様としています ので、'S'と'N'は必ず隣り合わせてください (数字と数字以外の記号の順序入れ替えは可能です)。 日本語の扱いについて mendex は日本語の索引をできるだけ楽に扱えるようになっています。 makeindex では日本語の索引が正しく辞書順にソートするためにはひらがなまたはカタ カナに揃え、拗音、撥音、濁点を除いた読みを付けなければなりませんでした(自動的に 揃えるバージョンもある)。 mendex ではカナについてはすべて自動的に揃え、また漢字については辞書ファイルを 設定することにより各索引語ごとに読みを付ける作業をかなり解消できます。 以下に内部でのカナの変換例を示します。 かぶしきがいしゃ かふしきかいしや マッキントッシュ まつきんとつしゆ ワープロ わあふろ 辞書ファイルは <熟語 読み> のリストで構成されます。熟語と読みの区切りはタブま たはスペースです。 以下に辞書の例を示します。 漢字 かんじ 読み よみ 環境 かんきょう α アルファ 辞書に登録する熟語は、読み方が1通りになるよう送り仮名を付けてください。 「表」、「性質」のように送り仮名によらず2通りの読み方ができる語についてはどち らか1つしか登録できません。他の読み方については各索引語へ読みを付けることで対応 してください。 また、環境変数 INDEXDEFAULTDICTIONARY に辞書ファイルを登録することにより、 自動的に辞書を参照します。環境変数に登録した辞書は -d で指定した辞書と併用できま す。 ソート方法について mendex は通常は入力された索引語をそのままソートします。-l オプションが付けられ た場合、複数の単語で構成される索引語については、ソートするときに単語と単語の間の スペースを詰めてソートします。 ここでは前者を単語順ソート、後者を文字順ソートと呼ぶことにします。 文字順ソートの場合、実際に出力される文字列はスペースを含んだ状態のものなので、 索引語自体が変化することはありません。 以下に例を示します。 単語順ソート 文字順ソート X Window Xlib Xlib XView XView X Window また、日本語〜英字間でも似たようなソート方法があります。スタイルファイルで priority に0以外を指定した場合、隣接した日本語と英字の間にスペースを入れてソート します。 以下に例を示します。 priority=0 priority=1 index sort indファイル indファイル index sort 環境変数 mendex では以下のような環境変数を使用しています。 INDEXSTYLE 索引スタイルファイルがあるディレクトリ INDEXDEFAULTSTYLE デフォルトで参照する索引スタイルファイル INDEXDICTIONARY 辞書があるディレクトリ INDEXDEFAULTDICTIONARY 常に参照する辞書ファイル 詳細について その他、仕様の詳細については makeindex と同じです。 問題点等 複数のページ記法を使用する場合、ページ順に.idxファイルを与えないとページ番号を 誤認することがあります。