Chapitre 1

Formatage spatial et nature des documents

[Table des matières]

1 Introduction

Ce chapitre traite des techniques de formatage utilisées dans différents types de documents. La section 2 aborde le problème du formatage spatial dans le cadre des éditeurs de texte gérant des documents peu structurés. La section 3 considère ce problème dans le cadre des documents structurés. La section 4 aborde le formatage pour un type particulier de documents, les documents graphiques. La section 5 présente une synthèse sur les apports et les limitations de la structure pour le formatage spatial.

Mais avant de rentrer plus en détail dans la suite de ce chapitre, nous allons définir un certain nombre de notions préliminaires indispensables à la compréhension du mémoire.

[Table des matières]

1.1 Eléments de base

Un document est composé par un ensemble d'éléments de base. Ceux-ci peuvent être de différentes natures :

[Table des matières]

1.2 Classification des documents

Les documents peuvent être classés en fonction de différents critères. Une première distinction est faite selon la nature des éléments de base qui les composent. De ce point de vue, on distingue deux grandes familles de documents :

Une autre distinction entre les documents concerne la manière selon laquelle les éléments de base sont organisés. La gamme des documents ainsi considérés s'étend depuis les documents composés d'une liste d'éléments de base jusqu'aux documents fortement structurés. Un document est structuré s'il est basé sur une organisation logique de ses éléments conforme à un certain modèle.

[Table des matières]

1.3 Modèles de documents

Un modèle de document permet de représenter toutes les relations pouvant exister entre les éléments d'un document. Le modèle de document défini dans le projet Opéra décrit les documents selon quatre dimensions :

[Table des matières]

1.4 Formatage

Le processus de formatage d'un document consiste à transformer une représentation interne de ce document en une représentation directement lisible. Ce processus s'effectue en tenant compte des propriétés de style définies par l'auteur et des propriétés physiques du support de visualisation.

[Table des matières]

2 Formatage spatial pour les documents peu structurés

Dans cette section, nous allons nous intéresser au processus de formatage dans le cadre d'éditeurs qui manipulent des documents peu structurés. Ces éditeurs sont ceux que l'on retrouve dans la plupart des traitements de texte actuels (Word, ...), même si les travaux sur ces éditeurs tendent à introduire une notion de structure de plus en plus prononcée.

[Table des matières]

2.1 Structure logique

La structure logique de ce type de documents est linéaire ; c'est une liste d'éléments (titres, paragraphes) dans laquelle sont intégrés d'autres éléments (tableaux, graphiques, images, etc.). Aucune structure n'est une composante d'une structure plus globale. Sur l'exemple de la Fig 1 , nous voyons qu'un rapport est constitué comme la succession d'un titre de rapport, d'un résumé, d'un titre de chapitre, d'un titre de section, de paragraphes, etc.

Image thot_nonstruct.gif

Fig 1. Structure logique de liste

La structure de liste ne représente que partiellement la structure logique d'un document et ne permet pas de définir des éléments comme les chapitres ou les sections. On peut considérer qu'une section est l'ensemble de tous les éléments compris entre un titre de section et le titre de la section suivante ou le titre de chapitre suivant ou la fin du document, mais cette définition est complexe à mettre en oeuvre.

[Table des matières]

2.2 Formatage spatial

Lorsqu'un document n'est pas structuré ou qu'il est considéré comme une liste d'éléments, aucune information ne spécifie l'ordre dans lequel doivent apparaître les éléments et c'est le plus souvent l'ordre de déclaration des éléments qui induit l'ordre spatial, c'est-à-dire la présentation du document. Pour casser cet ordre, il faut alors utiliser des traitements spécifiques.

De plus, la mise en page est généralement spécifiée séparément et ne peut dépendre de la structure logique. Elle se limite à la description des protocoles typographiques de ses paragraphes comme l'espacement, l'indentation, la fonte, la taille des caractères, etc. De même, il n'y a pas de mécanisme d'héritage possible et la présentation d'un élément ne peut dépendre du contexte dans lequel il se trouve. Ainsi, comme il n'y a pas de différence dans la structure logique entre un paragraphe d'un résumé, d'un chapitre, d'une sous-section ou d'une note de bas de page, la présentation de chacun d'eux est a priori identique. Il est donc à la charge de l'auteur de spécifier les différences de présentation liées au contexte.

Ce processus de formatage est suffisant pour des documents considérés comme une suite d'éléments textuels mais insuffisant pour des documents intégrant une plus grande structure ou nécessitant des placements spatiaux plus complexe comme le côte-à-côte par exemple.

[Table des matières]

3 Formatage spatial des documents structurés

Dans cette section, nous allons nous intéresser au processus de formatage dans le cadre d'éditeurs qui manipulent des documents fortement structurés. Les principes décrits dans cette section ont été mis en oeuvre, entre autres, dans Thot, un éditeur de documents structurés développé par le projet Opéra .

[Table des matières]

3.1 Structure logique des documents

Un document structuré est basé sur une représentation de son organisation logique plutôt que sur son aspect graphique. Il est composé d'une collection d'éléments typés ayant des relations (essentiellement) hiérarchiques. Un rapport sera par exemple composé d'un titre, d'un résumé et de chapitres, eux-mêmes composés d'un titre et de sections, et ainsi de suite jusqu'au niveau des éléments de base (Fig 2 ). La structure ainsi définie est appelée la structure logique spécifique du document.

Image thot_struct.gif

Fig 2. Structure logique d'un document structuré

[Table des matières]

3.1.1 Schéma de structure

Les structures spécifiques des documents peuvent être regroupées par familles ou plus précisément par types de documents. En effet, tous les rapports de recherche issus d'un même laboratoire ont des structures voisines, toutes les lettres émises par un même service commercial se ressemblent. Les caractéristiques communes des structures logiques des documents d'un même type sont regroupées dans des classes appelées structures logiques génériques ou schéma de structure. Un schéma de structure définit une classe de document en spécifiant tous les types d'éléments qui peuvent être utilisés dans la structure logique d'un document de cette classe. La structure logique spécifique propre à chaque document représente une instance de cette classe.

La structure spécifique est organisée selon une hiérarchie d'éléments appelée arbre abstrait dont la racine est le document lui-même et les feuilles les éléments de base qui représentent le contenu réel du document. La Fig 3 montre la représentation arborescente d'une instance de la classe Rapport.

Fig 3. Représentation arborescente d'une instance Rapport

[Table des matières]

3.1.2 Langages de définition de structures logiques génériques

Un schéma de structure est décrit au moyen d'un langage qui repose sur une grammaire hors-contexte. Les schémas utilisés dans Thot sont écrits dans un langage spécifique, le langage S. La définition de ce langage a précédé l'annonce de la standardisation dans ce domaine et n'est donc pas normalisé. Néanmoins ses concepts sont identiques à ceux de SGML, la norme prépondérante du domaine définie par l'ISO .

SGML

SGML (Standard Generalized Markup Language) est un langage, mais, contrairement à ce que son nom suggère, ce n'est pas un langage de marquage (). Il s'agit plutôt d'un méta-langage de description de structures qui permet de définir des structures génériques. A partir de la définition d'une structure générique, SGML permet de dériver automatiquement un langage de marquage.

Dans SGML, la structure logique générique d'une classe de documents est décrite dans une DTD (Document Type Definition) qui spécifie le type des éléments. La figure Fig 4 décrit la DTD SGML d'un document de type Rapport.

<!ELEMENT Rapport (titre, résumé, chapitre+) >
<!ELEMENT titre (#PCDATA)                    >
<!ELEMENT résumé (#PCDATA)                   >
<!ELEMENT chapitre (titrechap, section+)     >
<!ELEMENT titrechap (#PCDATA)                >
<!ELEMENT section (titresect, paragraphe+)   >
<!ELEMENT titresect (#PCDATA)                >
<!ELEMENT paragraphe (#PCDATA)               >

Fig 4. La DTD d'un Rapport

L'indicateur d'occurrence «+» indique qu'un type est obligatoire et répétable. Un Rapport peut contenir plusieurs chapitres mais il en faut au moins un. Le type #PCDATA indique que les éléments sont constitués d'une chaîne de caractères.

Le marquage des éléments est le principe fondamental des documents conformes à SGML. Des marques, appelées aussi balises, sont associées à chacun des types. Elles sont utilisées pour délimiter et identifier les éléments de la structure spécifique et leur associer des attributs. La figure Fig 5 présente ce que peut être un article en format SGML respectant la DTD décrite en Fig 4 . Les marques <Section> et </Section> par exemple sont les balises qui délimitent les sections de l'article.

<rapport>
<titre> Formatage spatial des documents </titre>
<résumé> Les documents électroniques ...
</résumé>
<chapitre>
<titrechap> Formatage dans ... </titrechap> 
<Section>
<titresect> Structure logique </titresect> 
<paragraphe>
... Cette section traite des problèmes ...
</paragraphe>
</Section>
<Section>
...  ...
</Section>
</chapitre>
<chapitre>
...  ...
</chapitre>
</rapport>

Fig 5. Un rapport en SGML

SGML est à l'origine d'autres langages parmi lesquels nous pouvons citer :

[Table des matières]

3.2 Structure physique

[Table des matières]

3.2.1 Schéma de présentation

L'aspect graphique d'un document, appelé aussi présentation, est dérivé de sa structure logique et est défini de façon générique par un schéma de présentation. A chaque schéma de structure est associé un schéma de présentation qui permet de définir l'aspect graphique des documents dont la classe est spécifiée par le schéma de structure. Pour chaque type d'élément défini dans le schéma de structure, le schéma de présentation comporte un ensemble de règles de présentation qui définissent le style et le format des éléments logiques. C'est en appliquant ces règles que le système construit l'image du document. Un schéma de présentation s'applique sur un seul schéma de structure, par contre plusieurs schémas de présentation peuvent être associés à un même schéma de structure. Ceci est très utile pour définir différentes présentations possibles pour les documents d'une même classe.

Cependant, s'il n'avait à sa disposition que les règles de présentation génériques pour décrire l'image de son document, l'auteur pourrait être gêné pour mettre en relief certaines parties que rien dans la structure ne permet de différencier. C'est pour pallier à ce manque de souplesse qu'un deuxième type de règles est utilisé. Grâce à elles, l'auteur peut modifier la présentation (police, taille de caractère, largeur, position, etc.) d'une instance d'un type d'élément sans modifier celle de tous les éléments de ce type. L'ensemble de ces règles est appelé présentation spécifique du document. Cette présentation spécifique est appliquée prioritairement par rapport à la présentation générique.

[Table des matières]

3.2.2 Langages de définition de structures physiques génériques

Comme pour les schémas de structure, les schémas de présentation sont écrits dans un langage spécifique. Mais contrairement à ceux-ci, aucune norme n'est encore parvenue à s'imposer.

DSSSL

La norme DSSSL (Document Style Semantics and Specification Language) a été définie pour permettre de spécifier le formatage ainsi que d'autres transformations de documents structurés répondant à la norme SGML. Elle ne définit pas les algorithmes de formatage et n'impose pas non plus de norme pour la description du document formaté. Cette norme n'a pas encore donné lieu à une implémentation complète.

CSS

CSS (Cascading Style Sheets) défini par le W3C est un langage destiné à la spécification de feuilles de style pour les documents HTML. Une feuille de style CSS est composée d'un ensemble de règles constituées d'un sélecteur HTML et d'une liste de propriétés, chaque propriété contenant un attribut et une valeur associée. Ainsi, la règle H1{font-size: 15pt; color: red} spécifie que pour le sélecteur H1 la taille de la fonte est de 15 points et la couleur du texte est rouge.

Plusieurs feuilles de style peuvent être présentes simultanément (Cascading). Cela s'explique par le fait que aussi bien l'auteur d'un document HTML que son lecteur peut définir son propre style, mais les feuilles de style de l'auteur sont en général prioritaires sur celles du lecteur.

En HTML les délimiteurs suivent une chaîne d'héritage. En définissant un style pour le niveau général, tous les délimiteurs de niveau inférieur (paragraphes, tables, listes ...) hériteront de ce style. On peut ainsi définir de manière simple une mise en page globale ou un style par défaut pour tout le document. Chaque délimiteur peut ensuite avoir son propre style en surchargeant le style par défaut.

[Table des matières]

3.2.3 Le langage P

Les schémas de présentation utilisés par le projet Opéra sont écrits dans un langage de type déclaratif, le langage P. Avant de le présenter, nous allons définir la notion de boîtes utilisée par celui-ci.

Boîtes

Dans le modèle de documents défini dans Opéra, la présentation est fondée, pour les documents comme pour les éléments qu'ils contiennent, sur la notion de boîte telle qu'elle a été mise en oeuvre dans TEX . A chaque élément du document correspond une boîte, qui est le plus petit rectangle englobant l'élément sur le support d'affichage (écran ou feuille de papier). Le contour de ce rectangle n'est normalement pas visible. Les côtés de la boîte sont parallèles aux bords de l'écran. Quel que soit l'élément auquel elle se rapporte, une boîte possède quatre côtés et quatre axes désignés de la manière suivante (Fig 6 ) :

Top
le côté supérieur
Bottom
le côté inférieur
Left
le côté gauche
Right
le côté droit
VMiddle
l'axe vertical passant par le centre de la boîte
HMiddle
l'axe horizontal passant par le centre de la boîte
VRef
l'axe de référence vertical
HRef
l'axe de référence horizontal
Image thot_box.gif

Fig 6. Les côtés et les axes des boîtes

Le rôle principal de ces boîtes est de dimensionner et de positionner, à l'aide de relations, les images des différents éléments d'un document les unes par rapport aux autres. On distingue trois catégories de boîtes :

Règles de présentation

Les relations entre les boîtes sont exprimées par des règles définies dans le schéma de présentation. Plusieurs types de règles sont utilisables :

[Table des matières]

3.3 Principes du formatage spatial pour les documents Thot

Le formatage spatial tel qu'il a été mis en oeuvre dans Thot est un processus complexe qui consiste à transformer la représentation interne d'un document, l'arbre abstrait correspondant à sa structure logique spécifique, en une forme externe présentée au lecteur sur le support désiré (écran, papier) . Cette fonction est réalisée par deux processus distincts appelés éditeur et formateur qui partagent une même représentation intermédiaire du document, l'image abstraite (Fig 7 ).

Image thot_formatage.gif

Fig 7. Processus de formatage d'un document Thot

L'image abstraite est un arbre dans lequel chaque noeud décrit une boîte rectangulaire à visualiser avec ses propriétés graphiques. C'est l'éditeur qui construit cette image abstraite en interprétant les règles de présentation qui dépendent de la structure logique du document. La structure d'arbre reflète la hiérarchie d'inclusion des éléments. Il y a un noeud dans l'image abstraite pour chaque élément de l'arbre abstrait à visualiser. Cette image abstraite est complétée par les noeuds des boîtes de présentation définies dans le modèle de présentation. A ce niveau, les propriétés typographiques ne sont pas encore calculées, elles sont exprimées sous forme de contraintes qui reflètent les dépendances logiques entre les boîtes.

Le formateur construit ensuite l'image concrète en interprétant les règles de présentation qui dépendent de la structure physique du document. Cela consiste à séparer le document en pages, colonnes et lignes en fonction des caractéristiques physiques du support de présentation. L'image concrète est une structure de graphe reliant les boîtes, auxquelles sont associées les valeurs typographiques résultant du formatage (position effective, dimensions). Les relations de ce graphe mémorisent les relations de dépendances directes et inverses entre les boîtes à afficher. Grâce à ces informations, le formatage dans Thot peut être effectué de façon incrémentale. Lorsqu'une boîte est déplacée ou modifiée par l'utilisateur, alors le formateur recalcule localement les propriétés modifiées des boîtes voisines. Par exemple, si un paragraphe est modifié, seules certaines lignes de celui-ci sont reformatées (la ligne courante et les lignes suivantes). Ce formatage incrémental conduit à un affichage incrémental du document où seules les portions modifiées sont réaffichées, apportant ainsi un meilleur confort visuel à l'utilisateur.

Un des problèmes important dans la mise en oeuvre de ce processus de formatage spatial consiste à éviter l'introduction de cycles dans l'expression des règles de présentation. Pour cela, Thot agit à deux niveaux :

[Table des matières]

4 Formatage spatial pour les documents graphiques

Dans cette section, nous allons nous intéresser au type particulier des documents graphiques. Ces documents possèdent plusieurs caractéristiques par rapport aux documents textuels. D'une part les éléments de base utilisés sont essentiellement des éléments graphiques comme des droites, des courbes, des cercles, et non plus des éléments principalement textuels. D'autre part, le modèle de page pour le placement des éléments des documents textuels n'est pas adapté. Dans ce dernier, la dimension verticale est prioritaire, c'est elle qui assure le placement par défaut des éléments. La dimension horizontale correspond à la mise en ligne des éléments du documents. Or, pour un document graphique, ces deux dimensions sont d'égale priorité et le placement peut s'effectuer de la même façon sur chacun des deux axes (Fig 8 ).

Image thot_graphique.gif

Fig 8. Structure logique d'un document graphique

[Table des matières]

4.1 Formatage de documents graphiques et notion de groupe

Dans la plupart des éditeurs graphiques comme Draw ou Xfig, la composition et le placement relatif d'éléments reposent sur la notion de groupe. Pour aligner trois éléments dans Xfig par exemple, il est nécessaire de les grouper au préalable puis de spécifier l'alignement désiré (Fig 9 ).

Image thot_groupe.gif

Fig 9. Placement utilisant la notion de groupe

La notion de groupe permet d'introduire un niveau de structuration dans le document mais elle comporte certaines limitations.

D'abord, les éléments contenus dans un groupe perdent leur identité propre et il est impossible de faire intervenir un élément d'un groupe dans une relation avec un élément non groupé ou avec un élément d'un autre groupe. Chaque nouvelle opération sur un élément groupé nécessite d'abord de le dégrouper. Cette limitation fait que certaines configurations sont complexes à réaliser. Par exemple, nous voulons disposer trois éléments A, B et C de la manière suivante : A et B sont centrés sur l'axe horizontal, B et C sont alignés sur leur bord haut (Fig 10 a). Il n'existe pas de moyen d'obtenir cette configuration en groupant les éléments (Fig 10 b et c). Une façon de l'obtenir consiste à placer à la main les éléments dans la configuration voulue puis de les grouper pour figer leur disposition. Mais le groupe ainsi constitué n'exprime pas les relations souhaitées.

Image thot_groupe1.gif

Fig 10. Exemple de placement spatial

Ensuite, les relations spécifiées entre des éléments groupés sont temporaires et ne sont maintenues que pendant l'existence du groupe. En dégroupant les éléments, on perd les relations.

Enfin, un groupe fige la disposition de ses éléments selon l'axe horizontal et l'axe vertical alors que l'on veut pouvoir n'exprimer des relations que sur un seul axe. Par exemple, le fait d'aligner deux éléments sur leur bord gauche n'induit pas de relation sur l'axe horizontal.

[Table des matières]

4.2 Intégration de graphiques structurés dans Thot

L'éditeur Thot permet de manipuler aussi bien des éléments graphiques que du texte avec les mêmes outils. Il n'y a donc pas d'éditeur graphique à proprement parler dans Thot, bien qu'on puisse éditer et traiter des graphiques à l'intérieur des documents. Il suffit pour cela de définir des schémas de structure représentant les graphiques à traiter et les schémas de présentation correspondants. Les graphiques structurés dans Thot sont définis par un schéma de structure spécifique appelé Draw2.

Dans le schéma Draw2, la structure logique repose également sur la notion de groupe mais spécifie uniquement la composition logique des éléments. Elle n'est pas utilisée pour déterminer la dimension ni le placement relatif des éléments. Pour cela, Draw2 définit des attributs typés, valués ou de référence, au niveau de chaque élément de base ou englobant (groupe).

Les attributs valués concernent les dimensions des éléments (Hauteur, Largeur) et leur position dans l'élément englobant (PositionV, PositionH).

Les attributs de référence permettent de spécifier des positions relatives entre des éléments d'un même groupe ou bien entre des éléments de groupes différents. Ces attributs ont pour effet de modifier la position de l'élément correspondant en l'alignant par rapport à un autre élément. Ainsi les attributs Alignement_haut, Centré_horiz et Alignement_bas modifient la position verticale de l'élément, les attributs Alignement_gauche, Centré_vert et Alignement_droit la position horizontale de l'élément.

La notion de groupe dans Draw2 permet à des documents graphiques de bénéficier de l'apport de la structuration logique pour le style des éléments (chaque élément hérite par exemple du motif de l'élément englobant qu'il peut ensuite surcharger) et pour leur positionnement absolu (les éléments d'un même groupe sont solidaires, si on déplace le groupe, alors tous ses éléments sont déplacés). Néanmoins la structure logique est parfois trop contraignante, notamment pour spécifier les positions relatives des éléments. L'utilisation d'attributs permet alors au formateur de Thot de placer les éléments non pas selon leur position structurale mais selon la valeur des références portées par ces attributs. Ces attributs ont en plus l'avantage de permettre au formateur d'effectuer le placement spatial des éléments graphiques de manière identique pour l'axe vertical et l'axe horizontal.

Image

[Table des matières]

5 Conclusion

Dans ce chapitre, nous avons voulu décrire les techniques de formatage spatial dans le cadre des documents textuels et graphiques, structurés ou non. Le bilan que nous présentons de ces techniques repose principalement sur l'expérience acquise avec l'éditeur Thot.

[Table des matières]

5.1 Apports de la structure dans le formatage

Le processus de formatage spatial tel qu'il a été mis en oeuvre dans Thot est un processus qui s'appuie sur la représentation hiérarchique de la structure logique des documents et sur la spécification déclarative de règles s'appliquant sur cette structure. Il utilise cette structure logique hiérarchique pour tenir compte du contexte et pour définir des mécanismes d'héritage. Ainsi, certains paramètres de présentation pour un élément, comme l'interligne, le renfoncement, la fonte, la taille, le cadrage des lignes, le renfoncement, etc., peuvent être définis par référence au même paramètre d'un élément parent dans la structure logique.

Ensuite, c'est un processus générique qui permet de formater de façon identique des documents ayant des structures logiques différentes (textes, graphiques, formules mathématiques).

Enfin, les avantages liés à l'expression séparée de la structure logique des documents et de leur présentation graphique sont importants et se situent à deux niveaux. Cette séparation assure d'une part l'homogénéité de présentation pour tous les documents d'une même classe (si un seul schéma de présentation est défini pour celle-ci) et pour chaque élément d'un même type à l'intérieur du document. D'autre part, elle fournit la possibilité de modifier la présentation globale d'un document sans altérer sa structure logique.

[Table des matières]

5.2 Limitations du formatage dans les documents conventionnels

Néanmoins, on retrouve dans Thot certaines limitations rencontrées dans d'autres éditeurs.

D'abord, le déplacement des éléments à la souris est un déplacement "gros grain". Lorsque l'on sélectionne l'élément à déplacer, un cadre apparaît autour de lui et c'est ce cadre qui suit les mouvements de la souris. L'élément concerné et éventuellement les élément dont la position dépend de celui-ci ne sont déplacés effectivement que lorsque le bouton de la souris est relâché. Ils prennent alors la position indiquée pas le cadre.

Ensuite, les positions relatives déterminées par la valeur des attributs des éléments graphiques ne sont gérées que dans un sens. Si on spécifie par exemple qu'un élément A est aligné par rapport à un élément B, le déplacement de B modifie en conséquence la position de A mais le déplacement de A n'affecte pas la position de B.

Enfin, le processus de formatage mis en oeuvre dans Thot a été élaboré pour les documents essentiellement textuels. C'est un processus complexe qui gère en même temps le style des éléments (fonte, couleur, taille, etc.) et leur placement. Il n'est donc pas facile de n'en réutiliser qu'une partie pour traiter spécifiquement le formatage de certains types de documents comme, pour ce qui nous concerne les documents multimédia.

Avant de présenter le formatage spatial que l'on désire mettre en oeuvre dans ces derniers et les besoins à prendre en compte, nous allons consacrer le chapitre suivant au modèle de documents multimédia défini dans le projet Opéra et au prototype Madeus.

Notes :