Comment afficher des maths sur une page web ?#

La page Comment convertir de vers HTML ? explique comment convertir un document en fichier HTML.

Les nombreuses fontes désormais accessibles sur le web ainsi que les nouveaux standards web et leurs possibilités permettent désormais d’afficher correctement des formules mathématiques sur le web.

1.  Technologies des polices de caractères#

La représentation directe des mathématiques dans les navigateurs était entravée par la gamme limitée de symboles dans les polices disponibles. Cependant, tous les systèmes d’exploitation modernes incluent désormais des polices OpenType avec de vastes collections de symboles. Comme désormais, il est possible d’indiquer au navigateur web où trouver une fonte particulière, on peut créer une page web en spécifiant des polices particulière, et le rendu de la page ne dépendre plus du fait que le lecteur ait préinstallé les polices appropriées. La page Quelles sont les fontes OpenType utilisables pour les mathématiques ? explique que le format OpenType contient une partie réservée aux mathématiques et que quelques fontes OpenType fournissent les caractères mathématiques.

2.  L’interprétation directe d’un sous ensemble de commandes mathématiques en Javascript#

La rapidité des moteurs modernes Javascript permet de générer des pages web contenant des morceaux de code qui sont transformées par le navigateur web du lecteur.

Les deux outils principaux sont les suivants.

  • MathJax est la bibliothèque Javascript la plus utilisée pour le rendu des mathématiques dans une page web. Il supporte plusieurs types d’entrées, en particulier un sous ensemble de la syntaxe mathématique de Il peut être configuré pour produire différents types de sorties comme MathML, SVG ou (le plus souvent) de l’HTML et du CSS. Alors que normalement il est utilisé comme une bibliothèque Javascript exécutée du côté du navigateur du lecteur, il est aussi possible (en utilisant Node.js) de réaliser les conversions en avance et de servir les pages HTML avec le rendu mathématique déjà produit.

    MathJax permet de télécharger une copy de la bibliothèque et de l’installer sur votre serveur. MathJax est un logiciel libre.

  • est une nouvelle bibliothèque Javascript alternative. Son but principal est d’être plus simple et plus rapide que MathJax. Cette bibliothèque supporte moins de formats d’entrées et de sorties, et traite moins de structure que ne le fait MathJax.

3.  Écrire directement en XML#

La conversion de en XML est tout à fait possible (par exemple avec ht) et les travaux se poursuivent dans ce domaine.

L’autre solution, qui consiste à rédiger son document directement en XML (et donc à produire des documents immédiatement adaptés au Web, voir même prêt à l’emploi) et à utiliser pour la composition et la production d’un fichier PDF, est également bien avancée. Une des techniques consiste, pour cela, à transformer le source XML en en utilisant une feuille de style XSLT ou le code d’une bibliothèque XML, puis à utiliser simplement On peut aussi composer directement à partir du source XML.

La représentation directe en MathML est un standard pour la représentation des mathématiques sur le Web. Le support MathML est fourni pour la plupart des navigateur (quitte à installer un plugin). Les formules écrites en MathML dans la page peuvent être rendue par MathJax, avec une sortie identique à son rendu MathJax utilise d’ailelurs une variante de MathML comme format intermédiaire.

4.  Autres approches#

  • GELLMU Project propose une autre approche. Le document de base article est un document XML qui a une syntaxe proche de même si ce n’est pas tout à fait du et est fourni avec des traducteurs qui produisent à la fois du PDF (via pdflatex) et du XHTML+MathML. Une telle approche évite les limites inhérentes à la conversion «traditionnelle» de dont les pièges peuvent être évité avec une syntaxe proche de adaptée.

  • Les images SVG sont aussi devenues un standard pour les représentations graphiques sur le web. Ainsi, il est aussi possible de représenter des formules en SVG.

  • est aussi une alternative intéressante. Il s’agit d’un script CGI sur votre serveur qui produit à la volée des images PNG ou JPEG à partir d’une balise <img> dont la syntaxe est quelque chose comme :

    <img src="/cgi-bin/mathtex.cgi?f(x)=\int\limits_{-\infty}^xe^{-t^2}dt />
    

    Mathtex est l’héritier du package précédent mimetex par le même auteur.


Sources

Math on the Web