当サイトの一部ページには、アフィリエイト・アドセンス・アソシエイト・プロモーション広告を掲載しています。

Amazonのアソシエイトとして、Security Akademeiaは適格販売により収入を得ています。

広告配信等の詳細については、プライバシーポリシーページに掲載しています。

消費者庁が、2023年10月1日から施行する景品表示法の規制対象(通称:ステマ規制)にならないよう、配慮して記事を作成しています。もし問題の表現がありましたら、問い合わせページよりご連絡ください。

参考:令和5年10月1日からステルスマーケティングは景品表示法違反となります。 | 消費者庁

同人誌に索引を入れる方法【Re:VIEW編】

2025年4月27日

技術書典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です。

※「隠れビーコン」に「かくれびーこん」を設定した場合、「隠れ○○」という別の用語ごとに設定行が増えてしまうためです。

また、「○○攻撃」のように始まりが漢字でなくても、よく索引に部分的に登場する漢字は、読みを設定しておくとよいでしょう。

※設定しなくても、単独では正しい位置に配置されます。ただし、別の用語と並んだときに正しい並びになるかは断言できません。

参考サイト