<?xml version="1.0" encoding="iso-8859-1"?>
<?xml-stylesheet type="text/xsl" href="pmathml.xsl"?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title>Editer des mathématiques</title>
  <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
  <meta name="GENERATOR" content="amaya 9.3, see http://www.w3.org/Amaya/" />
  <link href="style.css" rel="stylesheet" type="text/css" />
</head>

<body xml:lang="fr" lang="fr">

<div>
<img alt="Amaya" src="../../resources/icons/22x22/logo.png" class="logo" />

<p class="nav"><a href="ImageMaps.html.fr" accesskey="p"><img alt="previous"
src="../../resources/icons/misc/left.png" /></a> <a href="Manual.html.fr"
accesskey="t"><img alt="top" src="../../resources/icons/misc/up.png" /></a>
<a href="SVG.html.fr" accesskey="n"><img alt="next"
src="../../resources/icons/misc/right.png" /></a></p>
</div>

<div id="Math">

<div class="toc">
<ul>
  <li><a href="#L65">Créer une expression mathématique</a>
    <ul>
      <li><a href="#palette">La palette Math et le menu XML</a></li>
      <li><a href="#Entrer">Entrer des constructions à partir du
      clavier</a></li>
    </ul>
  </li>
  <li><a href="#Entrer1">Entrer des caractères</a></li>
  <li><a href="#Caract1">Caractères spéciaux</a></li>
  <li><a href="#Editer1">Editer la structure</a></li>
  <li><a href="#Structure1">Vue Structure</a></li>
  <li><a href="#liens">Les liens dans MathML</a></li>
  <li><a href="#Compatibil">Compatibilité avec Firefox et IE</a></li>
  <li><a href="#Limites">Limites courantes</a></li>
</ul>
</div>

<h2 id="Editer">Editer des mathématiques</h2>

<p>Amaya permet d'inclure des expressions mathématiques dans les pages web,
suivant la spécification du <a
href="http://www.w3.org/TR/REC-MathML/">langage MathML</a>.</p>

<p>Les expressions mathématiques sont traitées comme des composants
structurés, de la même manière que les éléments HTML. Vous pouvez donc
manipuler les expressions mathématiques comme vous manipulez les autres
parties des documents HTML. Toutes les commandes d'édition fournies par Amaya
pour traiter le texte sont également utilisables pour les mathématiques. Il y
a quelques manipulations supplémentaires pour entrer des constructions
mathématiques.</p>

<h3 id="L65"><a id="Creating">Créer une expression mathématique</a></h3>

<h4 id="palette">La palette Math et le menu XML</h4>

<p>Pour créer une expression mathématique dans un document, il suffit de <a
href="Selecting.html.fr#Selecting">placer le point d'insertion</a> à
l'endroit où vous voulez insérer l'expression, puis de cliquer sur le bouton
<strong>Math</strong> (le premier bouton de la palette Math) ou de
sélectionner l'entrée <strong>Nouvelle formule</strong> du menu
<strong>XML</strong>. Ceci vous permet de créer une nouvelle formule lorsque
le point d'insertion est dans un élément HTML ou <a
href="SVG.html.fr">SVG</a> (mais le point d'insertion ne devrait pas être à
l'intérieur d'un élément MathML).</p>

<p>Dans le menu <strong>XML/Eléments math de base</strong>, les éléments
suivants vous donnent la possibilité de créer de nouveaux éléments
mathématiques de base (non disponibles dans la palette) : Texte
(<code>mtext</code>), Identificateur (<code>mi</code>), Nombre
(<code>mn</code>), Opérateur (<code>mo</code>), Espace (<code>mspace</code>).
Vous pouvez également utiliser ces commandes pour changer le type d'un
élément seul ou d'une séquence d'éléments.</p>

<p id="Car">Ces items sont suivis de l'entrée Caractère
(<code>&amp;xxx;</code>). Cette commande vous permet d'entrer un caractère
qui n'est pas disponible sur le clavier. Elle affiche une boîte de dialogue
dans laquelle vous devez entrer le nom du caractère (par exemple
<em>alpha</em> pour le caractère grec &#x3b1;). Les deux dernières entrées du
menu <strong>XML/Eléments math de base</strong> permettent d'entrer
rapidement deux de ces caractères spéciaux souvent utilisés :
<code>InvisibleTimes</code> et <code>ApplyFunction</code>.</p>

<p>Les éléments suivants du menu <strong>XML/Constructions math</strong> (ou
de la palette Math) vous permettent de créer de nouvelles constructions à
l'intérieur d'une formule. Si le point d'insertion n'est pas dans une
formule, un élément Math est d'abord créé pour accepter la nouvelle
construction. Les constructions disponibles sont :</p>
<ul>
  <li>Racine (<code>mroot</code> dans MathML) : <math
    xmlns="http://www.w3.org/1998/Math/MathML">
      <mroot>
        <mrow>
          <mi>x</mi>
          <mo>+</mo>
          <mn>1</mn>
        </mrow>
        <mn>3</mn>
      </mroot>
    </math></li>
  <li>Racine carrée ( <code>msqrt)</code>: <math
    xmlns="http://www.w3.org/1998/Math/MathML">
      <msqrt>
        <mrow>
          <mi>x</mi>
          <mo>+</mo>
          <mn>1</mn>
        </mrow>
      </msqrt>
    </math></li>
  <li>Englobe (<code>menclose)</code>: <math
    xmlns="http://www.w3.org/1998/Math/MathML">
      <menclose>
        <mn>1234</mn>
      </menclose>
    </math></li>
  <li>Fraction (<code>mfrac)</code>: <math
    xmlns="http://www.w3.org/1998/Math/MathML">
      <mfrac>
        <mn>1</mn>
        <mrow>
          <mi>x</mi>
          <mo>+</mo>
          <mn>1</mn>
        </mrow>
      </mfrac>
    </math></li>
  <li>Indice et exposant Expression (<code>msubsup)</code>: <math
    xmlns="http://www.w3.org/1998/Math/MathML">
      <msubsup>
        <mi>x</mi>
        <mrow>
          <mi>i</mi>
          <mo>+</mo>
          <mn>1</mn>
        </mrow>
        <mi>n</mi>
      </msubsup>
    </math> ou <math xmlns="http://www.w3.org/1998/Math/MathML">
      <mrow>
        <msubsup>
          <mo>&#x222b;</mo>
          <mn>0</mn>
          <mo>&#x221e;</mo>
        </msubsup>
      </mrow>
    </math></li>
  <li>Indice (<code>msub)</code>: <math
    xmlns="http://www.w3.org/1998/Math/MathML">
      <msub>
        <mi>x</mi>
        <mi>i</mi>
      </msub>
    </math></li>
  <li>Exposant (<code>msup)</code>: <math
    xmlns="http://www.w3.org/1998/Math/MathML">
      <msup>
        <mi>x</mi>
        <mi>n</mi>
      </msup>
    </math></li>
  <li>Dessous et dessus (<code>munderover)</code>: <math
    xmlns="http://www.w3.org/1998/Math/MathML">
      <munderover>
        <mo movablelimits="false">&#x2211;</mo>
        <mrow>
          <mi>i</mi>
          <mo>=</mo>
          <mn>1</mn>
        </mrow>
        <mi>n</mi>
      </munderover>
    </math></li>
  <li>Dessous (<code>munder)</code>: <math
    xmlns="http://www.w3.org/1998/Math/MathML">
      <munder>
        <mi>x</mi>
        <mo>¯</mo>
      </munder>
    </math></li>
  <li>Dessus (<code>mover)</code>: <math
    xmlns="http://www.w3.org/1998/Math/MathML">
      <mrow>
        <mi>x</mi>
        <mover>
          <mo>&#x2192;</mo>
          <mtext>maps to</mtext>
        </mover>
        <mi>y</mi>
      </mrow>
    </math></li>
  <li>Parenthèses (<code>mrow)</code>: <math
    xmlns="http://www.w3.org/1998/Math/MathML">
      <mrow>
        <mo fence="true">(</mo>
        <mrow>
          <mi>a</mi>
          <mo>+</mo>
          <mi>b</mi>
        </mrow>
        <mo fence="true">)</mo>
      </mrow>
    </math></li>
  <li>Multi-scripts (<code>mmultiscripts)</code>: <math
    xmlns="http://www.w3.org/1998/Math/MathML">
      <mmultiscripts>
        <mi>X</mi>
        <mi>i</mi>
        <mi>j</mi>
        <mprescripts/>
        <mi>k</mi>
        <mi>l</mi>
      </mmultiscripts>
    </math></li>
</ul>

<p>La derniére construction proposée est la matrice :</p>
<ul>
  <li>Matrice ou table (<code>mtable)</code>: <math
    xmlns="http://www.w3.org/1998/Math/MathML">
      <mtable>
        <mtr>
          <mtd>
            <mi>a</mi>
          </mtd>
          <mtd>
            <mi>b</mi>
          </mtd>
        </mtr>
        <mtr>
          <mtd>
            <mi>c</mi>
          </mtd>
          <mtd>
            <mi>d</mi>
          </mtd>
        </mtr>
      </mtable>
    </math></li>
</ul>

<p>Vous pouvez créer une matrice soit à partir du menu <strong>XML</strong>,
soit à partir de la palette Math. Vous devez alors choisir le nombre de
lignes et de colonnes désirées et une matrice vide est créée à la position
courante. Les matrices se manipulent comme <a href="Tables.html.fr">les
tableaux HTML</a>. Une douzaine de commandes spécifiques sont disponibles
dans le menu <strong>XML/Matrices</strong>.</p>

<h4 id="Entrer"><a id="Entering">Entrer des constructions à partir du
clavier</a></h4>

<p>Vous n'êtes pas obligé d'utiliser un menu ou la palette
<strong>Math</strong> pour créer et éditer des expressions mathématiques.
Vous pouvez entrer des constructions mathématiques directement à partir du
clavier puisque que chaque entréee de menu a un équivalent sur le clavier
(les raccourcis sont indiqués dans les menus). Ceci vous permet de taper plus
vite.</p>

<p>Si vous voulez taper encore plus vite, vous pouvez aussi utiliser les
touches de direction du clavier (flèches) pour faire passer le point
d'insertion d'une construction à une autre. En particulier, les deux flèches
horizontales permettent de se déplacer selon la structure de l'expression
mathématique. Par exemple, en fin de numérateur d'une fraction, la touche
&#x2192; fait passer au début du dénominateur.</p>

<table border="1">
  <tbody>
    <tr>
      <th>Action</th>
      <th>Raccourci</th>
    </tr>
    <tr>
      <td>Nouvelle formule (math)</td>
      <td>Ctrl-m Ctrl-m</td>
    </tr>
    <tr>
      <td>Plein texte (mtext)</td>
      <td>Ctrl-m Ctrl-x</td>
    </tr>
    <tr>
      <td>Identificateur (mi)</td>
      <td>Ctrl-m Ctrl-d</td>
    </tr>
    <tr>
      <td>Nombre (mn)</td>
      <td>Ctrl-m Ctrl-n</td>
    </tr>
    <tr>
      <td>Operateur (mo)</td>
      <td>Ctrl-m Ctrl-g</td>
    </tr>
    <tr>
      <td>Espace (mspace)</td>
      <td>Ctrl-m Ctrl-Space</td>
    </tr>
    <tr>
      <td>Caractère (&amp;xxx;)</td>
      <td>Ctrl-m Ctrl-e</td>
    </tr>
    <tr>
      <td>Séparateur invisible</td>
      <td>Ctrl-m Ctrl-i</td>
    </tr>
    <tr>
      <td>Application de fonction</td>
      <td>Ctrl-m Ctrl-a</td>
    </tr>
    <tr>
      <td>Racine (mroot)</td>
      <td>Ctrl-m Ctrl-r</td>
    </tr>
    <tr>
      <td>Racine carrée (msqrt)</td>
      <td>Ctrl-m Ctrl-q</td>
    </tr>
    <tr>
      <td>Englobement (menclose)</td>
      <td>Ctrl-m Ctrl-c</td>
    </tr>
    <tr>
      <td>Fraction (mfrac)</td>
      <td>Ctrl-m Ctrl-f</td>
    </tr>
    <tr>
      <td>Subscript et superscript (msubsup)</td>
      <td>Ctrl-m Ctrl-b</td>
    </tr>
    <tr>
      <td>Subscript (msub)</td>
      <td>Ctrl-m Ctrl-v</td>
    </tr>
    <tr>
      <td>Superscript (msup)</td>
      <td>Ctrl-m Ctrl-6</td>
    </tr>
    <tr>
      <td>Bas et haut (munderover)</td>
      <td>Ctrl-m Ctrl-k</td>
    </tr>
    <tr>
      <td>Bas (munder)</td>
      <td>Ctrl-m Ctrl-u</td>
    </tr>
    <tr>
      <td>Haut (mover)</td>
      <td>Ctrl-m Ctrl-o</td>
    </tr>
    <tr>
      <td>Parenthèses (mrow)</td>
      <td>Ctrl-m Ctrl-p</td>
    </tr>
    <tr>
      <td>Multiscripts (mmultiscripts)</td>
      <td>Ctrl-m Ctrl-s</td>
    </tr>
    <tr>
      <td>Matrice (mtable)</td>
      <td>Ctrl-m Ctrl-t</td>
    </tr>
  </tbody>
</table>

<h3 id="Entrer1"><a id="Entering1">Entrer des caractères</a></h3>

<p>Quand vous tapez une chaîne de caractères dans un élément MathML, Amaya
analyse cette chaîne et engendre automatiquement des éléments <code>mo</code>
(opérateur), <code>mn</code> (nombre), <code>mi</code> (identificateur), et
<code>mtext.</code>Par exemple, pour entrer</p>

<p><math xmlns="http://www.w3.org/1998/Math/MathML">
  <mrow>
    <mi>x</mi>
    <mo>=</mo>
    <mn>2</mn>
    <mi>a</mi>
    <mo>+</mo>
    <mi>b</mi>
  </mrow>
</math></p>

<p>il suffit de taper cette séquence de 6 caractères : <code>x=2a+b</code>
(n'oubliez pas de cliquer d'abord sur l'entrée Nouvelle formule du menu
<strong>XML</strong> ou sur le bouton <strong>Math</strong> de la palette si
vous n'êtes pas dans une expression mathématique), et vous obtiendrez la
structure suivante (vous pouvez vérifier dans le <a href="#Math_Struc">vue
Structure</a>) :</p>
<pre>&lt;mi&gt;x&lt;/mi&gt;&lt;mo&gt;=&lt;/mo&gt;&lt;mn&gt;2&lt;/mn&gt;&lt;mi&gt;a&lt;/mi&gt;&lt;mo&gt;+&lt;/mo&gt;&lt;mi&gt;b&lt;/mi&gt;</pre>

<p>Si le résultat ne correspond pas exactement à ce que vous vouliez, il
suffit de sélectionner les caractères mal interprétés et de changer leur type
avec l'une des commandes Texte (mtext), Identificateur (mi), Nombre(mn),
Opérateur (mo) du menu XML/Math.</p>

<p>Note: Si vous créez des parenthèses, comme dans l'expression::</p>

<p><math xmlns="http://www.w3.org/1998/Math/MathML">
  <mi>f</mi>
  <mrow>
    <mo>(</mo>
    <mi>x</mi>
    <mo>)</mo>
  </mrow>
  <mo>=</mo>
  <mfrac>
    <mn>1</mn>
    <mi>x</mi>
  </mfrac>
</math></p>

<p>ne tapez pas simplement la séquence de caractères <code>f(x)=</code> .
Vous obtiendriez:</p>

<p><math xmlns="http://www.w3.org/1998/Math/MathML">
  <mi>f</mi>
  <mo>(</mo>
  <mi>x</mi>
  <mo>)</mo>
  <mo>=</mo>
  <mfrac>
    <mn>1</mn>
    <mi>x</mi>
  </mfrac>
</math></p>

<p>Utilisez plutôt la commande Parenthèses du menu XML/Math ou de la
palette.</p>

<h3 id="Caract1"><a id="Caract">Caractères spéciaux</a></h3>

<p>Pour entrer les caractères et symboles mathématiques qui ne sont pas
disponibles au clavier, vous pouvez utiliser la commande <a
href="#Caract">Caractères</a> du menu <strong>XML/Eléments math de
base</strong>. Tapez le nom du caractère (la liste des noms est disponible
dans la <a
href="http://www.w3.org/TR/2003/REC-MathML2-20031021/byalpha.html">spécification
MathML</a>). Au lieu du nom, vous pouvez entrer la valeur Unicode du
caractère. Pour entrer cette valeur en décimal, commencez par '#'. Pour
l'entrer en hexadécimal, commencez par '#x'. Pour accélérer la frappe, vous
pouvez entrer directement une valeur hexadécimal, sans la faire précéder de
'#x', mais cela peut donner une ambiguïté (comme 'af', par exemple). En cas
d'ambiguïté, la alpes saisie est interprétée comme un nom de caractère.</p>

<p>Vous pouvez aussi utiliser la palette Caractères spéciaux qui se trouve
en-dessous de la palette Math. Les boutons de la partie supérieure de cette
palette permettent de choisir un groupe de caractères qui sont alors
disponibles dans le menu qui se trouve en-dessous. Choisissez le caractère
voulu dans ce menu, puis insérez-le dans le document à l'aide du bouton
voisin.</p>

<h3 id="Editer1"><a id="Structure">Editer la structure</a></h3>

<p>Si vous voulez changer la structure d'une expression existante, pour
ajouter par exemple un exposant ou mettre des parenthèses autour d'une
expression, il suffit de sélectionner dans le document l'expression à
transformer et d'entrer la nouvelle expression avec la palette Math, le menu
<strong>XML/Constructions math</strong> ou le <a
href="#Entering">clavier</a>. Vous pouvez également utiliser la commande
<strong>Transformer</strong> du menu <strong>Edition</strong>. Sélectionnez
l'expression que vous voulez transformer et la commande
<strong>Transformer</strong> affichera un menu avec tous les changements
possibles.</p>

<h3 id="Structure1"><a id="Math_Struc">Vue Structure</a></h3>

<p>Toutes les fois qu'un document contient des éléments MathML, la sélection
de l'article <a href="Views.html.fr#Structure">Montrer la structure</a> du
menu <strong>Vues</strong> ouvre la vue Structure qui montre la structure
principale du document HTML. Dans cette vue, les éléments MathML et leur
contenu effectif sont affichés.</p>

<p>Vous pouvez éditer des expressions mathématiques aussi bien dans la vue
principale que dans la vue Structure. La vue Structure est particulièrement
utile pour éviter l'ambiguïté. Observez l'exemple suivant :</p>
<math xmlns="http://www.w3.org/1998/Math/MathML">
  <mrow>
    <mi>x</mi>
    <mo>=</mo>
    <msqrt>
      <mrow>
        <mi>a</mi>
        <mo>+</mo>
        <mi fontstyle="italic">b</mi>
      </mrow>
    </msqrt>
    <mo>+</mo>
    <mn>1</mn>
  </mrow>
</math>

<p>Lorsque vous déplacez le point d'insertion après le caractère <em>b</em>,
il n'est pas évident de distinguer si vous voulez ajouter quelque chose <em>à
l'intérieur</em> de la racine carrée ou <em>après</em> elle. Sélectionner (ou
vérifier ) dans la vue Structure évite toute ambiguïté. Vous pouvez également
vérifier dans la ligne d'état, en bas de la fenêtre.</p>

<h3 id="liens"><a id="Links">Les liens dans MathML</a></h3>

<p>Vous pouvez créer et utiliser des liens hypertexte dans des expressions
mathématiques. Ces liens sont représentés en utilisant le <a
href="http://www.w3.org/TR/WD-xlink">XML Linking Language (XLink)</a>. Seuls
les liens simples unidirectionnels sont utilisables, mais vous pouvez
associer un lien à n'importe quelle partie d'une formule. Par exemple, la
fraction dans la formule ci-dessous est un lien vers la page d'accueil du
W3C :</p>
<math xmlns="http://www.w3.org/1998/Math/MathML">
  <mrow>
    <mi>y</mi>
    <mo>=</mo>
    <mfrac xmlns:xlink="http://www.w3.org/1999/xlink"
    xlink:href="http://www.w3.org/">
      <mn>1</mn>
      <msqrt>
        <mrow>
          <msup>
            <mi>x</mi>
            <mn>2</mn>
          </msup>
          <mo>+</mo>
          <mn>1</mn>
        </mrow>
      </msqrt>
    </mfrac>
  </mrow>
</math>

<p>Cliquer deux fois sur un des caractères à l'intérieur de la fraction fait
apparaître la page d'accueil du W3C.</p>

<p>Pour créer un tel lien, il suffit de sélectionner une expression (la
fraction dans l'exemple ci-dessus), de cliquer sur le bouton Lien de la
palette XHTML (ou de sélectionner l'entrée "Créer/changer lien" du menu
Liens), et de cliquer sur la cible désirée. Si la cible est une expression
dans une formule, vous devez d'abord faire de cette expression une cible. Il
suffit de sélectionner l'expression ainsi que l'entrée "Créer cible" du menu
Liens. Ceci crée un attribut <code>id</code> pour l'expression cible.</p>

<h3 id="Compatibil">Compatibilité avec Firefox et IE</h3>

<p>Il faut utiliser le suffixe <code>.xml</code> pour être sûr que tous les
browsers traitent les documents XHTML comme du XML et donc affichent
correctement les documents incluant des formules mathématiques.</p>

<p>Il est aussi recommandé d'utiliser le charset <strong>utf-8</strong> pour
les documents XML.</p>

<p>Par défaut Amaya ajoute le doctype <code>XHTML 1.1 plus MathML 2.0</code>
en tête du document. Ce doctype n'est pas obligatoire mais il est utile :</p>
<ul>
  <li>pour valider le document,</li>
  <li>pour engendrer des entités alphanumériques (<strong>&amp;int;</strong>
    par exemple) pour les symboles mathématiques, dans le code source. Sinon
    les symboles mathématiques seront codés comme tout autre caractère
    unicode.</li>
</ul>

<p>Malheureusement, ce doctype n'est pas supporté par beaucoup de browsers.
Il peut donc être nécessaire de le supprimer avec la commande
<strong>Fichier&gt;Changer le type du document&gt;Supprimer le
doctype</strong>.</p>

<p>IE ne sait pas traiter le MathML. Il utilise la feuille de transformation
<code>pmathml.xsl</code> et un plugin pour afficher le code MathML inclus.
Amaya ajoute automatiquement le lien vers la feuille de transformation, mais
il faut penser à déposer une copie de cette feuille de transformation (<a
href="http://www.w3.org/Math/XSL/pmathml.xsl">pmathml.xsl</a>) dans le
répertoire local du document.</p>

<h3 id="Limites"><a id="Current">Limites courantes</a></h3>

<p>Amaya implémente seulement les <em>Balises de Présentation</em> de MathML
2.0, et non le <em>Balisage du Contenu</em>. Tous les éléments de
présentation et les attributs sont utilisables, mais seuls les attributs
suivant sont pris en compte dans le formatage : <code>display,
alttext</code>, <code>mathvariant, mathsize</code>, <code>mathcolor,
mathbackground, fontsize, fontweight</code>, <code>fontstyle</code>,
<code>fontfamily</code>, <code>color</code>, <code>linethickness</code>,
<code>numalign</code>, <code>denomalign</code>, <code>bevelled</code>,
<code>notation</code>, <code>lquote</code>, <code>rquote</code>,
<code>lspace</code>, <code>rspace</code>, <code>largeop</code>,
<code>movablelimits, subscriptshift</code>, <code>superscriptshift</code>,
<code>form</code>, <code>width</code> (<code>mspace</code>),
<code>height</code> (<code>mspace</code>), <code>depth</code>
(<code>mspace</code>), <code>align</code>, <code>rowalign</code>,
<code>columnalign</code>, <code>frame</code>, <code>framespacing</code>,
<code>displaystyle,side</code>, <code>rowspan</code>, <code>columnspan,
rowspacing, columnspacing, rowlines, columnlines</code>.</p>

<p>Les attributs <code>class</code>, <code>id</code> et <code>style</code>
sont utilisables, avec la même sémantique que dans HTML : vous pouvez <a
href="StyleSheets.html.fr">associer du style CSS</a> aux éléments MathML
(attribut <code>class</code> et <code>style</code>) et un élément MathML peut
être la cible d'un lien (attribut <code>id</code>).</p>
</div>
</body>
</html>
