Mise à niveau de Mathjax vers la version 4

Voici, au passage, un exemple de relecture mathématique via l’IA dans cette version de développement en action :

ProofreadMathAI

L’utilisateur peut éventuellement surligner une expression mathématique spécifique dans l’éditeur markdown et demander qu’elle soit corrigée. Ce serait bien d’avoir cela comme option dans le nouvel éditeur de mathématiques.

1 « J'aime »

@sam Il s’avère que KaTeX ne fonctionne pas tout à fait correctement dans le nouveau plugin. Si vous y jetez un œil, il s’agit clairement d’un problème de police manquante et, en effet, la console indique qu’il y a un tas de fichiers de police (Woff-v2) qui sont introuvables.

Les polices existent en fait à l’emplacement correct, qui devrait être dans un dossier nommé ‘fonts’ adjacent à la feuille de style. Ces deux fichiers existent dans ma version de développement, par exemple :
http://localhost:4200/plugins/discourse-math/katex/katex.min.css
et
http://localhost:4200/plugins/discourse-math/katex/fonts/KaTeX_Size2-Regular.woff2

Lorsque nous regardons l’onglet Réseau de la console, il semble qu’il essaie de télécharger quelque chose comme
http://localhost:4200/t/mon-sujet/fonts/KaTeX_Size2-Regular.woff2

Ainsi, le navigateur recherche dans un dossier ‘fonts’ adjacent à l’URL du sujet, ce qui est clairement faux.

Je suppose que tout cela a quelque chose à voir avec la fonction loadKaTeX définie dans le katex-bundle, qui, je suppose, charge KaTeX d’une manière non standard, ce qui fait que KaTeX ne sait pas vraiment où se trouve le fichier CSS. Je ne sais pas comment le réparer, cependant.

2 « J'aime »

Merci beaucoup Mark, j’ai fusionné vos commits, je vais jeter un œil à la chose Katex aujourd’hui

Est-ce simplement via une invite personnalisée pour le persona du relecteur ?

Ne vous inquiétez pas, Mark et moi gérons cela.

3 « J'aime »

Génial sur les deux fronts !

C’est exactement ça - oui. C’est évidemment un peu une coïncidence que « Relecture » soit une description suffisamment proche de ce que je veux qu’il fasse.

3 « J'aime »

J’ai juste poussé un correctif pour KaTeX, faites-moi savoir si cela fonctionne, je dois le soumettre à @david pour confirmer qu’il est sûr, notre modèle de chargement de CSS n’est pas compatible avec les liens relatifs à l’intérieur du fichier CSS car nous intégrons une feuille de style.

2 « J'aime »

Note, j’ai déplacé ceci vers un nouveau sujet dédié, car il se perdait et devenait bruyant sur le sujet principal des mathématiques. J’attends vraiment avec impatience cette mise à niveau, je pense que nous sommes très proches.

5 « J'aime »

KaTeX semble fonctionner correctement pour moi avec votre dernier commit !

Il me semble que certains tests n’ont pas réussi, mais je suis d’accord que la fonctionnalité est bien présente.

Je suis aussi super enthousiaste ! :rocket:

4 « J'aime »

Si quelqu’un est impatient d’essayer cette nouvelle version ou si (comme moi) il est impatient car il a des cours qui l’utiliseront dans quelques jours, vous pouvez installer cette version autonome ici :

Je l’ai basée sur ce commit, je crois, et je l’ai modifiée pour qu’elle tire MathJax d’un CDN, plutôt que de manière interne.

Vous pouvez la voir en action dans ce message sur mon site Discourse.

1 « J'aime »

Je pense qu’il vaut la peine de souligner que cette mise à niveau sera bien plus qu’une simple mise à niveau de MathJax. Elle va également :

  • Assouplir l’analyse d’une manière qui fonctionnera mieux avec les LLM, comme demandé ici et
  • Corriger les problèmes avec le nouvel éditeur riche, comme signalé ici.
2 « J'aime »

@sam et @david

Je vois que cette demande de tirage (pull request) a été fusionnée et je remarque également que vous deux avez fourni beaucoup d’efforts pour la mener à terme - donc merci beaucoup pour cela !

Je n’ai pas l’intention d’installer cette version tout de suite, car je l’ai déjà fait fonctionner suffisamment bien sur mon site Discourse ; j’ai cependant quelques questions.

  1. Concernant le calendrier de publication : Le code apparaît déjà dans main sur GitHub. Je suppose que si quelqu’un installait une toute nouvelle instance Discourse aujourd’hui, il aurait automatiquement cette toute nouvelle version du plugin mathématiques. Est-ce correct ?
  2. Concernant les chargeurs (loaders) : D’après ce que je peux voir dans le code, il semble que l’idée de définir les fonctions loadMathjax et loadKatex dans le cœur ait été abandonnée. La dernière version semble revenir à loadScript, bien qu’il ne me soit pas clair d’où vient le script. Est-ce correct ? Si oui, pourquoi ?

Merci encore !

3 « J'aime »

Je suis actuellement sur la dernière version stable +17 sur une instance de production assez lourde en calculs mathématiques.

C’est vraiment agréable de voir que [grid] fonctionne désormais correctement sur Meta - c’est une grande amélioration de la qualité de vie pour les publications denses en maths. Je suis prêt à faire des compromis sur [center] si nécessaire.

Pour information, j’avais précédemment rencontré des cas limites concernant les maths à l’intérieur de [grid] / [details], que j’avais documentés ici (au cas où ce soit encore utile) :

Merci encore à tous ceux qui travaillent sur la mise à niveau vers MathJax 4 - c’est formidable de voir ce niveau de finition arriver.

2 « J'aime »

Je rencontre l’erreur MathJax « Erroneous nesting of equation structures » lorsque j’utilise \begin{align}...\end{align} à l’intérieur de $$...$$. Cela semble être MathJax appliquant plus strictement la règle « ne pas imbriquer les environnements d’équation » lors des travaux de mise à niveau v4.

En pratique, le modèle Discourse fiable consiste à utiliser aligned à l’intérieur de l’enveloppe $$ :

$$\n{\large\n\begin{aligned}\na \u0026= b \\\\\n  \u0026= c\n\\end{aligned}\n}\n$$

Ceci évite d’imbriquer une structure d’équation d’affichage (align) à l’intérieur d’une autre enveloppe d’affichage ($$...$$), ce qui déclenche l’erreur.

1 « J'aime »

Je suis d’accord avec votre analyse @Ethsim2.

Ce comportement est conforme à MathJaxV4, ainsi qu’au LaTeX pur, donc je suppose qu’il n’y a pas de « bogue » ici. Il vaut certainement la peine de souligner que l’utilisation de aligned plutôt que align est la bonne approche, cependant !

1 « J'aime »