索引作成には,makeindex, mendex, texindy, xindy 等を用いる.
[[LaTeX入門]] /
[[最初の例>LaTeX入門/最初の例]] /
[[簡単な数式 (1)>LaTeX入門/簡単な数式(1)]] /
[[簡単な数式 (2)>LaTeX入門/簡単な数式(2)]] /
[[各種パッケージの利用>LaTeX入門/各種パッケージの利用]] /
[[レポート>LaTeX入門/レポート]] /
[[HTML と LaTeX の比較>LaTeX入門/HTMLとLaTeXの比較]] /
[[複雑な数式>LaTeX入門/複雑な数式]] /
[[図表>LaTeX入門/図表]] /
[[図表の配置>LaTeX入門/図表の配置]] /
[[相互参照とリンク>LaTeX入門/相互参照とリンク]] /
[[文献引用]] /
索引作成 /
[[LaTeX マクロの作成>LaTeX入門/LaTeXマクロの作成]] /
[[スライドの作り方(jsarticle 編)>LaTeX入門/スライドの作り方(jsarticle編)]] /
[[応用的な使い方>LaTeX入門/応用的な使い方]] /
[[発展編>LaTeX入門/発展編]]

&color(White,#5F2F2F){  ''◆CONTENTS◆''  };&br;
----


* 索引作成 [#wb91d8c9]

索引があると,読む側としては「用語から検索して該当する部分のみ拾い読みする」という読み方が出来ますので,非常に便利です。

#contents

**参考情報 [#xd191e7b]
-http://en.wikibooks.org/wiki/LaTeX/Indexing
-http://www.rsch.tuis.ac.jp/~mizutani/online/latex/makeindex.html
-[[奥村晴彦:http://oku.edu.mie-u.ac.jp/~okumura/]], [[黒木 裕介:https://twitter.com/kuroky_plus]]著『[[[改訂第6版] LaTeX2e 美文書作成入門:http://oku.edu.mie-u.ac.jp/~okumura/bibun6/]]』
-[[upLaTeX+mendexで索引作成時のトラブル:http://oku.edu.mie-u.ac.jp/tex/mod/forum/discuss.php?d=1253]]

* ツール比較 [#l03584a3]
** mendex による索引の作成 [#td781055]

***Makeindex [#gcb83664]
-対応言語
--英語
-LaTeX専用
LaTeX で索引を作成するには,Makeindex, mendex, upmendex, texindy, xindy 等のツールを用います。
ここでは mendex を使用した索引の作りかたを説明します。

***Mendex [#xebbb24f]
-対応言語
--英語
--日本語(JIS第1,2水準)
-対象ソフトウェア
--LaTeX, (e-)(u)pLaTeX, XeLaTeX, LuaTeX-ja
-対応文字コード: 入出力にJIS(ISO-2022-JP), EUC-JP, Shift_JIS, UTF-8
-開発元
--[[(株)アスキーメディアワークス>http://ascii.asciimw.jp/pb/ptex/base/sources.html#mendexk]]
-特徴
--基本的にMakeindexの上位互換
--日本語のインデックスは、読みによるソートを行う。
--インデックスとして、表記+読みの組の入力が可能。
--辞書ファイルの利用により、読みの入力の軽減が可能。
// 大友さんによる「文献リストと相互参照,および索引の作り方」(インターネットアーカイブ)
// http://web.archive.org/web/20081231221606/http://www.klavis.info/bib.html
// をもとに,一部変更を施して移植しました。
// パブリックドメインにしていただいたことに感謝いたします。

***Xindy [#k08a3ba1]
-対応言語
--ラテン文字の言語 (英語、ドイツ語、フランス語、…)
--ギリシャ文字の言語 (ギリシャ語)
--キリル文字の言語 (ロシア語)
--ヘブライ語
-対象ソフトウェア
--TeX, LaTeX family
--roff-family
--SGML/XML-based systems
-対応文字コード: UTF-8
-開発元
--[[SourceForge, Xindy Web Site>http://xindy.sourceforge.net/]]
-特徴
--多言語
--多様なマークアップの取り扱い (TeX書式の ^^e4 や \"a を ä として扱うなど)
--柔軟にカスタマイズ可能
--TeX, LaTeX以外のソフトでも利用可能
LaTeX では \index という「索引の対象となる用語があるよ」と目印をつける命令があります。
それを本文の随所につけておき,本文の最後に \printindex と記述することで,索引を出力することが出来ます。
ページ番号も自動的につきます。

* Mendexによる索引の作成 [#b0b6551e]
まず,プリアンブルに次のように記述します。

**索引語(\index{})の挿入 [#td781055]
ソース内で,索引語には \index{} コマンドを付ける.
 索引語\index{さくいんご@索引語}を挿入\index{そうにゅう@挿入}する.
// なお,索引語が長い場合,索引語の途中で改ページが起こる場合を考慮して
// ……\index{むやみにながいさくいんご@むやみに長い索引語}むやみに長い索引語……
// のごとく,\index コマンドを索引語の「直前」に置くほうがよいこともあります.
-漢字の「読み方」:「漢字の読みの辞書」を問題無く作成する人は必ずしも多くない(?)ので,基本的には一つ一つの\index{} コマンドに「読み方」を付けた方が好ましい?
- 当然ながら\index{} コマンドの引数はミスが許されない.ミスによって異なるものが混在すると,異なる索引語として認識される.
--\index{} コマンドを挿入する場合,最終的に一人の人が全ページにわたって挿入作業すべき.複数人で行うと\index{} コマンドの引数の統一化は困難.
 \usepackage{makeidx}
 \makeindex

その上で,索引をつけたい用語が英語なら次のように索引用ラベルを貼ります。

 If you want convert DVI file to PDF file,
 using dvipdfmx\index{dvipdfmx} is the greatest choice.

日本語で漢字を含む場合は,ラベルとして次のように @ の前に「ふりがな」,@ の後に漢字をつけます。

 免疫\index{めんえき@免疫}とは,例外をおそれずにいえば,体内に入ってきた細菌や
 ウィルス(非自己\index{ひじこ@非自己}\footnote{抗原\index{こうげん@抗原}と総称される。})
 といった自己にとって危険な要素を徹底的に排除しようと試みる際に,脳以上に主導権を握っている
 生体防御機構\index{せいたいぼうぎょきこう@生体防御機構}である。

こうしたものをどんどん書いておき,索引を出力したい場所(本文の末尾など)に

 \printindex

と書きます。

さて,索引を処理するのは mendex というツールです。

先ほど説明したように \index と \printindex を書いた TeX ファイル名を hoge.tex とします。
その上で,次のように実行してください。

 platex hoge
 mendex hoge
 platex hoge

こうすると,索引の用語が自動でアルファベット順,平仮名の場合はあいうえお順に並べられて出力されます。
もし,同じ文書中で \tableofcontents によって目次を作ろうとしている場合は,最後にもう一回
 platex hoge
でタイプセットしましょう。
そうすることで,目次に索引のページ番号が表示されます。

拡張子を省略していますが,そのほうが楽でしょう。
具体的には
+まず hoge.tex を platex でタイプセット
+出てきた hoge.idx を mendex で処理
+索引リスト hoge.ind ができたことを確認し,platex で hoge.tex を再度タイプセット


** 索引のノウハウ [#nfb67551]

索引を作成するうえで留意すべき点や,より楽に作業する試みなどのコメントです。

***索引の目印のつけかた [#b957432f]
-索引語が長い場合,索引語の途中で改ページが起こる場合を考慮して
 ……\index{むやみにながいさくいんご@むやみに長い索引語}むやみに長い索引語……
のごとく,\index コマンドを索引語の「直前」に置くほうがよいこともあります。

-漢字の「読み方」:「漢字の読みの辞書」を問題無く作成する人は必ずしも多くないので,基本的には一つ一つの \index{} コマンドに「読み方」を付けた方が好ましいかもしれません。

-当然ながら \index{} コマンドの引数はミスが許されません。ミスによって異なるものが混在すると,異なる索引語として認識されます。
--\index{} コマンドを挿入する場合,最終的に一人の人が全ページにわたって挿入作業すべきです。複数人で行うと \index{} コマンドの引数の統一化は困難でしょう。
// 全文書にわたる索引付けの作業が 1 人で可能な程度の規模の文書に対してはそうするにこしたことはありませんが……
// やむを得ない場合には idx ファイル(あるいは ind ファイル)を直接編集する
// (もちろん,可能ならばソース自体の中の \index の引数を直接調整してもよいのですが)
// などして,生成される索引だけでも調整せざるを得ないこともあるでしょう.
// などして,生成される索引だけでも調整せざるを得ないこともあるでしょう。

***「漢字の読みの辞書」の利用 [#afbc0ab7]
「漢字の読みの辞書」を用いた場合は,\index コマンドに「読み方」の記述は不要.
//次のように,ソース内では「索引語」,「挿入」に対する
 索引語\index{索引語}を挿入\index{挿入}する.
「漢字の読みの辞書」を用いた場合は,\index コマンドに「読み方」の記述は不要です。
// 次のように,ソース内では「索引語」,「挿入」に対する
 索引語\index{索引語}を挿入\index{挿入}する。

- ただし,辞書に登録していない語あるいは辞書に登録した「読み方」とは異なる「読み方」をする語に対しては,「読み方」の指定が必要.\index{}コマンド内に読み方が記述された場合は辞書を見に行かない.
-ただし,辞書に登録していない語あるいは辞書に登録した「読み方」とは異なる「読み方」をする語に対しては,「読み方」の指定が必要です。\index{} コマンド内に読み方が記述された場合は辞書を見に行きません。
 \index{ゆうせんされるよみかた@優先される読み方}

- マクロ定義の試み:
-マクロ定義の試み:
もし,
 \def\term#1{#1\index{#1}}
とマクロ定義し,これを利用すると,
 \term{索引語}を\term{挿入}する.
 \term{索引語}を\term{挿入}する。

- mendex実行例と「漢字の読みの辞書」ファイル
-mendex 実行例と「漢字の読みの辞書」ファイル
 $ mendex -U -d foo.dic foo.idx
 $ cat foo.dic
 # Japanese pronounciation dictionary (tab-separated)
 索引	さくいん
 語	ご
 挿入	そうにゅう
 #

***漢字の「読み方」を得る方法 [#o996016f]
例えば,saykotoeri というコマンドがあるようです(OS X用). https://sites.google.com/site/nicohemus/home/saykotoeri
例えば,saykotoeri というコマンドがあるようです(OS X 用)。
-https://sites.google.com/site/nicohemus/home/saykotoeri
 $ saykotoeri -o -m "索引"
 さくいん

***別名を持つ用語の索引化 [#l86bc3d9]
用語の別名の索引は,基本的に「see」を用い,ページ数は表示させない方が良さそう.
すなわち,記述例として,
用語の別名の索引は,基本的に「see」を用い,ページ数は表示させない方が良さそう。すなわち,記述例として,
-ソース内のどこかに下記を記述し,
 \renewcommand{\seename}{$\rightarrow$}
 \index{クラクション|see{警笛(クラクション)}}
-本文内の\index{}コマンド付けは,
 警笛\index{けいてき(クラクション)@警笛(クラクション)} % at p.10
 クラクション\index{けいてき(クラクション)@警笛(クラクション)} % at p.20
- 索引の仕上がり例は
-索引の仕上がり例は
 クラクション, → 警笛(クラクション)
 警笛(クラクション), 10, 20

***索引におけるページ番号表示を加工 [#de756abb]
ソース内で,加工コマンド付きの \index{・|加工コマンド} を付加する.ボールド体で表示の例.
ソース内で,加工コマンド付きの \index{・|加工コマンド} を付加する。ボールド体で表示の例。
 索引語\index{さくいんご@索引語|textbf}を挿入\index{そうにゅう@挿入|textbf}する
// たとえ記述例であろうと,「『漢字を含む索引語』に対し
// 『読み方(というよりソートキー)を完全に省略した』例」は挙げないでください.
// 『読み方(というよりソートキー)を完全に省略した』例」は挙げないでください。

***\index{} コマンドの自動挿入 [#b8a9b6bc]
試み例 (texindex.pl): 寒川光「LaTeX&PostScritスーパーユーザのテクニック」共立出版
試み例 (texindex.pl): 寒川光「LaTeX & PostScript スーパーユーザのテクニック」共立出版
// もっとも,\index コマンドの自動挿入などということは,
// 「あまり出現しない語句」に対してしか有用ではないと思われます.
// 「あまり出現しない語句」に対してしか有用ではないと思われます。
// ([[qa:47376]] 参照)


***\index{} コマンドの挿入位置 [#y3854ca0]

挿入位置に注意が必要.下記の位置に\index{} コマンドを挿入すると,文字詰めを殺してしまう.
挿入位置に注意が必要。下記の位置に\index{} コマンドを挿入すると,文字詰めを殺してしまう。
-「)」と句読点との間
-「)」と\footnote{}コマンドとの間

回避例
-「(・・・\index{・})」:丸括弧の中に\index{} コマンドを挿入
-「・・・\index{・}(・・・)」:丸括弧の前に\index{} コマンドを挿入

***ある用語を索引に含めるか否か [#d893e47a]
編集者・出版社のノウハウ(門外不出?)かもしれません。
-例えば,ある人物(アインシュタイン)の評伝の本で,アインシュタインという言葉を索引にするかしないか? するならば,全出現箇所(多数)のうちのどこに付けるのかを決める規範は?
-全出現数が n 箇所(n ページ)以下の索引語化を決めた語句に対しては,その全出現箇所に付けるのが適切か?(例えば n=2 ?)
-学術書等では,そこで使用されている専門用語の語義を読者が知ろうとするニーズが割と多そうです。そうすると語義を書内で示すこと及びそのページを索引で示すことは重要。

**索引語(\index{})の付け方 [#d893e47a]
編集者・出版社のノウハウ(門外不出?)かもしれません

- 例えば,ある人物(アインシュタイン)の評伝の本で,アインシュタインという言葉を索引にするかしないか? するならば,全出現箇所(多数)のうちのどこに付けるのかを決める規範は?
- 全出現数がn箇所(nページ)以下の索引語化を決めた語句に対しては,その全出現箇所に付けるのが適切か?(例えばn=2 ?)
- 学術書等では,そこで使用されている専門用語の語義を読者が知ろうとするニーズが割と多そうです.そうすると語義を書内で示すこと及びそのページを索引で示すことは重要.
** 索引作成ツール比較 [#l03584a3]

- 外部情報
-- [[索引(wikipedia):http://ja.wikipedia.org/wiki/%E7%B4%A2%E5%BC%95]]
上の例では mendex を使って索引を作りました。
ほかのツールを含めて,[[索引作成ツール比較]]で比較しました。


** TeX フォーラムの質問より [#n9e05006]

-upLaTeX+mendexで索引作成時のトラブル:[[forum:1253]]
-MakeIndex, Mendex, XindyとMendexのUnicode化:[[forum:1308]]
-さくいんをつくるときのTやDの読み方:[[forum:1338]]
-index前後の改行,kanjiskip,xkanjiskip:[[forum:1062]]
-\label, \index, \linelabel の位置:[[forum:1968]]


** 関連リンク [#xd191e7b]

-http://en.wikibooks.org/wiki/LaTeX/Indexing
-[[索引(wikipedia):http://ja.wikipedia.org/wiki/%E7%B4%A2%E5%BC%95]]
-[[索引の作成:http://www.rsch.tuis.ac.jp/~mizutani/online/latex/makeindex.html]]
-[[TUG 2013で日本語の巻末索引について発表しました:http://note.golden-lucky.net/2013/12/tug-2013.html]]
--[[Index makes your book perfect:http://www.slideshare.net/k16shikano/imybp-light]]
-[[[texlive] Index of /trunk/Build/source/texk/mendexk:http://www.tug.org/svn/texlive/trunk/Build/source/texk/mendexk/]]
--[[log:http://www.tug.org/svn/texlive/trunk/Build/source/texk/mendexk/?view=log]]
--[[ChangeLog:http://www.tug.org/svn/texlive/trunk/Build/source/texk/mendexk/ChangeLog?view=markup]]