mardi 14 avril 2009

MathML in Blogger !?

L'objet de cet article est de passer un tout petit peu en revue les diverses solutions pour écrire des mathématiques dans un blog. Le dialecte XML créé pour cet usage est MathML. La solution usuelle est de rendre les équations en bitmap (image), mais c'est pas joli. On veut autre chose !

1.ASCIIMathML.js

Une solution qui marche :
amath \frac{1}{3} +\frac{1}{4}=\frac{7}{12} endamath
amath $\sum_{n=0}^\infty \left(\frac{1}{2}\right)^n = 2$ endamath
amath $e^x = \sum_{n=0}^\infty \frac{x^n}{n!}$ endamath
en incluant le script ASCIIMathML.js dans l'entête du blog. Ce script convertit à la volée du code latex (on le voit le temps du chargement de la page) en VRAI MathML [non, c'est pas du bitmap !!!!] dans Blogger ! Si c'est pas magnifique ! On doit même pouvoir changer la couleur du MathML rendu en ouvrant le javascript, ça doit pas être dur, je n'y est pas encore fourré le nez.

2. Pure MathML dans Blogger

C'est pas pour demain. Blogger ne semble pas interpréter le MathML out of the box ; le code :
<math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> <msup> <mfenced open="[" close="]"> <mrow> <mi>a</mi> <mo>+</mo> <mi>b</mi> </mrow> </mfenced> <mn>260</mn> </msup> <mo>+</mo> <msub> <mfenced open="{" close="}"> <mrow> <mi>a</mi> <mo>+</mo> <mi>b</mi> </mrow> </mfenced> <mi>i</mi> </msub> </mrow> </math>
[exemple test du W3C]
est rendu dans Blogger comme suit : a + b 260 + a + b i Question bête : faut-il pour que ça marche que le format du document soit .xml plutôt que .html !?

3. Encodage des formules MathML en base64, inséré dans une balisage objet

En effet, on trouve en butinant un joli MathML workaround for Blogger sur Shiny Ideas qui permet d'écrire par exemple :

Pour l'encodage en base64, on peut utiliser xdeview [Linux]. La solution reste un peu fastidieuse. Il faut voir à l'usage....

Quoi qu'il en soit, on peut désormais inclure des éléments mathématiques joliment formatés dans des pages web et c'est plutôt une chouette nouvelle

Further readings...

MathML on Delicious

Aucun commentaire: