Contents | < Les Apostilles | Les Marques-Page >

Les Délimiteurs

Probablement vous avez remarquez comment est montré sur l'en-tête le nom du chapitre courant dans un livre. Pour mettre en application ce dispositif, vous devez comprendre les éléments de délimitation de XSL-FO.

D'abord vous "marquez" (délimitez) des pièces de votre contenu en tant qu'étant recoupérables afin de les montrer dans les en-têtes ou les titres de bas de page. Pour ceci vous employez fo:marker. Le délimiteur est habituellement associé à un fo:block, donc, l'information provénante du marqueur peut être montrée dans tout ces pages où le fo:block gènére des secteurs.

Alors vous allez dire au moteur de montrer un délimiteur dans les en-têtes ou le titre de bas de page en utilisant fo:retrieve-marker. Il peut y avoir bien sûr des plusieurs délimiteurs dans une certaine page, ainsi vous devez employer un nom unique pour chaque délimiteur, aussi bien que la règle de récupération: le premier délimiteur avec le nom donné présent dans la page, ou le premier qui commence dans la page, ou le dernier, etc.

L'éxemple suivant montre un document à deux chapitres, avec le titre de chapitre étant montré dans l'en-tête.

<fo:page-sequence master-reference="all-pages" font="italic 10pt Verdana">
    <fo:static-content flow-name="xsl-region-before">
        <fo:block>
            The first title present on this page:
            <fo:retrieve-marker retrieve-class-name="title"  Œ  
                                retrieve-position="first-starting-within-page"    
                                retrieve-boundary="page" /> Ž
        </fo:block>
    </fo:static-content>
    <fo:flow flow-name="xsl-region-body" font="10pt Verdana">
        <fo:block>
            <fo:block font="18pt 'Arial Narrow'">
                <fo:marker marker-class-name="title" > 
                    Title of Chapter 1
                </fo:marker>
                Chapter 1
            </fo:block>
            Text ...
        </fo:block>
        <fo:block break-before="page">
            <fo:block font="18pt 'Arial Narrow'">
                <fo:marker marker-class-name="title" > 
                    Title of Chapter 2
                </fo:marker>
                Chapter 2
            </fo:block>
            Text ...
        </fo:block>
    </fo:flow>
</fo:page-sequence>
Pour le code source complet pour cet exemple de code voyez "Tutorial/Markers.fo" situé dans le dossier XML Documents Samples/Tutorial.

Le résultat du rendant est montré dans la figure suivante.

Figure 1

Les points importants dans ce document sont:

 Dans le corps de la page nous déclarons un délimiteur pour chaque fo:block dans le flux. Le deuxième paragraphe ira dans la deuxième page parce qu'il a l'attribut break-before réglé.

Œ Dans la région d'en-tête, cela s'applique pour chaque page générée, nous récupérons les délimiteurs en utilisant fo:retrieve-marker. Le délimiteur "type" est indiqué dans l'attribut retrieve-class-name.

 Ž Limitez le champs de la récupération du délimiteur pour être dans la même page que l'élément retrieve-marker. La première occurrence sera montrée.

 

Contents | < Les Apostilles | Les Marques-Page >