Dominique Meeùs
Dernière modification le   
retour à la table des matières — à l’index — à ma page de départ

Baliser les mathématiques en MathML

Up: Balisage en XML Pourquoi et comment baliser structurellement — la TEI et les autres Previous: Rédiger en LibreOffice pour un projet TEI Next: Quelques notes sur le HTML

MathML (Mathematical Markup Language) est un langage de balises XML qui permet de marquer des formules mathématiques. Il en existe deux niveaux, un MathML de présentation (qui permet de composer une présentation lisible des formules) et un MathML de contenu (plus sémantique, indépendant de la présentation, qui permettrait donc des présentations différentes — par exemple vocales pour des mal-voyants). Voir la page Wikipédia qui donne d’autres références (plus en anglais). L’essentiel du code est bien expliqué dans l’article « MathML Presentation Markup for the Impatient » de Hussein Shafie. Voir aussi le wiki sur les maths du W3C.

Il est possible d’introduire du MathML de présentation dans le code TEI. La TEI est modulaire et il y a en outre quelques modules expérimentaux. Si on prend « la totale », TEI All Plus, les codes SVG et MathML sont acceptés. Les feuilles de style de la TEI prennent en charge l’intégration de ce code en XHTML ou en HTML5. Le problème est le manque de support par les browsers. Il n’y a de support à moitié convenable qu’en Firefox et seulement en MathML de présentation.

Le MathML est accepté sans autre forme de procès dans HTML5, mais ça ne change rien à l’absence de support par les browsers. Une solution très simple est apportée, en attendant mieux, par MathJax. (MathJax devrait, avec la bonne configuration, assurer aussi le rendu de MathML de contenu, mais je n’ai pas encore essayé.) J’ai mise en œuvre MathJax tant pour le Manuel… que pour certaines notes sur l’environnement, comme la définition et le calcul du taux de pénétration critique d’une énergie renouvelable. On peut donc lire ça maintenant dans d’autres browsers que Firefox, par exemple avec Chromium. (Si ça ne marchait pas avec Microsoft Internet Explorer, eh bien ça montre qu’il faut choisir un autre navigateur Internet.)

Voici par exemple la dérivation de la formule des racines de l’équation du second degré. (Si vous êtes curieux de voir à quoi ressemble le code des formules ci-dessous, vous devriez pouvoir l’afficher avec Ctrl+U.) On part de l’équation

a x 2 + b x + c = 0

ce qui revient à

a x 2 + b x = - c

On divise les deux membres de l’équation par le coefficient de x 2 et on complète le membre de gauche pour en faire un carré.

x 2 + b a x = - c a

x 2 + b a x + b 2 a 2 = - c a + b 2 a 2

On explicite le carré à gauche et on procède à quelques arrangements à droite.

x + b 2 a 2 = - c 4 a a 4 a + b 2 4 a 2 = b 2 - 4 a c 4 a 2

On extrait la racine, on isole x et on arrange encore un peu le membre de gauche.

x + b 2 a = ± b 2 - 4 a c 4 a 2

x = - b 2 a ± b 2 - 4 a c 4 a 2

x = - b ± b 2 - 4 a c 2 a

Up: Balisage en XML Pourquoi et comment baliser structurellement — la TEI et les autres Previous: Rédiger en LibreOffice pour un projet TEI Next: Quelques notes sur le HTML