Centre de
  Recherche et
d'Expérimentation pour
l'Enseignement des
  M
athématiques

L'écriture d' expressions mathématiques dans les pages html avec le contrôle EcritMath

Date de mise à jour : 31/05/00

Introduction
Placer des expressions mathématiques dans une page HTML n'est pas actuellement simple. Outre celui du CREEM, divers systèmes existent (voir http://www.w3.org/Math/ pour des explications plus précises).

Il se trouve que la bibliothèque GP32.DLL qui gère les figures-Géoplan 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-Géoplan ou des figures-Géospace 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 12 points. Les expressions sont écrites en gras.
Malheureusement, à l'heure actuelle, l'impression des expressions est impossible.

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 sin x.
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 sin x cos y mais (sin x) cos y.

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,4,n^2)donnera   .
 prod exemple: prod(n=1,4,((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
Dans FrontPage Express (éditeur Microsoft gratuit de pages HTML, qui a d'ailleurs servi à écrire ce document), l'insertion d'une instance du contrôle EcritMath se fait par le menu d'insertion des contrôles ActiveX. Bien entendu, les conditions de fonctionnement doivent être remplies: GP32.DLL dans le dossier système et utilisation de Internet Explorer version 4 au moins.
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
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

Noir

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

17

8

Taille, inclinaison, graisse
Par défaut, la taille utilisée est 12 points.
On peut en changer suivant le code suivant (le mode par défaut est gras droit, taille normale):

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

Pour aller plus loin avec EcritMath

Retour au début de l'aide