Upgrade auf Mathjax Version 4

Hier ist übrigens ein Beispiel für die Korrektur mathematischer Texte durch KI in dieser Entwicklungsversion in Aktion:

ProofreadMathAI

Der Benutzer kann optional einen bestimmten mathematischen Ausdruck im Markdown-Editor hervorheben und dessen Korrektur anfordern. Es wäre schön, dies als Option im neuen Mathematik-Editor zu haben.

1 „Gefällt mir“

@sam Es stellt sich heraus, dass KaTeX im neuen Plugin nicht ganz richtig funktioniert. Wenn Sie es sich ansehen, ist es eindeutig ein Problem mit fehlenden Schriftarten, und tatsächlich zeigt die Konsole an, dass eine Reihe von Schriftartendateien (Woff-v2) nicht gefunden werden.

Die Schriftarten existieren tatsächlich am richtigen Ort, nämlich in einem Ordner namens „fonts“ neben dem Stylesheet. Beide Dateien existieren beispielsweise in meiner Entwicklungsversion:
http://localhost:4200/plugins/discourse-math/katex/katex.min.css
und
http://localhost:4200/plugins/discourse-math/katex/fonts/KaTeX_Size2-Regular.woff2

Wenn wir uns die Registerkarte „Netzwerk“ der Konsole ansehen, scheint es zu versuchen, etwas herunterzuladen wie
http://localhost:4200/t/mein-thema/fonts/KaTeX_Size2-Regular.woff2

Somit sucht der Browser in einem „fonts“-Ordner neben der Topic-URL, was eindeutig falsch ist.

Ich nehme an, das alles hat etwas mit der Funktion loadKaTeX zu tun, die im katex-bundle definiert ist, welche KaTeX meiner Vermutung nach auf eine nicht standardmäßige Weise lädt, was dazu führt, dass KaTeX nicht wirklich weiß, wo sich die CSS-Datei befindet. Ich weiß jedoch nicht, wie ich das beheben kann.

2 „Gefällt mir“

Vielen Dank, Mark, ich habe deine Commits übernommen und werde mir die Katex-Sache heute ansehen

Geschieht dies nur über eine benutzerdefinierte Eingabeaufforderung für die Korrekturleser-Persona?

Mach dir keine Sorgen, Mark und ich haben das im Griff.

3 „Gefällt mir“

Großartig in beiderlei Hinsicht!

Das ist genau richtig – ja. Es ist natürlich ein ziemlicher Zufall, dass „Korrekturlesen“ eine hinreichend genaue Beschreibung dessen ist, was ich damit machen möchte.

3 „Gefällt mir“

Ich habe gerade einen Fix für KaTeX gepusht, sag mir Bescheid, ob er funktioniert. Ich muss ihn @david vorlegen, um zu bestätigen, dass er sicher ist. Unser Muster zum Laden von CSS ist nicht kompatibel mit relativen Links innerhalb der CSS-Datei, da wir ein Stylesheet einbetten.

2 „Gefällt mir“

Hinweis, ich habe dies in ein neues eigenes Thema verschoben, da es im Haupt-Mathe-Thema etwas untergegangen und unübersichtlich wurde. Ich freue mich sehr auf dieses Upgrade, ich denke, wir sind sehr nah dran.

5 „Gefällt mir“

KaTeX scheint mit deinem letzten Commit bei mir einwandfrei zu funktionieren!

Es sieht für mich so aus, als wären einige Tests nicht bestanden worden, aber ich stimme zu, dass die Funktionalität vorhanden ist.

Ich bin auch total begeistert! :rocket:

4 „Gefällt mir“

Wenn jemand unbedingt diese neue Version ausprobieren möchte oder (wie ich) es kaum erwarten kann, da er in ein paar Tagen Kurse hat, in denen sie verwendet wird, dann kann er diese eigenständige Version hier installieren:

Ich habe sie, glaube ich, auf Basis dieses Commits dieses Commits erstellt und geändert, um MathJax von einem CDN zu laden, anstatt es intern zu laden.

Sie können es in Aktion sehen in diesem Beitrag auf meiner Discourse-Seite.

1 „Gefällt mir“

Ich denke, es ist erwähnenswert, dass dieses Upgrade wesentlich mehr als nur ein Upgrade von MathJax sein wird. Es wird auch

  • das Parsen so lockern, dass es besser mit LLMs funktioniert, wie hier gewünscht und
  • Probleme mit dem neuen Rich-Text-Editor beheben, wie hier gemeldet.
2 „Gefällt mir“

@sam und @david

Ich sehe, dass dieser Pull Request zusammengeführt wurde, und ich bemerke auch, dass ihr beide ziemlich viel Arbeit investiert habt, um ihn über die Ziellinie zu bringen – vielen Dank dafür!

Ich plane nicht, diese Version sofort zu installieren, da ich sie auf meiner Discourse-Seite bereits ausreichend zum Laufen gebracht habe. Ich habe jedoch ein paar Fragen.

  1. Zum Veröffentlichungsplan: Der Code erscheint bereits im main-Branch auf GitHub. Ich nehme an, wenn man heute eine brandneue Discourse-Instanz installieren würde, hätte diese automatisch diese brandneue Version des Math-Plugins. Ist das richtig?
  2. Zu den Loadern: Soweit ich das aus dem Code entnehmen kann, scheint die Idee, loadMathjax und loadKatex-Funktionen im Kern zu definieren, aufgegeben worden zu sein. Die neueste Version scheint zu loadScript zurückzukehren, obwohl mir nicht klar ist, woher das Skript kommt. Ist das richtig? Wenn ja, warum ist das so?

Nochmals vielen Dank!

3 „Gefällt mir“

Ich bin derzeit auf der neuesten Version +17 auf einer ziemlich mathematiklastigen Produktionsinstanz.

Es ist wirklich schön zu sehen, dass [grid] jetzt auf Meta richtig funktioniert – das ist eine große Verbesserung der Lebensqualität für mathematisch dichte Beiträge. Ich bin bereit, bei Bedarf Kompromisse bei [center] einzugehen.

Zur Information, ich bin zuvor auf einige Grenzfälle gestoßen, bei denen Mathematik innerhalb von [grid] / [details] verwendet wurde, die ich hier dokumentiert habe (falls sie noch nützlich sind):

Nochmals vielen Dank an alle, die an dem MathJax 4-Upgrade arbeiten – es ist großartig, dieses Maß an Politur zu sehen.

2 „Gefällt mir“

Ich sehe MathJaxs „Fehlerhafte Verschachtelung von Gleichungsstrukturen“, wenn ich \begin{align}...\end{align} innerhalb von $$...$$ verwende. Dies scheint MathJax zu sein, das die Regel „Gleichungsumgebungen nicht verschachteln“ während der v4-Upgrade-Arbeiten strenger durchsetzt.

In der Praxis besteht das zuverlässige Discourse-Muster darin, aligned innerhalb der $$-Umhüllung zu verwenden:

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

Dies vermeidet die Verschachtelung einer Display-Gleichungsstruktur (align) in einer anderen Display-Umhüllung ($$...$$), was den Fehler auslöst.

1 „Gefällt mir“

Ich stimme deiner Analyse zu, @Ethsim2.

Dieses Verhalten stimmt mit MathJaxV4 sowie mit reinem LaTeX überein, daher gehe ich davon aus, dass es sich hierbei nicht um einen „Bug“ handelt. Es ist jedoch definitiv erwähnenswert, dass die Verwendung von aligned gegenüber align der richtige Weg ist!

1 „Gefällt mir“