Makeindex

Eine Liste von Elementen sortieren und aufteilen um einen Index zu erzeugen.

Kindelemente

(keine)

Elternelemente

Element, SaveDataset

Attribute

pagenumber (Text, optional)

Der Name des Attributs der die Seitenzahl enthält. Voreinstellung ist ‘page’.

section (Text)

Erzeuge ein XML-Element mit diesem Namen für jeden Abschnitt (Buchstabe) in dem Index.

select (XPath-Ausdruck)

Der XPath-Ausdruck der die Elementstruktur für den Index enthält ($Variable).

sortkey (Text)

Der Name des Attributs das den Indexeintrag enthält (der sortiert werden soll).

Beispiel

Die Indexerstellung funktioniert in zwei Schritten. Im ersten Schritt werden die Daten in eine Elementstruktur gespeichert und mit diesem Befehl sortiert. Im zweiten Schritt wird die Elementstruktur ausgegeben (LoadDataset).

  <Record element="data">
     <LoadDataset name="index"/>
    <SetVariable variable="indexeinträge">
      <Element name="indexeintrag">
        <Attribute name="name" select="'Giraffe'"/>
        <Attribute name="page" select="1"/>
      </Element>
      <Element name="indexeintrag">
        <Attribute name="name" select="'Garage'"/>
        <Attribute name="page" select="2"/>
      </Element>
      <Element name="indexeintrag">
        <Attribute name="name" select="'Grußwort'"/>
        <Attribute name="page" select="3"/>
      </Element>
      <Element name="indexeintrag">
        <Attribute name="name" select="'Aufzug'"/>
        <Attribute name="page" select="4"/>
      </Element>
    </SetVariable>
    <SaveDataset filename="index" elementname="Index">
      <Makeindex select="$indexeinträge" sortkey="name" section="teil"/>
    </SaveDataset>
  </Record>

  <Record element="Index">
    <ForAll select="teil">
      <PlaceObject>
        <Table width="3" stretch="max">
          <Tr>
            <Td border-bottom="0.4pt" colspan="2">
              <Paragraph><Value select="@name"></Value></Paragraph>
            </Td>
          </Tr>
          <ForAll select="indexeintrag">
            <Tr>
              <Td>
                <Paragraph><Value select="@name"/></Paragraph>
              </Td>
              <Td>
                <Paragraph><Value select="@page"/></Paragraph>
              </Td>
            </Tr>
          </ForAll>
        </Table>
      </PlaceObject>
    </ForAll>
  </Record>

Siehe auch

Das Kapitel Stichwortverzeichnisse.