MathJax

logiciel informatique

MathJax est une bibliothèque logicielle JavaScript cross-browser qui affiche les formules mathématiques dans des navigateurs web, en utilisant les balises de AsciiMath (en), LaTeX ou de MathML[1]. MathJax est distribué comme logiciel open-source sous licence Apache.

Le projet MathJax a débuté en 2009 comme successeur de jsMath qui est une bibliothèque de formatage des mathématiques[2]. Il est développé par Design Science (en). Il est subventionné par l'American Mathematical Society, Design Science (en) et la Society for Industrial and Applied Mathematics ; le projet est soutenu par des « partenaires » : Stack Exchange Network et American Institute of Physics et des « soutiens », parmi lesquels la American Physical Society, Elsevier, IEEE, la London Mathematical Society, la Optical Society et le Projet Euclide.

MathJax est utilisé par des sites web MathSciNet[3], MathOverflow, les journaux du projet Euclide[4], Scholarpedia, et le portail mathématique russe Общероссийский математический портал[5]. En revanche, Wikipédia a abandonné son usage.

Propriétés modifier

MathJax est téléchargé en même temps qu'une page web ; il cherche d'éventuelles balises mathématiques dans le contenu de la page, et dans ce cas compose la partie mathématique. Ainsi, MathJax ne nécessite ni l'installation d'un logiciel, ni le chargement de police sur le système de l'utilisateur. Ceci permet à MathJax d'opérer sur tout navigateur qui supporte Javascript, y compris les appareils mobiles[6].

MathJax affiche les mathématiques par une combinaison de balises HTML et CSS, ou en utilisant un support MathML natif s'il existe. La méthode précise utilisée par MathJax pour composer les mathématiques est déterminée par les propriétés du navigateur de l'utilisateur, des polices disponibles et des paramètres de configuration. La version actuelle MathJax 2.0 introduit le rendu vectoriel SVG.

Dans le cas où la mise en page utilise HTML et CSS, MathJax tente d'optimiser la qualité du rendu par l'emploi de polices mathématiques si elles sont disponibles, et sinon par un rendu en images. Pour les navigateurs plus récents, MathJax fournit un ensemble complet de polices web, que MathJax télécharge au besoin. Si le navigateur n'accepte pas les polices web, MathJax teste si des polices adéquates sont disponibles sur le système local. Dans la négative, MathJax fournit des images pour tous les symboles nécessaires. MathJax peut être configuré pour autoriser ou interdire les polices web, les polices locales, et les polices images.

MathJax peut afficher les expressions mathématiques écrites en AsciiMath (en) en LaTeX ou en MathML. Comme MathJax est destiné seulement à l'affichage des mathématiques, et que LaTeX est un langage de mise en page de documents, MathJax n'accepte que la partie de LaTeX utilisée pour la description d'expressions mathématiques[6]. MathJax fournit également du soutien à l'accessibililté[7].

L’architecture MathJax est conçue pour supporter ultérieurement l'addition de langages d'entrée et de méthodes d'affichage par l'adjonction de modules chargés dynamiquement. MathJax contient aussi une interface Javascript pour énumérer et interagir avec les parties mathématiques dans une page.

Compatibilité avec les navigateurs modifier

MathJax est opérationnel dans la plupart des navigateurs courants, y compris Internet Explorer, Firefox, Safari, Opera, iPhone/iPad Safari, et le navigateur Android[8].

Compatibilité avec les serveurs modifier

MathJax peut être installé sur des plateformes variées, y compris MediaWiki, Drupal, SPIP, WordPress, et Joomla[9].

Support pour AsciiMath modifier

Mathjax fournit un support pour AsciiMath (en)

Support pour TeX modifier

MathJax a un équivalent pour chaque commande LaTeX de mathématiques. Les commandes mathématiques de AMS-LaTeX sont accessibles via des extensions. MathJax permet aussi de définir des macros TeX et d'utiliser diverses instructions de formatage comme "\color" et "\underline"[10].

Support pour MathML modifier

MathJax fournit un support partiel pour MathML 2.0 et pour quelques constructions MathML 3.0. MathJax ne traite que de la partie présentation de MathML et ignore sa partie sémantique.

Notes et références modifier

  1. (en) « MathJax: Rich Math display from LaTeX and MathML ».
  2. Brian Hayes, « Writing Math on the Web: The Web would make a dandy blackboard if only we could scribble an equation », American Scientist, vol. 92, no 2,‎ , p. 98 (DOI 10.1511/2009.77.98).
  3. Article (en) « MathSciNet What's New ».
  4. Article du projet Euclide : What is MathJax?
  5. Article (ru) « Общероссийский математический портал ».
  6. a et b Davide Cervone, « Math Jax: A Platform for Mathematics on the Web », Notices of the American Mathematical Society, vol. 59, no 2,‎ , p. 312–316 (lire en ligne [PDF])
  7. (en) « MathJax: Accessibility »(Archive.orgWikiwixArchive.isGoogleQue faire ?).
  8. La liste des navigateurs compatibles avec MathJaxest disponible sur le site officiel(en) « MathJax: Browser Compatibility » [archive du ] (consulté le ).
  9. (en) « Using MathJax in popular web platforms ».
  10. La liste des commandes LaTeX acceptées est disponible ici :(en) « MathJax: Supported LaTeX Commands ».
(en) Cet article est partiellement ou en totalité issu de l’article de Wikipédia en anglais intitulé « MathJax » (voir la liste des auteurs).

Liens externes modifier