索引について―階層化索引を簡単に作る方法を考えました。

前回[1]は、主に索引の目的について考えてみました。

今回はちょっと実践的に、ECMJ流!のシリーズの制作の際に階層化索引を簡単に作る方法を考案しましたので、それについてご紹介します。

階層化索引というのは例えば次のような形式です。この例では親階層が「Eコマース」、「Eコマース革命」です。その子供の索引として「大企業のEコマース」、「中小企業のEコマース」などがあります。Eコマースが共通ですので、表示を簡素化するためダッシュで代替しています。

○PDFのとき巻末に索引を自動生成し、ページ番号から本文の索引語位置への内部リンクを設定
20170131

○PDFのとき巻末に索引を自動生成し、索引語または(複数箇所あるとき)索引語のカウンターから本文の索引語位置への内部リンクを設定
20170131c

CAS-UBの編集画面には簡単な索引を作る対話式のダイヤログがあり、これを使えば1階層の索引を簡単につくることができます[2]

残念ながら、現在のところ、編集画面のダイヤログでは階層化索引を作ることができません。そこで、CAS-UBの編集画面で手入力でCAS記法のマークアップすることになります。

CAS記法のマークアップの説明はこちら:CAS記法リファレンス

親子の索引は本文に次のようにマークアップします。
[[[:mindex [[[:prim:key=xxx 親の索引語]]][[[:second:key=yyy 子供の索引語]]]]]]
xxxに親の索引語の読み、yyyに子供の索引語の読み

しかし、どうもまだるっこしいので、テキストファイルとして索引を用意する方法を考えてみました。

上の図の例の索引を作るには、次のようなテキストファイルを用意します。

[[[:nodisp:mindex [[[:prim Eコマース]]][[[:second:key=だいきぎょうの―― 大企業の――]]]]]]
[[[:nodisp:mindex [[[:prim Eコマース]]][[[:second:key=ちゅうしょうきぎょうの―― 中小企業の――]]]]]]
[[[:nodisp:mindex [[[:prim Eコマース]]][[[:second パソコンでの――]]]]]]
[[[:nodisp:mindex [[[:prim Eコマース]]][[[:second モバイルでの――]]]]]]

[[[:nodisp:index:key=Eコマースかくめい Eコマース革命]]]
[[[:nodisp:mindex [[[:prim:key=Eコマースかくめい Eコマース革命]]][[[:second:key=――いこうの2ねんかん ――以降の2年間]]]]]]

(:nodispは索引語をPDFとEPUBの本文に表示しないという指定です)

それで索引語検索して、ヒットしたところに、索引のマークアップを貼り付けていきます。こんな感じです。

(1)「大企業のEコマース」を検索します。
20170131a

(2)ヒットした中で索引を付ける箇所を選択します。この場合は(9,76)の位置に付けますので、(9,76)をクリックします。

(3)すると編集画面で(9,76)の位置にジャンプします。テキストファイルから

[[[:nodisp:mindex [[[:prim Eコマース]]][[[:second:key=だいきぎょうの―― 大企業の――]]]]]]

をコピーして、索引語の前に貼り付けます。

(4)貼り付けた結果は次の図のようになります。

20170131b

(5)PDFとEPUBを作成すると索引のページが自動的に作られ、索引の各項目から本文へのリンクが設定されます。本文の索引語が非表示でもリンク先としては有効ですので、索引のマークアップは索引からジャンプしたい箇所に設定して置くのが良いです。

[1] 索引論再訪ー索引の目的とは。索引をどうやってつくるか?
[2] 1階層の索引の作り方は、動画とブログで紹介しています。動画とブログは下記の過去記事をご覧ください。

CAS-SUPPORTブログの索引関連その他の過去記事
[1] CAS-UBの編集デモ動画 新ファイル : 索引を追加する
[2] EPUB・PDFで索引や親子索引を作るためのCAS記法の例
[3] CAS-UBではEPUBに索引を自動的に出力できます。
[4] 索引の作り方を考える。一歩進んで、本文に出てこない索引語や、索引語の階層化の試み。