Annotation of Amaya/doc/pivot.tex, revision 1.1
1.1 ! cvs 1: \documentstyle[11pt,times]{article}
! 2:
! 3: \marginparwidth 0pt
! 4: \oddsidemargin 1 cm
! 5: \evensidemargin 1 cm
! 6: \marginparsep 0pt
! 7: \topmargin 0pt
! 8: \textwidth 14 cm
! 9: \textheight 22.5 cm
! 10:
! 11: \begin{document}
! 12: \sloppy
! 13:
! 14: \date{Version du 25 fe'vrier 1993}
! 15: \title{La repre'sentation pivot de Thot\\
! 16: version 4}
! 17: \author{Vincent Quint}
! 18: \maketitle
! 19:
! 20: Ce document de'crit la repre'sentation adopte'e pour le stockage des
! 21: documents produits par Thot.
! 22:
! 23: \section{Notation}
! 24:
! 25: La notation utilise'e pour de'crire la repre'sentation pivot est celle qui
! 26: a de'ja` e'te' utilise'e pour de'crire les langages de Thot. Rappelons que les
! 27: parties entre crochets {\tt [ ] } sont facultatives, que les parties entre
! 28: les signes {\tt < >} peuvent e^tre re'pe'te'es ou omises, que le caracte`re
! 29: {\tt /} repre'sente un choix entre plusieurs possibilite's, que la juxtaposition
! 30: des symbloles marque la concate'nation et que le point indique une fin de
! 31: re`gle. \`{A} ces conventions, on ajoute les suivantes~:
! 32:
! 33: \begin{description}
! 34: \item{\tt OCTET}
! 35: repre'sente un octet quelconque.
! 36: \item{\tt CHAINEOCT}
! 37: repre'sente une chai^ne d'octets quelconques.
! 38: \item{\tt CHAINECAR}
! 39: repre'sente une chai^ne de caracte`res ISO-Latin-1 imprimables termine'e par un
! 40: octet nul. Une chai^ne vide ne comprend qu'un octet nul.
! 41: \item{\tt CARACTERE}
! 42: repre'sente un seul caracte`re ISO-Latin-1 imprimable, c'est a` dire un caracte`re dont
! 43: le code est supe'rieur ou e'gal a` 32 (de'cimal).
! 44: \item{\tt NUMERO}
! 45: repre'sente un entier positif ou nul code' sur deux octets (0-65535).
! 46: \item{\tt O}
! 47: suivi d'un ou deux chiffres repre'sente un octet ayant pour valeur le nombre
! 48: de'cimal repre'sente' par le (ou les) chiffre(s) qui sui(ven)t.
! 49: \item{\tt '~'}
! 50: un caracte`re entre apostrophes repre'sente ce caracte`re exprime' dans le code
! 51: ISO-Latin-1.
! 52: \end{description}
! 53:
! 54: \section{Format pivot}
! 55:
! 56: La repre'sentation pivot d'un document est forme'e de trois fichiers~:
! 57:
! 58: \begin{itemize}
! 59: \item
! 60: {\it le fichier pivot} repre'sente la structure logique spe'cifique
! 61: et le contenu du document. Il comporte e'galement, le cas e'che'ant,
! 62: la pre'sentation spe'cifique du document. Son nom se termine par l'extension
! 63: {\tt .PIV}.
! 64:
! 65: \item
! 66: {\it le fichier des re'fe'rences externes entrantes} repre'sente les liens
! 67: entre le document et d'autres documents, ou plus pre'cise'ment il repre'sente
! 68: les e'le'ments du document qui sont de'signe's par des re'fe'rences
! 69: appartenant a` d'autres documents. Ce fichier n'est pre'sent que si le
! 70: document comporte au moins un e'le'ment de'signe' depuis un autre document.
! 71: Son nom se termine par l'extension {\tt .EXT}.
! 72:
! 73: \item
! 74: {\it le fichier des re'fe'rences a` modifier} repre'sente des modifications
! 75: a` effectuer dans le document. Ces modifications ont e'te' rendues
! 76: ne'cessaires par des ope'rations de destruction ou de de'placement
! 77: d'e'le'ments re'fe'rence's par le document, ope'rations
! 78: qui ont e'te' effectue'es sur d'autres documents lorsque le document auquel
! 79: est associe' le fichier n'e'tait pas charge'.
! 80: Les re'fe'rences du document qui de'signent ces e'le'ments de'truits ou
! 81: de'place's doivent e^tre mises a` jour selon ce qui est indique' dans le
! 82: fichier des re'fe'rences a` modifier.
! 83: Ce fichier n'est pre'sent que si le document comporte au moins une
! 84: refe'rence externe devant e^tre mise a` jour.
! 85: Le nom du fichier se termine par l'extension {\tt .REF}.
! 86: \end{itemize}
! 87:
! 88: \section{Fichier des re'fe'rences externes entrantes}
! 89:
! 90: Le fichier des re'fe'rences externes entrantes permet de connai^tre tous les
! 91: e'le'ments du document qui sont de'signe's par des re'fe'rences externes
! 92: (re'fe'rences appartenant a` d'autres documents), que ces re'fe'rences
! 93: repre'sentent des renvois ou des inclusions, avec ou sans expansion. Ce
! 94: fichier permet aussi de connai^tre tous les documents qui font re'fe'rence
! 95: a` chacun de ces e'le'ments.
! 96:
! 97: Le fichier des re'fe'rences externes entrantes est forme' d'une suite
! 98: d'enregistrements repre'sentant chacun un e'le'ment de'signe'
! 99: par d'autres documents. Il y a au moins un tel enregistrement~: si aucun
! 100: e'le'ment du document n'est de'signe' par un autre document, le fichier
! 101: n'existe pas.
! 102: Le e'le'ments du document qui sont de'signe's par des re'fe'rences appartenant
! 103: au me^me document (re'fe'rences internes) ne figurent pas dans ce fichier
! 104: puisque les liens internes sont repre'sente's dans le fichier pivot (voir
! 105: page~\pageref{refer}).
! 106:
! 107: Chaque enregistrement repre'sentant un e'le'ment de'signe' par d'autres
! 108: documents comporte le label qui identifie l'e'le'ment et la suite des
! 109: noms des documents comportant des re'fe'rences a` cet e'le'ment.
! 110: Il y a au moins un nom de document apre`s le label.
! 111: Le label est le me^me que celui qui identifie l'e'le'ment en question dans
! 112: le fichier pivot (voir page~\pageref{labelelem}).
! 113:
! 114: \begin{verbatim}
! 115: Fichier-Ref-Ext = Elem-Ref < Elem-Ref > .
! 116: Elem-Ref = Label Doc-Externe < Doc-Externe > .
! 117: \end{verbatim}
! 118:
! 119: \label{label}
! 120: Thot affecte un identificateur unique, appele' label, a` chaque e'le'ment
! 121: qu'il cre'e. Les labels engendre's par Thot sont de la forme {\tt Lnnn},
! 122: ou` nnn repre'sente un entier code' en ASCII, avec un nombre de
! 123: chiffres variable. Cet entier qui est appele' {\em nume'ro de label}.
! 124:
! 125: Un label est donc une suite de caracte`res termine'e par un octet nul.
! 126: Dans les versions pre'ce'dentes de Thot, un label e'tait
! 127: un entier positif court (deux octets) ou long (quatre octets).
! 128:
! 129: Dans les fichiers, un label est pre'ce'de' d'un octet qui identifie son type~:
! 130: {\tt Marque-Label-Chaine}. Dans les fichiers produits par d'anciennes
! 131: versions de Thot, on peut trouver aussi {\tt Marque-Label-Court} ou
! 132: {\tt Marque-Label-Long}, suivis d'un entier positif sur deux ou quatre
! 133: octets selon le type de label.
! 134:
! 135: \begin{verbatim}
! 136: Label = Marque-Label-Chaine CHAINECAR /
! 137: Marque-Label-Court Numero-Label-Court /
! 138: Marque-Label-Long Numero-Label-Long .
! 139: Marque-Label-Chaine = O11 .
! 140: Marque-Label-Court = O12 .
! 141: Marque-Label-Long = O13 .
! 142: Numero-Label-Court = NUMERO .
! 143: Numero-Label-Long = NUMERO NUMERO .
! 144: \end{verbatim}
! 145:
! 146: Chaque nom de document externe est une simple suite de caracte`res termine'e
! 147: par un octet nul. Il est pre'ce'de' d'une marque de document externe.
! 148: \begin{verbatim}
! 149: Doc-Externe = Marque-Doc-Ext Nom-Document .
! 150: Marque-Doc-Ext = O15 .
! 151: Nom-Document = CHAINECAR .
! 152: \end{verbatim}
! 153:
! 154: \section{Fichier des re'fe'rences a` modifier}
! 155:
! 156: Le fichier des re'fe'rences a` modifier indique tous les e'le'ments externes
! 157: (c'est a` dire appartenant a` d'autres documents) qui sont re'fe'rence's
! 158: par le document et qui ont change' de document ou ont e'te' de'truits.
! 159: Les re'fe'rences qui de'signent ces e'le'ments doivent e^tre mises a` jour,
! 160: que ces re'fe'rences repre'sentent des renvois ou des inclusions, avec ou
! 161: sans expansion.
! 162:
! 163: Le fichier des re'fe'rences a` modifier est forme' d'une suite
! 164: d'enregistrements repre'sentant chacun un e'le'ment externe de'place' ou
! 165: de'truit. Il y a au moins un tel enregistrement~: si le document ne contient
! 166: aucune re'fe'rence a` modifier, le fichier n'existe pas.
! 167:
! 168: Chaque enregistrement comporte dans l'ordre l'ancien label de l'e'le'ment,
! 169: le nouveau label de l'e'le'ment, le nom de l'ancien document auquel
! 170: appartenait cet e'le'ment et le nom du nouveau document auquel il appartient.
! 171: Les labels et noms de documents sont repre'sente's comme dans le fichier
! 172: des re'fe'rences externes entrantes.
! 173:
! 174: \begin{verbatim}
! 175: Fichier-Ref-Modif = El-Ext-Modif < El-Ext-Modif > .
! 176: El-Ext-Modif = Ancien-Label Nouveau-Label
! 177: Ancien-Doc Nouveau-Doc .
! 178: Ancien-Label = Label .
! 179: Nouveau-Label = Label .
! 180: Ancien-Doc = Doc-Externe .
! 181: Nouveau-Doc = Doc-Externe .
! 182: \end{verbatim}
! 183:
! 184: L'ancien label peut e^tre nul. Dans ce cas, l'enregistrement ne repre'sente
! 185: pas la modification d'un e'le'ment externe, mais le changement de nom
! 186: d'un document. Le nouveau label, bien que pre'sent, n'est pas significatif.
! 187: Les deux noms repre'sentent l'ancien nom du document et le nouveau nom du
! 188: document. Ce type d'enregistrement doit e^tre traite' de la fac,on suivante~:
! 189: il faut rechercher dans le document auquel correspond le fichier toutes les
! 190: re'fe'rences sortantes qui de'signent des e'le'ments contenus dans le document
! 191: portant l'ancien nom et, pour chacune de ces re'fe'rences, il faut changer le
! 192: nom du document contenant l'e'le'ment de'signe' par la re'fe'rence.
! 193:
! 194: Si l'ancien label n'est pas nul, il s'agit de la destruction ou du
! 195: de'placement d'un e'le'ment externe. Une destruction est indique'e par un
! 196: nouveau label nul. Dans ce cas, le nom du nouveau document n'est pas
! 197: significatif, bien qu'il soit pre'sent. Il faut rechercher dans le document
! 198: auquel correspond le fichier toutes les re'fe'rences sortantes qui de'signent
! 199: l'e'le'ment externe identifie' par l'ancien label et l'ancien document et
! 200: annuler toutes ces re'fe'rences.
! 201:
! 202: Un de'placement d'e'le'ment est indique' par un ancien label non nul et
! 203: un nouveau label non nul e'galement. Les deux noms de documents sont
! 204: significatifs dans ce cas. Ce type d'enregistrement indique que l'e'le'ment
! 205: qui portait l'ancien label dans l'ancien document se trouve maintenant dans le
! 206: nouveau document et porte le nouveau label. Dans le document auquel
! 207: correspond le fichier, il faut prendre en compte cette modification dans
! 208: toutes les re'fe'rences sortantes qui de'signent cet e'le'ment de'place'.
! 209:
! 210: \section{Organisation ge'ne'rale du fichier pivot}
! 211:
! 212: Le fichier pivot d'un document contient en te^te une indication de version,
! 213: la valeur du plus grand label du document, la liste des langues utilise'es
! 214: dans le document puis, de fac,on
! 215: facultative, un commentaire associe' a` l'ensemble du document.
! 216: Il contient ensuite, obligatoirement, l'indication de la classe du document,
! 217: c'est a` dire le nom du sche'ma de structure d'apre`s lequel a e'te'
! 218: construit le document. Si le document comporte des objets de diffe'rentes
! 219: natures, les classes de ces objets sont indique'es apre`s la classe du
! 220: document. De me^me, si des extensions de sche'ma s'ajoutent au sche'ma du
! 221: document, ces extensions sont indique'es apre`s la classe du document, avec
! 222: les classes des objets.
! 223: Apre`s les classes, apparaissent les parame`tres, puis les e'le'ments
! 224: associe's et enfin l'arbre principal du document. Parame`tres et e'le'ments
! 225: associe's sont facultatifs, mais l'arbre principal du document doit e^tre
! 226: pre'sent.
! 227:
! 228: \begin{verbatim}
! 229: Fichier-Pivot = [ Version ]
! 230: [ Label ]
! 231: < Marque-Langue Nom-Langue >
! 232: [ Commentaire ]
! 233: Classe-Document
! 234: < Classe-Objet >
! 235: < Marque-Param Param >
! 236: < Marque-Associe Suite-Associes >
! 237: Marque-Document Le-Document Marque-Fin-Document .
! 238: \end{verbatim}
! 239:
! 240: \subsection{Version}
! 241: \label{versionpivot}
! 242:
! 243: L'indication de version de la forme pivot peut e^tre absente pour les
! 244: fichiers produits par d'anciennes versions de Thot, mais elle doit e^tre
! 245: pre'sente dans les
! 246: fichiers produits par les versions 2 et suivantes. Elle comporte deux fois
! 247: l'octet {\tt Marque-Version} puis le nume'ro de la version de la forme
! 248: pivot, sur un octet. Le nume'ro de version courant est 4.
! 249:
! 250: \begin{verbatim}
! 251: Version = Marque-Version Marque-Version Numero-Version .
! 252: Marque-Version = O22 .
! 253: Numero-Version = OCTET .
! 254: \end{verbatim}
! 255:
! 256: \subsection{Plus grand label}
! 257:
! 258: De fac,on a` permettre l'affectation de labels uniques aux nouveaux e'le'ments
! 259: du document, la forme pivot comporte, apre`s l'identification de la version,
! 260: le nume'ro de label le plus grand qui ait e'te' attribue' par Thot a` un
! 261: e'le'ment du document.\footnote{Il ne s'agit pas ne'cessairement du plus grand
! 262: label qu'on rencontrera dans le document. En effet, un e'le'ment ayant un label
! 263: supe'rieur au plus grand label du document peut avoir e'te' de'truit et il
! 264: ne faut pas affecter son label a` un autre e'le'ment.}
! 265: Ce nume'ro est repre'sente' dans le fichier pivot de la me^me fac,on que tout
! 266: label (voir page~\pageref{label} pour la repre'sentation des labels).
! 267: Dans les fichiers pivots produits avec d'anciennes versions de Thot, ce
! 268: nume'ro de label peut e^tre absent, mais il doit e^tre pre'sent dans tous les
! 269: fichiers produits par les dernie`res versions de l'e'diteur.
! 270:
! 271: \subsection{Liste des langues utilise'es dans le document}
! 272: \label{listelangues}
! 273:
! 274: La liste de toutes les langues utilise'es dans le document apparai^t en te^te.
! 275: Elle est forme'e de la suite des noms de ces langues, chaque nom e'tant
! 276: pre'ce'de' d'un octet {\tt Marque-Langue}.
! 277:
! 278: \begin{verbatim}
! 279: Marque-Langue = O8 .
! 280: Nom-Langue = CHAINECAR .
! 281: \end{verbatim}
! 282:
! 283: La langue dans laquelle est e'crit chaque e'le'ment de texte du document est
! 284: indique'e par le rang de cette langue dans la liste des langues (voir
! 285: section~\ref{contenu}).
! 286:
! 287: \subsection{Commentaires}
! 288: \label{comment}
! 289:
! 290: Le commentaire attache' au document est repre'sente' de la me^me fac,on que
! 291: les commentaires attache's aux e'le'ments du document (voir page~\pageref{prescom}).
! 292: Un commentaire est repre'sente' par une {\tt Marque-Commentaire} suivie de la
! 293: longueur du commentaire (sur deux octets) et du contenu du commentaire,
! 294: qui est une suite d'octets quelconques, de la longueur indique'e.
! 295:
! 296: Dans les premie`res versions de Thot, les commentaires e'taient repre'sente's
! 297: diffe'remment, par une {\tt Marque-Commentaire-Ancien} suivie d'une
! 298: {\tt Marque-Debut} et du texte du commentaire, qui e'tait une chai^ne
! 299: de caracte`res de longueur quelconque ne contenant pas d'octets nuls et
! 300: termine'e par un octet nul. Cette chai^ne e'tait suivie d'une
! 301: {\tt Marque-Fin}. De fac,on a` permettre la pre'sence d'octets nuls dans le
! 302: contenu du commentaire, cette repre'sentation a e'te' remplace'e par celle
! 303: qui est de'crite plus haut, qui doit de'sormais e^tre la seule produite.
! 304: Cependant, pour assurer la compatibilite' avec les versions pre'ce'dentes,
! 305: Thot accepte en lecture les deux formes de commentaires.
! 306:
! 307: \begin{verbatim}
! 308: Commentaire = Marque-Commentaire Longueur-Commentaire
! 309: Contenu-Commentaire /
! 310: Marque-Commentaire-Ancien Marque-Debut
! 311: Texte-Commentaire Marque-Fin .
! 312: Marque-Commentaire = O5 .
! 313: Longueur-Commentaire = NUMERO .
! 314: Contenu-Commentaire = CHAINEOCT .
! 315: Marque-Commentaire-Ancien = O3 .
! 316: Marque-Debut = O4 .
! 317: Texte-Commentaire = CHAINECAR .
! 318: Marque-Fin = O6 .
! 319: \end{verbatim}
! 320:
! 321: Les commentaires sont ignore's par l'e'diteur Thot qui se contente de les
! 322: conserver intacts lorsqu'un document est lu puis de les e'crire sans
! 323: changement lorsque le document est sauve' dans un fichier. Chaque commentaire
! 324: est vu comme une suite d'octets quelconque et n'est pas interpre'te' par
! 325: l'e'diteur.
! 326:
! 327: \subsection{Classes}
! 328:
! 329: La classe du document, ses extensions et les classes des diffe'rentes natures
! 330: d'objets (classes externes) sont repre'sente'es de fac,on identique~: une
! 331: marque {\tt Marque-Classe} ou {\tt Marque-Extension} suivie du nom de sche'ma
! 332: de structure ou d'extension (ce nom est termine' par un octet nul), du code
! 333: de ce sche'ma et du nom du sche'ma de pre'sentation
! 334: a` utiliser pour ce sche'ma de structure ou d'extension. Le nom de sche'ma de
! 335: pre'sentation peut se re'duire a` un octet nul si aucun sche'ma de
! 336: pre'sentation particulier n'est requis.
! 337: Toutes les classes d'objets utilise'es dans le document
! 338: (et seulement celles qui sont re'ellement utilise'es dans ce document) sont
! 339: indique'es ainsi, qu'elles soient explicitement appele'es dans le sche'ma
! 340: de structure du document ou qu'elles aient e'te' appele'es gra^ce a` une
! 341: re`gle {\tt NATURE}.
! 342:
! 343: Le rang d'une classe ou d'une extension dans cette liste est appele'
! 344: nume'ro de classe. On verra plus loin qu'il sert a` indiquer dans quel sche'ma
! 345: de structure est de'fini un attribut, ou a` quelle classe appartient un objet.
! 346: La classe du document porte le nume'ro 0 et les classes d'objets et d'extension
! 347: sont nume'rote'es a` partir de 1.
! 348:
! 349: Le code qui figure apre`s le nom du sche'ma de structure ou d'extension est
! 350: obligatoire a` partir de la version 4 de la forme pivot. C'est un
! 351: identificateur unique code' sur deux octets qui est affecte' a` chaque
! 352: compilation du sche'ma.
! 353: Cela permet de ve'rifier que les sche'mas de structure charge's pour le
! 354: document qu'on lit sont bien ceux qui ont e'te' utilise's la derniere fois
! 355: que le document a e'te' sauve'. En cas de diffe'rence, la validite' de toute
! 356: la structure logique du document lu est ve'rifie'e par rapport au sche'ma
! 357: de structure. Cela e'vite de produire des documents de structure incorrecte
! 358: lorsque le sche'ma de structure a e'te' modifie'.
! 359:
! 360: \begin{verbatim}
! 361: Classe-Document = Classe .
! 362: Classe-Objet = Classe .
! 363: Classe = Marque-ClassExt Nom-Schema-Struct
! 364: [ Code-Schema-Struct ] NomSchema-Pres .
! 365: Marque-ClassExt = Marque-Classe / Marque-Extension .
! 366: Marque-Classe = O14 .
! 367: Marque-Extension =O10 .
! 368: Nom-Schema-Struct=CHAINECAR .
! 369: Code-Schema-Struc=NUMERO .
! 370: NomSchema-Pres = CHAINECAR .
! 371: \end{verbatim}
! 372:
! 373: \subsection{Parame`tres}
! 374:
! 375: Si certains parame`tres ont une valeur dans le document, ces valeurs de
! 376: parame`tres suivent les noms des classes d'objets, ou le nom de la classe du
! 377: document s'il n'y a pas de classes d'objets. Chaque valeur de
! 378: parame`tre est pre'ce'de'e d'un octet {\tt Marque-Param} indiquant qu'il
! 379: s'agit d'une valeur de parame`tre. Les valeurs de parame`tres sont
! 380: repre'sente'es comme tout e'le'ment structure' (voir page~\pageref{elstruct}).
! 381: Pour un document,
! 382: les parame`tres possibles, qui sont de'finis dans le sche'ma de structure,
! 383: n'ont pas tous une valeur. Seuls ceux qui ont une valeur apparaissent ainsi
! 384: en te^te du fichier pivot du document. Si aucun parame`tre n'a de
! 385: valeur, ou si aucun parame`tre n'est de'fini dans le sche'ma de structure du
! 386: document, aucune valeur de parame`tre n'est pre'sente dans le fichier
! 387: pivot. En revanche, si un parame`tre a une valeur, il ne peut en avoir qu'une
! 388: pour un document et donc toutes les valeurs de parame`tres d'un document sont
! 389: de types diffe'rents.
! 390:
! 391: \begin{verbatim}
! 392: Marque-Param = O16 .
! 393: Param = Element .
! 394: \end{verbatim}
! 395:
! 396: \subsection{Ele'ments associe's}
! 397:
! 398: Apre`s les valeurs des parame`tres viennent les e'le'ments associe's du document
! 399: (ces e'le'ments peuvent e^tre absents). Les e'le'ments associe's sont groupe's
! 400: par type~: un document peut avoir plusieurs e'le'ments associe's de me^me type.
! 401: Un octet {\tt Marque-Associe} pre'ce`de chaque suite d'e'le'ments du me^me
! 402: type. Dans ces suites, les e'le'ments associe's sont repre'sente's comme tout
! 403: e'le'ment structure'.
! 404:
! 405: Pour chaque type d'e'le'ments associe's, il n'y a normalement qu'un e'le'ment
! 406: qui posse`de un ou plusieurs fils~; ce sont ces fils qui sont les e'le'ments
! 407: associe's au sens strict. Dans les documents produits par d'anciennes versions
! 408: de Thot, l'e'le'ment racine est absent et les e'le'ments associe's eux-me^mes
! 409: apparaissent directement apre`s la {\tt Marque-Associe}.
! 410:
! 411: \begin{verbatim}
! 412: Marque-Associe = O2 .
! 413: Suite-Associes = Element < Element > .
! 414: \end{verbatim}
! 415:
! 416: \subsection{Arbre principal}
! 417:
! 418: Les e'le'ments associe's sont suivis du document lui-me^me, ou plus exactement
! 419: de la repre'sentation de son arbre principal. Cette repre'sentation de l'arbre
! 420: principal est pre'ce'de'e d'un octet {\tt Marque-Document} et suivie d'un octet
! 421: {\tt Marque-Fin-Document}. Le document est repre'sente' comme tout e'le'ment
! 422: structure'.
! 423:
! 424: \begin{verbatim}
! 425: Marque-Document = O19 .
! 426: Le-Document = Element .
! 427: Marque-Fin-Document = O26 .
! 428: \end{verbatim}
! 429:
! 430: \section{Ele'ments structure's}
! 431: \label{elstruct}
! 432:
! 433: Rappelons que tous les types d'e'le'ments de'finis par une structure logique
! 434: ge'ne'rique sont de'crits dans la table des types d'e'le'ments du sche'ma de
! 435: structure. Cette table contient, dans l'ordre, les types de base (chai^ne de
! 436: caracte`res, symbole mathe'matique, e'le'ment graphique, image, marque de
! 437: page...), puis les constantes, puis tous les e'le'ments structure's, y compris
! 438: les e'le'ments associe's et parame`tres. Quelle que soit sa cate'gorie, un type
! 439: d'e'le'ment peut e^tre repe're' par son rang dans cette table (le rang est
! 440: e'galement appele' nume'ro du type). Ce rang indique la cate'gorie de l'e'le'ment~:
! 441: les premiers nume'ros sont ceux des types de base, les suivants sont ceux
! 442: des e'le'ments structure's.
! 443:
! 444: Dans la table des types on trouve des constantes. Comme tous les autres types
! 445: d'e'le'ments, une constante porte un nom. De plus, elle a une valeur de'finie
! 446: dans le sche'ma de structure~: une chai^ne de caracte`res.
! 447:
! 448: Les e'le'ments structure's (parame`tres, e'le'ments associe's, e'le'ments du
! 449: document) sont tous repre'sente's de la me^me fac,on.
! 450:
! 451: \subsection{Type d'e'le'ment}
! 452:
! 453: Chaque e'le'ment commence par une indication de son type. Le type est indique'
! 454: par un octet {\tt Marque-Type} suivi du nume'ro de type de l'e'le'ment
! 455: (un entier positif sur deux octets).
! 456: Dans le cas ou` le type de l'e'le'ment est de'fini dans un sche'ma de structure
! 457: diffe'rent de celui ou` est de'fini le type de l'e'le'ment dont il est le
! 458: descendant direct, le nouveau sche'ma de structure est indique', avant
! 459: la {\tt Marque-Type} et le nume'ro de type, par un octet {\tt Marque-Classe}
! 460: (me^me s'il s'agit d'une extension de sche'ma)
! 461: suivi du nume'ro de la nouvelle classe d'objets. Rappelons que le nume'ro de
! 462: classe est le rang du nom de la classe dans la liste des noms de classes et
! 463: des extensions qui se trouve en te^te du document.
! 464:
! 465: \subsection{Inclusion}
! 466:
! 467: Si l'e'le'ment repre'sente l'inclusion avec expansion ou semi-expansion d'un
! 468: autre e'le'ment,
! 469: l'indication de type est suivie d'une {\tt Marque-Inclus} et de
! 470: l'identification de l'e'le'ment inclus. Cette identification est compose'e,
! 471: comme dans un e'le'ment re'fe'rence (voir section~\ref{refer}), du type de
! 472: la re'fe'rence (dans ce cas c'est toujours une inclusion), et de la
! 473: de'signation de l'e'le'ment inclus.
! 474:
! 475: Si l'e'le'ment repre'sente une inclusion avec semi-expansion, la de'signation
! 476: de l'e'le'ment inclus est suivie d'une {\tt Marque-SemiExpansion}.
! 477:
! 478: \subsection{Label}
! 479: \label{labelelem}
! 480:
! 481: Apre`s l'indication de type (et les e'ventuelles indications d'inclusion et
! 482: de protection), apparai^t un label qui identifie l'e'le'ment de fac,on unique
! 483: dans le document. Il s'agit d'une chaine de caracteres qui est utilise'e dans les
! 484: re'fe'rences qui de'signent l'e'le'ment et dans le fichier des re'fe'rences
! 485: externes entrantes.
! 486: Dans les versions pre'ce'dentes de Thot, seuls certains e'le'ments portaient
! 487: un label\footnote{Il s'agissait de l'e'le'ment racine du document, des
! 488: e'le'ments de'signe's par une re'fe'rence interne ou externe et des e'le'ments
! 489: exportables, me^me s'ils n'e'taient de'signe's par aucune re'fe'rence.}.
! 490: C'est pourquoi certains fichiers pivots peuvent ne pas comporter de label
! 491: pour tous les e'le'ments~; mais dans les fichiers pivots produits avec
! 492: les versions re'centes de l'e'diteur Thot, {\em tous} les e'le'ments du
! 493: document portent un label (voir page~\pageref{label} pour la repre'sentation
! 494: du label).
! 495:
! 496: \subsection{Holophraste}
! 497:
! 498: Si l'e'le'ment est holophraste'\footnote{Tout e'le'ment peut e^tre
! 499: holophraste'. Il est alors affiche' et imprime' de fac,on particulie`re~: son
! 500: image est remplace'e par le nom de son type, donnant ainsi une forme plus
! 501: compacte de l'e'le'ment.}, un octet {\tt Marque-Holophraste} apparai^t apre`s
! 502: le label et avant les attributs.
! 503:
! 504: \subsection{Attributs}
! 505:
! 506: Chaque e'le'ment peut e^tre affecte' d'un ou plusieurs attributs, qui portent sur
! 507: l'e'le'ment lui-me^me et tout son contenu. Seuls sont indique's dans le fichier
! 508: pivot les attributs qui ne sont pas impose's dans le sche'ma de structure par
! 509: une instruction {\tt WITH}. Cependant les attributs impose's de type re'fe'rence
! 510: apparaissent dans le fichier pivot. Dans un sche'ma de structure, un attribut
! 511: porte un nom, posse`de un type et a, selon son type, certaines valeurs
! 512: possibles. Il y a quatre types d'attributs~:
! 513: \begin{description}
! 514: \item[Entier~:]
! 515: l'attribut prend une valeur entie`re comprise entre -32000 et 32000.
! 516: \item[Texte~:]
! 517: l'attribut prend pour valeur une chai^ne de caracte`res.
! 518: \item[Re'fe'rence~:]
! 519: l'attribut prend pour valeur une re'fe'rence a` un e'le'ment d'un type donne'.
! 520: \item[Enume're'~:]
! 521: l'attribut prend sa valeur dans une liste donne'e des valeurs possibles.
! 522: Chacune de ces valeurs a un nume'ro d'ordre et un nom. La valeur d'un attribut
! 523: de type e'nume're' est de'signe'e par ce nume'ro d'ordre.
! 524: \end{description}
! 525:
! 526: Un attribut est de'signe' par son rang dans la table des attributs du sche'ma
! 527: de structure (ce rang est e'galement appele' ``nume'ro de l'attribut''). Chaque
! 528: indication d'attribut comprend, dans l'ordre~:
! 529:
! 530: \begin{itemize}
! 531: \item
! 532: un octet {\tt Marque-Attribut},
! 533: \item
! 534: le nume'ro de la classe ou` l'attribut est de'fini~: ze'ro pour la classe du
! 535: document ou le rang d'une classe d'objets dans la liste des classes figurant
! 536: en te^te du fichier pivot,
! 537: \item
! 538: le nume'ro de l'attribut dans le sche'ma de structure de la classe ou` il est
! 539: de'fini,
! 540: \item
! 541: la valeur de l'attribut, code'e selon le type de l'attribut~:
! 542: \begin{description}
! 543: \item[Entier~:]
! 544: la valeur absolue de l'attribut, code'e sur deux octets, et suivie de son
! 545: signe, un caracte`re {\tt '+'} ou {\tt '-'}.
! 546: \item[Texte~:]
! 547: la chai^ne de caracte`res qui repre'sente la valeur de l'attribut, termine'e
! 548: par un octet nul, ou un simple octet nul si l'attribut n'a pas de valeur.
! 549: \item[Re'fe'rence~:]
! 550: l'e'le'ment de'signe' par l'attribut, repre'sente' de la me^me
! 551: fac,on que dans un e'le'ment re'fe'rence (voir section~\ref{refer}),
! 552: mais il ne comporte pas l'octet Marque-Refer.
! 553: \item[Enume're'~:]
! 554: le nume'ro de la valeur de l'attribut affecte'e a` l'e'le'ment.
! 555: \end{description}
! 556: \end{itemize}
! 557:
! 558: \subsection{Pre'sentation, commentaire et contenu}
! 559: \label{prescom}
! 560:
! 561: Apre`s les attributs affecte's a` l'e'le'ment vient la liste des re`gles de
! 562: pre'sentation qui s'appliquent spe'cifiquement a` cet e'le'ment. Un e'le'ment
! 563: peut ne pas avoir de re`gle de pre'sentation spe'cifique, mais il peut aussi
! 564: en avoir une ou plusieurs. Les re`gles de pre'sentation sont de'crites plus
! 565: loin. Un commentaire associe' a` l'e'le'ment peut suivre les re`gles de
! 566: pre'sentation spe'cifiques. Il est repre'sente' de la me^me fac,on que le
! 567: commentaire du document (voir page~\pageref{comment}). Enfin vient le
! 568: contenu de l'e'le'ment (voir page~\pageref{contenu})~; dans le cas ou`
! 569: l'e'le'ment repre'sente l'inclusion d'un autre e'le'ment, il n'y a pas
! 570: de contenu.
! 571:
! 572: \begin{verbatim}
! 573: Element = Type-Element
! 574: [ Marque-Inclus TypeReference
! 575: Designation [ Marque-SemiExpansion ] ]
! 576: [ Label ]
! 577: [ Marque-Holophraste ]
! 578: < Marque-Attribut Numero-Classe Numero-Attribut
! 579: Valeur-Attribut >
! 580: < Regle-Presentation >
! 581: [ Commentaire ]
! 582: [ Contenu ] .
! 583:
! 584: Type-Element = [ Marque-Classe Numero-Classe ]
! 585: Marque-Type Numero-Type .
! 586: Numero-Classe = NUMERO .
! 587: Marque-Type = O20 .
! 588: Numero-Type = NUMERO .
! 589:
! 590: Marque-Inclus = O9 .
! 591: TypeReference = Marque-Renvoi /
! 592: Marque-Inclusion /
! 593: Marque-Expansion .
! 594: Marque-Renvoi = 'r' .
! 595: Marque-Inclusion ='i' .
! 596: Marque-Expansion ='e' .
! 597: Marque-SemiExpansion = O21 .
! 598:
! 599: Marque-Attribut = O1 .
! 600: Numero-Attribut = NUMERO .
! 601: Valeur-Attribut = Valeur-Absolue Signe /
! 602: Valeur-Texte /
! 603: TypeReference Designation /
! 604: Numero-Valeur .
! 605: Valeur-Absolue = NUMERO .
! 606: Signe = '+' / '-' .
! 607: Valeur-Texte = CHAINECAR .
! 608: Numero-Valeur = NUMERO .
! 609: \end{verbatim}
! 610:
! 611: \section{Re`gles de pre'sentation spe'cifiques}
! 612:
! 613: Dans chaque e'le'ment peuvent apparai^tre une ou plusieurs re`gles de
! 614: pre'sentation, ou me^me aucune. S'il n'y a pas de re`gle de pre'sentation,
! 615: l'e'le'ment sera affiche' ou imprime' selon toutes les re`gles de'finies dans le
! 616: sche'ma de pre'sentation. Si des re`gles de pre'sentation sont pre'sentes, chacune
! 617: sera applique'e a` l'e'le'ment a` la place de (ou modifiera) la re`gle de me^me
! 618: type de'finie dans le sche'ma de pre'sentation, seules les re`gles du sche'ma de
! 619: pre'sentation qui ne sont pas rede'finies dans l'e'le'ment lui e'tant applique'es
! 620: telles quelles.
! 621:
! 622: Dans le fichier pivot chaque re`gle de pre'sentation spe'cifique commence par une
! 623: {\tt Marque-Regle}. Cette marque est suivie du nume'ro de la vue a` laquelle
! 624: se rapporte la re`gle, du type de la boi^te concerne'e et du contenu de la
! 625: re`gle. Le nume'ro de vue {\tt Numero-Vue} est le rang de la vue dans la table
! 626: des vues du sche'ma de pre'sentation. Le type de la boi^te {\tt Type-Boite}
! 627: vaut 0 si la re`gle s'applique a` la boi^te de l'e'le'ment lui-me^me. Si la re`gle
! 628: s'applique a` une boi^te de pre'sentation associe'e a` l'e'le'ment, {\tt Type-Boite}
! 629: est le nume'ro de cette boi^te de pre'sentation (rang dans la table des boi^tes
! 630: de pre'sentation, qui est une partie du sche'ma de pre'sentation). Le contenu de
! 631: la re`gle diffe`re selon le type de re`gle. Ce type est indique' par un caracte`re
! 632: au de'but du contenu.
! 633:
! 634: \begin{verbatim}
! 635: Regle-Presentation= Marque-Regle Numero-Vue Type-Boite Contenu-Regle.
! 636: Marque-Regle = O7 .
! 637: Numero-Vue = NUMERO .
! 638: Type-Boite = NUMERO .
! 639: Contenu-Regle = Marque-Hauteur Dimension /
! 640: Marque-Largeur Dimension /
! 641: Marque-Position Distance Signe /
! 642: Marque-Corps Distance /
! 643: Marque-Style CARACTERE /
! 644: Marque-Famille CARACTERE /
! 645: Marque-NoBreak1 Distance /
! 646: Marque-NoBreak2 Distance /
! 647: Marque-Ajuste Alignement /
! 648: Marque-Justif Booleen /
! 649: Marque-CoupureMots Booleen /
! 650: Marque-Retrait Distance Signe /
! 651: Marque-Interligne Distance /
! 652: Marque-Souligne CARACTERE /
! 653: Marque-SoulEpaisseur CARACTERE /
! 654: Marque-StyleTrait CARACTERE /
! 655: Marque-EpaisseurTrait Distance /
! 656: Marque-TrameRemplissage Indice /
! 657: Marque-CouleurFond Indice /
! 658: Marque-CouleurTrace Indice /
! 659: Marque-ImageDescriptor CroppingFrame
! 660: ImagePresentation
! 661: ImageType .
! 662: \end{verbatim}
! 663:
! 664: \subsection{Dimensions}
! 665:
! 666: Une re`gle de hauteur ou une re`gle de largeur peut e^tre absolue ou
! 667: relative. Ceci est indique' par le premier caracte`re ({\tt Type-Dimension})
! 668: qui suit la marque de hauteur ou de largeur.
! 669:
! 670: Si la re`gle de hauteur ou de largeur est absolue, elle est applique'e
! 671: {\em a` la place} de la re`gle indique'e par le sche'ma de pre'sentation et les
! 672: parame`tres qui suivent le {\tt Type-Dimension} constituent cette re`gle de
! 673: hauteur (ou de largeur) a` appliquer a` l'e'le'ment. La {\tt Valeur}
! 674: (un entier sur deux octets) indique la hauteur (ou la largeur) de la boi^te
! 675: de l'e'le'ment~; l'{\tt Unite-Dimension} indique si cette hauteur (ou
! 676: largeur) est exprime'e en points typographiques ({\tt 'P'}) ou en dixie`mes
! 677: de caracte`res ({\tt 'C'}), le cas {\tt Pour-Cent} e'tant exclus~; enfin le
! 678: {\tt Signe} est toujours {\tt '+'}.
! 679:
! 680: Si la re`gle de hauteur ou de largeur est relative, elle {\em modifie}
! 681: la re`gle indique'e par le sche'ma de pre'sentation~: la hauteur (ou la largeur)
! 682: de l'e'le'ment auquel s'applique la re`gle est relative a` celle de l'e'le'ment
! 683: (dit de re'fe'rence) indique' par la re`gle de hauteur (ou de largeur) du
! 684: sche'ma de pre'sentation.
! 685: Seule la relation qui lie ces dimensions est indique'e dans la re`gle
! 686: spe'cifique. Si l'{\tt Unite-Dimension} est {\tt Pour-Cent} (code' {\tt '\%'}),
! 687: la {\tt Valeur} indique le pourcentage de la hauteur (ou de la largeur)
! 688: de la boi^te a` laquelle s'applique la re`gle, par rapport a` la hauteur (ou la largeur) de la boi^te de l'e'le'ment de re'fe'rence~; et dans ce cas le
! 689: {\tt Signe} est toujours {\tt '+'}. Si l'{\tt Unite-Dimension} est
! 690: {\tt Point-Typo} ou {\tt Caracteres}, la {\tt Valeur} indique la diffe'rence
! 691: entre la hauteur de la boi^te de re'fe'rence et celle de l'e'le'ment auquel
! 692: s'applique la re`gle, cette diffe'rence e'tant exprime'e en points
! 693: typographiques ou en dixie`mes de caracte`res, selon l'{\tt Unite-Dimension}.
! 694: Le signe indique alors si la boi^te de l'e'le'ment auquel s'applique la
! 695: re`gle est plus petite (signe {\tt '-'}) ou plus grande (signe {\tt '+'})
! 696: que la boi^te de re'fe'rence.
! 697:
! 698: Les deux unite's de longueur que sont le point typographique (1/72 pouce) et
! 699: le dixie`me de caracte`re permettent d'exprimer des distances absolues ou
! 700: relatives. La premie`re est une unite' absolue, la seconde est relative.
! 701: Avec cette unite' relative, un changement de corps provoque un
! 702: changement de la hauteur (ou de la largeur, selon le type de la re`gle),
! 703: alors que la hauteur (ou la largeur) reste fixe si l'unite' est le point
! 704: typographique.
! 705:
! 706: \begin{verbatim}
! 707: Marque-Hauteur = 'H' .
! 708: Marque-Largeur = 'L' .
! 709: Dimension = Type-Dimension Valeur Unite-Dimension Signe .
! 710: Type-Dimension = Absolue / Relative .
! 711: Absolue = 'A' .
! 712: Relative = 'R' .
! 713: Valeur = NUMERO .
! 714: Unite-Dimension= Point-Typo / Caracteres / Pour-Cent .
! 715: Point-Typo = 'P' .
! 716: Caracteres = 'C' .
! 717: Pour-Cent = '%' .
! 718: \end{verbatim}
! 719:
! 720: \subsection{Position}
! 721: \label{position}
! 722:
! 723: Deux types de re`gles permettent de changer la position horizontale ou
! 724: la position verticale de la boi^te associe'e a` l'e'le'ment qui porte la re`gle.
! 725: Comme pour une re`gle de hauteur ou de largeur relative, il s'agit d'une
! 726: modification de la re`gle de'finie dans le sche'ma de pre'sentation. La
! 727: re`gle de pre'sentation spe'cifique indique de quelle distance la boi^te
! 728: doit e^tre de'cale'e par rapport a` la position de'finie dans le sche'ma de
! 729: pre'sentation. Apre`s le type de la re`gle, apparaissent, dans l'ordre, cette
! 730: distance de de'calage et le signe (le sens) du de'calage.
! 731:
! 732: \begin{verbatim}
! 733: Marque-Position = Marque-Position-X / Marque-Position-Y .
! 734: Marque-Position-X = 'X' .
! 735: Marque-Position-Y = 'Y' .
! 736: Distance = Valeur Unite .
! 737: Unite = Point-Typo / Caracteres .
! 738: \end{verbatim}
! 739:
! 740: \subsection{Polices de caracte`res}
! 741:
! 742: Trois types de re`gles de pre'sentation permettent de de'terminer la police a`
! 743: utiliser pour afficher le texte contenu dans un e'le'ment. La force de corps
! 744: est indique'e par la re`gle Corps, qui est constitue'e d'une {\tt Marque-Corps}
! 745: suivie d'une distance~: une valeur entie`re et une unite'. Cette distance
! 746: est repre'sente'e, de la me^me fac,on que dans une re`gle de position
! 747: (voir section~\ref{position}), par un nombre (sur deux octets) et un caracte`re
! 748: indiquant l'unite'. Si l'unite' est le point typographique, le nombre indique
! 749: la force de corps en points~; si l'unite' est le caracte`re, le nombre indique
! 750: le niveau de taille (1=tout petit, 2=petit, etc.) et ce niveau de taille est
! 751: interpre'te' par le Me'diateur pour le choix du corps re'el, en fonction d'une
! 752: table de correspondance que l'utilisateur peut contro^ler.
! 753:
! 754: La forme des caracte`res est de'termine'e par deux re`gles~: la re`gle de style
! 755: et la re`gle de famille. Chacune de ces re`gles n'a qu'un parame`tre, un
! 756: caracte`re. Selon la re`gle, ce caracte`re repre'sente le style de la police
! 757: a` utiliser ({\tt 'R'} = romain, {\tt 'B'} = gras, {\tt 'I'} = italique,
! 758: {\tt 'O'} = oblique, {\tt 'G'} = gras italique, {\tt 'Q'} = gras oblique...)
! 759: ou sa famille ({\tt 'T'} = Times, {\tt 'H'} = Helvetica, {\tt 'C'} =
! 760: Courier...).
! 761:
! 762: \begin{verbatim}
! 763: Marque-Corps = 'T' .
! 764: Marque-Style = 'S' .
! 765: Marque-Famille = 'F' .
! 766: \end{verbatim}
! 767:
! 768: \subsection{Coupures}
! 769:
! 770: Une re`gle de hauteur minimum avant coupure ({\tt NoBreak1}) indique que
! 771: la boi^te de l'e'le'ment auquel elle se rapporte ne peut e^tre coupe'e par
! 772: un saut de page qu'au-dela` d'une certaine distance depuis le haut de la
! 773: boi^te. L'unique parame`tre apre`s la {\tt Marque-NoBreak1} identifiant
! 774: la re`gle est cette distance minimum avant coupure, qui est exprime'e de
! 775: la me^me fac,on que dans une re`gle de positionnement (voir section~\ref{position}).
! 776:
! 777: De me^me, une re`gle de hauteur minimum apre`s coupure ({\tt NoBreak2})
! 778: indique que la boi^te de l'e'le'ment auquel elle se rapporte ne peut e^tre
! 779: coupe'e par un saut de page qu'avant une certaine distance du bas de la
! 780: boi^te. Cette hauteur minimum est exprime'e de la me^me fac,on que dans
! 781: la re`gle pre'ce'dente.
! 782:
! 783: \begin{verbatim}
! 784: Marque-NoBreak1 = '1' .
! 785: Marque-NoBreak2 = '2' .
! 786: \end{verbatim}
! 787:
! 788: \subsection{Mise en lignes}
! 789:
! 790: Une re`gle d'alignement modifie le mode d'alignement des lignes de texte
! 791: contenues dans l'e'le'ment sur lequel elle porte. Ce type de re`gle n'a qu'un
! 792: parame`tre, le mode d'alignement, qui indique si les lignes de texte doivent
! 793: e^tre aligne'es sur le co^te' gauche de l'e'le'ment (fer a` gauche), sur son co^te'
! 794: droit (fer a` droite), si elles doivent e^tre centre'es dans l'e'le'ment ou encore
! 795: aligne'es a` gauche avec des pointille's pour comple'ter la dernie`re ligne.
! 796:
! 797: \begin{verbatim}
! 798: Marque-Ajuste = 'A' .
! 799: Alignement = Align-Gauche / Align-Droite / Centre / Pointille .
! 800: Align-Gauche = 'G' .
! 801: Align-Droite = 'D' .
! 802: Centre = 'C' .
! 803: Pointille = 'P' .
! 804: \end{verbatim}
! 805:
! 806: Une re`gle de justification indique seulement si les lignes de texte contenues
! 807: dans l'e'le'ment doivent e^tre justifie'es, c'est a` dire e'tire'es de fac,on a`
! 808: atteindre les bords de leur boi^te englobante, ou si elles conservent leur
! 809: longueur propre, avec un espace fixe entre les mots. Dans le cas ou` les
! 810: lignes sont justifie'es, le mode d'alignement, spe'cifie' par une re`gle du type
! 811: pre'ce'dent, n'a d'utilite' que pour de'terminer la position horizontale de la
! 812: dernie`re ligne des boi^tes mises en lignes (par exemple les paragraphes),
! 813: puisque les autres lignes occupent toute la largeur de leur boi^te
! 814: englobante.
! 815: Dans une re`gle de justification, la marque identifiant le type de re`gle est
! 816: suivie d'un caracte`re qui indique si la justification doit e^tre faite
! 817: ({\tt 'V'}) ou non ({\tt 'F'}).
! 818:
! 819: \begin{verbatim}
! 820: Marque-Justif = 'J' .
! 821: Booleen = Vrai / Faux .
! 822: Vrai = 'V' .
! 823: Faux = 'F' .
! 824: \end{verbatim}
! 825:
! 826: Une re`gle de coupure des mots indique si les mots doivent e^tre coupe's en
! 827: fin de ligne ou non. Cette re`gle est forme'e comme une re`gle de
! 828: justification~: la marque identifiant le type de re`gle est suivie d'un
! 829: caracte`re qui indique si la coupure des mots doit e^tre faite
! 830: ({\tt 'V'}) ou non ({\tt 'F'}).
! 831:
! 832: \begin{verbatim}
! 833: Marque-CoupureMots = 'C' .
! 834: \end{verbatim}
! 835:
! 836: Une re`gle retrait indique le de'calage horizontal du de'but de la premie`re
! 837: ligne des boi^tes mises en lignes. Si le de'calage est positif, la premie`re
! 838: ligne est de'cale'e a` droite, en retrait des autres~; si le de'calage est
! 839: ne'gatif, la premie`re ligne est de'cale'e a` gauche. Apre`s l'indication du type
! 840: de re`gle, le de'calage est repre'sente' par son amplitude (une distance
! 841: code'e comme dans une re`gle de positionnement, voir section~\ref{position})
! 842: et son signe (un caracte`re {\tt '+'} ou {\tt '-'}).
! 843:
! 844: Une re`gle interligne donne la distance qui se'pare deux lignes conse'cutives
! 845: dans une boi^te mise en lignes. La marque indiquant le type de la re`gle est
! 846: suivie d'une distance, code'e comme dans une re`gle de positionnement
! 847: (voir section~\ref{position}), qui est la valeur de l'interligne.
! 848:
! 849: \begin{verbatim}
! 850: Marque-Retrait = 'R' .
! 851: Marque-Interligne='I' .
! 852: \end{verbatim}
! 853:
! 854: \subsection{Soulignement}
! 855:
! 856: Une re`gle de soulignement modifie le mode de soulignement des lignes de texte
! 857: contenues dans l'e'le'ment sur lequel elle porte. Ce type de re`gle n'a qu'un
! 858: parame`tre, le mode de soulignement, qui indique si les lignes de texte doivent
! 859: e^tre souligne'es, surligne'es ou biffe'es. Dans une re`gle de soulignement,
! 860: la marque identifiant le type de re`gle est suivie d'un caracte`re identifiant
! 861: le type de soulignement ({\tt 'U'} = souligne', {\tt 'O'} = surligne',
! 862: {\tt 'C'} = biffe')
! 863:
! 864: \begin{verbatim}
! 865: Marque-Souligne = 'U' .
! 866: \end{verbatim}
! 867:
! 868: Une re`gle d'e'paisseur de soulignement modifie l'e'paisseur du trait de soulignement des lignes de texte
! 869: contenues dans l'e'le'ment sur lequel elle porte. Ce type de re`gle n'a qu'un
! 870: parame`tre, l'e'paisseur de soulignement, qui indique si le trait doit e^tre fin ou e'pais.
! 871: Dans une re`gle d'e'paisseur de soulignement,
! 872: la marque identifiant le type de re`gle est suivie d'un caracte`re identifiant
! 873: le type d'e'paisseur ({\tt 'N'} = fin, {\tt 'T'} = e'pais)
! 874:
! 875: \begin{verbatim}
! 876: Marque-SoulEpaisseur = 'E' .
! 877: \end{verbatim}
! 878:
! 879: \subsection{Style de trait}
! 880:
! 881: Une re`gle de style de trait modifie le style du trace' des e'le'ments de base
! 882: graphiques contenus dans l'e'le'ment sur lequel porte la re`gle. Ce type de
! 883: re`gle n'a qu'un parame`tre qui indique si les traits doivent e^tre continus,
! 884: pointille's ou tirete's. La marque identifiant le type de re`gle est suivie
! 885: d'un caracte`re identifiant le style du trace' ({\tt 'S'} = continu',
! 886: {\tt '-'} = tirete', {\tt '.'} = pointille').
! 887:
! 888: \begin{verbatim}
! 889: Marque-StyleTrait = 'l' .
! 890: \end{verbatim}
! 891:
! 892: \subsection{Epaisseur des traits}
! 893:
! 894: Une re`gle d'e'paisseur de trait modifie l'e'paisseur de trait des e'le'ments
! 895: de base graphiques contenus dans l'e'le'ment sur lequel porte la re`gle.
! 896: Ce type de re`gle n'a qu'un parame`tre qui indique l'e'paisseur des traits.
! 897: La marque identifiant le type de re`gle est suivie de ce parame`tre
! 898: exprime' de la me^me fac,on qu'une distance dans une re'gle de position
! 899: (voir section~\ref{position}).
! 900:
! 901: \begin{verbatim}
! 902: Marque-EpaisseurTrait = 'W' .
! 903: \end{verbatim}
! 904:
! 905: \subsection{Trame de remplissage}
! 906:
! 907: Une re`gle trame de remplissage de'termine le motif a` utiliser pour remplir
! 908: la surface des e'le'ments de base graphiques contenus dans l'e'le'ment sur
! 909: lequel porte la re`gle. Ce type de re`gle n'a qu'un parame`tre qui indique
! 910: le motif a` utiliser. Celui-ci est repre'sente' par un entier code' sur deux
! 911: octets qui est l'indice dans la table des motifs de Thot. Cette table
! 912: se trouve dans le fichier {\tt thot.pattern}.
! 913: Par convention l'indice 0 indique qu'il n'y a pas de remplissage des surfaces.
! 914:
! 915: \begin{verbatim}
! 916: Marque-TrameRemplissage = 'p' .
! 917: Indice = NUMERO .
! 918: \end{verbatim}
! 919:
! 920: \subsection{Couleurs}
! 921:
! 922: Deux re`gles diffe'rentes permettent de modifier la couleur de tous les
! 923: e'le'ments de base contenus dans un e'le'ment. L'une modifie la couleur de
! 924: fond, l'autre la couleur de trace'. Ces deux re'gles ont la me^me forme~:
! 925: la marque identifiant le type de re`gle ({\tt Marque-CouleurFond} ou
! 926: {\tt Marque-CouleurTrace}) est suivie d'un entier code' sur deux octets
! 927: qui repre'sente la couleur a` utiliser. Cet entier est le rang de la
! 928: couleur dans la table des couleurs de Thot qui se trouve dans le fichier
! 929: {\tt thot.color}.
! 930: Par convention, le rang 0 repre'sente le blanc et le rang 1 repre'sente
! 931: le noir.
! 932:
! 933: \begin{verbatim}
! 934: Marque-CouleurFond = 'b' .
! 935: Marque-CouleurTrace = 't' .
! 936: \end{verbatim}
! 937:
! 938: \subsection{Pre'sentation des images}
! 939:
! 940: Une re`gle de pre'sentation des images ne peut e^tre associe'e qu'a` un
! 941: e'le'ment de base de type image. Elle indique le type de l'image auquel
! 942: fait re'fe'rence l'e'le'ment sur lequel elle porte, le fene^trage a` appliquer
! 943: sur l'image externe a` laquelle on fait re'fe'rence et le type de cadrage
! 944: qu'on applique a` cette image pour la mettre dans le document.
! 945: Ce type de re`gle a` trois parame`tres :
! 946: \begin{itemize}
! 947: \item le fene^trage a` appliquer, qui de'finit la partie de l'image externe.
! 948: Cette fene^tre est de'finie par une origine, une hauteur et une largeur,
! 949: en points typographiques, dans un repe`re dont l'origine est en haut a`
! 950: gauche de l'image externe avec un axe des abscisses croissantes vers
! 951: la droite et un axe des ordonne'es croissantes vers le bas.
! 952: \item le cadrage a` appliquer a` la fene^tre de l'image. Le cadrage
! 953: de'crit la manie`re dont on affiche la fene^tre pre'ce'demment de'finie dans
! 954: l'espace
! 955: de composition re'serve' a` l'e'le'ment logique IMAGE sur lequel porte la re`gle
! 956: de pre'sentation. Ce cadrage est code' sur un caracte`re~: {\tt 'S'} = sans modifications,
! 957: {\tt 'M'} = me^mes proportions, {\tt 'P'} = plein cadre.
! 958: \item le type de l'image externe auquel fait re'fe'rence l'e'le'ment logique IMAGE sur lequel porte la re`gle
! 959: de pre'sentation. Le type de l'image est code' dans la re`gle par un entier~:
! 960: \begin{itemize}
! 961: \item {\tt 1} = Bitmap (Xlib XReadBitmapFile format)
! 962: \item {\tt 2} = XDump (XWD format)
! 963: \item {\tt 3} = EPSF (Encapsulated PostScript file)
! 964: \item {\tt 5} = CGM (ISO 8632, codage clear text ou binary )
! 965: \item {\tt 6} = idraw (Idraw 1.15 format)
! 966: \item {\tt 7} = gidraw (Grif Idraw 1.15 format)
! 967: \item {\tt 8} = TIFF 5.0 (Tag Image File Format)
! 968: \item {\tt 9} = HPGL
! 969: \end{itemize}
! 970: \end{itemize}
! 971:
! 972: \begin{verbatim}
! 973: Marque-ImageDescriptor = 'P' .
! 974: CroppingFrame = X Y Largeur Hauteur .
! 975: ImagePresentation = CARACTERE .
! 976: ImageType = NUMERO .
! 977: X = NUMERO .
! 978: Y = NUMERO .
! 979: Largeur = NUMERO .
! 980: Hauteur = NUMERO .
! 981: \end{verbatim}
! 982:
! 983: \section{Contenu d'un e'le'ment}
! 984: \label{contenu}
! 985:
! 986: La repre'sentation du contenu des e'le'ments diffe`re selon que l'e'le'ment
! 987: repre'sente' est une feuille de la structure, une re'fe'rence, un e'le'ment
! 988: structure', un parame`tre ou une constante. Le sche'ma de structure permet
! 989: d'interpre'ter correctement la repre'sentation du contenu, puisque la
! 990: structure de chaque type d'e'le'ment y est de'finie.
! 991:
! 992: \begin{verbatim}
! 993: Contenu = Feuille / Reference / Constante /
! 994: Parametre / Elem-Struct .
! 995: \end{verbatim}
! 996:
! 997: S'il s'agit d'une feuille, le contenu est constitue' d'une
! 998: indication e'ventuelle de l'alphabet ou de la langue, d'un octet
! 999: {\tt Marque-Debut} suivi du contenu de la feuille et d'un octet
! 1000: {\tt Marque-Fin}.
! 1001:
! 1002: \begin{verbatim}
! 1003: Feuille = [ Alphab-Langue ] Marque-Debut Contenu-Feuille
! 1004: Marque-Fin .
! 1005: Alphab-Langue = Alphabet / Langue .
! 1006: Alphabet = CARACTERE .
! 1007: Langue = Marque-Langue Numero-Langue .
! 1008: Numero-Langue = OCTET .
! 1009: Contenu-Feuille = CHAINECAR / CARACTERE /
! 1010: Indic-Page / Ident-Paire .
! 1011: \end{verbatim}
! 1012:
! 1013: \subsection{Chai^nes de caracte`res, graphiques, symboles et images}
! 1014:
! 1015: Si la feuille est du type chai^ne de caracte`res ou image (c'est indique'
! 1016: dans le sche'ma de structure), le contenu de la feuille est une suite de
! 1017: caracte`res termine'e par un octet nul. S'il s'agit d'un e'le'ment graphique
! 1018: ou d'un symbole mathe'matique, le contenu est re'duit a` un seul caracte`re
! 1019: repre'sentant l'e'le'ment graphique ou le symbole. Dans tous les cas, si la
! 1020: feuille est vide, le contenu est re'duit a` un octet nul. Le codage des
! 1021: symboles et e'le'ments graphiques est donne' page~\pageref{pagegraph}.
! 1022:
! 1023: Dans le cas d'une chai^ne de caracte`res, la {\tt Marque-Debut} est
! 1024: pre'ce'de'e d'une indication de l'alphabet ou de la langue. L'alphabet
! 1025: n'est utilise' que dans les versions 3 et pre'ce'dentes de la forme
! 1026: pivot (voir section~\ref{versionpivot}). A` partir de la version 4, c'est
! 1027: la langue qui est indique'e.
! 1028:
! 1029: Dans le cas de l'alphabet, un simple caracte`re indique l'alphabet utilise'
! 1030: ({\tt 'L'}=Latin, {\tt 'G'}=Grec,...). Ce caracte`re est facultatif, son
! 1031: absence indiquant l'alphabet par de'faut, qui est l'alphabet latin.
! 1032:
! 1033: Dans le cas de la langue, un octet {\tt Marque-Langue} pre'ce`de le nume'ro
! 1034: de langue, code' sur un octet. Cette indication de la langue n'est pre'sente
! 1035: que s'il ne s'agit pas de la premie`re langue. Le nume'ro de langue est le
! 1036: rang - 1 de la langue dans la liste des langues qui figure en te^te du
! 1037: document (voir section~\ref{listelangues}).
! 1038:
! 1039: Le contenu d'une chai^ne de caracte`res est simplement la suite des codes
! 1040: des caracte`res qui constituent la chai^ne. Le code des caracte`res est
! 1041: de'fini par l'alphabet (ISO Latin-1 pour 'L' ou Symbol pour 'G') ou la langue.
! 1042: Dans le cas d'une image, ce n'est pas l'image elle-me^me qui constitue le
! 1043: contenu de la feuille, mais le nom du fichier qui la contient.
! 1044:
! 1045: \subsection{Marques de page}
! 1046:
! 1047: Si la feuille est du type marque de page (c'est indique' dans le sche'ma de
! 1048: structure), son contenu, entre {\tt Marque-Debut} et {\tt Marque-Fin}, est
! 1049: constitue', dans l'ordre, du nume'ro de page (un entier sur 2 octets), du
! 1050: nume'ro de vue (un entier sur deux octets), du type de page (un caracte`re)
! 1051: et de l'indicateur de modification de la page (un caracte`re). Ces quatre
! 1052: e'le'ments sont toujours pre'sents.
! 1053:
! 1054: \begin{verbatim}
! 1055: Indic-Page = Numero-Page Numero-Vue Type-Page Page-Modif .
! 1056: Numero-Page = NUMERO .
! 1057: Type-Page = Calcule / Debut / Utilisateur / Rappel .
! 1058: Calcule = 'C' .
! 1059: Debut = 'D' .
! 1060: Utilisateur = 'U' .
! 1061: Rappel = 'R' .
! 1062: Page-Modif = Booleen .
! 1063: \end{verbatim}
! 1064:
! 1065: Le de'coupage d'un document en pages est re'alise' pendant l'e'dition, sur
! 1066: demande explicite de l'utilisateur. Il a principalement pour effet
! 1067: d'introduire dans l'arbre abstrait du document (structure logique spe'cifique)
! 1068: des e'le'ments spe'ciaux, appele's marques de page, qui sont place's
! 1069: inde'pendemment des sche'mas de structure (structures logiques ge'ne'riques),
! 1070: la` ou` tombe la frontie`re de page dans l'image du document.
! 1071:
! 1072: Lors de la sauvegarde du document, ces marques de page sont conserve'es dans
! 1073: le fichier pivot, comme tout e'le'ment de l'arbre abstrait. Ce sont des e'le'ments
! 1074: feuilles de la structure qui contiennent quatre informations~: le nume'ro de
! 1075: page, la vue concerne'e, le type de saut de page et l'indicateur de mise a`
! 1076: jour de la page.
! 1077:
! 1078: Le nume'ro de page e'vite de recompter les marques de page pre'ce'dentes lors
! 1079: du chargement du document. La vue concerne'e est ne'cessaire puisque les
! 1080: marques de page des diffe'rentes vues se retrouvent dans le fichier pivot
! 1081: unique du document.
! 1082:
! 1083: Trois types de sauts de page peuvent e^tre repre'sente's par une marque de
! 1084: page~:
! 1085:
! 1086: \begin{itemize}
! 1087: \item
! 1088: les sauts de page qui ont e'te' calcule's lors du de'coupage du document en
! 1089: pages, en fonction de la hauteur des pages~;
! 1090: \item
! 1091: les sauts de page qui de'coulent de la structure logique du document et qui
! 1092: sont lie's au de'but de certains e'le'ments (chapitre ou annexe par exemple)~;
! 1093: \item
! 1094: les sauts de page qui sont impose's par l'utilisateur pour des
! 1095: raisons qui lui sont propres.
! 1096: \item
! 1097: les sauts de page qui rappellent un saut de page pre'ce'dent, lorsque celui-ci
! 1098: traverse plusieurs e'le'ments.
! 1099: \end{itemize}
! 1100:
! 1101: Les premiers peuvent e^tre recalcule's par l'e'diteur et sont susceptibles de
! 1102: se de'placer par rapport a` la structure logique spe'cifique et au contenu du
! 1103: document lorsqu'il est modifie'. Les seconds sont e'galement place's par
! 1104: l'e'diteur, mais ils occupent toujours la me^me place dans la structure logique
! 1105: du document. Les derniers ne peuvent e^tre ni calcule's ni de'place's
! 1106: automatiquement par l'e'diteur, qui ne peut que les inse'rer ou les supprimer
! 1107: sur demande de l'utilisateur.
! 1108:
! 1109: L'indicateur de mise a` jour de la page indique si le contenu de la page
! 1110: (tout ce qui est compris entre cette marque de page et la suivante) a e'te'
! 1111: modifie' depuis l'insertion de la marque de page dans le document. Lorsque
! 1112: l'utilisateur demande de refaire le de'coupage en pages du document, il est
! 1113: possible gra^ce a` cet indicateur de ne reformater que les pages qui le
! 1114: ne'cessitent~: on reformate depuis une marque de page portant cet indicateur
! 1115: (quel que soit le type du saut de page) jusqu'a` la prochaine marque
! 1116: correspondant a` un saut de page de type utilisateur ou de'but d'e'le'ment.
! 1117:
! 1118: \subsection{Paires de marques}
! 1119: \label{paire}
! 1120:
! 1121: Si la feuille est une marque appartenant a` une paire (c'est indique' dans
! 1122: le sche'ma de structure), son contenu, entre {\tt Marque-Debut} et
! 1123: {\tt Marque-Fin}, est un entier code' sur 4 octets qui identifie la paire
! 1124: de marques de fac,on unique dans tout le document. Ces quatre octets
! 1125: sont toujours pre'sents.
! 1126:
! 1127: \begin{verbatim}
! 1128: Ident-Paire = NUMERO NUMERO .
! 1129: \end{verbatim}
! 1130:
! 1131: \subsection{Re'fe'rences}
! 1132: \label{refer}
! 1133:
! 1134: Si la feuille est une re'fe'rence, elle est repre'sente'e par un octet
! 1135: {\tt Marque-Refer} suivi de l'indication du type de re'fe'rence.
! 1136: Il y a trois types de re'fe'rences~:
! 1137: \begin{itemize}
! 1138: \item
! 1139: les {\it renvois} qui de'signent simplement un e'le'ment d'un document,
! 1140: \item
! 1141: les {\it inclusions sans expansion} qui repre'sentent un document qui doit
! 1142: e^tre inclus a` la position de cette re'fe'rence, mais sans copie a` l'e'cran
! 1143: du document inclus.
! 1144: \item
! 1145: les {\it inclusions avec expansion} qui repre'sentent un e'le'ment qui doit
! 1146: e^tre inclus a` la position de cette re'fe'rence, mais avec copie a` l'e'cran
! 1147: de l'e'le'ment inclus.
! 1148: \end{itemize}
! 1149: Le type de re'fe'rence est repre'sente' par un octet ({\tt Marque-Renvoi},
! 1150: {\tt Marque-Inclusion} ou {\tt Marque-Expansion}). Cet octet est suivi d'un
! 1151: boole'en marquant s'il s'agit d'une re'fe'rence interne ({\tt Vrai}) ou
! 1152: externe ({\tt Faux}).
! 1153: Il y a en effet deux sortes de re'fe'rences, inde'pendemment\footnote{Notons
! 1154: cependant que les inclusions sans expansion sont toujours des re'fe'rences
! 1155: externes puisqu'elles de'signent tout un document.} de leur type~:
! 1156: \begin{itemize}
! 1157: \item
! 1158: les re'fe'rences internes~: la re'fe'rence et l'e'le'ment qu'elle de'signe
! 1159: appartiennent au me^me document,
! 1160: \item
! 1161: les re'fe'rence externes~: la re'fe'rence et l'e'le'ment qu'elle de'signe
! 1162: appartiennent a` des documents diffe'rents.
! 1163: \end{itemize}
! 1164: Apre`s le boole'en vient le label de l'e'le'ment de'signe' par la re'fe'rence
! 1165: (voir page~\pageref{label} pour la repre'sentation du label) et, dans le cas
! 1166: des re'fe'rences externes, le nom du document contenant l'objet de'signe' par
! 1167: la re'fe'rence. Ce nom est une simple suite de caracte`res termine'e par un
! 1168: octet nul.
! 1169:
! 1170: Notons que l'e'le'ment de'signe' peut se trouver aussi bien avant qu'apre`s
! 1171: la re'fe'rence qui le de'signe. La re'fe'rence peut aussi ne pas e^tre
! 1172: affecte'e~; dans ce cas le label est une chai^ne vide.
! 1173:
! 1174: \begin{verbatim}
! 1175: Reference = Marque-Refer TypeReference Designation .
! 1176: Marque-Refer = O18 .
! 1177: TypeReference = Marque-Renvoi /
! 1178: Marque-Inclusion /
! 1179: Marque-Expansion .
! 1180: Designation = Vrai Label /
! 1181: Faux Label Nom-Document .
! 1182: Marque-Renvoi = 'r' .
! 1183: Marque-Inclusion = 'i' .
! 1184: Marque-Expansion = 'e' .
! 1185: \end{verbatim}
! 1186:
! 1187: \subsection{Constantes et parame`tres}
! 1188:
! 1189: S'il s'agit d'une constante, il n'y a pas de contenu, puisque
! 1190: le nume'ro de type permet de retrouver, dans le sche'ma de structure, la
! 1191: valeur de la constante utilise'e.
! 1192:
! 1193: \begin{verbatim}
! 1194: Constante = NIL .
! 1195: \end{verbatim}
! 1196:
! 1197: De me^me, s'il s'agit de l'utilisation d'un parame`tre dans le document
! 1198: (et non de la de'finition de sa valeur, qui se trouve au de'but du fichier),
! 1199: il n'y a pas de contenu, puisque la valeur, s'il y en a une, est unique et
! 1200: a de'ja` e'te' indique'e au de'but du fichier pivot.
! 1201:
! 1202: \begin{verbatim}
! 1203: Parametre = NIL .
! 1204: \end{verbatim}
! 1205:
! 1206: \subsection{Ele'ments structure's}
! 1207:
! 1208: S'il s'agit d'un e'le'ment structure', le contenu est forme' d'un octet
! 1209: {\tt Marque-Debut}, suivi de la suite des repre'sentations de chacun des
! 1210: e'le'ments qu'il contient au niveau imme'diatement infe'rieur, et d'un
! 1211: octet {\tt Marque-Fin}. Si cet e'le'ment est vide, son contenu est simplement
! 1212: marque' par les deux octets {\tt Marque-Debut} et {\tt Marque-Fin}.
! 1213:
! 1214: \begin{verbatim}
! 1215: Elem-Struct = Marque-Debut Suite-Elem Marque-Fin .
! 1216: Suite-Elem = < Element > .
! 1217: \end{verbatim}
! 1218:
! 1219: \section{Codage des e'le'ments graphiques et des symboles}
! 1220:
! 1221: Dans le fichier pivot des documents Thot, les e'le'ments de base graphiques et
! 1222: symboles sont repre'sente's par un caracte`re avec la convention suivante~: \\
! 1223: Graphique~:
! 1224: \label{pagegraph}
! 1225:
! 1226: \begin{description}
! 1227: \item{ {\tt 'C' } }un cercle inscrit dans la boi^te~: $\bigcirc$
! 1228: \item{ {\tt 'R' } }un rectangle qui est le contour de la boi^te
! 1229: \item{ {\tt 'c' } }un rectangle qui est le contour de la boi^te, avec les coins arondis
! 1230: \item{ {\tt '0'..'9' } }une trame a` l'inte'rieur de la boi^te, le contour de
! 1231: la boi^te est trace'
! 1232: \item{ {\tt '\verb+\+260'..'\verb+\+270' } }une trame a` l'inte'rieur de la boi^te,
! 1233: le contour de la boi^te n'est pas trace'
! 1234: \item{ {\tt 't' } }un trait horizontal~: le co^te' supe'rieur de la boi^te~: ---
! 1235: \item{ {\tt 'h' } }un trait horizontal de la longueur de la boi^te, au milieu
! 1236: de la boi^te~: ---
! 1237: \item{ {\tt 'b' } }un trait horizontal~: le co^te' infe'rieur de la boi^te~: \_\_
! 1238: \item{ {\tt '>' } }une fle`che vers la droite au milieu de la boi^te, de la longueur de la boi^te~: $\rightarrow$
! 1239: \item{ {\tt '<' } }une fle`che vers la gauche au milieu de la boi^te, de la longueur de la boi^te~: $\leftarrow$
! 1240: \item{ {\tt 'l' } }un trait vertical~: le co^te' gauche de la boi^te~: $\mid$
! 1241: \item{ {\tt 'v' } }un trait vertical au milieu de la boi^te, de la hauteur de la boi^te~: $\mid$
! 1242: \item{ {\tt 'r' } }un trait vertical~: le co^te' droit de la boi^te~: $\mid$
! 1243: \item{ {\tt '\^{}'} } une fle`che vers le haut au milieu de la boi^te, de la hauteur de la boi^te~: $\uparrow$
! 1244: \item{ {\tt 'V' } }une fle`che vers le bas au milieu de la boi^te, de la hauteur de la boi^te~: $\downarrow$
! 1245: \item{ {\tt '/' } }la diagonale Sud-Ouest Nord-Est de la boi^te~: /
! 1246: \item{ {\tt '} $\backslash$ {\tt '} } la diagonale Nord-Ouest Sud-Est de la boi^te~: $\backslash$
! 1247: \item{ {\tt 'O' } }la diagonale Nord-Ouest Sud-Est de la boi^te, avec une fle`che en haut~: $\nwarrow$
! 1248: \item{ {\tt 'e ' } }la diagonale Nord-Ouest Sud-Est de la boi^te, avec une fle`che en bas~: $\searrow$
! 1249: \item{ {\tt 'E ' } }la diagonale Sud-Ouest Nord-Est de la boi^te, avec une fle`che en haut~: $\nearrow$
! 1250: \item{ {\tt 'o' } }la diagonale Sud-Ouest Nord-Est de la boi^te, avec une fle`che en bas~: $\swarrow$
! 1251: \item{ {\tt ' ' } }un e'le'ment transparent~:
! 1252: \item{ {\tt 'P' }} un rectangle aux coins arrondis avec une barre horizontale en haut
! 1253: \item{ {\tt 'Q' }} une ellipse avec une barre horizontale en haut~: $\bigcirc$
! 1254: \item{ {\tt 'W' }} un coin sup\'{e}rieur droit~: $\rceil$
! 1255: \item{ {\tt 'X' }} un coin inf\'{e}rieur droit~: $\rfloor$
! 1256: \item{ {\tt 'Y' }} un coin inf\'{e}rieur gauche~: $\lfloor$
! 1257: \item{ {\tt 'Z' }} un coin sup\'{e}rieur gauche~: $\lceil$
! 1258: \end{description}
! 1259:
! 1260: Symbole~:
! 1261:
! 1262: \begin{description}
! 1263: \item{ {\tt 'r' } }un radical de la taille de la boi^te~: $\surd$
! 1264: \item{ {\tt 'i' } }une inte'grale simple de la hauteur de la boi^te~: $\int$
! 1265: \item{ {\tt 'c' } }une inte'grale curviligne de la hauteur de la boi^te~: $\oint$
! 1266: \item{ {\tt 'd' } }une inte'grale double de la hauteur de la boi^te~: $\int\int$
! 1267: \item{ {\tt 't' } }une inte'grale triple de la hauteur de la boi^te~: $\int\int\int$
! 1268: \item{ {\tt 'S' } }le symbole de la sommation, de la taille de la boi^te~: $\sum$
! 1269: \item{ {\tt 'P' } }le symbole du produit de la taille de la boi^te~: $\prod$
! 1270: \item{ {\tt 'U' } }le symbole de l'union de la taille de la boi^te~: $\cup$
! 1271: \item{ {\tt 'I' } }le symbole de l'intersection de la taille de la boi^te~: $\cap$
! 1272: \item{ {\tt '>' } }une fle`che a` droite, de la longueur de la boi^te~: $\rightarrow$
! 1273: \item{ {\tt '<' } }une fle`che a` gauche, de la longueur de la boi^te~: $\leftarrow$
! 1274: \item{ {\tt '\^{}'} } une fle`che vers le haut, de la hauteur de la boi^te~: $\uparrow$
! 1275: \item{ {\tt 'V' } }une fle`che vers le bas, de la hauteur de la boi^te~: $\downarrow$
! 1276: \item{ {\tt '(' } }une parenthe`se ouvrante, de la hauteur de la boi^te~: (
! 1277: \item{ {\tt ')' } }une parenthe`se fermante, de la hauteur de la boi^te~: )
! 1278: \item{ {\tt '\{' } }une accolade ouvrante, de la hauteur de la boi^te~: \{
! 1279: \item{ {\tt '\}' } }une accolade fermante, de la hauteur de la boi^te~: \}
! 1280: \item{ {\tt '[' } }un crochet ouvrant, de la hauteur de la boi^te~: [
! 1281: \item{ {\tt ']' } }un crochet fermant, de la hauteur de la boi^te~: ]
! 1282: \end{description}
! 1283:
! 1284: \newpage
! 1285: \section{Grammaire du format pivot}
! 1286:
! 1287: Les re`gles suivantes de'finissent la structure d'un fichier de re'fe'rences
! 1288: externes entrantes.
! 1289:
! 1290: \begin{verbatim}
! 1291: Fichier-Ref-Ext = Elem-Ref < Elem-Ref > .
! 1292: Elem-Ref = Label Doc-Externe < Doc-Externe > .
! 1293:
! 1294: Label = Marque-Label-Chaine CHAINECAR /
! 1295: Marque-Label-Court Numero-Label-Court /
! 1296: Marque-Label-Long Numero-Label-Long .
! 1297: Marque-Label-Chaine = O11 .
! 1298: Marque-Label-Court = O12 .
! 1299: Marque-Label-Long = O13 .
! 1300: Numero-Label-Court = NUMERO .
! 1301: Numero-Label-Long = NUMERO NUMERO .
! 1302:
! 1303: Doc-Externe = Marque-Doc-Ext Nom-Document .
! 1304: Marque-Doc-Ext = O15 .
! 1305: Nom-Document = CHAINECAR .
! 1306: \end{verbatim}
! 1307:
! 1308: Les re`gles suivantes de'finissent la structure d'un fichier de re'fe'rences
! 1309: a` modifier.
! 1310:
! 1311: \begin{verbatim}
! 1312: Fichier-Ref-Modif = El-Ext-Modif < El-Ext-Modif > .
! 1313: El-Ext-Modif = Ancien-Label Nouveau-Label
! 1314: Ancien-Doc Nouveau-Doc .
! 1315: Ancien-Label = Label .
! 1316: Nouveau-Label = Label .
! 1317: Ancien-Doc = Doc-Externe .
! 1318: Nouveau-Doc = Doc-Externe .
! 1319: \end{verbatim}
! 1320:
! 1321: Les re`gles suivantes de'finissent la structure d'un fichier pivot.
! 1322:
! 1323: \begin{verbatim}
! 1324: Fichier-Pivot = [ Version ]
! 1325: [ Label ]
! 1326: < Marque-Langue Nom-Langue >
! 1327: [ Commentaire ]
! 1328: Classe-Document
! 1329: < Classe-Objet >
! 1330: < Marque-Param Param >
! 1331: < Marque-Associe Suite-Associes >
! 1332: Marque-Document Le-Document Marque-Fin-Document .
! 1333:
! 1334: Version = Marque-Version Marque-Version Numero-Version .
! 1335: Marque-Version = O22 .
! 1336: Numero-Version = OCTET .
! 1337:
! 1338: Marque-Langue = O8 .
! 1339: Nom-Langue = CHAINECAR .
! 1340:
! 1341: Commentaire = Marque-Commentaire Longueur-Commentaire
! 1342: Contenu-Commentaire /
! 1343: Marque-Commentaire-Ancien Marque-Debut
! 1344: Texte-Commentaire Marque-Fin .
! 1345: Marque-Commentaire = O5 .
! 1346: Longueur-Commentaire = NUMERO .
! 1347: Contenu-Commentaire = CHAINEOCT .
! 1348: Marque-Commentaire-Ancien = O3 .
! 1349: Marque-Debut = O4 .
! 1350: Texte-Commentaire = CHAINECAR .
! 1351: Marque-Fin = O6 .
! 1352:
! 1353: Classe-Document = Classe .
! 1354: Classe-Objet = Classe .
! 1355: Classe = Marque-ClassExt Nom-Schema-Struct
! 1356: [ Code-Schema-Struct ] NomSchema-Pres .
! 1357: Marque-ClassExt = Marque-Classe / Marque-Extension .
! 1358: Marque-Classe = O14 .
! 1359: Marque-Extension =O10 .
! 1360: Nom-Schema-Struct=CHAINECAR .
! 1361: Code-Schema-Struc=NUMERO .
! 1362: NomSchema-Pres = CHAINECAR .
! 1363:
! 1364: Marque-Param = O16 .
! 1365: Param = Element .
! 1366:
! 1367: Marque-Associe = O2 .
! 1368: Suite-Associes = Element < Element > .
! 1369:
! 1370: Marque-Document = O19 .
! 1371: Le-Document = Element .
! 1372: Marque-Fin-Document = O26 .
! 1373:
! 1374: Element = Type-Element
! 1375: [ Marque-Inclus TypeReference
! 1376: Designation [ Marque-SemiExpansion ] ]
! 1377: [ Label ]
! 1378: [ Marque-Holophraste ]
! 1379: < Marque-Attribut Numero-Classe Numero-Attribut
! 1380: Valeur-Attribut >
! 1381: < Regle-Presentation >
! 1382: [ Commentaire ]
! 1383: [ Contenu ] .
! 1384:
! 1385: Type-Element = [ Marque-Classe Numero-Classe ]
! 1386: Marque-Type Numero-Type.
! 1387: Numero-Classe = NUMERO .
! 1388: Marque-Type = O20 .
! 1389: Numero-Type = NUMERO .
! 1390:
! 1391: Marque-Inclus = O9 .
! 1392: TypeReference = Marque-Renvoi /
! 1393: Marque-Inclusion /
! 1394: Marque-Expansion .
! 1395: Marque-Renvoi = 'r' .
! 1396: Marque-Inclusion ='i' .
! 1397: Marque-Expansion ='e' .
! 1398: Marque-SemiExpansion = O21 .
! 1399:
! 1400: Marque-Holophraste = O23 .
! 1401:
! 1402: Marque-Attribut = O1 .
! 1403: Numero-Attribut = NUMERO .
! 1404: Valeur-Attribut = Valeur-Absolue Signe /
! 1405: Valeur-Texte /
! 1406: TypeReference Designation /
! 1407: Numero-Valeur .
! 1408: Valeur-Absolue = NUMERO .
! 1409: Signe = '+' / '-' .
! 1410: Valeur-Texte = CHAINECAR .
! 1411: Numero-Valeur = NUMERO .
! 1412:
! 1413: Regle-Presentation= Marque-Regle Numero-Vue
! 1414: Type-Boite Contenu-Regle .
! 1415: Marque-Regle = O7 .
! 1416: Numero-Vue = NUMERO .
! 1417: Type-Boite = NUMERO .
! 1418: Contenu-Regle = Marque-Hauteur Dimension /
! 1419: Marque-Largeur Dimension /
! 1420: Marque-Position Distance Signe /
! 1421: Marque-Corps Distance /
! 1422: Marque-Style CARACTERE /
! 1423: Marque-Famille CARACTERE /
! 1424: Marque-NoBreak1 Distance /
! 1425: Marque-NoBreak2 Distance /
! 1426: Marque-Ajuste Alignement /
! 1427: Marque-Justif Booleen /
! 1428: Marque-CoupureMots Booleen /
! 1429: Marque-Retrait Distance Signe /
! 1430: Marque-Interligne Distance /
! 1431: Marque-Souligne CARACTERE /
! 1432: Marque-SoulEpaisseur CARACTERE /
! 1433: Marque-StyleTrait CARACTERE /
! 1434: Marque-EpaisseurTrait Distance /
! 1435: Marque-TrameRemplissage Indice /
! 1436: Marque-CouleurFond Indice /
! 1437: Marque-CouleurTrace Indice /
! 1438: Marque-ImageDescriptor CroppingFrame
! 1439: ImagePresentation
! 1440: ImageType .
! 1441:
! 1442: Marque-Hauteur = 'H' .
! 1443: Marque-Largeur = 'L' .
! 1444: Dimension = Type-Dimension Valeur Unite-Dimension Signe .
! 1445: Type-Dimension = Absolue / Relative .
! 1446: Absolue = 'A' .
! 1447: Relative = 'R' .
! 1448: Valeur = NUMERO .
! 1449: Unite-Dimension= Point-Typo / Caracteres / Pour-Cent .
! 1450: Point-Typo = 'P' .
! 1451: Caracteres = 'C' .
! 1452: Pour-Cent = '%' .
! 1453:
! 1454: Marque-Position = Marque-Position-X / Marque-Position-Y .
! 1455: Marque-Position-X = 'X' .
! 1456: Marque-Position-Y = 'Y' .
! 1457: Distance = Valeur Unite .
! 1458: Unite = Point-Typo / Caracteres .
! 1459:
! 1460: Marque-Corps = 'T' .
! 1461: Marque-Style = 'S' .
! 1462: Marque-Famille = 'F' .
! 1463:
! 1464: Marque-NoBreak1 = '1' .
! 1465: Marque-NoBreak2 = '2' .
! 1466:
! 1467: Marque-Ajuste = 'A' .
! 1468: Alignement = Align-Gauche / Align-Droite / Centre / Pointille .
! 1469: Align-Gauche = 'G' .
! 1470: Align-Droite = 'D' .
! 1471: Centre = 'C' .
! 1472: Pointille = 'P' .
! 1473:
! 1474: Marque-Justif = 'J' .
! 1475: Booleen = Vrai / Faux .
! 1476: Vrai = 'V' .
! 1477: Faux = 'F' .
! 1478:
! 1479: Marque-CoupureMots = 'C' .
! 1480: Marque-Retrait = 'R' .
! 1481: Marque-Interligne = 'I' .
! 1482: Marque-Souligne = 'U' .
! 1483: Marque-SoulEpaisseur = 'E' .
! 1484: Marque-StyleTrait = 'l' .
! 1485: Marque-EpaisseurTrait = 'W' .
! 1486: Marque-TrameRemplissage='p' .
! 1487: Marque-CouleurFond = 'b' .
! 1488: Marque-CouleurTrace = 't' .
! 1489:
! 1490: Indice = NUMERO .
! 1491:
! 1492: Marque-ImageDescriptor = 'P' .
! 1493: CroppingFrame = X Y Largeur Hauteur .
! 1494: ImagePresentation = CARACTERE .
! 1495: ImageType = NUMERO .
! 1496: X = NUMERO .
! 1497: Y = NUMERO .
! 1498: Largeur = NUMERO .
! 1499: Hauteur = NUMERO .
! 1500:
! 1501: Contenu = Feuille / Reference / Constante /
! 1502: Parametre / Elem-Struct .
! 1503:
! 1504: Feuille = [ Alphab-Langue ] Marque-Debut Contenu-Feuille
! 1505: Marque-Fin.
! 1506: Alphab-Langue = Alphabet / Langue .
! 1507: Alphabet = CARACTERE .
! 1508: Langue = Marque-Langue Numero-Langue .
! 1509: Numero-Langue = OCTET .
! 1510: Contenu-Feuille = CHAINECAR / CARACTERE / Indic-Page / Ident-Paire .
! 1511:
! 1512: Indic-Page = Numero-Page Numero-Vue Type-Page Page-Modif .
! 1513: Numero-Page = NUMERO .
! 1514: Type-Page = Calcule / Debut / Utilisateur / Rappel .
! 1515: Calcule = 'C' .
! 1516: Debut = 'D' .
! 1517: Utilisateur = 'U' .
! 1518: Rappel = 'R' .
! 1519: Page-Modif = Booleen .
! 1520:
! 1521: Ident-Paire = NUMERO NUMERO .
! 1522:
! 1523: Reference = Marque-Refer TypeReference Designation .
! 1524: Marque-Refer = O18 .
! 1525: Designation = Vrai Label /
! 1526: Faux Label Nom-Document .
! 1527:
! 1528: Constante = NIL .
! 1529:
! 1530: Parametre = NIL .
! 1531:
! 1532: Elem-Struct = Marque-Debut Suite-Elem Marque-Fin .
! 1533: Suite-Elem = < Element > .
! 1534:
! 1535: END
! 1536: \end{verbatim}
! 1537:
! 1538: \newpage
! 1539:
! 1540: \tableofcontents
! 1541:
! 1542: \end{document}
Webmaster