zestedesavoir / zds-site

Cœur du projet technique de Zeste de Savoir
https://zestedesavoir.com
Other
268 stars 161 forks source link

Rendu des expressions mathématiques #88

Closed Coy0te closed 10 years ago

Coy0te commented 10 years ago

Apparemment, y'a des éléments de syntaxe utilisés dans les expressions mathématiques dans les tutos SdZ qui ne passent pas sur ZdS. Ça vient de mathjax, ou de la syntaxe utilisée dans les .tuto ?

Exemple sur cette page. La plupart des expressions sont bien rendues, mais certaines déconnent, je sais pas trop pourquoi. Je pensais que c'était l'instruction \color{} ou \align{} qui faisait planter, mais apparemment c'est pas ça.

cgabard commented 10 years ago

mathjax les a bien détectées, elles sont bien formée. Il semble que c'est mathjax qui déconne. Reste a savoir pourquoi maintenant

firm1 commented 10 years ago

J'en ai testé vite fait ici.

Et on dirait bien que MathJax merde un peu, après je ne sais pas si les expressions sont bien formés.

Coy0te commented 10 years ago

J'ai remarqué que celle là passait : $\frac{9 \times 2}{\color{red}2\color{black} \times 2 \times 5}$

Mais pas celle-là : $\frac{9 \times \color{red}2\color{black}}{\color{red}2\color{black} \times 2 \times 5}$

Donc a priori, ça vient quand même bien de l'usage de \color{}, qui semble pas être reconnu correctement selon sa position ou son nombre d'apparition dans une expression.

cgabard commented 10 years ago

color n'est pas standard mais a priori mathjax le supporte avec un truc genre :

<script type="text/x-mathjax-config">
  MathJax.Hub.Config({ TeX: { extensions: ["color.js"] }});
</script>

http://docs.mathjax.org/en/latest/tex.html#tex-and-latex-extensions

cgabard commented 10 years ago

Ok je confirme : http://zestedesavoir.com/forums/sujet/7/rediger-sur-zds?page=1#p51

Pour utiliser les extensions on peut soit configurer pour la page dans son ensemble (mon commentaire précédent), soit la demander dans une equation. Ce que j'ai fait dans mon liens. L'ajouter permet de la parser.

@firm1 tu peux rajouter le bout de mon com precedent dans la conf de mathjax ?

firm1 commented 10 years ago

Yeah, l'erreur est fixée. Merci @cgabard

La preuve

cgabard commented 10 years ago

Je ne sais pas d'ou viens le \usepackage{cancel} mais il semble déconner.

Bonne réactivité firm1

Coy0te commented 10 years ago

C'est du support efficace ça, à peine soumis que le bug est déjà corrigé. =)

firm1 commented 10 years ago

Je ne sais pas d'ou viens le \usepackage{cancel} mais il semble déconner.

Ah, merde, j'vais battu mon record de fermeture d'issue. pourtant

cgabard commented 10 years ago

essais d'ajouter cancel.js dans la liste des extensions. Mais je ne suis pas surs que ça change grand chose.

@Coy0te : c'est toi qui l'a ajouté ça ou c'etait dans les sources à la base ?

Coy0te commented 10 years ago

J'ai rien ajouté, c'était dans le tuto au format zCode.

Une fois l'extension cancel ajoutée à Mathjax, les \cancel vont sûrement fonctionner, mais il faudra tout de même que je vire tous les \usepackage en début de formule mathématiques lors de la conversion zCode -> md, c'est bien ça ?

cgabard commented 10 years ago

Bin pas forcément, faut voir mais c'est possible.

Coy0te commented 10 years ago

Sinon, je remplace \usepackage par \require, et c'est réglé.

cgabard commented 10 years ago

Dans le cas présent, oui ça devrait marcher sans toucher à la config serveur.

firm1 commented 10 years ago

Je viens de rajouter une floppée d'extensions, trouvées ici, et ça merde toujours sur les usepackage

cgabard commented 10 years ago

Oui car usepackage est une syntaxe latex mais pas mathjax

cgabard commented 10 years ago

Pour les align il faudrat rajouter AMSmath

firm1 commented 10 years ago

Oui car usepackage est une syntaxe latex mais pas mathjax

Et du coup c'est quoi la bonne syntaxe Tex ?

cgabard commented 10 years ago

En gros pour cancel, le remplacer par \require suffirait si tu ne force pas son chargement.

cgabard commented 10 years ago

Mais là ce n'est pas resolvable en fait : mathjax ne supporte pas cette commande.

Si tu conserve cancel dans les header, il faut que le \usepackage{cancel} soit viré des equations.

firm1 commented 10 years ago

Je viens de faire des tests, en effet, @Coy0te va falloir que tu vire, tout ce qui ressemble à \usepackage{blabla} dans les tutos.

cgabard commented 10 years ago

Est ce que, pour nous prémunir de ce genre de trucs, on pourrait pas charger toutes les extensions dipspo ? Il y en a une qui fait ça !

Sinon quelqu'un prend son courage à deux mains et nous pond une mini extension pour mathjax qui fait ignorer la commande \usepackage

firm1 commented 10 years ago

Etant donné que le problème vient des anciens tutos, vaut mieux que ce soit Coyote qui les vire (les \usepackage ).

Coy0te commented 10 years ago

C'est un usage assez rare dans les .tutos, je vais virer les occurrences de \usepackage{color} et \usepackage{cancel} dans les contenus des balises math.

J'ai repéré un tuto qui utilise pas mal de syntaxes maths assez exotiques, je vais l'importer sur ZdS pour voir à quoi il ressemble.

Coy0te commented 10 years ago

C'est bon pour les usepackage, je les ai virés via le parseur zCode. Mais y'a encore un joli tas de merdier qui fait déconner les balises maths, et franchement ça devient du cas par cas, pour certains cours où les auteurs ont fait un peu n'importe quoi avec la balise <math>.

Je suis d'avis de laisser ça en l'état, et de rendre les formules compatibles à posteriori, là où ça a pète encore.

firm1 commented 10 years ago

On dirait qu'il y'a des cas ou on a des balises </math> sans leurs équivalents <math> ? c'était déjà le cas dans les .tuto ?

Coy0te commented 10 years ago

Non, j'ai remarqué que le parseur HTML s'était chié dessus dans ce tuto, je ne sais pas encore pourquoi : il a cru que c'était des balises mere/fille, et a pris la première et la dernière balise math pour tout un groupe de balises, c'est bizarre.

Coy0te commented 10 years ago

Ouai, après tests il s'avère que c'est la méga-ligne de formule de maths qui fait déconner le parseur HTML à cet endroit du tuto, si je la raccourcis un peu ça passe sans problèmes... Bizarre bizarre.

Coy0te commented 10 years ago

J'ai corrigé le problème en échappant le contenu des balises maths, il s'agissait d'un enchaînement de <, / et > dans les balises maths qui posaient problème au parseur.

Je ferme l'issue, et la rouvrirait si lors de futurs tests je trouve d'autres éléments problématiques.

ArnaudCalmettes commented 10 years ago

Les environnement matrix et tableau sont insérés sans avoir besoin des ( ), et les expressions inline sont beaucoup trop grosses.

Cf. ici.

Alex-D commented 10 years ago

J'ai un fix qui arrive pour ça.

Alex-D commented 10 years ago

Voilà, j'ai réduit à ~16px. Soit un chouilla plus qu'avant et beaucoup moins qu'actuellement (22px, beaucoup trop gros).

Impossible au niveau du code de faire la différence entre du code inline et du code "en gros", donc j'ai choisi une taille "passe-partout".

Eskimon commented 10 years ago

Durant la fin de la beta front, plus personne n'avait l'air de se plaindre de souci de taille sur ce sujet... On pourrait retester vite fait avec un nouveau batch de participant et fermer ?

Alex-D commented 10 years ago

Pour moi on peut déjà fermer, je ne peux rien faire de mieux actuellement.

ArnaudCalmettes commented 10 years ago

Pour moi aussi.