# Elementname: `Makeindex`

## Beschreibung

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

Erlaubte Attribute: pagenumber, section, select, sortkey

Kindelemente: (keine)

Elternelemente: SaveDataset

### Attribute

pagenumber (Text, optional, seit Version 2.7.11)

  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 column="1">
            <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>

## Hinweis

Das Attribut für die Seitenzahl muss `page` heißen. Diese Einschränkung wird in einer zukünftigen Version aufgehoben sein.

## Siehe auch

SaveDataset

# Befehlsübersicht

- A
- Action
- AddToList
- AtPageCreation
- AtPageShipout
- Attribute
- B
- Barcode
- Bold
- BoldItalic
- Bookmark
- Box
- Br
- Case
- Circle
- Color
- Column
- Columns
- Compatibility
- Contents
- Copy-of
- DefineColor
- DefineFontalias
- DefineFontfamily
- DefineTextformat
- Element
- Fontface
- ForAll
- Frame
- Grid
- Group
- HSpace
- Hyphenation
- I
- Image
- Include
- InsertPages
- Italic
- Layout
- Li
- LoadDataset
- LoadFontfile
- Loop
- Makeindex
- Margin
- Mark
- Message
- NewPage
- NextFrame
- NextRow
- NoBreak
- Ol
- Options
- Otherwise
- Output
- Overlay
- PDFOptions
- Pageformat
- Pagetype
- Paragraph
- PlaceObject
- Position
- PositioningArea
- PositioningFrame
- ProcessNode
- Record
- Regular
- Rule
- SaveDataset
- SavePages
- Sequence
- SetGrid
- SetVariable
- SortSequence
- Stylesheet
- Sub
- Sup
- Switch
- Table
- Tablefoot
- Tablehead
- Tablerule
- Td
- Text
- Textblock
- Tr
- Trace
- Transformation
- U
- URL
- Ul
- Until
- VSpace
- Value
- While

Version: 2.8.1 | Startseite | Befehlsreferenz | Andere Sprache: Englisch