Comprendre le Web

MathML - asciiMath

Cette page supporte les deux encodages de formules grâce au JS config=TeX-MML-AM_CHTML

<noscript>

Vu qu'il est toujours utilisé un JS pour coder les formules (au format mathML ou au format asciiMath), le code HTML des pages contenant des formules devrait toujours être :

<body>
  <noscript class="red">Le JavaScript n'est pas activé.</noscript>

Une classe ad hoc pour la mise en évidence peut être utilisée. Ici, "red"

Format MathML

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

HTML 5 devait intégrer le standard MathML. Mais, les principaux éditeurs de navigateurs web ne l'ont pas intégré, hormis Firefox et Safari, pour alléger leurs navigateurs. En effet, le public visé est "scientifique" et il existe des libraires JS qui font le travail. De plus, les scientifiques peuvent ajouter un module à leur navigateur.

Seul le navigateur Firefox, (Safari d'Apple) affiche, nativement, les formules mathématiques.

Les autres navigateurs imposent l'utilisation d'un fichier JS (appelé dans le <head>). Tels que
<script src='https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML' async></script>

La présente page utilise le JS indiqué ci-dessus.

Les formules écrites au format mathML et au format asciiMath sont alors affichées correctement par tous les navigateurs.

Mais, le code MathML est long (=> page lourde). La production ce code mathML requiert l'utilisation d'un logiciel, tel que OpenOffice Math

OpenOffice Math

OpenOffice Math permet d'enregistrer sous une formule au format MML, dans un fichier d'extension .mml. Ci-dessous, la fraction 2 /3 :

<?xml version="1.0" encoding="UTF-8"?>

<math xmlns="http://www.w3.org/1998/Math/MathML">
 <semantics>
  <mrow>
   <mfrac>
    <mrow>
     <mn>2</mn>
    </mrow>
    <mrow>
     <mn>3</mn>
    </mrow>
   </mfrac>
  </mrow>
  <annotation encoding="StarMath 5.0">{2} over {3} </annotation>
 </semantics>
</math>

XHTML

Pour insérer une formule, telle que la fraction 2 3 {2} over {3} , il suffit d'insérer le contenu de la balise <math>...</math> (générée par OpenOffice Math) dans une page web au format XML (soit au format XHTML)

La balise <math> n'est pas reconnue par la norme HTML5.
Heureusement, XML accepte toute balise ...
Raison de plus pour que toute page web soit au format XHTML(5)

Format asciiMath

Le format asciiMath permet le codage le plus court.

La formule ci-dessous :

sum_(i=1)^n i^3=((n(n+1))/2)^2

Ce code doit être délimité avec le caractère ` ou ` (= entité &#96;), appelé backticks.

affiche (avec le délimitateur `) :

`sum_(i=1)^n i^3=((n(n+1))/2)^2`

(avec le délimitateur &#96;) :

`sum_(i=1)^n i^3=((n(n+1))/2)^2`

Les backticks ne sont pas interprétés par MathJax lorsque ce caractère est présent dans les balises HTML : pre, code, textarea

AsciiMath.org publie, sur une page, un éditeur et la syntaxe

Firefox

avec le format MathML

Firefox ne requiert pas de JS pour afficher des formules codées au format MathML.

L'utilisation du JS avec Firefox est inutile et ne pose pas problème.

avec le format asciiMath

Firefox requiert ASCIIMathML.js (57 Ko) ou MathJax.js pour afficher des formules codées au format asciiMath.

Page où les formules ne sont affichées correctement que par Firefox

MathJax.js

Pour que les formules soient affichées correctement avec tous les navigateurs MathJax.js doit être utilisé dans tous les cas.

La version la plus récente est la 3.0.5. (en août 2021)

Différents configurations peuvent exister.

AsciiMath hasn’t been fully ported to version 3

<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=AM_CHTML"></script>
ou
https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.4/latest.js?config=AM_CHTML (?)
ou
<script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
<script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>

        

SVG

Il est possible de convertir, en ligne, une expression Latex en SVG. Toutefois, le poids du fichier ainsi produit est élevé (par rapport à un code mathMl)

Liens