4.5. 索引をつくる

文中にマークアップを挿入することで、索引を生成することができます。

そうしたマークアップは、あとで外部ツールによって処理されて、索引を 生成します。そうしたツールの一例に、collateindex.pl スクリプトがあります。索引を生成するための処理は、Section 4.10.3で詳しく述べます。

索引には、入れ子レベル(nesting level)があります。索引のマークアップ には、次のコードを使います。Example 4-2

Example 4-2. 索引生成のためのコード

<indexterm>
   <primary>Main level</primary>
   <secondary>Second level</secondary>
   <tertiary>Third level</tertiary>
</indexterm>
      

属性 zone を使うことで、文書のチャプターやセクションおよびその他の部分 を参照することができます。

Example 4-3. 属性 zone の使い方

<section id="encoding-index">
    <title>Encoding Indexes</title>

    <indexterm zone="encoding-index">
      <primary>edition</primary>
      <secondary>index</secondary>
    </indexterm>

    <para>索引は、文中にマークアップを挿入することで生成されます。</para>
      

Example 4-3 のコードは、索引上にこの edition という エントリーを生成するのに使われているものです。実際、属性 zone を使えば、文書内でも、文書外の別ファイル にでもどこにでも索引ページを置くことができます。

ただ、簡単にメンテナンスができるように、索引のエントリーは、索引付けを した文書の最後のページにいつも置かれています。

Example 4-4. 属性 class で、値 startofrange endofrange を使う方法

    <PARA>普段、文章を打ち込んでいると、ときどき 
   <INDEXTERM CLASS="startofrange" ID="example-band-index">
      <PRIMARY>examples</PRIMARY>
      <SECONDARY>index</SECONDARY>
   </INDEXTERM>
  長文をごっそりマークする必要が生じることがあります。</PARA>

   <PARA>そういう場合でも、いつも通りに書き進めましょう。</PARA>

   <PARA>そして、索引付けしたい部分の最後に来たら、次のように締めくくります。

   <INDEXTERM STARTREF="example-band-index" CLASS="endofrange">.
   </PARA>