Précédent |
Table des matières |
bas de page |
Suivant |
L'arbre des objets de mise en forme affiné décrit une ou plusieurs des présentations souhaitées pour l'information dans cet arbre. La mise en forme est le processus qui convertit la description en une présentation. Voir le chapitre [3 Introduction à la mise en forme]. La présentation apparaît, sous une forme abstraite, dans un arbre des aires, comme défini dans le modèle des aires. Voir le chapitre [4 Le modèle des aires]. Chacune des présentations possibles est représentée par un ou plusieurs arbres des aires dans lesquels l'information dans l'arbre des objets de mise en forme est disposée sur une surface en deux dimensions et demie.
Il y a trois genres d'objets de mise en forme : (1) ceux qui génèrent des aires, (2) ceux qui retournent des aires, sans les générer, et (3) ceux qui sont utilisés pour la génération des aires. Ceux des deux premiers genres sont typiquement appelées objets de flux. Ceux du troisième genre sont appelés soit objets de disposition, soit objets auxilliaires. Le genre de l'objet transparaît dans la terminologie employée avec celui-ci. On dit que les objets du premier genre « génèrent une ou plusieurs aires ». On dit que les objets du deuxième genre « retournent une ou plusieurs aires ». Les objets du premier genre peuvent à la fois générer et retourner des aires. Les objets du troisième genre sont « utilisés pour la génération des aires » ; c'est-à-dire, ils se comportent comme des paramètres du processus de génération.
Cette catégorisation conduit à définir deux traits qui caractérisent la relation entre une aire et l'objet de mise en forme qui génère et retourne celle-ci. Ces traits sont generated-by et returned-by.
La valeur du trait generated-by est un seul objet de mise en forme. Un objet de mise en forme F est défini comme générant une aire A, si la sémantique de F spécifie la génération d'une ou plusieurs aires et que A soit une des aires ainsi générées, ou soit une forme substituée d'une de ces aires, comme spécifié au chapitre [4.7.2 La construction des lignes].
Dans le cas d'aires de glyphe substituées, l'objet de mise en forme générateur est considéré comme étant celui qui a généré l'aire de glyphe la première venue dans la séquence des aires de glyphes substituées. Dans le cas d'une aire de glyphe insérée (par exemple, un tiret produit automatiquement), l'objet de mise en forme générateur est considéré comme étant celui qui a généré la dernière aire de glyphe, avant l'aire de glyphe insérée, dans le cheminement préordonné de l'arbre des aires.
La valeur du trait returned-by est un jeu de paires, chacune de ces paires étant constituées d'un objet de mise en forme et d'un entier positif. Cet entier représente la position de l'aire dans l'ordonnancement de toutes les aires retournées par l'objet de mise en forme.
Un objet de mise en forme F est défini comme retournant la séquence des aires A, B, C, etc., si la paire (F,1) est un membre du trait returned-by de A, la paire (F,2) est un membre du trait returned-by de B, et ainsi de suite.
Si une aire est un membre de la séquence des aires retournées par un objet de mise en forme, alors soit celle-ci a été générée par l'objet de mise en forme en question, soit celle-ci faisait partie de la séquence des aires retournées par un enfant de ce même objet. Toutes les aires retournées par l'enfant d'un objet de mise en forme ne sont pas nécessairement retournées par cet objet de mise en forme. Un objet de mise en forme peut générer une aire, comme certaines des aires enfants de celle-ci le peuvent, qui a des aires retournées par les enfants de cet objet en question. Ces enfants (dans l'arbre des aires) de l'aire générée ne sont pas retournés par l'objet de mise en forme auquel ceux-ci ont été retournés.
Un jeu de nœuds dans un arbre forme un lignage :
s'il existe un nœud N dans ce jeu, tel que tous les nœuds du jeu soient des ancêtres de N ;
et si, pour chaque nœud N du jeu, quand le jeu comprend un ancêtre de N, il comprend aussi le parent de N.
Le jeu des objets de mise en forme par lequel une aire est retournée forme un lignage.
Les aires retournées par un objet de mise en forme peuvent être soit normales soit hors-ligne. Les aires normales représentent des aires dans le « flux normal du texte », c'est-à-dire, celles-ci deviennent les aires enfants des aires générées par l'objet de mise en forme auquel elles sont retournées. Les aires normales ont un lignage par le trait returned-by de taille un . Il n'existe qu'une seule sorte d'aire normale.
Les aires hors-ligne sont des aires utilisées en dehors du flux normal du texte, soit parce qu'elles ont un positionnement absolu, soit parce qu'elles font partie d'un flottant ou d'un pied de page. Les aires hors-ligne peuvent avoir un lignage par le trait returned-by de taille supérieure à un.
Le trait area-class indique à laquelle classe, normale ou hors-ligne, une aire appartient. Pour les aires hors-ligne, celui-ci indique aussi une sous-classe de l'aire hors-ligne. Le trait admet les valeurs "xsl-normal", "xsl-absolute", "xsl-footnote", "xsl-side-float" et "xsl-before-float". Une aire est normale si, et seulement si, la valeur du trait area-class est "xsl-normal" ; autrement, il s'agit d'une aire hors-ligne (voir le chapitre [4.2.5 Les contraintes d'empilement]).
Les aires retournées par un objet de mise en forme donné sont ordonnées comme indiqué plus haut. Cet ordre définit un ordonnancement des sous-séquences des aires qui appartiennent à une classe d'aire donnée, comme la sous-séquence des aires normales. Une aire A précède une aire B dans la sous-séquence si, et seulement si, l'aire A précède l'aire B dans les aires retournées par les objets de mise en forme.
On définit une chaîne d'aires de référence comme étant la séquence des aires de référence qui est soit générée par un même objet de mise en forme, celui-ci n'étant pas un objet de mise en forme page-sequence, soit qui consiste en aires de référence de la région ou en aires de référence de flux normal (voir [6.4.13 fo:region-body]) générées avec des objets de mise en forme de région assignés à un même flux (voir [6.4.1.4 Les flux et la correspondance de flux]). On dit que les aires de référence de la séquence sont « contenues » dans la chaîne d'aires de référence, chacune d'entre elles ont le même ordonnancement dans la séquence, les unes par rapport aux autres, que celui qu'elles ont dans l'arbre des aires, en suivant un ordre de cheminement préordonné de l'arbre des aires.
Le contenu d'un objet de mise en forme est décrit en utilisant la syntaxe de modèle de contenu de XML. Dans certains cas, des contraintes supplémentaires, non exprimables selon les modèles de contenu de XML, sont signalées en explication.
Le paramètre d'entité « %block; », dans les modèles de contenu ci-dessous, comprend les objets de mise en forme suivants :
block
block-container
table-and-caption
table
list-block
Le paramètre d'entité « %inline; », dans les modèles de contenu ci-dessous, comprend les objets de mise en forme suivants :
bidi-override
character
external-graphic
instream-foreign-object
inline
inline-container
leader
page-number
page-number-citation
basic-link
multi-toggle
Les objets de mise en forme suivants sont des conteneurs « neutres », on peut les utiliser pourvu que les contraintes supplémentaires mentionnées pour chaque objet de mise en forme soient satifaites, partout où un contenu #PCDATA, %block; ou %inline; est permis :
multi-switch
multi-properties
wrapper
retrieve-marker
On peut utiliser l'objet de mise en forme « hors-ligne » suivant partout où un contenu #PCDATA, %block; ou %inline; est permis (sauf comme descendant d'un éventuel objet de mise en forme « hors-ligne ») :
float
On peut utiliser l'objet de mise en forme « hors-ligne » suivant partout où un contenu #PCDATA ou %inline; est permis (sauf comme descendant d'un éventuel objet de mise en forme « hors-ligne ») :
footnote
L'objet fo:basic-link s'utilise pour représenter la ressource de départ d'un lien simple ;
L'objet de mise en forme en-ligne fo:bidi-override s'utilise là où il est nécessaire de surclasser la direction par défaut de l'algorithme bi-directionnel Unicode pour des écritures en-ligne différentes (ou imbriquées) dans les documents de langues mixtes ;
L'objet de mise en forme fo:block s'emploie couramment pour la mise en forme des paragraphes, des titres, des premières pages, des légendes de schéma ou de table, etc. ;
L'objet de flux fo:block-container s'utilise pour la génération d'une aire de référence de type bloc ;
L'objet de flux fo:character représente un caractère, qui est relié à un glyphe pour sa représentation ;
Employé pour la déclaration d'un profil de couleur dans une feuille de style ;
L'objet fo:conditional-page-master-reference s'emploie pour identifier un maître de page, qui devra être utilisé quand les conditions pour son emploi seront satisfaites ;
Utilisé pour le regroupement global de déclarations dans une feuille de style ;
L'objet de flux fo:external-graphic s'utilise pour un fichier graphique quand les données graphiques sont localisées en dehors de l'arbre résultant dans l'espace de nommage fo ;
L'objet fo:float a deux usages. On peut l'utiliser quand, lors de la disposition normale du contenu, un éventuel contenu en relation est mis en forme dans une aire séparée, au commencement d'une page (ou des pages suivantes), où celui-ci est disponible pour une lecture sans gêne immédiate auprès du lecteur. Sinon, on peut l'utiliser quand on souhaite faire flotter une aire vers un côté, le contenu normal s'écoulant le long de ses flancs ;
Le contenu de l'objet de mise en forme fo:flow est une séquence d'objets de flux qui fournit le contenu du texte d'écoulement qui est distribué dans des pages ;
L'objet fo:footnote s'utilise pour la production de l'appel d'une note de pied de page et la note de pied de page correspondante ;
L'objet fo:footnote-body s'utilise pour la génération du contenu de la note de pied de page ;
L'objet fo:initial-property-set spécifie les propriétés de formatage pour la première ligne d'un objet fo:block ;
L'objet de mise en forme fo:inline s'utilise couramment pour le formatage d'un morceau de texte avec un arrière-plan ou la ceinture de celui-ci avec une bordure ;
L'objet de flux fo:inline-container s'utilise pour la génération d'une aire de référence en-ligne ;
L'objet de flux fo:instream-foreign-object s'utilise pour un graphique en-ligne ou un autre objet « générique », les données de ceux-ci résidant en tant que descendants de fo:instream-foreign-object ;
L'objet fo:layout-master-set est un emballage autour de tous les maîtres utilisés dans le document ;
L'objet de mise en forme fo:leader s'utilise pour la génération de lignes de conduite, consistant soit en une règle, soit en une rangée formée de la répétition de caractères ou de la répétition périodique d'un motif de caractères, pouvant relier deux objets textuels ;
L'objet de flux fo:list-block s'utilise pour le format d'une liste ;
L'objet de mise en forme fo:list-item comprend le label et le corps d'un item de liste ;
L'objet de mise en forme fo:list-item-body comprend le contenu du corps d'un item de liste ;
L'objet de mise en forme fo:list-item-label comprend le contenu du label d'un item de liste ; celui-ci est typiquement employé pour l'énumération, l'identification ou l'ornement du corps d'un item de liste ;
L'objet fo:marker, employé en conjonction avec fo:retrieve-marker, pour produire des en-têtes ou des pieds de page courants ;
L'objet fo:multi-case s'utilise pour contenir (dans un objet fo:multi-switch) chacun des sous-arbres alternatifs d'objets de mise en forme, parmi lesquels l'objet parent fo:multi-switch choisira d'en montrer un et cachera les autres ;
L'objet fo:multi-properties s'utilise pour basculer entre deux ou plus jeux de propriétés associés à une partie du contenu ;
L'objet fo:multi-property-set s'utilise pour la spécification d'un jeu alternatif de propriétés de mise en forme qui sera appliqué au contenu, en fonction de l'état de l'agent utilisateur ;
L'objet fo:multi-switch enveloppe la spécifation de sous-arbres d'objets de mise en forme alternatifs (chaque sous-arbre se tenant dans un objet fo:multi-case) et gère le basculement (activé par l'objet fo:mult-toggle) d'une alternative à l'autre ;
L'objet fo:multi-toggle s'utilise dans un objet fo:multi-case pour une bascule vers un de ses autres membres ;
L'objet de mise en forme fo:page-number s'utilise pour la représentation du numéro de page courant ;
L'objet fo:page-number-citation s'utilise pour le référencement du numéro de page contenant la première aire normale retournée par l'objet de mise en forme qui est désigné ;
L'objet de mise en forme fo:page-sequence s'utilise pour spécifier la manière de créer une (sous-)séquence de pages dans un document, par exemple, le chapitre d'un rapport. Le contenu de ces pages provient des enfants de flux de l'objet fo:page-sequence ;
L'objet fo:page-sequence-master spécifie les maîtres de équences de pages qui sont utilisés au moment de la génération d'une séquence de pages ;
Cette région définit une zone de visualisation située sur le côté « après » d'une région fo:region-body ;
Cette région définit une zone de visualisation située sur le côté « avant » d'une région fo:region-body ;
Cette région définit une paire zone de visualisation/référence située au « centre » d'une région fo:simple-page-master ;
Cette région définit une zone de visualisation située sur le côté « fin » d'une région fo:region-body ;
Cette région définit une zone de visualisation située sur le côté « début » d'une région fo:region-body ;
Un objet fo:repeatable-page-master-alternatives spécifie une sous-séquence qui consiste des instances répétées d'un jeu de maîtres de page alternatifs. Le nombre de ces répétitions peut être dépendant ou éventuellement non dépendant ;
Un objet fo:repeatable-page-master-reference spécifie une sous-séquence qui consiste des instances répétées d'un seul maître de page. Le nombre de ces répétitions peut être dépendant ou éventuellement non dépendant ;
L'objet fo:retrieve-marker s'utilise en conjonction avec l'objet fo:marker pour la production d'en-têtes ou de pieds de page courants ;
Le nœud fo:root est à la tête d'un arbre résultant XSL. Cet arbre se compose d'objets de mise en forme ;
L'objet fo:simple-page-master, utilisé dans la génération des pages, spécifie la géométrie de la page. La page peut être subdivisée jusqu'en cinq régions ;
Un objet fo:single-page-master-reference spécifie une sous-séquence qui consiste en une seule instance d'un seul maître de page ;
L'objet de mise en forme fo:static-content contient une séquence ou un arbre d'objets de mise en forme qui doivent être présentés dans une seule région ou répétés dans des régions de même nom sur une ou plusieurs pages de la séquence de page. Un usage commun en est la répétition d'en-têtes et de pieds de page courants ;
L'objet de flux fo:table s'utilise pour la mise en forme du matériel tabulaire d'une table ;
L'objet de flux fo:table-and-caption s'utilise pour la mise en forme d'une table accompagnée d'une légende ;
L'objet de mise en forme fo:table-body s'utilise pour recevoir le contenu du corps d'une table ;
L'objet de mise en forme fo:table-caption est utilisé pour recevoir des objets de mise en forme de type bloc qui contiennent la légende d'une table, seulement quand on utilise l'objet fo:table-and-caption ;
L'objet de mise en forme fo:table-cell s'utilise pour le regroupement du contenu devant être placé dans une cellule de table ;
L'objet de mise en forme fo:table-column spécifie les caractéristiques qui s'appliquent aux cellules de table ayant la même colonne et la même étendue ;
L'objet de mise en forme fo:table-footer est utilisé pour recevoir le contenu du pied d'une table ;
L'objet de mise en forme fo:table-header est utilisé pour recevoir le contenu de l'en-tête d'une table ;
L'objet de mise en forme fo:table-row s'utilise pour le regroupement de cellules de table en rangées ;
L'objet de mise en forme fo:title est utilisé pour l'association d'un titre avec une séquence de pages donnée. Ce titre peut être utilisé par un agent utilisateur interactif pour l'identification des pages. Par exemple, le contenu de fo:title peut être formaté et affiché dans un « titre » de fenêtre ou dans une « infobulle » ;
L'objet de mise en forme fo:wrapper s'utilise pour la spécification des propriétés héritées pour un groupe d'objets de mise en forme. Celui-ci n'a pas de sémantique de mise en forme supplémentaire.
Le nœud racine de l'arbre des objets de mise en forme est obligatoirement un objet de mise en forme fo:root. Les enfants de celui-ci sont un seul objet fo:layout-master-set, un éventuel objet fo:declarations et une séquence composée d'un ou plusieurs objets fo:page-sequences. L'objet fo:master-layout-set définit la géométrie et la distribution des pages ; les enfants des objets fo:page-sequences, appelés des flux (contenus dans des objets fo:flow et fo:static-content), fournissent le contenu qui est distribué dans les pages. L'objet fo:declarations forme une enveloppe pour ceux des objets de mise en forme dont le contenu doit être utilisé comme ressource pour le processus de mise en forme. Le processus de génération des pages est effectué automatiquement par le processeur XSL mettant en forme l'arbre résultant.
Les enfants de l'objet fo:layout-master-set constituent les spécifications pour la pagination et la disposition. Les noms de ces spécifications se terminent par « -master ». Il y a deux sortes de spécifications de pagination et de disposition : les maîtres de page et les maîtres de séquence de pages. Les maîtres de page sont chargés de décrire les subdivisions souhaitées pour une page et la géométrie de ces subdivisions. Les maîtres de séquence de pages sont chargés de décrire la séquence des maîtres qui seront utilisés pour la génération des pages lors du formatage d'un objet fo:page-sequence.
Chaque objet fo:page-sequence-master caractérise un jeu possible de séquences de maîtres de page. Pour un objet fo:page-sequence donné, une seule parmi le jeu de séquences possibles sera utilisée. Celle-ci doit satisfaire aux contraintes déterminées par les maîtres de page individuels, les flux qui produisent les pages à partir des maîtres de page et l'objet fo:page-sequence-master lui-même.
L'objet fo:page-sequence-master s'emploie pour déterminer lesquels des maîtres de page utiliser et l'ordre de leur utilisation. Les enfants d'un objet fo:page-sequence-master forment une séquence des spécifications d'une sous-séquence. Les maîtres de page d'une sous-séquence peuvent être spécifiés en référence à un seul maître de page ou comme une répétition d'un ou plusieurs maîtres de page. Par exemple, une séquence peut commencer avec plusieurs maîtres de page explicites et continuer par une répétition d'un autre maître de page (ou d'autres maîctres).
L'objet fo:single-page-master-reference s'emploie pour spécifier une sous-séquence consistant en un seul maître de page.
On peut spécifier une sous-séquence, qui est une répétition, de deux façons. L'objet fo:repeatable-page-master-reference spécifie la répétition d'un seul maître de page. L'emploi d'un maître de page, parmi les maîtres de page alternatifs, à un endroit donné d'une sous-séquence, est conditionnel et peut dépendre de la page, si le numéro de celle-ci est pair ou impair, si c'est la première page, ou la dernière, ou si celle-ci est vide. La propriété 'maximum-repeats' sur la spécification de la répétition en contrôle le nombre. Si cette propriéé n'est pas spécifiée, il n'y a aucune limite sur le nombre des répétitions.
Un maître de page est le maître utilisé pour la génération d'une page. Une page forme une paire zone de visualisation/référence dans laquelle l'aire de zone de visualisation est un enfant de la racine de l'arbre des aires. On définit une aire de zone de visualisation de page comme étant l'aire de la zone de visualisation d'une page et une aire de page comme étant l'enfant unique d'une aire de zone de visualisation de page.
L'aire de zone de visualisation de page est définie par le média de sortie ; l'aire de page comprend les contenus de la page, celle-ci est responsable du positionnement de ces contenus sur le média de sortie.
Un seul maître de page peut être utilisé à plusieurs reprises. À chaque utilisation de celui-ci, une seule page est générée ; par exemple, un maître de page, référencé par un objet fo:repeatable-page-master-reference, sera utilisé par l'objet fo:page-sequence pour la génération d'une page, pour chaque occurence de la référence dans la sous-séquence spécifiée.
Remarque :
Quand on emploie des pages avec un agent utilisateur comme un navigateur web, chaque document n'est généralement représenté que par une page. La zone de visualisation utilisée pour voir la page détermine la taille de celle-ci. Quand les pages sont transcrites sur des médias qui ne sont pas interactifs, comme des feuilles de papier, les pages correspondent alors a une, ou plus, des surfaces du papier. La taille du papier détermine la taille de la page.
Dans cette spécification, il n'existe qu'une sorte de maître de page, l'objet fo:simple-page-master. Des spécifications ultérieures pourront en apporter d'autres sortes.
Un objet fo:simple-page-master contient, comme ses enfants, les spécifications pour une ou plusieurs régions.
La spécification d'une région est utilisée en tant que maître, le maître de région, pour la génération d'une paire zone de visualisation/référence qui consiste en une aire de zone de visualisation de région et une aire de référence de région. L'aire de zone de visualisation de région est toujours un enfant d'une aire de page générée avec le parent du maître de région.
Remarque :
Les régions sur la page sont analogues aux « cadres » d'un document HTML. Typiquement, au moins une de ces régions est d'une longueur indéfinie dans l'une de ses dimensions. Pour les langues avec un mode d'écriture de « gauche-à-droite - haut-en-bas » (ou de « droite-à-gauche - haut-en-bas »), cette région est typiquement d'une longueur indéfinie dans le sens de bas-en-haut. La zone de visualisation représente la partie visible de ce cadre. Le flux dirigé vers la région est vu en faisant défiler l'aire de référence de la région au travers de la zone de visualisation.
Chaque région est définie par un objet de mise en forme de région. Chacun d'eux a un nom et une position définie. De plus, la hauteur, ou la largeur, d'une région est fixe, l'autre dimension pouvant être soit fixe soit indéfinie. Par exemple, une région qui est le corps d'une page web peut avoir une hauteur indéfinie.
La spécification de la région détermine la taille et la position des aires de zone de visualisation de région qui sont générées avec l'objet de mise en forme de région. Le positionnement d'une aire de zone de visualisation se fait en fonction de son aire de page parent.
Pour cette Recommandation version 1.0, un maître de page comprend jusqu'à cinq régions, la « région du corps » et quatre autres régions, chacune étant située sur un côté de la région du corps. Pour une correspondance de ces régions limitrophes avec le mode d'écriture courant, on les nomme « région d'avant » (celle-ci correspond à une « en-tête » pour la valeur "lr-tb" de la propriété 'writing-mode'), « région d'après » (correspondant à un « pied de page » pour la valeur "lr-tb" de 'writing-mode'), « région de début » (correspondant à un « bandeau latéral gauche » pour la valeur "lr-tb" de 'writing-mode') et « région de fin » (correspondant à un « bandeau latéral droit » pour la valeur "lr-tb" de 'writing-mode'). Il est prévu qu'une version ultérieure de la Recommandation introduise un mécanisme permettant à un maître de page de contenir un nombre arbitraire de régions, leur taille et leur position étant arbitraires également.
On associe des sous-régions conditionnelles à certains types de région, les aires de référence de région, associées à ces régions, sont divisées pour faire correspondre leurs aires enfants avec les sous-régions, y compris une « aire de référence principale » pour la région en question. Pour les maîtres de région sur lesquels s'applique la propriété 'column-count', l'aire de référence principale est encore subdivisée en aires enfants, désignées comme « aires de référence d'étendue », dont le nombre est lié à celui des étendues (c'est-à-dire les aires de bloc avec span = "all") qui surviennent dans la page. Celles-ci, à leur tour, sont subdivisées en aires enfants, désignées comme « aires de référence de flux normal », dont le nombre dépend du nombre de colonnes spécifié.
Les pages sont générées lors du traitement de l'objet fo:page-sequences par le formateur. Comme indiqué au-dessus, chaque page consiste en une paire zone de visualisation/référence dans laquelle l'aire de zone de visualisation est un enfant de la racine de l'arbre des aires. Chaque page est générée en utilisant un maître de page pour la définition des aires de zone de visualisation de région et des aires de référence de région qui correspondent aux régions spécifiées par celui-ci.
Chaque objet fo:page-sequence se réfère soit à un objet fo:page-sequence-master soit à un maître de page. Si c'est une référence à un maître de page, ceci est interprété comme une référence à un objet fo:page-sequence-master qui répète le maître de page en question un nombre indéterminé de fois. Un objet fo:page-sequence se réfère à un maître de page soit quand fo:page sequence se rapporte directement au maître de page via la propriété 'master-reference', soit quand cette propriété indique un objet fo:page-sequence-master qui lui-même se rapporte au maître de page.
Il existe deux sortes de flux : ceux de fo:static-content et ceux de fo:flow. Un flux fo:static-content comprend un contenu, tel que le texte qui va dans des en-têtes et des pieds de page, qui se répète sur plusieurs des pages. Le flux fo:flow comprend un contenu qui est distribué sur une séquence de pages. Le traitement du flux fo:flow détermine le nombre des pages qui sont générées pour contenir fo:page-sequence. On utilise l'objet fo:page-sequence-master comme le générateur de la séquence de maîtres de page dans laquelle le contenu des enfants du flux est distribué.
Les enfants du flux forment une séquence d'objets de flux de type bloc. Chaque flux est nommé par sa propriété 'flow-name'. Deux flux ne peuvent pas avoir le même nom.
L'assignation des flux aux régions d'un maître de page est déterminée par un plan de flux. Le plan de flux représente une association entre les enfants de flux de l'objet fo:page-sequence et les régions définies par les maîtres de page désignés par cet objet fo:page-sequence.
Pour cette Recommandation version 1.0, le plan de flux est implicite. La propriété 'flow-name' d'un flux spécifie à quelle région ce flux est assigné. Le plan de flux implicite assigne un flux à la région ayant le même nom. Dans les versions ultérieures de XSL, il est prévu que le plan de flux devienne un objet de mise en forme explicite.
Pour éviter aux utilisateurs d'avoir à produire des noms de région, toutes les régions ont une valeur par défaut pour leur propriété 'region-name'. La région du corps, la région d'avant, la région d'après, la région de début et la région de fin ont respectivement les noms par défaut « xsl-region-body », « xsl-region-before », « xsl-region-after », « xsl-region-start » et « xsl-region-end ».
De plus, un objet de mise en forme fo:static-content peut avoir, pour sa propriété 'flow-name', les valeurs "xsl-before-float-separator" ou "xsl-footnote-separator". Si on utilise une sous-région conditionnelle, de la région du corps, pour la génération d'une aire de référence dans une page donnée, l'objet fo:static-content, dont le nom correspond à la sous-région conditionnelle, sera mis en forme dans l'aire de référence associée à la sous-région, comme spécifié au chapitre [6.10.1.3 Les sous-régions conditionnelles].
Les aires descendantes d'une aire de page sont contraintes par le maître de page utilisé pour la
génération de cette aire de page et par les flux assignés aux régions que
spécifie le maître de page. Pour un flux fo:flow, les aires générées par
les descendants du flux sont distribuées sur les pages, selon la séquence de leur
génération par les maîtres de page en charge de la région à laquelle le
flux est assigné. Pour un flux fo:static-content, le traitement du flux se répète pour
chacune des pages générées par le maître de page en charge de la région
à laquelle le flux est assigné, avec deux exceptions : pour un objet fo:static-content, avec
un nom de flux de xsl-before-float-separator, le traitement se répète
seulement pour celles des aires de référence de page ayant des aires descendantes de la classe
d'aire xsl-before-float et pour un objet fo:static-content, avec un nom de flux de
xsl-footnote-separator, le traitement se répète seulement pour celles des aires
de référence de page ayant des aires descendantes de la classe d'aire xsl-footnote.
La structure de l'arbre résultant est illustrée ci-dessous.
Une représentation de l'arborescence des objets de mise en forme pour la pagination
Usage commun :
C'est le nœud de tête de l'arbre des objets de mise en forme. Celui-ci comprend un objet de mise en forme fo:layout-master-set (qui comprend tous les maîtres utilisés dans le document), un objet fo:declarations optionnel et un ou plusieurs objets fo:page-sequence. Chaque objet fo:page-sequence représente une séquence de pages qui résultent de la mise en forme des contenus enfants de fo:page-sequence.
Remarque :
Un document peut contenir plusieurs objets fo:page-sequence. Par exemple, chacun des chapitres d'un document pourrait être un objet fo:page-sequence distinct ; ceci permettrait le placement du contenu d'un chapitre particulier, tel que le titre d'un chapitre, dans une en-tête ou un pied de page.
Aires :
Les aires de zone de visualisation de page sont retournées par les objets fo:page-sequence enfants de l'objet de mise en forme fo:root. L'objet fo:root ne génère aucune aire.
Contraintes :
Les enfants de la racine de l'arbre des aires consistent seulement, et en entier, des aires de zone de visualisation de page retournées par les objets fo:page-sequence enfants de fo:root. Le jeu de toutes les aires retournées par les objets fo:page-sequence enfants est correctement ordonné (voir le chapitre [4.7.1 Les contraintes d'ordonnancement générales]).
Contenus :
(layout-master-set,declarations?,page-sequence+)
Les propriétés suivantes s'appliquent à cet objet de mise en forme :
Usage commun :
L'objet de mise en forme fo:declarations s'emploie pour le regroupement des déclarations globales d'une feuille de style.
Aires :
L'objet de mise en forme fo:declarations ne génère ni ne retourne aucune aire.
Contraintes :
Aucune.
Contenus :
(color-profile)+
L'objet de flux fo:declarations peut avoir des éléments enfants supplémentaires dans un espace de nommage non XSL. Leur présence ne modifie cependant pas la sémantique des objets et des propriétés de l'espace de nommage XSL. La structure permise pour ces éléments d'un espace de nommage non XSL est définie pour leur(s) espace(s) de nommage.
Usage commun :
L'objet de mise en forme fo:color-profile s'emploie pour la déclaration d'un profil de couleur ICC d'une une feuille de style. Le profil de couleur est référencé à nouveau via le nom spécifié dans la propriété 'color-profile'.
Le profil de couleur est identifié par l'URI spécifié par la valeur de la propriété 'src'. Cet URI peut identifier un profil de couleur reconnu en interne ou peut pointer vers un codage de profil de couleur ICC devant être chargé et interprété.
Quand le profil de couleur est référencé (par exemple, via la fonction rgb-icc() [5.10.2 Les fonctions de couleur]), on utilise les règles suivantes :
Si le profil de couleur est disponible, c'est la valeur de couleur identifiée à partir de celui-ci qui devrait être retenue ;
Si le profil de couleur est indisponible, on doit utiliser sRGB ([sRGB]) en solution de repli.
Aires :
L'objet de mise en forme fo:color-profile ne génère ni ne retourne aucune aire.
Contraintes :
Aucune.
Contenus :
VIDE
Les propriétés suivantes s'appliquent à cet objet de mise en forme :
Usage commun :
L'objet de mise en forme fo:page-sequence s'emploie pour spécifier la manière de créer une (sous-)séquence de pages dans un document ; par exemple, le chapitre d'un rapport. Le contenu de ces pages provient des enfants de flux (qui consistent du seul objet de flux fo:flow et d'éventuels objets de flux fo:static-content) de l'objet fo:page-sequence. La disposition de ces pages provient de l'objet fo:page-sequence-master ou du maître de page référencé par le trait master-reference de l'objet fo:page-sequence. La séquence des aires retournées par chacun des objets de flux enfants de l'objet fo:page-sequence est faite descendante des pages générées comme décrit ci-dessous.
Aires :
L'objet de mise en forme fo:page-sequence génère une séquence de paires zone de visualisation/référence et retourne les aires de zone de visualisation de page. Pour chaque aire de référence de page et chaque région spécifiée dans le maître de page employé pour générer cette aire de référence de page, l'objet fo:page-sequence génère également la paire zone de visualisation/référence, pour la survenue de cette région dans cette aire de référence de page, et celui-ci peut générer une aire de référence avant-flottant, une aire de référence de note de pied de page et une aire de référence principale, ainsi qu'une ou plusieurs aires de référence de séquence normales. La génération de ces aires additionnelles est décrite dans les descriptions de l'objet fo:simple-page-master et des maîtres de région. Cet objet peut aussi générer une aire de titre.
Toutes les aires générées par un objet fo:page-sequence ont la classe d'aire
xsl-absolute.
Contraintes :
Chaque paire aire de zone de visualisation de page/aire de référence de page est générée en utilisant un maître de page qui satisfait aux contraintes du maître de séquence de page identifié par le trait master-reference de l'objet fo:page-sequence ou du maître de page identifié directement par ce trait. Les aires de zone de visualisation de région enfants d'une telle aire de référence de page doit correspondre aux régions enfants de ce maître de page.
Les aires générées par l'objet fo:page-sequence ont pour descendants les aires retournées par les flux enfants de l'objet fo:page-sequence.
Les aires retournées à l'objet fo:page-sequence par un flux doivent satisfaire quatre sortes de contraintes :
L'accomplissement. Toutes les aires retournées par les objets de mise en forme descendants des enfants de flux de l'objet fo:page-sequence deviennent les descendants des aires générées par fo:page-sequence, à l'exception des aires de glyphe à supprimer ou à substituer, comme indiqué aux chapitres [4.7.2 La construction des lignes] et [4.7.3 La construction en-ligne] ;
L'association avec le plan de flux. Toutes les aires retournées par les enfants de flux de
l'objet fo:page-sequence deviennent les descendants des aires de référence de région
générées à partir des aires de colonne associées à ce flux selon le
plan de flux en vigueur, à l'exception des aires retournées à partir d'un objet
fo:static-content avec un nom de flux de xsl-before-float-separator ou de
xsl-footnote-separator.
Les aires, retournées à partir d'un objet fo:static-content avec un nom de flux de
xsl-before-float-separator, deviennent les enfants de l'aire de référence avant
flottant, d'une aire associée à un objet fo:region-body, qui suit toutes les aires de même
parenté de la classe d'aire xsl-before-float. Les aires, retournées à partir
d'un objet fo:static-content avec un nom de flux de xsl-footnote-separator, deviennent les
enfants de l'aire de référence de note de pied de page, d'une aire associée à un objet
fo:region-body, qui précède toutes les aires de même parenté de classe d'aire
xsl-footnote ;
L'association avec la classe d'aire. Les aires, retournées par les enfants de flux d'un objet
fo:page-sequence, sont distribuées telles que : toutes les aires de classe d'aire
xsl-footnote doivent être les descendants d'une aire de référence de note
de pied de page ; les aires de classe xsl-before-float doivent être les descendants d'une
aire de référence avant-flottant ; toutes les autres aires (y compris les aires normales) doivent
être les descendants d'une aire de référence principale pour une région.
L'empilement. Les aires empilables d'une classe donnée, retournées par des enfants de chaque flux, sont correctement empilées dans l'aire de référence appropriée, comme décrit plus haut.
Si une aire de titre est générée, les contraintes suivantes doivent être satisfaites :
L'accomplissement. Toutes les aires retournées par les objets de mise en forme descendants de l'objet fo:title, enfant de l'objet fo:page-sequence, deviennent les descendants de l'aire de titre générée par l'objet fo:page-sequence, à l'exception des aires de glyphe à supprimer ou à substituer, comme indiqué aux chapitres [4.7.2 La construction des lignes] et [4.7.3 La construction en-ligne] ;
L'empilement. Les aires retournées par des enfants de l'objet fo:title sont correctement empilées dans l'aire de titre.
La contrainte d'ordonnancement par défaut, décrite au chapitre [4.7.1 Les contraintes d'ordonnancement générales], ne s'applique pas à l'objet fo:page-sequence. Celle-ci s'applique aux enfants de l'objet de flux dans le seul objet fo:flow ; des contraintes d'ordonnancement spéciales s'appliquent aux objets de l'enfant fo:static-content.
Contenus :
(title?,static-content*,flow)
Les propriétés suivante s'appliquent à cet objet de mise en forme :
Usage commun :
L'objet fo:layout-master-set est une enveloppe pour tous les maîtres utilisés dans le document. Ceci inclut les maîtres de séquence de page, les maîtres de page et les maîtres de région.
Aires :
L'objet de mise en forme fo:layout-master-set ne génère pas directement d'aire. Les maîtres, qui sont les enfants de l'objet fo:layout-master-set, sont utlilisés par l'objet fo:page-sequence pour la génération de pages.
Contraintes :
La valeur du trait master-name sur chaque enfant de l'objet fo:layout-master-set doit être unique dans le jeu.
Contenus :
(simple-page-master|page-sequence-master)+
Usage commun :
L'objet fo:page-sequence-master s'emploie pour spécifier les contraintes qui sont exercées sur un jeu de maîtres de page donnée et l'ordre de leur utilisation pour la génération d'une séquence de pages. Les pages sont automatiquement générées, quand on utilise l'objet fo:page-sequence-master dans la mise en forme d'un objet fo:page-sequence.
Remarque :
Il y a plusieurs façons de spécifier une séquence de pages potentielle. On peut spécifier une séquence de références à des maîtres de page particuliers. Ceci produit une séquence limité de pages potentielles. On peut aussi spécifier une sous-séquence d'un ou plusieurs maîtres de page qui se répète. Cette sous-séquence peut être limitée et, le cas échéant, non limitée. Finalement, on peut entremêler ces deux sortes de spécifiants de sous-séquence.
Aires :
L'objet de mise en forme fo:page-sequence-master ne génère pas directement d'aire. Celui-ci est utilisé par l'objet de mise en forme fo:page-sequence pour la génération de pages.
Contraintes :
Les enfants de l'objet fo:page-sequence-master forme une séquence de spécifiants de sous-séquence. Une séquence de page satisfait à la contrainte déterminée par un objet fo:page-sequence-master si (a) celle-ci peut se partitionner en une séquence de sous-séquences de pages qui correspondent, une à une, à une sous-séquence initiale de la séquence de spécifiants de sous-séquence qui sont les enfants de l'objet fo:page-sequence-master, et (b) pour chaque sous-séquence de pages de la partition, celle-ci satisfait aux contraintes du spécifiant de sous-séquence qui lui correspond. La séquence de sous-séquences de pages peut être plus courte que celle des spécifiants de sous-séquence.
C'est une erreur si la séquence entière des spécifiants de sous-séquence enfants est épuisée, alors que des aires retournées par un objet fo:flow n'ont pas été placées. Les mises en œuvre peuvent récupérer, si possible, en réutilisant le dernier spécifiant de sous-séquence utilisé pour générer une page.
Contenus :
(single-page-master-reference|repeatable-page-master-reference|repeatable-page-master-alternatives)+
Les propriétés suivante s'appliquent à cet objet de mise en forme :
Usage commun :
Un objet fo:single-page-master-reference représente le spécifiant de sous-séquence le plus simple. Celui-ci spécifie une sous-séquence qui consiste en une seule instance d'un seul maître de page. On l'emploie pour spécifier l'emploi d'un maître de page particulier à un endroit donné de la séquence de pages qui auraient été générées avec un objet fo:page-sequence-master parent de cet objet fo:single-page-master-reference.
Aires :
L'objet de mise en forme fo:single-page-master-reference ne génère pas directement d'aire. Celui-ci est utilisé par l'objet de mise en forme fo:page-sequence pour générer des pages.
Contraintes :
L'objet fo:single-page-master-reference tient une référence vers l'objet fo:simple-page-master portant le même nom de maître que celui indiqué par son trait master-reference.
La sous-séquence de pages reliée à ce spécifiant de sous-séquence satisfait aux contraintes de celui-ci, si (a) la sous-séquence de pages consiste en une seule page et (b) cette page est contrainte d'avoir été générée par l'objet fo:simple-page-master désigné par l'objet fo:single-page-master-reference.
Contenus :
VIDE
Les propriétés suivante s'appliquent à cet objet de mise en forme :
Usage commun :
Un objet fo:repeatable-page-master-reference représente le spécifiant de sous-séquence le plus simple suivant. Celui-ci spécifie une sous-séquence qui consiste en instances répétées d'un seul maître de page. Le nombre des répétitions peut être limité et, le cas échéant, non limité.
Aires :
L'objet de mise en forme fo:repeatable-page-master-reference ne génère pas directement d'aire. Celui-ci est utilisé par l'objet de mise en forme fo:page-sequence pour générer des pages.
Contraintes :
L'objet fo:repeatable-page-master-reference tient une référence vers l'objet fo:simple-page-master portant le même nom de maître que celui indiqué par son trait master-reference.
La sous-séquence des pages qui correspond à ce spécifiant de sous-séquence satisfait aux contraintes de celui-ci, si (a) la sous-séquence des pages consiste en zéro page, ou plus, si (b) chaque page est générée avec l'objet fo:simple-page-master référencé par l'objet fo:repeatable-page-master-reference, et si (c) la longueur de la sous-séquence est inférieure ou égale à la valeur du trait maximum-repeats.
Si aucun maître de région enfant de l'objet fo:repeatable-page-master n'a de nom de région associé avec un flux dans un objet fo:page-sequence, alors la sous-séquence est contrainte d'avoir une longueur de zéro.
Contenus :
VIDE
Les propriétés suivante s'appliquent à cet objet de mise en forme :
Usage commun :
L'objet de mise en forme fo:repeatable-page-master-alternatives est le spécifiant de sous-séquence le plus complexe. Celui-ci spécifie une sous-séquence consistant en instances répétées d'un jeu de maîtres de page alternatifs. Le nombre des répétitions peut être limité et, le cas échéant, non limité. Lequel des maîtres de page alternatifs utiliser en tout point de la séquence dépend de l'évaluation d'une condition sur l'emploi de celui-ci. Parmi les conditions typiques, tester si la page générée alternativement est la première ou la dernière d'une séquence de pages, si la page est vide. Le jeu complet des conditions permet l'utilisation de maîtres de page différents pour la première page, pour les pages paires ou impaires, pour des pages vides.
Remarque :
Comme les conditions sont évaluées dans l'ordre à partir du début de la séquence des enfants, la condition sur la dernière alternative dans la séquence est généralement toujours vraie, cette alternative se rapporte au maître de page qui est utilisé pour toutes les pages ne recevant pas une disposition particulière.
Aires :
L'objet de mise en forme fo:repeatable-page-master-alternatives ne génère pas directement d'aire. Celui-ci est utilisé par l'objet de mise en forme fo:page-sequence pour générer des pages.
Contraintes :
Les enfants de l'objet fo:repeatable-page-master-alternatives sont des objets fo:conditional-page-master-references. On qualifiera ces enfants d'alternatives.
La sous-séquence des pages qui correspond à ce spécifiant de sous-séquence
satisfait aux contraintes de celui-ci, si (a) la sous-séquence des pages consiste en zéro
page, ou plus, (b) chaque page est générée avec l'objet fo:simple-page-master
désigné par l'une des alternatives, l'un des enfants de l'objet
fo:repeatable-page-master-alternatives, (c) les conditions de cette alternative étant
true, (d) cette alternative est la première dans la séquence
des enfants, les conditions pour cette alternative étant true et (e) la longueur
de la sous-séquence est inférieure ou égale à la valeur de
maximum-repeats.
Contenus :
(conditional-page-master-reference+)
Les propriétés suivante s'appliquent à cet objet de mise en forme :
Usage commun :
L'objet fo:conditional-page-master-reference s'emploie pour identifier un maître de page qui doit être utilisé quand les conditions pour son emploi sont satisfaites. Ceci permet l'emploi de différents maîtres de page, par exemple, pour des pages paires ou impaires, pour la première page d'une sous-séquence ou pour des pages vides. C'est un emploi typique pour les chapitres d'un livre, ou d'un rapport, où la mise en page pour la première page est différente de celle du reste du chapitre, les en-têtes et les pieds de page pour les pages paires et impaires pouvant également différer.
Aires :
L'objet de mise en forme fo:conditional-page-master-reference ne génère pas directement d'aire. Celui-ci est utilisé par l'objet de mise en forme fo:page-sequence pour générer des pages.
Contraintes :
L'objet fo:conditional-page-master-reference tient une référence vers l'objet fo:simple-page-master de même nom de maître que celui indiqué par son trait master-reference.
Il y a trois traits, page-position, odd-or-even et blank-or-not-blank, qui
spécifient les sous-conditions de l'emploi du maître page référencé.
Toutes les trois sous-conditions doivent avoir la valeur true pour que la condition
sur l'objet fo:conditional-page-master-reference soit true. Comme les
propriétés, à partir de lesquelles ces traits sont dérivées, ne sont
pas héritées et que la valeur initiale de chacune d'elles détermine une valeur
true pour leur sous-condition correspondante, ceci signifie réellement que le
sous-ensemble des traits, dérivés de propriétés dont les valeurs sont
spécifiées, doit rendre les sous-conditions correspondantes true.
La sous-condition correspondant au trait page-position est true, si la page,
générée avec l'objet fo:conditional-page-master-reference, a la position
spécifiée dans la séquence de pages générée par la
séquence de pages appelante ; nommément, "first", "last", "rest"
(ni "first" ni "last") ou "any" (toutes les précédentes valeurs). La
séquence de pages appelante correspond à l'objet fo:page-sequence
qui référençait l'objet fo:page-sequence-master dont l'objet
fo:conditional-page-master-reference descend.
La sous-condition correspondant au trait odd-or-even est true, si la valeur du
trait odd-or-even est "any", ou si la valeur correspond à la parité du numéro
de la page générée avec l'objet fo:conditional-page-master-reference.
La sous-condition correspondant au trait blank-or-not-blank est true, si (1) la
valeur du trait est "not-blank" et la page, générée avec l'objet
fo:conditional-page-master-reference, comprend des aires générées par l'objet
de mise en forme fo:flow ; si (2) la valeur du trait est "blank" et la page, générée
avec l'objet fo:conditional-page-master-reference, est telle qu'aucune aire de l'objet fo:flow ne soit
placée sur celle-ci (par exemple, (a) pour maintenir une parité correcte (i) du fait
d'un trait break-before ou break-after avec une valeur "even-page", ou "odd-page", ou (ii) au début,
ou à la fin, d'une séquence de page, ou (b) parce que les contraintes, exercées
sur les aires générées par des descendants de l'objet de mise en forme fo:flow, ne
seraient pas satisfaites si ceux-ci descendaient de cette page) ; ou si (3) la valeur du trait est "any".
Remarque :
Si un maître de page, désigné par un objet conditional-page-master-reference avec blank-or-not-blank = "true", fournit une région où placer le contenu d'un objet fo:flow, aucun contenu n'est placé dans cette région.
Contenus :
VIDE
Les propriétés suivante s'appliquent à cet objet de mise en forme :
Usage commun :
L'objet fo:simple-page-master est utilisé dans la génération des pages et spécifie la géométrie de la page. La page peut se subdiviser jusqu'en cinq régions, la région du corps, la région d'avant, la région d'après, la région de début et la région de fin.
Remarque :
Par exemple, si la valeur du trait writing-mode d'un objet fo:simple-page-master est "lr-tb", alors ces régions correspondent au corps du document, à son en-tête, à son pied, à son bandeau latéral gauche et à celui de droite.
Remarque :
L'objet simple-page-master est destiné aux systèmes qui souhaitent offrir une facilité d'une mise en page simple. Les versions ultérieures de cette recommandation supporteront des mises en page plus complexes construites avec l'objet de mise en forme fo:page-master.
Aires :
L'objet de mise en forme fo:simple-page-master ne génère pas directement d'aire. Celui-ci est utilisé dans la génération de pages par l'objet fo:page-sequence.
Quand l'objet fo:simple-page-master est utilisé pour générer une page, une paire zone de visualisation/référence est générée, comprenant une aire de zone de visualisation de page et une aire de référence de page. L'aire de zone de visualisation de page représente les limites physiques du média de sortie. L'aire de référence de page représente la partie de la page sur laquelle le contenu est censé apparaître, c'est-à-dire, la zone à l'intérieur des marges de la page.
De plus, quand on utilise l'objet fo:simple-page-master pour générer une page, les paires zone de visualisation/référence, qui correspondent aux régions enfants de l'objet fo:simple-page-master, sont également générées. Voir les spécifications des objets de mise en forme pour les cinq régions ([6.4.13 fo:region-body], [6.4.14 fo:region-before], [6.4.15 fo:region-after], [6.4.16 fo:region-start] et [6.4.17 fo:region-end]) pour le détail de la génération de ces aires.
Les aires de zone de visualisation de région
L'espace entre les quatre régions externes et la région fo:region-body se détermine en soustrayant la valeur du trait extent de chacune de ces régions de celle de la valeur de la propriété 'margin-x' de l'objet fo:region-body.
Dérivation du trait :
Dans la version 1.0 de cette recommandation, on n'admet pas de bordures ni d'espacement pour une aire de référence de page. Les traits restants d'une aire de référence de page sont renseignés en fonction des règles normales pour la détermination des valeurs de traits.
Contraintes :
Quand un maître de page est utilisé pour la génération d'une page, la dimension de progression de bloc et la dimension de progression en-ligne du rectangle de contenu de l'aire de zone de visualisation de page se déterminent en utilisant les valeurs calculées des propriétés 'page-height' et 'page-width'.
Les traits dérivés des propriétés de marge déterminent la taille et la position du rectangle de contenu de l'aire de zone de visualisation de page. Les traits dérivés des propriétés 'margin-top', 'margin-bottom', 'margin-left' et 'margin-right' sont utilisés pour mettre en retrait le rectangle de contenu de l'aire de référence de page par rapport au bord correspondant du rectangle de contenu de l'aire de zone de visualisation de page. Ici, le « haut », le « bas », la « gauche » et la « droite » sont déterminés par les valeurs calculées des propriétés 'page-height' et 'page-width'. Pour un média papier, ces valeurs déterminent l'orientation de la feuille ; la valeur de 'page-height' correspond à la mesure du « haut » jusqu'au « bas ». Pour un média affiché, la fenêtre d'affichage est toujours verticale ; le « haut » se confond avec le haut de l'écran d'affichage.
Remarque :
Les points de référence du rectangle de contenu de l'aire de zone de visualisation de page sont donnés en termes de « haut », « bas », « gauche » et « droite », plutôt que « bord d'avant », « bord d'après », « bord de début » et « bord de fin », car les utilisateurs perçoivent le média en fonction de son orientation et non en fonction du mode d'écriture courant.
La valeur du trait page-number, de la première page retournée par l'objet fo:page-sequence, est contrainte pour avoir une valeur égale à celle du trait initial-page-number. La valeur du trait page-number des pages consécutives l'est aussi, pour que celle-ci soit plus grande d'une unité que celle de la page immédiatement précédente.
Les traits format, letter-value, grouping-separator, grouping-size, country et language sont utilisés pour formater ce numéro en une chaîne, comme spécifié dans XSLT, chapitre 7.7.1. Ce numéro ainsi formaté est utilisé comme valeur de l'objet de flux fo:page-number.
Les contraintes qui s'appliquent aux régions :
Il y a un certain nombre de contraintes qui s'appliquent à toutes les régions spécifiées dans un objet fo:simple-page-master donné.
Si la dimension de progression de bloc de l'aire de référence de région, correctement empilée, est supérieure à celle de l'aire de zone de visualisation de région qui est son parent, alors les contraintes qui agissent sur les relations entre celles-ci dépendent de la valeur du trait overflow du maître de région et du genre de flux assigné à la région.
Si le flux assigné à la région correspondante est un objet de flux fo:static-content, alors il n'y a aucune contrainte sur la dimension de progression de bloc de l'aire de référence de région.
Quand le flux assigné à la région correspondante est un objet de mise en forme fo:flow :
si la valeur du trait media-usage est paginate, ou si la valeur du trait overflow
est visible, hidden ou error-if-overflow, alors une contrainte
s'exerce sur le trait block-progression-dimension de l'aire de référence de région
pour que la valeur de celui-ci ne soit pas supérieure à celle du trait
block-progression-dimension de l'aire de zone de visualisation de région ;
si la valeur du trait media-usage est bounded-in-one-dimension, ou unbounded,
et si la valeur du trait overflow est scroll, ou auto, alors aucune contrainte
ne s'exerce sur la dimension de progression de bloc de l'aire de référence de région.
Contenus :
(region-body,region-before?,region-after?,region-start?,region-end?)
Les propriétés suivante s'appliquent à cet objet de mise en forme :
Usage commun :
Employé pour la construction d'un maître de page simple. Cette région spécifie une paire zone de visualisation/référence située au « centre » de l'objet fo:simple-page-master. Le trait overflow contrôle l'importance de l'aire de référence de région sous-jacente qui est visible ; c'est-à-dire, quand cette aire est rognée par son aire de zone de visualisation de région parente.
Remarque :
Pour les médias paginés, typiquement, les aires, retournées par l'objet de mise en forme fo:flow d'un objet fo:page-sequence, deviennent les descendants d'une séquence d'aires de référence de région qui correspond à la région du corps. Ces aires de référence de région sont toutes les descendants d'aires de page pour lesquelles le maître de page comprenait un objet fo:region-body. Si le flux d'un objet fo:flow est assigné à une autre région, alors les aires retournées par cet objet fo:flow sont contraintes d'être les descendants des aires de référence de région générées en utilisant le maître de page assigné.
Remarque :
La région du corps devrait être dimensionnée et positionnée dans l'objet fo:simple-page-master de façon à ce qu'il reste de la place pour les aires retournées par le flux assigné à l'objet fo:region-body et pour les régions limitrophes souhaitées, c'est-à-dire celles des objets fo:region-before, fo:region-after, fo:region-start et fo:region-end qui doivent prendre place sur la même page. Ces régions limitrophes se positionnent dans le rectangle de contenu de l'aire de référence de page. Les marges de l'objet fo:region-body sont utilisées pour positionner l'aire de zone de visualisation de région de cet objet et pour garder de la place pour les autres régions qui entourent l'objet fo:region-body
L'espace entre les quatre dernières régions et celle de fo:region-body se détermine en soustrayant la valeur du trait extent concerné de ces quatre régions de celle du trait correspondant à la propriété 'margin-[X]' de fo:region-body.
On peut aussi utiliser l'objet fo:region-body pour la création de plusieurs colonnes. Quand la valeur du trait column-count est supérieure à un, alors la région du corps est subdivisée en plusieurs colonnes.
Aires :
L'objet de mise en forme fo:region-body est utilisé pour la génération d'une aire de zone de visualisation de région et d'une aire de référence de région, chaque fois qu'un objet fo:simple-page-master, ayant comme enfant un objet fo:region-body, est utilisé pour générer une page. Un mécanisme de défilement, défini par la mise en œuvre, devrait être fourni, si la valeur du trait overflow est "scroll".
L'emplacement et la taille de l'aire de zone de visualisation de région sont spécifiés, en fonction du rectangle de contenu de l'aire de référence de page, par l'objet fo:simple-page-master. Le rectangle de contenu de l'aire de zone de visualisation de région est mis en retrait, par rapport à celui de l'aire de référence de page, de la valeur des propriétés 'margin-top', 'margin-bottom', 'margin-left' et 'margin-right'. Dans la version 1.0 de cette recommandation, les valeurs des traits padding et border-width doivent être "0".
L'aire de référence de région, générée avec un objet fo:region-body, est l'enfant d'une aire de zone de visualisation de région. Le trait reference-orientation de l'objet fo:region-body est utilisé pour l'orientation du système coordonné de l'aire de référence de région générée par l'objet fo:region-body en fonction du système coordonné de l'aire de référence de page générée par l'objet fo:simple-page-master (et, par-là même, en fonction de l'aire de zone de visualisation positionnée dans ce dernier système).
En plus de la paire zone de visualisation/référence, quand la région du corps est utilisée pour générer des aires, au moins une et jusqu'à trois aires de référence supplémentaires sont générées. Il s'agit de l'aire de référence avant-flottant, optionnelle, de l'aire de référence de note de pied de page, optionnelle, et de l'aire de référence principale. Cette dernière comprend l'espace restant après l'espace attribué aux deux autres aires de référence. Aucun espacement, aucune bordure ni aucun espace ne sont associés avec l'aire de référence principale.
Remarque :
Si aucune aire de référence avant-flottant et aucune aire de référence de note de pied de page ne sont des enfants de l'aire de référence de région, alors le rectangle de contenu de l'aire de référence principale est confondu avec celui de l'aire de référence de région.
L'aire de référence principale a, comme enfants, une séquence d'aires de référence d'étendue. Ce sont des aires de bloc aire de référence, sans bordure ni espacement, dont la dimension de progression en-ligne est égale à celle de l'aire de référence principale, et qui sont empilées normalement dans celle-ci.
Chaque aire de référence d'étendue a une ou plusieurs enfants aires de référence, désignés comme aires de référence de flux normal. Le nombre et l'emplacement des enfants d'une aire de référence d'étendue dépendent de la valeur du trait column-count de celle-ci. À son tour, le formateur doit générer précisément un nombre suffisant de ces aires de référence d'étendue, donnant ainsi une valeur à leur trait column-count, tel que les aires de bloc retournées par un objet fo:block dont le trait span a une valeur de "all" soient les enfants des aires de référence d'étendue avec leur valeur de trait column-count égale à 1 et tel que les aires de bloc retournées par un objet fo:block dont le trait span a une valeur de "none" soient les enfants des aires de référence d'étendue avec leur valeur de trait column-count égale à la valeur affinée de la propriété 'column-count' de l'aire de référence de région associée.
Pour chaque aire de référence d'étendue, le nombre N des enfants aire de référence de flux normal est égal à la valeur de son trait column-count.
C'est une erreur que de spécifier une valeur pour column-count autre que 1 si la valeur de la propriété 'overflow' est "scroll". Une mise en œuvre peut répérer en se comportant comme si la valeur "1" avait été spécifiée.
La dimension de progression en-ligne de chacune de ces aires de référence de flux normal se dérmine en soustrayant (N-1) fois la valeur du trait column-gap de la dimension de progression en-ligne de l'aire de référence principale et en divisant le résultat ainsi obtenu par N. En nommant « taille-du-corps », la dimension de progression en-ligne de l'aire de référence étendue, et « taille-de-colonne », la taille des aires de référence de flux normal dans une direction de progression en-ligne, on a la formule :
taille-de-colonne = (taille-du-corps - (N - 1)*column-gap)/N
La dimension de progression de bloc des aires de référence de flux normal est la même que celle de l'aire de référence d'étendue parent.
Remarque :
Comme indiqué au-dessus, la dimension de progression de bloc de l'aire de référence d'étendue peut être inférieure à la taille de l'aire de référence de région, si une aire de référence avant-flottant ou une aire de référence de note de pied de page sont présentes, ou si plus d'une aire de référence d'étendue est l'enfant d'une aire de référence principale.
Les aires de référence de flux normal se positionnent dans l'aire de référence d'étendue comme suit : la première colonne se positionne telle que les bords d'avant et de début de son rectangle de contenu coïncident avec ceux du rectangle de contenu de l'aire de référence d'étendue. Le rectangle de contenu du Jème enfant aire de référence de flux normal se positionne tel que son bord d'avant coïncide avec celui du rectangle de contenu de l'aire de référence d'étendue, son bord de début se trouvant à ((J-1)*(taille-de-colonne + column-gap)) dans la direction de progression en-ligne. Ceci aboutit à ce que le bord de fin du rectangle de contenu de la Nème aire de référence de flux normal coïncide avec celui du rectangle de contenu de l'aire de référence d'étendue.
Remarque :
Si la valeur du trait writing-mode est "rl-tb", la description précédente signifie que les colonnes s'ordonnent de droite-à-gauche, comme attendu. Ceci parce que le bord de début se trouve à droite dans un mode d'écriture de « droite-à-gauche - bas-en-haut ».
Toutes les aires générées avec un objet fo:region-body sont de la classe d'aire
xsl-absolute.
Dérivation du trait :
L'orientation de référence de l'aire de zone de visualisation de région est donnée par la valeur du trait reference-orientation du maître de région qui spécifie la région. La valeur du trait reference-orientation de l'aire de référence de région est mise à "0" et, de ce fait, l'orientation en est la même que celle établie par l'aire de zone de visualisation de région.
Les valeurs des traits restants des aires de zone de visualisation de région et de référence de région sont établies en fonction des règles normales de détermination des valeurs des traits.
Les traits des aires de référence d'étendue et des aires de référence de flux normal sont déterminées, comme décrit au chapitre [5 L'affinage et la résolution des propriétés], à partir d'un jeu de propriétés où chacune d'elles ont gardé leur valeur initiale, sauf pour les propriétés 'reference-orientation', 'writing-mode' et 'display-align' qui prennent leur valeur de fo:region-body.
Contraintes :
Les contraintes, qui s'appliquent à toutes les régions (voir [6.4.12 fo:simple-page-master]), s'appliquent toutes.
La dimension de progression en-ligne de l'aire de zone de visualisation de région est déterminée par celle du rectangle de contenu de l'aire de référence de page, moins les valeurs des traits start-indent et end-indent du maître de région. Les bords de début et de fin du rectangle de contenu de l'aire de zone de visualisation de région sont déterminés par le trait reference-orientation du maître de page.
La dimension de progression en-ligne de l'aire de zone de visualisation de région est déterminée par celle du rectangle de contenu de l'aire de référence de page, moins les valeurs des traits space-before et space-after du maître de région. Les bords d'avant et d'après du rectangle de contenu de l'aire de zone de visualisation de région sont déterminés par le trait reference-orientation du maître de page.
On utilise les valeurs des traitsspace-before et start-indent pour positionner l'aire de zone de visualisation de région en fonction des bords d'avant et de début du rectangle de contenu de l'aire de référence de page.
Les contraintes, exercées sur la taille et la position de l'aire de référence de région générée avec un objet fo:region-body, sont abordées au paragraphe « Les contraintes qui s'appliquent aux régions » au chapitre [6.4.12 fo:simple-page-master].
Contenus :
VIDE
Les propriétés suivante s'appliquent à cet objet de mise en forme :
Usage commun :
Employé pour la construction d'un maître de page simple. Cette région spécifie une paire zone de visualisation/référence qui est située sur le côté « avant » de l'aire de référence de page. Dans un mode d'écriture « gauche-à-droite - bas-en-haut », celle-ci correspond à la région d'en-tête. Le trait overflow contrôle l'importance de l'aire de référence de région sous-jacente qui est visible ; c'est-à-dire, quand l'aire de référence de région est rognée par son aire de zone de visualisation de région parent.
Aires :
L'objet de mise en forme fo:region-before s'utilise pour la génération d'une aire de zone de visualisation de région et d'une aire de référence de région.
Dans la version 1.0 de cette recommandation, les valeurs des traits padding et border-width doivent être "0".
La position du bord d'avant du rectangle de contenu de cette aire de zone de visualisation de région coïncide avec celle du bord d'avant du rectangle de contenu de l'aire de référence de page générée avec l'objet fo:simple-page-master parent. La dimension de progression de bloc de l'aire de zone de visualisation de région est déterminée par le trait extent de l'objet de mise en forme.
La dimension de progression en-ligne de l'aire de zone de visualisation de région est déterminée
par le trait precedence de l'objet fo:region-before. Si la valeur de ce trait est true,
alors la dimension de progression en-ligne s'étend jusqu'aux bords de début et de fin du
rectangle de contenu de l'aire de référence de page. Dans ce cas, l'aire de zone de visualisation de
région d'avant se comporte comme un flottant dans les aires générées
par les régions d'avant et d'après. Si la valeur du trait precedence de l'objet
fo:region-before est false, alors ces régions adjacentes flottent dans l'aire
générée par l'objet fo: region-before et l'étendue de celle-ci est
(effectivement) réduite par les incursions de ces régions adjacentes.
L'aire de référence de région se tient sur un canevas en arrière de l'aire de zone de visualisation de région. Le trait reference-orientation est utilisé pour orienter le système coordonné de l'aire de référence de région en fonction de l'aire de référence de page.
La taille de l'aire de référence de région dépend de la valeur du trait overflow sur cette région. Si cette valeur est "auto", "hidden", "error-if-overflow", "paginate", ou "visible", alors la taille de l'aire de référence correspond à celle de la zone de visualisation. Si cette valeur est "scroll", alors la taille de l'aire de référence est égale à celle de la zone de visualisation dans la direction de progression en-ligne dans le mode d'écriture de cette région et n'est pas contrainte dans la direction de progression de bloc (ce qui veut dire que sa taille s'accroît pour contenir la distribution de tout le contenu en rapport avec cette région).
Dérivation du trait :
L'orientation de référence de l'aire de zone de visualisation de région est donnée par la valeur du trait reference-orientation du maître de région qui spécifie cette région. La valeur du trait reference-orientation de l'aire de référence de région est mis à "0" et, de ce fait, l'orientation en est la même que celle établie par l'aire de zone de visualisation de région.
Les valeurs des traits restants de l'aire de zone de visualisation de région et de l'aire de référence de région sont établies en fonction des règles normales de détermination des valeurs des traits.
Contraintes :
Les contraintes de taille et de position sur l'aire de référence de région générée avec un objet fo:region-before sont abordées au paragraphe « Les contraintes qui s'appliquent aux régions » du chapitre [6.4.12 fo:simple-page-master].
Contenus :
VIDE
Les propriétés suivante s'appliquent à cet objet de mise en forme :
Usage commun :
Employé dans la construction d'un maître de page simple. Cette région spécifie une paire zone de visualisation/référence située sur le côté « après » l'aire de référence de page. Dans une écritre de « gauche-à-droite - bas-en-haut », celle-ci correspond à la région du pied. Le trait overflow contrôle l'importance de l'aire de référence de région sous-jacente qui est visible ; c'est-à-dire, quand l'aire de la référence de région est rognée par l'aire de zone de visualisation de région parent.
Aires :
L'objet de mise en forme fo:region-after est utilisé pour la génération d'une aire de zone de visualisation de région et d'une aire de référence de région.
Dans la version 1.0 de cette recommandation, les valeurs des traits padding et border-width doivent être "0".
La position du bord d'après du rectangle de contenu de cette aire de zone de visualisation de région coïncide avec celle du bord d'après du rectangle de contenu de l'aire de référence de page générée avec l'objet parent fo:simple-page-master. La dimension de progression de bloc de l'aire de zone de visualisation de région est déterminée par le trait extent de l'objet de mise en forme fo:region-after.
La dimension de progression en-ligne de l'aire de zone de visualisation de région est déterminée
par la valeur du trait precedence de l'objet fo:region-after. Si cetter valeur est true,
alors la dimension de progression en-ligne s'étend jusqu'aux bords de début et de fin du
rectangle de contenu de l'aire de référence de page. Dans ce cas, l'aire de zone de visualisation de
région d'après se comporte comme un flottant dans les aires générées
par les régions d'avant et de fin. Si la valeur du trait precedence de l'objet fo:region-after
est false, alors ces régions adjacentes flottent dans l'aire générée
par l'objet fo:region-after et l'étendue de celle-ci est (effectivement) réduite par les
incursions de ces régions adjacentes.
L'aire de référence de région se tient sur un canevas en arrière de l'aire de zone de visualisation de région. On utilise le trait reference-orientation pour orienter le système coordonné de l'aire de référence de région en fonction de l'aire de référence de page.
La taille de l'aire de référence de région dépend de la valeur du trait overflow sur cette région. Si cette valeur est "auto", "hidden", "error-if-overflow", "paginate" ou "visible", alors la taille de l'aire de référence correspond à celle de la zone de visualisation. Si cette valeur est "scroll", alors la taille de l'aire de référence est égale à celle de la zone de visualisation dans la direction de progression en-ligne dans le mode d'écriture de cette région et n'est pas contrainte dans la direction de progression de bloc (ce qui veut dire que la taille s'accroît pour contenir la distribution de tout le contenu en rapport avec cette région).
Dérivation du trait :
L'orientation de référence de l'aire de zone de visualisation de région est donnée par la valeur du trait reference-orientation du ma&icic;tre de région qui spécifie cette région. La valeur du trait reference-orientation de l'aire de référence de région est mise à "0" et, de ce fait, l'orientation en est la même que celle établie par l'aire de zone de visualisation de région.
Les valeurs des traits restants de l'aire de zone de visualisation de région et de l'aire de référence de région sont établies en fonction des règles normales de détermination des valeurs des traits.
Contraintes :
Les contraintes de taille et de position sur l'aire de référence de région générée avec un objet fo:region-after sont abordées au paragraphe « Les contraintes qui s'appliquent aux régions » du chapitre [6.4.12 fo:simple-page-master].
Contenus :
VIDE
Les propriétés suivante s'appliquent à cet objet de mise en forme :
Usage commun :
Employé dans la construction d'un maître de page simple. Cette région spécifie une paire zone de visualisation/référence située sur le côté « début » de l'aire de référence de page. Dans un mode d'écriture de « gauche-à-droite - bas-en-haut », celle-ci correspond à un bandeau latéral gauche. Le trait overflow contrôle l'importance de l'aire de référence de région sous-jacente qui est visible ; c'est-à-dire, quand l'aire de référence de région est rognée par son aire de zone de visualisation de région parent.
Aires :
L'objet de mise en forme fo:region-start est utilisé pour la génération d'une aire de zone de visualisation de région et d'une aire de référence de région.
Dans la version 1.0 de cette recommandation, les valeurs des traits padding et border-width doivent être "0".
La position du bord de début du rectangle de contenu de cette aire de zone de visualisation de région coïncide avec celle du bord de début du rectangle de contenu de l'aire de référence de page générée avec un objet fo:simple-page-master parent. La dimension de progression en-ligne de l'aire de zone de visualisation de région est déterminée par le trait extent de l'objet de mise en forme fo:region-after.
La dimension de progression de bloc de l'aire de zone de visualisation de région est déterminée
par le trait precedence des objets adjacents fo:region-before et fo:region-after, s'ils existent ;
autrement, on la détermine comme si la valeur du trait precedence était
false. Si la valeur du trait precedence de l'objet fo:region-before (ou, respectivement,
fo:region-after) est false, alors la dimension de progression de bloc s'étend jusqu'au
bord d'avant (ou, respectivement, d'après) du rectangle de contenu de l'aire de référence
de page. Dans ce cas, la région de début se comporte comme un flottant dans les aires
générées par la région d'avant (ou, respectivement, d'après). Si la valeur
du trait precedence des régions adjacentes est true, alors ces régions
adjacentes flottent dans l'aire générée par l'objet fo:region-start et l'étendue
de celle-ci est (effectivement) réduite par les incursions de celles des régions adjacentes
dont la valeur du trait precedence est true.
L'aire de référence de région se tient sur un canevas en arrière de l'aire de zone de visualisation de région. Le trait reference-orientation est utilisé pour orienter le système coordonné de l'aire de référence de région en fonction de l'aire de référence de page.
La taille de l'aire de référence de région dépend de la valeur du trait overflow sur cette région. Si cette valeur est "auto", "hidden", "error-if-overflow", "paginate" ou "visible", alors la taille de l'aire de référence correspond à celle de la zone de visualisation. Si cette valeur est "scroll", alors la taille de l'aire de référence est égale à celle de la zone de visualisation dans la direction de progression en-ligne dans le mode d'écriture de cette région et n'est pas contrainte dans la direction de progression de bloc (ce qui veut direque la taille s'accroît pour contenir la distribution de tout le contenu en rapport avec cette région).
Dérivation du trait :
L'orientation de référence de l'aire de zone de visualisation de région est donnée par la valeur du trait reference-orientation du maître de région qui spécifie cette région. La valeur du trait reference-orientation de l'aire de référence de région est mise à "0" et, de ce fait, l'orientation en est la même que celle établie par l'aire de zone de visualisation de région.
Les valeurs des traits restants de l'aire de zone de visualisation de région et de l'aire de référence de région sont établies en fonction des règles normales de détermination des valeurs des traits.
Contraintes :
Les contrainte de taille et de position sur l'aire de référence de région générée avec un objet fo:region-start sont abordées au paragraphe « Les contraintes qui s'appliquent aux régions » du chapitre [6.4.12 fo:simple-page-master].
Contenus :
VIDE
Les propriétés suivante s'appliquent à cet objet de mise en forme :
Usage commun :
Employé dans la construction d'un maître de page simple. Cette région spécifie une paire zone de visualisation/référence située sur le côté « fin » de l'aire de référence de page. Dans un mode d'écriture de « gauche-à-droite - bas-en-haut », celle-ci correspond au bandeau latéral droit. Le trait overflow contrôle l'importance de l'aire de référence de région sous-jacente qui est visible ; c'est-à-dire, quand l'aire de référence de région est rognée par son aire de zone de visualisation de région parent.
Aires :
L'objet de mise en forme fo:region-end est utilisé pour la génération d'une aire de zone de visualisation de région et d'une aire de référence de région.
Dans la version 1.0 de cette recommandation, les valeurs des traits padding et border-width doivent être "0".
La position du bord de fin du rectangle de contenu de cette aire de zone de visualisation de région coînde avec celle du bord de fin du rectangle de contenu de l'aire de référence de page générée avec l'objet fo:simple-page-master parent. La dimension de progression en-ligne est déterminée par le trait extent de l'objet de mise en forme fo:region-after.
La dimension de progression de bloc de l'aire de zone de visualisation de région est déterminée
par le trait precedence des objets adjacents fo:region-before et fo:region-after, s'ils existent ;
autrement, on la détermine comme si la valeur du trait precedence était
false. Si la valeur du trait precedence de l'objet fo:region-before (ou, respectivement,
fo:region-after) est false, alors la dimension de progression de bloc s'étend jusqu'au
bord d'avant (ou, respectivement, d'après) du rectangle de contenu de l'aire de référence
de page. Dans ce cas, la région de fin se comporte comme un flottant dans les aires
générées par la région d'avant (respectivement, la région d'après).
Si la valeur du trait precedence sur les régions adjacentes est true, alors
ces régions adjacentes flottent dans l'aire générée par l'objet fo:region-end et
l'étendue de celle-ci est (effectivement) réduite par les incursions de celles des régions
adjacentes dont le trait precedence est true.
L'aire de référence de région se tient dans un canevas en arrière de l'aire de zone de visualisation de région. Le trait reference-orientation est utilisé pour orienter le système coordonné de l'aire de référence de région en fonction de l'aire de référence de page.
La taille de l'aire de référence de région dépend de la valeur du trait overflow sur cette région. Si cette valeur est "auto", "hidden", "error-if-overflow", "paginate" ou "visible", alors la taille de l'aire de référence correspond à celle de la zone de visualisation. Si cette valeur est "scroll", la taille de l'aire de référence est égale à celle de la zone de visualisation dans la direction de progression en-ligne dans le mode d'écriture de cette région et n'est pas contrainte dans la direction de progression de bloc (ce qui veut dire que la taille s'accroît pour contenir la distribution de tout le contenu en rapport avec la région).
Dérivation du trait :
L'orientation de référence de l'aire de zone de visualisation de région est donnée par la valeur du trait reference-orientation du maître de région qui spécifie la région. La valeur du trait reference-orientation de l'aire de référence de région est mis à "0" et, de ce fait, l'orientation en est la même que celle établie par l'aire de zone de visualisation de région.
Les valeurs des traits restants de l'aire de zone de visualisation de région et de l'aire de référence de région sont établies en fonction des règles normales de détermination des valeurs des traits.
Contraintes :
Les contraintes de taille et de position sur l'aire de référence de région générée avec l'objet fo:region-end sont abordées au paragraphe « Les contraintes qui s'appliquent aux régions » du chapitre [6.4.12 fo:simple-page-master].
Contenus :
VIDE
Les propriétés suivante s'appliquent à cet objet de mise en forme :
Usage commun :
L'objet de mise en forme fo:flow contient une séquence d'objets de flux, celle-ci fournit l'écoulement du contenu textuel distribué dans des pages.
Aires :
L'objet de mise en forme fo:flow ne génère aucune aire. L'objet fo:flow retourne la séquence des aires obtenue par concaténation des séquences d'aires retournées par chacun de ses enfants. Cet ordre de concaténation est le même que celui des enfants dans l'objet fo:flow.
Contraintes :
Le plan de flux (implicite) détermine la correspondance du contenu de l'objet fo:flow avec une région.
Contenus :
(%block;)+
De plus, cet objet de mise en forme peut avoir, comme enfants initiaux, une séquence de zéro ou plus objets fo:marker.
Les propriétés suivante s'appliquent à cet objet de mise en forme :
Usage commun :
L'objet de mise en forme fo:static-content contient une séquence ou un arbre d'objets de mise en forme devant être présentés dans une seule région ou répétés dans des régions de même nom sur une ou plusieurs pages de la séquence de pages. On le destine habituellement aux en-têtes et aux pieds de page, ceux-ci courants ou répétés.
Ce contenu est répété entièrement à chaque page sur laquelle l'objet est assigné.
Aires :
L'objet de mise en forme fo:static-content ne génère aucune aire. L'objet fo:static-content retourne la séquence des aires obtenue par concaténation des séquences de pages retournées par chacun de ses enfants. L'ordre de concaténation est le même que celui des enfants dans l'objet fo:static-content.
Contraintes :
Le plan de flux (implicite) détermine l'assignation du contenu de l'objet fo:static-content à une région.
L'objet fo:static-content pouvant être traité à plusieurs reprises, c'est pourquoi la contrainte d'ordonnancement par défaut, décrite au chapitre [4.7.1 Les contraintes d'ordonnancement générales], ne s'applique pas à celui-ci. Précisément, si P est une aire de référence de page, C un aire de classe et S le jeu de tous les descendants de P de la classe d'aire C retournés au descendant fo:static-content, alors S doit être correctement ordonné.
Contenus :
(%block;)+
Les propriétés suivante s'appliquent à cet objet de mise en forme :
Usage commun :
L'objet de mise en forme fo:title est utilisé pour associer un titre avec une séquence de pages donnée. Ce titre peut être exploité par un agent utilisateur interactif pour identifier les pages. Par exemple, le contenu de l'objet fo:title peut être formaté et affiché dans le « titre » d'une fenêtre ou dans une « infobulle ».
Aires :
Cet objet de mise en forme retourne la séquence des aires retournées par ses enfants.
Contraintes :
La séquence des aires retournées doit être la concaténation des sous-séquences des aires retournées par chacun des enfants de flux de l'objet fo:title, dans l'ordre où ceux-ci surviennent.
Contenus :
(#PCDATA|%inline;)*
Un objet fo:title n'admet pas d'objets fo:float, fo:footnote ou fo:marker comme descendants.
De plus, un objet fo:title n'admet pas comme descendant un objet fo:block-container qui génère une aire en position absolue.
Les propriétés suivante s'appliquent à cet objet de mise en forme :
L'objet de mise en forme fo:block est utilisé pour la mise en forme des paragraphes, des titres, des légendes d'illustration, des titres de table, etc. L'exemple suivant illustre l'emploi de l'objet fo:block dans une feuille de style.
L'échantillon en entrée :
<doc>
<chapitre>
<titre>Titre du chapitre</titre>
<section>
<titre>Titre de la première section</titre>
<paragraphe>Premier paragraphe de la première section.</paragraphe>
<paragraphe>Second paragraphe de la première section.</paragraphe>
</section>
<section>
<titre>Titre de la seconde section</titre>
<paragraphe>Le seul paragraphe de la seconde section.</paragraphe>
</section>
</chapitre>
</doc>
Dans cet exemple, le titre du chapitre apparaît en haut de la page (son « espace d'avant » est écarté).
L'espace entre le titre du chapitre et celui de la première section est (8pt,8pt,8pt) : la valeur de la propriété 'space-after' du titre du chapitre a une plus grande préséance que celle de 'space-before' du titre de section (qui prend désormais la valeur initiale zéro), cette dernière est donc écartée.
L'espace entre le titre de la première section et le premier paragraphe de celle-ci est (6pt,6pt,6pt) : la valeur de la propriété 'space-after' du titre de section a une plus grande préséance que celle de 'space-before' du paragraphe, cette dernière est donc écartée.
L'espace entre les deux paragraphes est (6pt,8pt,10pt) : la valeur de la propriété 'space-after du premier paragraphe est écartée parce que sa préséance est égale à celle de 'space-before' du paragraphe suivant et parce que la valeur optimum de 'space-after' du premier paragraphe est supérieure à celle optimum de 'space-before' du second paragraphe.
L'espace entre le second paragraphe de la première section et le titre de la seconde section est (12pt,12pt,12pt) : la valeur de la propriété 'space-after' du paragraphe est écartée parce que sa préséance est égale à celle de 'space-before' du titre de section et parce que la valeur optimum de 'space-after' du paragraphe est inférieure à celle optimum de 'space-before' du titre de section.
L'indentation de la première ligne du premier paragraphe de la première section et celle du seul paragraphe de la seconde section est nulle ; l'indentation de la première ligne du second paragraphe de la première section est de "2pc".
La feuille de style XSL :
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fo="http://www.w3.org/1999/XSL/Format">
<xsl:template match="chapitre">
<fo:block break-before="page">
<xsl:apply-templates/>
</fo:block>
</xsl:template>
<xsl:template match="chapitre/titre">
<fo:block text-align="center" space-after="8pt"
space-before="16pt" space-after.precedence="3">
<xsl:apply-templates/>
</fo:block>
</xsl:template>
<xsl:template match="section">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="section/titre">
<fo:block text-align="center" space-after="6pt"
space-before="12pt" space-before.precedence="0"
space-after.precedence="3">
<xsl:apply-templates/>
</fo:block>
</xsl:template>
<xsl:template match="paragraphe[1]" priority="1">
<fo:block text-indent="0pc" space-after="7pt"
space-before.minimum="6pt" space-before.optimum="8pt"
space-before.maximum="10pt">
<xsl:apply-templates/>
</fo:block>
</xsl:template>
<xsl:template match="paragraphe">
<fo:block text-indent="2pc" space-after="7pt"
space-before.minimum="6pt" space-before.optimum="8pt"
space-before.maximum="10pt">
<xsl:apply-templates/>
</fo:block>
</xsl:template>
</xsl:stylesheet>
L'instance résultat, les éléments et attributs sont dans l'espace de nommage fo: :
<fo:block break-before="page">
<fo:block text-align="center" space-after="8pt"
space-before="16pt"
space-after.precedence="3">Titre du chapitre
</fo:block>
<fo:block text-align="center" space-after="6pt"
space-before="12pt" space-before.precedence="0"
space-after.precedence="3">Titre de la première section
</fo:block>
<fo:block text-indent="0pc" space-after="7pt"
space-before.minimum="6pt" space-before.optimum="8pt"
space-before.maximum="10pt">Premier paragraphe de la première section.
</fo:block>
<fo:block text-indent="2pc" space-after="7pt"
space-before.minimum="6pt" space-before.optimum="8pt"
space-before.maximum="10pt">Second paragraphe de la première section.
</fo:block>
<fo:block text-align="center" space-after="6pt"
space-before="12pt" space-before.precedence="0"
space-after.precedence="3">Titre de la seconde section
</fo:block>
<fo:block text-indent="0pc" space-after="7pt"
space-before.minimum="6pt" space-before.optimum="8pt"
space-before.maximum="10pt">Le seul paragraphe de la seconde section.
</fo:block>
</fo:block>
Usage commun :
L'objet de mise en forme fo:block s'utilise habituellement pour la mise en forme des paragraphes, des titres, des gros titres, des légendes d'illustration et de table, etc.
Aires :
L'objet de mise en forme fo:block génère une ou plusieurs aires de bloc normales. L'objet fo:block retourne ces aires et, le cas échéant, les aires de niveau page hors-ligne et de niveau référence hors-ligne retournées par les enfants de celui-ci. L'objet fo:block génère également zéro ou plus aires de ligne comme enfants des aires de bloc normales que celui-ci retourne, comme indiqué au chapitre [4.7.2 La construction des lignes].
Dérivation du trait :
Les composants .minimum, .optimum et .maximum du trait half-leading prennent une valeur égale à la moitié de la différence entre la valeur calculée de la propriété line-height et la somme des valeurs des propriétés text-altitude et text-depth. Les composants .precedence et .conditionality sont copiés de la propriété line-height.
Remarque :
L'emploi du demi-interlignage est décrit au chapitre [4.5 Les aires de ligne].
Contraintes :
Aucune aire ne peut avoir plus d'une aire enfant normale retournée par le même objet de mise en forme fo:block.
Les enfants de chacune des aires normales générées par un objet fo:block doivent satisfaire aux contraintes spécifiées au chapitre [4.7.2 La construction des lignes].
De plus, les contraintes exercées par les traits dérivés des propriétés qui s'appliquent à cet objet de mise en forme doivent être satisfaites. Les contraintes géométriques sont définies précisément au chapitre [4 Le modèle des aires].
Contenus :
(#PCDATA|%inline;|%block;)*
De plus, cet objet de mise en forme peut avoir, comme enfants initiaux, une séquence de zéro ou plus objets fo:marker, suivie en option par un objet fo:initial-property-set.
Les propriétés suivante s'appliquent à cet objet de mise en forme :
Usage commun :
L'objet de flux fo:block-container s'utilise pour générer une aire de référence de type bloc, qui contient typiquement des pavés de texte avec un mode décriture différent. De plus, on peut aussi l'utiliser avec une orientation de référence différente pour exercer une rotation de son contenu.
Remarque :
L'emploi de cet objet de flux n'est pas nécessaire pour simplement changer la direction de progression en-ligne ; pour cela, l'algorithme Unicode BIDI et l'objet fo:bidi-override suffisent.
Aires :
L'objet de mise en forme fo:block-container génère une ou plusieurs paires zone de visualisation/référence. L'objet fo:block-container retourne ces aires et, le cas échéant, les aires de niveau page hors-ligne retournées par ses enfants.
Dérivation du trait :
Les aires générées par l'objet de mise en forme fo:block-container ont une valeur "true" pour leur trait is-reference-area.
Les tailles de l'aire de zone de visualisation et de l'aire de référence doivent être établies dans la direction de progresssion en-ligne. On doit la spécifier, à moins que la direction de progression en-ligne ne soit parallèle à celle de l'aire de référence dans laquelle sont placées les aires générées par cet objet de flux.
Contraintes :
Les enfants de chacune des aires de référence générées par un objet de mise en forme fo:block-container doivent être des aires de bloc normales retournées par l'objet fo:block-container, doivent être correctement empilées et correctement ordonnées.
Toutes les aires de niveau référence hors-ligne retournées par les enfants de l'objet fo:block-container sont gérées comme décrit au chapitre [6.10.2 fo:float].
Contenus :
(%block;)+
De plus, un objet fo:block-container qui ne génère pas d'aire en position absolue peut avoir, comme enfants initiaux, une séquence de zéro ou plus objets fo:marker.
Les propriétés suivante s'appliquent à cet objet de mise en forme :
On utilise le plus souvent les objets de mise en forme en-ligne pour formater une partie de texte ou pour la génération de règles et de lignes de conduite. Il y a beaucoup d'autres utilisations. L'exemple suivant illustre certaines de celles-ci.
Changer la première ligne d'un paragraphe en petites capitales ;
Transformer en un bloc un objet de mise en forme fo:external-graphic, qui est normalement en-ligne, en « enveloppant » celui-ci dans un objet de mise en forme fo:block ;
Formater un pied de page courant, contenant le mot « Page » suivi par un numéro de page.
L'échantillon en entrée :
<doc> <p>Voici le texte d'un paragraphe dont la premiè ligne va être présentée en petites capitales.</p> </doc>
La feuille de style XSL :
<?xml version='1.0'?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fo="http://www.w3.org/1999/XSL/Format"
version='1.0'>
<xsl:template match="p">
<fo:block>
<fo:initial-property-set font-variant="small-caps"/>
<xsl:apply-templates/>
</fo:block>
</xsl:template>
</xsl:stylesheet>
L'instance résultat, les éléments et attributs sont dans l'espace de nommage fo: :
<fo:block> <fo:initial-property-set font-variant="small-caps"> </fo:initial-property-set>Voici le texte d'un paragraphe dont la première ligne va être présentées en petites capitales. </fo:block>
L'échantillon en entrée :
<doc>
<illustration>
<photo image="TH0317A.jpg"/>
<legende>C'ieng Tamlung de C'ieng Mai</legende>
</illustration>
</doc>
Dans cet exemple, l'image (un objet fo:external-graphic) se place comme un objet de type bloc centré. La légende est centrée avec des indentations de 10mm.
<?xml version='1.0'?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fo="http://www.w3.org/1999/XSL/Format"
version='1.0'>
<xsl:template match="illustration">
<fo:block>
<xsl:apply-templates/>
</fo:block>
</xsl:template>
<xsl:template match="photo">
<fo:block text-align="center">
<fo:external-graphic src="{@image}"/> « errata-E11 »
</fo:block>
</xsl:template>
<xsl:template match="legende">
<fo:block space-before="3pt" text-align="center"
start-indent="10mm" end-indent="10mm">
<xsl:apply-templates/>
</fo:block>
</xsl:template>
</xsl:stylesheet>
L'arbre des é