17.1 Eléments supplémentaires pour les documents techniques

 

Les éléments suivants peuvent servir pour marquer les caractéristiques particulières de documents techniques :

<eg>
  regroupe un exemple court de notation technique, par exemple un code fragmenté ou un échantillon de codage SGML ;
<code>
  regroupe un fragment code écrit dans une certain langage formel (souvent un langage de programmation) ;

<ident>
 

contient un identifiant d'un certain type, par exemple un nom variable ou le nom d'un élément ou d'un attribut SGML ;

<gi>
  contient un type spécial d'identifiant : un identifiant générique SGML, ou un nom d'élément ;
<kw>
  contient un mot clé dans une certaine langue formelle ;
<formula>
    contient une formule chimique ou mathématique, présentée facultativement dans une quelconque notation non-SGML ; parmi les attributs possibles, citons :
<notation>
 

précise la notation employée pour représenter le corps de la formule ; la valeur par défaut est tex , signifiant que la formule est représentée au moyen du système de composition TeX .

Les exemples suivantes indiquent une utilisation possible de ces éléments, à savoir, le codage d'un passage faisant partie d'un cours de présentation du langage de programmation Fortran :

<p>Il est de tradition de présenter un langage de
 programmation à l'aide d'un premier exemple comme :
 <eg>
    CHAR*20 GRTG
    GRTG = 'BONJOUR TOUT LE MONDE'
    PRINT *, GRTG
    END
 </eg></p>
 <p>Dans cet exemple, on commence par déclarer la variable
 <ident>GRTG</ident>, dans la ligne  <kw>CHAR*20 GRTG</kw>, 
  qui identifie <ident>GRTG</ident> comme formée de 20 octets
  de type <kw>CHAR</kw>.  On affecte alors à cette variable
  la valeur  <mentioned>BONJOUR TOUT LE MONDE</mentioned>.
  Suivent alors l'ordre d'impression <kw>PRINT</kw> et 
  l'instruction finale <kw>END</kw>.

Une application de formatage ayant à traiter un tel texte pourrait être programmée de façon à formater convenablement des exemples (par exemple, en conservant les coupures de ligne, ou en employant une police distinctive). Parallèlement, l'emploi de balises telles que <ident> et <kw> facilite grandement la création d'un index utile.

L'élément <formula> devrait servir à entourer une formule chimique ou mathématique présentée au sein du texte comme étant un passage distinct. Puisque les formules comportent généralement une grande variété de caractéristiques typographiques spéciales qui ne figurent pas ailleurs dans le texte courant, il sera habituellement nécessaire de présenter le corps de la formule dans une notation spécialisée. La notation employée devrait être spécifiée par l'attribut notation, comme dans l'exemple suivant :

1cm

 <formula notation=tex>
   \(E = mc^{2}\)
 </formula}

La notation tex est pre-définie pour la DTD de la TEI Lite ; d'autres notations peuvent être employées si besoin est, mais elles doivent être définies au préalable au moyen d'une mention du type « notation » dans la DTD.

Presque toutes les séquences de caractères sont admises dans le corps d'un élément <formula>, du moins du point de vue d'une application capable de traiter des données SGML. Les données sont transférées sans modification par l'analyseur syntaxique à toute application associé à la notation spécifiée. La seule exception à cette règle est que l'analyseur syntaxique reconnaîtra tout objet qui ressemble au début d'une fin-de-balise SGML, c'est-à-dire le caractère « plus petit que » (<) suivi aussitôt par une barre oblique (/) et un caractère alphabétique. En traitant l'exemple imaginaire ci-dessous, un analyseur syntaxique SGML générerait toute une suite de messages d'erreurs.

 <formula notation=tex>
   \(E = mc^{2}</a\)
 </formula>

Heureusement , la séquence « </ » est plutôt rare dans la majorité des notations mathématiques utilisées actuellement. Néanmoins, si elle apparaît, il est nécessaire de prendre des dispositions qui dépassent le cadre de ce document (pour plus d'informations, se reporter au texte complet des recommandations de la TEI).

Ce problème existe sous une forme plus aiguë lorsque le codage SGML lui-même est le sujet de discussion à l'intérieur d'un document technique, lui-même codé en SGML. Dans un tel document, il est évidemment essentiel de faire une distinction entre le balisage SGML contenu dans les exemples, et celui qui est employé pour le balisage du document lui-même ; dans ces textes, en effet, l'emploi de balises de fin est très vraisemblable. La solution la plus générale consiste à marquer le corps de chaque exemple SGML comme contenant des données qui ne doivent pas être balayées par l'analyseur syntaxique pour des fins de balisage SGML. Ceci est fait en l'entourant d'une structure SGML spéciale appelée CDATA marked section, comme dans l'exemple suivant :

1.2cm

 <p>Une liste devrait être codée comme suit:
 <eg><![ CDATA [
    <list>
    <item>Premier élément de la liste</item>
    <item>Second élément</item>
    </list>
 ]]>
 </eg>
 Les éléments  <gi>list</gi> sont composés d'une série 
 d'éléments <gi>item</gi>.

L'élément <list> employé dans l'exemple ci-dessus ne sera pas considéré comme faisant partie du document proprement dit, parce qu'il est inséré à l'intérieur d'une section balisée (qui commence avec la mention spéciale de balisage
<! [ CDATA [, et qui se termine avec ] ]>).

À noter également l'utilisation de l'élément <gi> pour baliser les références à des noms d'éléments SGML (ou des identifiants génériques) au sein du corps du texte.



Association GUTenberg - BP 10, 93220 Gagny principal   - Tél. et Fax (33) 01 30 87 06 25
e-mail : gut@irisa.fr   et   tresorerie.gutenberg@ens.fr