索引を作る

LaTeXではMakeIndexという索引作成のパッケージmakeidxとその処理コマンド mendex(または makeindex)を利用して索引の作成を自動的に行なうことができる。 索引の作成は、通常、文書作成において最も手間のかかる作業の一つである。 これが自動化できることの意義はたいへん大きい。

索引作成の手順

索引を作成する\LaTeXファイルには次の記載が必要。

  1. プリアンブルにパッケージ makeidx を読み込む
  2. 続けてプリアンブルに \makeindex を宣言
  3. 本文中で、索引を付けたい語彙直後に \index{よみ@索引項目} によってマーク
  4. 索引を出力する位置(通常は文末、つまり\end{document} の直前)にコマンド \printindex を記入

具体的には次のようにLaTeXファイルを作成する。

\documentclass{jsarticle}
.....
\usepackage{makeidx}
\makeindex
.....
\begin{document}
....
\index{よみ@索引項目}
....
\printindex
\end{document}

本文中で索引項目を \index{..@..} で指定しても、文面出力には何の影響もない。 したがって、将来索引を必要とする可能性がある場合には、 できる限り \index{..@..} を使って索引項目を選び出して書いておくとよい。 そうしておけば、複数ファイルの検索時に \index{..@..} を検索キーワードとして利用できるという利点もある。

索引を生成するためには、次の手順に従い必要な回数のタイプセットが作業が必要である

  1. 目的のLaTeXファイル(群)や読み込まれる画像ファイルなどを1つのフォルダに格納する。 タイプセット時に多数の関連ファイルが生成されるために、こうした措置は常に必要である。
  2. \tableofcontents によって目次情報を挿入するときには、最低2回タイプセットする(何か編集作業を行ったときでも)
  3. 拡張子 .idx が付いたファイルが生成された索引情報ファイルである。
  4. 日本語MakeIndexコマンド mendex を使って idxファイルを処理して、拡張子 .ind の付いたファイルを生成する。 indファイルは、アルファベット順と50音順に並べた索引項目がページ番号に対応させた索引ファイルである。

    たとえば、文書ファイルが latexfile.tex の場合、2回タイプセットを繰り返した後にファイル latexfile.idx ファイルがあることを確認し、次のようにコマンド mendex (これで何か問題が起これば makeindex)を当該フォルダを作業ディレクトリとして実行(索引を作成する際の最大の壁は、このコマンド入力を正しく行うことである。。)。

    $ mendex latexfile.idx
    
    または
     
    $ makeindex latexfile.idx
    

    索引ファイル latexfile.ind が作成されたことを確認。

  5. もう一度、タイプセットする。 索引情報 .ind ファイルを読み込み、\printindex が記入された位置に索引項目とその出現ページが差し込まれる。

索引項目の指定

索引項目として指定するには文中で索引項目の単語の直後に次のように\index{よみ@索引項目} で記入する。

索引項目
\index{ひらがな読み@索引項目}

読みは、原則として濁音や促音あるいは長音記号などの表記を平坦化してを表してもかまいません。 つまり、読み方については、大小文字の区別(「つ、っ」「うっ」、「ゆゅ」「やゃ」など)や濁音の有無(「し、じ」や「ただ」など)はないようです。 ただし、JIS X 4061では、文字の順番を定めているので、

かく < かぐ < がく
のように並べられる。 濁音や促音表記を平坦化しないで読みを表した場合には、並び方(索引順)の問題が発生する場合があるかもしれない。

索引項目がカタカナ や漢字を含む場合には上のように書くのであるが、半角アルファベットやひらがなだけの索引項目は \index{索引項目} とだけ書く。 索引では、最初に英文字で始まる項目がアルファベット順に並び、次いで和文文字で始まる項目が50音順に並ぶ。

したがって、索引作成のポイントは、コマンド\verb|index{..@..}|の使い方、とくにその索引項目の読み方指定にある。

索引作成の文書例

索引を作成するLaTeXソースの例を次に示す。 ここでは、あえて索引項目を指定する index{..@..} を行頭に置き、その後に改行していることに注意。 索引項目の確認や将来の文書処理の容易さのために、文書の実際の出力には無関係なこれらの記載はできるだけわかりやすく記述しておくためでである。

\documentclass{jarticle}
....
\usepackage{makeidx}
\makeindex
....

\begin{document}
\maketitle
\tableofcontents
.....
....さるかに合戦
\index{さるかにかっせん@さるかに合戦}
に関する多種多彩な側面を深く検討することによって、従来の民話
\index{みんわ@民話}
的歴史認識
\index{れきしにんしき@歴史認識}
から得られないあららしい研究方法の獲得を説明することができる。
例えば、さるが盗んだとされている餅
\index{もち@餅}
をめぐる考察から当時の農耕社会
\index{のうこうしゃかい@農耕社会}
システムが把握されるのである。
社会問題
\index{しゃかいもんだい@社会問題}
との関連性を説明する餅の領域に`合戦'の影響が見られるという認識は
.........

\printindex
\end{document}
演習merozu.zipにおいて、「メロス」、「セリヌンティウス」、「妹」などを索引項目とし、実際にタイプセットしてみなさい。