Lebende Kolumnentitel

Es werden die Überschriften des übergeordneten Kapitels und des aktuellen Abschnitts im Kopfbereich der Seiten eingefügt.

In diesem Abschnitt wird der Einsatz des Marker-Konzeptes im Kopfbereich der Seiten gezeigt. Das Konzept besteht aus zwei Elementen. Das eine Element <fo:marker> bezeichnet den im Kopfbereich darzustellenden Inhalt, das andere Element <fo:retrieve-marker> die Stelle im Kopfbereich, an der dieser gespeicherte Inhalt aufgerufen wird.

Quellcode

    <fo:page-sequence master-reference="PageMaster.Inhalt">
        <fo:static-content flow-name="xsl-region-before">
            <fo:block text-align="center" font-size="10pt" font-weight="bold">
                <fo:retrieve-marker retrieve-class-name="Ueberschrift-Ebene1"
                  retrieve-position="first-including-carryover"
                  retrieve-boundary="page-sequence"/>
            </fo:block>
            <fo:block text-align="left" font-size="10pt">
                <fo:retrieve-marker retrieve-class-name="Ueberschrift-Ebene2"
                  retrieve-position="last-ending-within-page"
                  retrieve-boundary="page-sequence"/>
            </fo:block>
        </fo:static-content>
    </fo:page-sequence>
    ...
    <xsl:template match="Abschnitt/Titel">
        <fo:block>
            <fo:marker marker-class-name="Ueberschrift-Ebene1"><xsl:number level="multiple" count="Abschnitt" format="1. "/><xsl:value-of select="."/></fo:marker>
        </fo:block>
    </xsl:template>
    <xsl:template match="Abschnitt/Abschnitt/Titel">
        <fo:block>
            <fo:marker marker-class-name="Ueberschrift-Ebene2"><xsl:number level="multiple" count="Abschnitt
     | Abschnitt/Abschnitt" format="1.1 "/>
                <xsl:value-of select="."/></fo:marker>
        </fo:block>
    </xsl:template>
 

❶ Mit dem Element <fo:retrieve-marker> wird die im Attribut retrieve-class-name mit Ueberschrift-Ebene1 bezeichnete Überschrift in den Kopfbereich kopiert. Dieser Attributwert muss mit dem für das Attribut marker-class-name im Element <fo:marker> übereinstimmen. Der Wert des Attributs retrieve-position entscheidet darüber, welcher auf der gegebenen Seite auftretende Marker kopiert werden soll. Mit dem Wert first-including-carryover wird der erstauftretende Marker bestimmt, d. h. ggf. der Marker des Abschnitts, der auf der gegebenen Seite beendet wird. Mit dem Attribut retrieve-boundary wird spezifiziert, auf welchen Seiten in der Folge dieser Marker verwendet werden soll. Mit dem Wert page-sequence wird bestimmt, dass der Marker gelten soll, bis er durch den Marker für den folgenden Abschnitt abgelöst wird.

❷ In diesem zweiten Block werden die Überschriften der zweiten Ebene verarbeitet und unter der Überschrift erster Ebene ausgegeben. Das Attribut retrieve-position hat hier den Wert last-ending-within-page. Es wird der letztauftretende Marker der Seite in den Kopfbereich kopiert.

❸ Das Element <fo:marker> mit seinem obligatorischen Attribut marker-class-name bestimmt, dass der Inhalt dieses Elements für die Nutzung mit <fo:retrieve-marker> bereitgestellt wird und gibt diesem Inhalt einen Namen, mit dem er in <fo:retrieve-marker> abgerufen werden kann.

<< zurück
vor >>