## Editer des mathématiques

Amaya vous permet d'inclure des expressions mathématiques dans des pages web, suivant la spécification du Balisage du langage mathématique (MathML). Les expressions mathématiques y 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 de la même manière que 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.

### Créer une expression mathématique

#### La palette Math et le menu Eléments/Math

Pour créer une expression mathématique dans un document, il suffit de déplacer le point d'insertion à l'endroit où vous voulez insérer l'expression, puis de cliquer sur le bouton Math (le bouton à droite de la barre des boutons) ou de sélectionner l'entrée Math du menu XML. Le bouton Math affiche une palette qui reste à l'écran jusqu´à ce que vous cliquiez sur son bouton "terminer". L'entrée Math du menu XML affiche un menu. Choisissez l'outil qui vous est le plus commode. Les deux vous permettent de choisir la construction mathématique à insérer.

Dans la palette Math (ou le menu), le premier item vous permet de créer une nouvelle formule lorsque le point d'insertion est dans un élément HTML ou SVG (mais le point d'insertion ne devrait pas être à l'intérieur d'un élément MathML).

Dans le menu Math, les éléments suivants vous donnent la possibilité de créer de nouveaux éléments de base (non disponibles dans la palette) : Texte (`mtext`), Identificateur (`mi`), Nombre (`mn`), Opérateur (`mo`). Vous pouvez également utiliser ces commandes pour changer le type d'un élément seul ou d'une séquence d'éléments.

Ces items du menu Math sont suivis de l'item Caractère (`&xxx;`). 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 alpha pour le caractère grec α).

Les éléments suivants du menu Math (ou de la palette) 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 :

- Racine (`mroot dans` MathML) : x + 1 3
- Racine carrée ( `msqrt)`: x + 1
- Englobe (`menclose)`: 1234
- Fraction (`mfrac)`: 1 x + 1
- Indice et exposant Expression (`msubsup)`: x i + 1 n ou ∫ 0 ∞
- Indice (`msub)`: x i
- Exposant (`msup)`: x n
- Dessous et dessus (`munderover)`: ∑ i = 1 n
- Dessous (`munder)`: x ‾
- Dessus (`mover)`: x → maps to y
- Parenthèses (`mrow)`: ( a + b )
- Multi-scripts (`mmultiscripts)`: X i j k l
- Matrice ou table (`mtable)`: a b c d

Le dernier item de la palette Math ( αβγ ) affiche une autre palette à partir de laquelle vous pouvez insérer des symboles mathématiques et des caractères grecs.

#### Entrer des constructions à partir du clavier.

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

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 → fait passer au début du dénominateur.

### Entrer des caractères

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 `mo` (opérateur), `mn` (nombre), `mi` (identificateur), et `mtext.`Par exemple, pour entrer

x = 2 a + b

il suffit de taper cette séquence de 6 caractères : `x=2a+b` (n'oubliez pas de cliquer d'abord sur l'entrée Math du menu Math si vous n'êtes pas dans une expression mathématique), et vous obtiendrez la structure suivante (vous pouvez vérifier dans le vue Structure) :

    <mi>x</mi><mo>=</mo><mn>2</mn><mi>a</mi><mo>+</mo><mi>b</mi>

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.

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

f ( x ) = 1 x

ne tapez pas simplement la séquence de caractères `f(x)=` . Vous obtiendriez:

f ( x ) = 1 x

Utilisez plutôt la commande Parentheses du menu XML/Math ou de la palette.

### Editer la structure

Amaya prévoit la même méthode pour créer et éditer des matrices que pour éditer des tables HTML. Comme pour les tables, il y a une commande spécifique (Détruire une colonne de matrice) pour détruire une colonne dans une matrice, même si elle n'est pas vide. Cette commande est située à la fin du sous-menu Math du menu XML.

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 l'expression et d'entrer la nouvelle expression avec la palette, le menu Math ou le clavier. Vous pouvez également utiliser la commande Transformerdu menu Edition. Sélectionnez l'expression que vous voulez transformer et la commandeTransformer affichera un menu avec tous les changements possibles.

### Vue Structure

Toutes les fois qu'un document contient des éléments MathML, la sélection de l'article Montrer la structure du menu Vues ouvre la vue Structure qui montre la structure principale du document HTML. Dans cette vue, les éléments MathML et leurs contenus effectifs sont affichés.

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 :

x = a + b + 1

Lorsque vous déplacez le point d'insertion après le caractèreb, il n'est pas évident de distinguer si vous voulez ajouter quelque chose à l'intérieurde la racine carrée ou prèss elle. Sélectionner (ou vérifier ) dans la vue Structure évite toute ambiguïté. Vous pouvez également vérifier la position de la ligne, en bas de la fenêtre principale.

### Les liens dans MathML

Vous pouvez créer et utiliser des liens dans des expressions mathématiques. Ces liens sont représentés en utilisant une version détachée du XML Linking Language (XLink). 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 :

y = 1 x 2 + 1

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

Pour créer un tel lien, il suffit de sélectionner une expression (la fraction dans la démonstration ci-dessus par exemple), de cliquer sur le bouton Lien ( ou de sélectionner le "créer 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 transformer cette expression en cible. Il suffit de sélectionner l'expression ainsi que le "créer cible" du menu Liens. Ceci crée un attribut `id` pour l'expression cible.

### Limites courantes

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

Les attributs `class`, `id` et `style` sont utilisables, avec la même sémantique que dans HTML : vous pouvez associer le style CSS aux éléments MathML (attribut `class` et `style`) et un élément MathML peut être la cible d'un lien (attribut `id`).

A cause du manque de polices de caractères mathématiques, seule une série limitée d'entités représentant des symboles mathématiques est reconnue, la plupart disponible dans la police Symbole. La version courante contient : Therefore, SuchThat, DownTee, Or, And, Not, Exists, ForAll, Element, NotElement, NotSubset, Subset, SubsetEqual, Superset, SupersetEqual, DoubleLeftArrow, DoubleLeftRightArrow, DoubleRightArrow, LeftArrow, LeftRightArrow, RightArrow, Congruent, GreaterEqual, le, NotEqual, Proportional, VerticalBar, Union, Intersection, PlusMinus, CirclePlus, Sum, Integral, CircleTimes, Product, CenterDot, Diamond, PartialD, DoubleDownArrow, DoubleUpArrow, DownArrow, UpArrow, ApplyFunction, TripleDot, DifferentialD, ImaginaryI, ExponentialE, InvisibleComma, UnderBar, OverBar, ThinSpace, ThickSpace, Hat, OverBar, UnderBar, prime, Prime.