同人誌に索引を入れる方法【Re:VIEW編】
目次
はじめに
いつもブログをご覧いただきありがとうございます。
ミジンコに転生したIPUSIRONです😀
技術書典18の同人誌において、初索引に挑戦しました。
うまくいったので記事としてまとめておきます。
できあがりのPDFは基本的にページ数は4の倍数にしなければなりませんが、例えばあと1、2ページ足りないと思ったときには、索引を入れてサクッと終わらせる戦法もよさそうです。
Re:VIEWの索引機能の謎
索引機能を使う前に、私自身が思った疑問とその答えを紹介します。
索引は奥付の直前に挿入される
索引ページに相当するREファイルは作りません。
※索引は設定さえすれば、索引ページが自動で生成されます。
⇒"catalog.yml"ファイル上に記述するものはありません。
⇒どこに挿入されるのか?
⇒【結論】索引は最終章(「付録」や「おわりに」を含む)の後ろ、奥付の直前に挿入されます。

目次に索引は載るのか?
【結論】索引も目次に掲載されます。
位置的には奥付の直前なので、実質的にすべての記事の最後になります。
※「索引」という文字列が章の見出しになります。

記号、数字、かな、漢字に対応するのか?
基本的に漢字以外については正確に並びます。
しかし、漢字(から始まるキーワード)の位置はおかしくなります。
⇒【結論】後述の辞書ファイル(「漢字」と「読み」の対応を記載したファイル)を読み込ませることで解決します。
Re:VIEWの索引機能を有効にする
“config.yml"ファイルに索引の設定項目があります。
コメントアウトを外し、「makeindex: true」とします。
(略)
# 索引を作成するか。trueにすると索引作成が有効になる
# makeindex: null
makeindex: ture
# 索引作成コマンド
# makeindex_command: mendex
# 索引作成コマンドのオプション
# makeindex_options: "-f -r -I utf8"
# 索引作成コマンドのスタイルファイル
# makeindex_sty: null
# 索引作成コマンドの辞書ファイル
# makeindex_dic: null
# MeCabによる索引読み探索を使うか
# makeindex_mecab: true
makeindex_mecab: null
(略)
REファイル内では、基本以下の2種類の命令を使います。
命令 | 使い分け |
---|---|
@<idx>{ワード} | ・通常の索引ワード。 ・ワードは当該ページに表示される。 |
@<hidx>{ワード} | ・ワードは索引に載るが、当該ページに表示されない。 |

索引のレイアウトをきれいにする
1:索引のスタイルファイル("myindex.ist"ファイル)を用意する。
ファイルには、以下のように記述しました。
delim_0 "\\quad\\hfill"
delim_1 "\\quad\\hfill"
delim_2 "\\quad\\hfill"
symbol_flag 1
symbol "記号/数字"
heading_flag 1
letter_head 2
heading_prefix "{\\vbox{\\hbox to \\linewidth{\\gtfamily\\bfseries\\large "
heading_suffix "\\ \\hskip\\fill}\\vskip2pt\\hrule}}\\nopagebreak\n"
symhead_positive "{\\vbox{\\hbox to \\linewidth{\\gtfamily\\bfseries\\large 記号/数字"
symhead_negative "\\hskip\\fill}\\vskip2pt\\hrule}}\\nopagebreak\n"
2:"config.yml"ファイルからスタイルファイルを読み込む。
コメントアウトを外し、「makeindex_sty: myindex.ist」とします。
(略)
# 索引を作成するか。trueにすると索引作成が有効になる
# makeindex: null
makeindex: ture
# 索引作成コマンド
# makeindex_command: mendex
# 索引作成コマンドのオプション
# makeindex_options: "-f -r -I utf8"
# 索引作成コマンドのスタイルファイル
# makeindex_sty: null
makeindex_sty: myindex.ist
# 索引作成コマンドの辞書ファイル
# makeindex_dic: null
# MeCabによる索引読み探索を使うか
# makeindex_mecab: true
makeindex_mecab: null
(略)
3:今回のレイアウトファイルだと、以下のように索引ページになります。

辞書ファイルによって、漢字から始まるキーワードに対応できる
具体的な方法
1:辞書ファイルを追加する。
辞書ファイル(ここでは"myindex.dic"ファイルとする)には、1行に「用語」と「読み」の対を記述します。
2つの間には、空白またはタブを入れます。
※最終行には空白行を入れておいたほうがよいでしょう。
隠れ かくれ
簡易 かんい
総当たり攻撃 そうあたりこうげき
特権 とっけん
攻撃 こうげき
2:"config.yml"ファイルから辞書ファイルを読み込む。
コメントアウトを外し、「makeindex_dic: myindex.dic」とします。
(略)
# 索引を作成するか。trueにすると索引作成が有効になる
# makeindex: null
makeindex: ture
# 索引作成コマンド
# makeindex_command: mendex
# 索引作成コマンドのオプション
# makeindex_options: "-f -r -I utf8"
# 索引作成コマンドのスタイルファイル
# makeindex_sty: null
makeindex_sty: myindex.ist
# 索引作成コマンドの辞書ファイル
# makeindex_dic: null
makeindex_dic: myindex.dic
# MeCabによる索引読み探索を使うか
# makeindex_mecab: true
makeindex_mecab: null
(略)
細かい点だが気づいたこと
漢字とそれ以外の組み合わせのキーワードの場合、漢字のみの読みだけを辞書ファイルに登録しておけば十分です。
例えば、「隠れビーコン」を正しい位置に配置するには、「隠れビーコン」ではなく「隠れ」のみの読みを設定すればOKです。
※「隠れビーコン」に「かくれびーこん」を設定した場合、「隠れ○○」という別の用語ごとに設定行が増えてしまうためです。
また、「○○攻撃」のように始まりが漢字でなくても、よく索引に部分的に登場する漢字は、読みを設定しておくとよいでしょう。
※設定しなくても、単独では正しい位置に配置されます。ただし、別の用語と並んだときに正しい並びになるかは断言できません。