Comme la tartine, l'ivrogne tombe toujours du côté qui est complètement beurré. Professeur Choron

Lolo's Weblog

Aller au contenu | Aller au menu | Aller à la recherche

Test de MathML dans DotClear

Comment afficher de belles formules mathématiques dans un blog dotclear ?

Il faut en premier lieu vérifier que votre Dotclear envoie un content-type supportant MathML, c'est à dire un Content-Type égal a 'application/xhtml+xml' ou 'text/xml'.
Cela peut se regler dans le fichier conf/dotclear.ini, grâce à la variable dc_send_real_xml = yes, mais ATTENTION, si vos billets sont un peu foireux, votre blog ne s'affichera plus si les verification XML ne sont pas bonnes...
L'autre solution, certes moins jolie, ne fonctionne pas du tout, après essais :( , donc je la retire de l'article... (En fait, forcer le content type sans regarder les possibilités du navigateur fait que si l'utilisateur n'a pas préalablement installé MathPlayer sous IE, le XML plante completement...)

Le point positif, c'est que si vous voulez des équations, vous devrez être rigoureux en XML, et passer votre blog au validateur :) . Le point négatif c'est que si vos lecteurs postent des commentaires non valides en XML, et que vos commentaires ne sont pas modérés, vlan, votre blog peut s'exploser sans votre intervention :( ...

ReNote : chercher si il existe un plugin de validation XML des commentaires, à ajouter au captcha :) ...

Deuxième étape : Changer le DOCTYPE de vos pages, dans le fichier template.php de votre theme.
En effet, par defaut les templates DotClear sont en XHTML 1.0. Bien que les équations MathML soient affichées correctement avec ce DOCTYPE sur FireFox, votre page ne serait plus valide aux yeux du validateur ... :) ... Modifier le doctype comme suit :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN"
"http://www.w3.org/TR/MathML2/dtd/xhtml-math11-f.dtd">

Il ne vous reste plus qu'à apprendre le MathML pour encoder vos équations dans vos billets, comme ces exemples, tirés du MathML Torture Test... Voici quelques exemples du site en question. A gauche un .gif du resultat attendu. A droite le resultats dans votre navigateur avec MathML.

( p 2 ) x 2 y p - 2 - 1 1 - x 1 1 - x 2
det | c 0 c 1 c 2 c n c 1 c 2 c 3 c n + 1 c 2 c 3 c 4 c n + 2 c n c n + 1 c n + 2 c 2 n | > 0
1 + 1 + 1 + 1 + 1 + 1 + 1 + x

Ce dernier exemple ne s'affiche pas bien sur FireFox 1.5 si vous n'installez pas les fontes dédiées, comme vous le propsera votre Firefox si ce n'est pas déja installé (voir ci dessous)....

Il est à noter qu'avec FireFox, le support de MathML est inclus. Le seul problème que peuvent rencontrer vos lecteurs est le manque de certaines polices de caractères sur leur ordinateur. FireFox propose alors de les charger, ou de travailler avec ce qu'il trouvera pour substituer ... Evidemment, il vaut mieux charger ces fontes. Le message affiché ressemble a ça :
.
Vous et vos lecteurs peuvent donc charger ces fontes ici.
Les utilisateurs de windows peuvent directement utiliser le Font Installer (fichier mit-mathml-fonts-1.0-fc1.msi) fourni par Mozilla, en suivant les étapes (Next, Next, Next, ... :) ... NOTEZ QUE L'EQUIPE MOZILLA PROPOSE CETTE SOLUTION TEMPORAIREMENT, EN ATTENDANT UNE MISE A JOUR PROCHAINE DU SUPPORT UNICODE DANS FIREFOX.

Les utilisateurs d'Internet Explorer sous Windows devront charger un plugin du nom de MathPlayer pour afficher ces équations. Il me semble qu'Internet Explorer propose à l'utilisateur de l'installer à la première page Web contenant des équations MathML. Je ne peux pas le vérifier, j'ai deja MathPlayer :( ... Merci pour vos commentaires à ce sujet.

Il y a un article sur les tests dans les différents navigateurs ici

Il ne me/vous reste plus qu'à créer des superbes pages de mathématiques, physique, etc ... soit à la main :( , soit en utilisant l'un des outils disponibles ici. Je vais en essayer quelques uns et je vous dirais ce qu'ils valent.

Voici une formule générée par OpenOffice 2.0.1 (mode Math) :
 x  y b z 3   ∗ âˆÂ« 0 ∞ e x (x over (y b over nroot{3}{z} ))* int from 0 to infinity func e^{x}

Et la meme formule, épurée des fioritures (OpenOffice sera pas mon choix je crois)
x y b z 3 0 e x ( x over (y b over nroot{3}{z} ))* int from 0 to infinity func e^{x}

Voici la meme equation généree par sMArTH (bonne du 1er coup, sans retouche :) ):
x y b z 3 0 e x d x
sMArTH est un project open source, en SVG. Firefox 1.5 supporte seulement une partie de SVG pour le moment, et sMArTH ne fonctionne pas :( ... J'avoue j'ai du lancer sMArTH sur Internet Explorer :( .... Il faut que je trouve un plugin SVG pour FireFox 1.5 en attendant que SVG soit completement supporté dans FireFox ... J'ai sur mon serveur une installation de sMArTH.

Article suivant dans cette catégorie : Uiliser un plugin SVG complet dans FireFox 1.5
Article précédent dans cette catégorie : Installation d'un captcha anti-spam dans DotClear

Trackbacks

Aucun trackback.

Les trackbacks pour ce billet sont fermés.

Commentaires

1. Le samedi 31 décembre 2005 à 18:16, par Laurent

Cet article passe la validation XHTML 1.1 + MathML 2.0 avec des warnings, liés à de vilains caractères créés par OpenOffice pour l'équation toute moche que vous voyez ci dessus...

Heureusement que j'ai trouvé sMArTH depuis ... :)

2. Le jeudi 05 janvier 2006 à 22:28, par Laurent Gougeon

J'ai aussi ajouté un peu de code PHP a mon template afin de signaler aux utilisateurs ne disposant pas d'un navigateur compatible qu'ils ne peuvent pas voir ces pages correctement. Plus particulierement pour Internet Explorer 6.0 je propose le lien direct vers l'installation de MathPlayer si celui ci n'est pas déjà installé. Pour d'autres navigatuers incompatibles, il faudrait voir les solutions alternatives et ajouter des tests en PHP.
Evidemment, IE/MathPlayer ne pouvaient pas être propres... D'abord, MathPlayer n'ajoute pas "application/xhtml+xml" au HTTP_ACCEPT d'Internet Explorer :( ... Ensuite, Internet Explorer renvoie souvent uniquement "*/*" comme HTTP_ACCEPT ... Selon la page indiquant comment concevoir des site pour MathPlayer/IE, il faut vérifier que le HTTP_USER_AGENT contient "MSIE" et "MathPlayer"...
Voici le code modifié dans index.php pour envoyer le bon HTTP header :
$accept_xml =
( !empty($_SERVER['HTTP_ACCEPT']) &&
(strpos($_SERVER['HTTP_ACCEPT'],'application/xhtml+xml') !== false) )
|| ( (!empty($_SERVER['HTTP_USER_AGENT'])) && (strpos($_SERVER['HTTP_USER_AGENT'],'MathPlayer') !== false) );

Voici un exemple de template qui affichera un lien vers MathPlayer pour les utilisateurs sous IE n'ayant pas encore MathPlayer :
<?php
$accept_xml =
(!empty($_SERVER['HTTP_ACCEPT']) &&
(strpos($_SERVER['HTTP_ACCEPT'],'application/xhtml+xml') !== false) )
|| ( (!empty($_SERVER['HTTP_USER_AGENT'])) && (strpos($_SERVER['HTTP_USER_AGENT'],'MathPlayer') !== false) );

if (!(dc_send_real_xml && $accept_xml)) {
echo "<p class=\"error\">Votre navigateur n'est pas compatible application/xhtml+xml (MathML). Certaines pages de ce site ne s'afficheront peut etre pas correctement.<br/>";

$ie6_browser =
!empty($_SERVER['HTTP_USER_AGENT']) &&
strpos($_SERVER['HTTP_USER_AGENT'],'MSIE 6.0') !== false;

if ($ie6_browser) {
echo "<a class=\"cleanup\" href=\"http://www.dessci.com/getmp\" title=\"Téléchargez MathPlayer pour IE6\"><img class=\"cleanup\" src=\"http://blog.gougeon.kicks-ass.org/images/divers/MathPlayerDownload.gif\" alt=\"Téléchargez MathPlayer pour IE6\"/></a>";
}
echo "<br/>Votre navigateur indique accepter ces formats : ";
print_r($_SERVER['HTTP_ACCEPT']);
echo "<br/>Votre navigateur est : ";
print_r($_SERVER['HTTP_USER_AGENT']);
echo "</p>";

}
?>

3. Le vendredi 29 décembre 2006 à 17:03, par test

test

4. Le vendredi 14 décembre 2007 à 20:10, par Arts

constater aussi peu de commentaçres a votre billet me surpreend beaucoup ;)

Ajouter un commentaire

Le code HTML dans le commentaire sera affiché comme du texte, les adresses internet seront converties automatiquement.

Now

Flux d'information RSS Breton

  • 04/07 13:30
    Tour de France 2008 en Bretagne
    Le détail des trois étapes bretonnes de l'édition 2008 du Tour de France.

  • 02/07 17:59
    Pas de teknival à Frossay
    Teufeurs et pouvoirs publics trouvent un compromis prévoyant la tenue de plusieurs rave -parties de plus petites taille en Pays de la Loire.

  • 01/07 16:46
    Guy Bernardin boucle son tour
    Le navigateur breton arrive aux Sables d'Olonne après un tour du monde à l'ancienne commencé il y a trois ans.

  • 01/07 15:52
    Le Clemenceau en Angleterre
    L'ancien porte-avions français sera finalement démoli par la société britannique Able UK Ltd dont le chantier se trouve en Angleterre.

  • 30/06 16:51
    Prison ferme pour vandalisme
    Une femme et son époux écopent de 18 et 12 mois de prison ferme pour avoir détérioré des monuments religieux en Bretagne. Sur les ruines : des graffitis...

Il y a 1 mois

Now

Statistiques

Nombre de visites jusqu'à aujourd'hui : 68507
Nombre de pages vues : 324248 (dont 109 aujourd'hui)

Top 5 billets :
  1. Lolo's Weblog (126786)
  2. General (14945)
  3. Installation d'un captcha anti-spam dans DotClear (11505)
  4. Web (7543)
  5. Recompiler le noyau mandrake 10.1 (3889)
Top 5 pays visiteursDerniers visiteurs
  1. États Unis États Unis (46663)
  2. Réseaux Réseaux (29521)
  3. Commercial Commercial (22935)
  4. France France (20822)
  5. Numeric Numeric (7652)
  • 6 Jui, 01:50 États Unis other other
  • 6 Jui, 01:43 États Unis Google
  • 6 Jui, 01:42 États Unis Yahoo
  • 6 Jui, 01:36 Réseaux Yahoo
  • 6 Jui, 01:35 États Unis MSN
Pages vues cette semainePages vues cette année
DimLunMarMerJeuVenSam
108402333488330601515
JanFévMarAvrMaiJuiJuiAouSepOctNovDéc
13559125471360114613271361999623751001212008114971220812496