Association pour l'Innovation Didactique
Centre de Recherche et d'Expérimentation pour l'Enseignement des Mathématiques

RAPPEL : pour lire cette page, les contrôles ActiveX de Geoplan-Geospace et EcritMath doivent être installés et le navigateur doit être Internet Explorer.

Introduction
Placer des expressions mathématiques dans une page HTML n'est pas actuellement simple. Outre celui décrit ici (EcritMath), il existe divers systèmes que l'on peut trouver sur le web.

La bibliothèque GP32.DLL qui gère les figures-Geoplan contient un système qui permet d'écrire des expressions, système un peu rustique sans doute, mais disponible dès que la DLL est dans le dossier Système, ce qui est le cas quand on veut utiliser des figures-Geoplan ou des figures-Geospace interactives dans des documents (contrôles ActiveX GP0 et GE0)

Le contrôle activeX EcritMath est destiné à être utilisé dans les documents HTML lus par Internet Explorer (version 4 au moins) pour écrire les expressions mathématiques. Il doit avoir été installé sur le PC. Cette page ne peut être lue correctement que si cette condition est réalisée.

EcritMath possède une propriété publique, nommée Expression destinée à contenir la chaîne de caractère à écrire mathématiquement. Chaque expression à écrire dans le document html l'est par une instance de EcritMath dont la propriété Expression doit contenir la chaîne de caractères correspondant à l'expression à écrire suivant la syntaxe décrite ci-dessous. Ces instances sont très légères et les fichiers restent de taille modeste.
La police utilisée par EcritMath est Courrier New (taille recommandée 12 points). Par défaut, les expressions sont écrites en gras (valeur de la propriété Indictaille à 3) .

La syntaxe dans le contrôle EcritMath
règle générale
La syntaxe d'EcritMath est très proche de celle de l'écriture en ligne des expressions dans la plupart des langages classiques de programmation (Pascal, Basic ou autres).
Les expressions à dessiner doivent être encadrées par des symboles "\".
Exemple pour faire écrire proprement l'expression 1+1/x , il faut utiliser le texte \1+1/x\.
Ce qui est à l'extérieur des \ est considéré comme du "texte pur", non interprété et donc rendu à l'identique (mais en police Courrier New). Pour alléger la lecture les \ ne sont pas écrits dans ce texte.

Particularités
Multiplication
La présence du symbole de la multiplication n'est pas nécessaire sauf bien sûr entre nombres (3 multiplié par 4 s'écrit 3*4). À l'écriture, les signes '*' sont supprimés par EcritMath sauf ceux entre nombres qui sont rendus par le signe '×'.
Puissance
Le symbole pour la puissance est l'accent circonflexe "^"; exemple: a^n donnera   .
Indice
Le symbole pour mettre en indice est le soulignement "_"; exemple: u_n donnera   .
Priorité
Les règles de priorités habituelles ont cours mais les ambiguïtés sont refusées: ainsi 1/2/3 n'est pas accepté.
Il faut parenthéser: 1/(2/3) ou (1/2)/3). Il en est de même avec 1/ab ou 2^3^4.
exemple: 1/(2/3) donnera    alors que (1/2)/3 donnera  .
Parenthèses
Les parenthèses inutiles sont systématiquement enlevées par EcritMath. Pour les conserver, il suffit de les doubler. Ainsi (a+b)+c est-il rendu par a+b+c. Si on veut garder les parenthèses, écrire ((a+b))+c qui sera rendu pas (a+b)+c. De même, le texte f(x) donnera-t-il fx. Pour obtenir f(x), il faut partir de f((x)).
Vecteurs
Pour écrire un vecteur de la géométrie élémentaire, utiliser vec(). Le nom du vecteur peut être soit une lettre, soit deux lettres séparées par une virgule.
exemple: vec(u)donnera    et vec(A,B)donnera 
Le produit scalaire utilise le symbole "&"; il est rendu par un gros point.
exemple: vec(A,B)&vec(u) donnera   .
Le produit vectoriel utilise le symbole "§"; exemple: vec(E)§vec(i) donnera   .
Fonctions
Les arguments des fonctions doivent être mis entre parenthèses.
Exemple partir de sin(x) pour obtenir sinx.
Si l'argument est un nombre ou une variable, les parenthèses sont retirées par EcritMath. Pour obtenir sin(x), il faut donc partir de sin((x)).

Quand il risque d'y avoir ambiguïté, EcritMath rajoute des parenthèses.
Ainsi sin(x)cos(y) ne donne-t-il pas sinx cosy mais (sinx) cosy.

Liste des noms de fonction à une variable numérique:
fonctions ordinaires: arccos, arcsin, arctan, abs, cos, sin, tan, exp, int, ln.
cas particuliers:
 sqrt: racine carrée ; exemple sqrt(1+x) donnera    .
 bar: conjugué ; exemple bar(a+ib) donnera   .
 fleche: la flèche ; exemple fleche(u((t))) donnera    .
 hat: chapeau; exemple hat(z) donnera    .
 arc: arc; exemple arc(AB) donnera    .
 arcor: arc orienté; exemple arcor(AB) donnera    .
Liste des noms de fonction à deux variables numériques:
les arguments doivent être séparés par une virgule.
fonctions ordinaires: min, max.
cas particuliers:
 anp pour les arrangements ; exemple anp(n,3) donnera    .
 cnp pour les combinaisons; exemple cnp(k,7) donnera    .
 root
pour les racines; exemple root(3,x+1) donnera    .
Spécial:
 sigma exemple: sigma(n=1,10,(1+n)^2)donnera   .
 prod exemple: prod(n=1,10,((1+n)))donnera   .
Autres:
 integrale pour l'intégrale; exemple: integrale(0,1,sin(x)/x,x)donnera   .
 norm pour la norme d'un vecteur; exemple norm(vec(u)) donnera    .
 lim pour limite; exemple lim(x,0,sin(x)/x) donnera    .
 angle
pour l'angle de deux vecteurs; exemple angle(vec(U),vec(V)) donnera  
 µ
pour la fonction µ de Geoplan ou Geospace, dont l'argument est une relation.
Chaînes de caractères
Toute chaîne de caractères ne contenant pas le caractère "\" et écrite entre les guillemets "«" (Alt 0171) au début et "»" (Alt 0187) à la fin est considérée comme une expression numérique et écrite telle quelle;
exemples:
(n(n-1)«..»(n-p+1))/(p(p-1)«..»2*1) donnera    .
hat(«AOB») donnera    .
Remarque sur l'analyse syntaxique
Les expressions peuvent être de trois types: numérique, vectoriel ou booléen. En mathématiques (et aussi en physique), il est parfois nécessaire d'écrire des "choses" qui ne sont pas de véritables expressions (au sens élémentaire du terme) comme  .
On peut même, pour des raisons didactiques, avoir à écrire des choses incorrectes comme "l'écriture  est incorrecte".
La grammaire de EcritMath ne tolère a priori pas les écritures incorrectes. Il est cependant possible de simuler ce genre de chose en utilisant les guillemets et la flèche. Exemple: l'éciture précédente est réalisée par la chaîne fleche(«AB»)+1/sqrt(2).
Utilisation du contrôle EcritMath
Insertion
L'insertion d'un EcritMath se fait comme celle de n'importe quel contrôle activeX. Elle dépend du logiciel qui sert à fabriquer les pages. Dans le code html, l'objet est décrit avec ses propriétés.
Position
Chaque expression mathématique possède une "ligne" de base. Pour que cette ligne soit correctement positionnée (ce n'est pas toujours parfait d'ailleurs), il faut fixer la propriété "alignement" du contrôle à "milieu absolu".
Couleur (propriété couleur)
Par défaut, la couleur utilisée est le noir.
On peut en changer suivant le code suivant (le mode par défaut est noir):

Clair

Blanc

Bleu

Vert

Ciel

Rouge

Rose

Gris

Jaune

Code

15

1

2

3

4

5

6

14

Foncé

Noir

Bleu

Vert

Ciel

Rouge

Rose

Gris

Caca d'oie

Code

0

11

9

12

10

13

7

8

Taille, inclinaison, graisse (propriété IndicTaille)
La taille est la même pour tous les caractères d'un même EcritMath. Le texte éventuel (non encadré par des antislashs) est en maigre droit sauf formatage par le système décrit dans la page Formatage d'un texte.
Par défaut, la taille utilisée est 12 points,  les expressions (entre antislashs) sont en gras droit (IndicTaille=3).
On peut changer la taille et le style (rappel: le style ne s'applique qu'aux expressions) en modifiant la valeur de IndicTaille.

Valeurs admises pour IndicTaille:

Taille petite moyenne normale grande
gras droit 1 2 3 4
italique 9 10 11 12
italique gras 17 18 19 20
maigre droit 25 26 27 28

Pour aller plus loin avec EcritMath