Hallo liebe Mitglieder,
ab sofort ist Katex auf der Mathelounge aktiviert. MathJax 2 wird nicht mehr verwendet.
Katex gilt als die derzeit schnellste Javascript-Library für das Textsatzsystem Latex.
Einige Vorteile (Quelle: katex.org):
- Schnell: KaTeX rendert Mathematik synchron und muss die Seite nicht neu scannen.
- Druckqualität: Das Layout von KaTeX basiert auf Donald Knuths TeX, dem Goldstandard für mathematischen Satz.
- In sich geschlossen: KaTeX hat keine Abhängigkeiten und kann problemlos mit Website-Ressourcen gebündelt werden.
Demo zum Vergleich von Katex und Mathjax: https://www.intmath.com/cg5/katex-mathjax-comparison.php
Process KaTeX 208 ms
Process MathJax 4908 ms
Das ist ein schlagendes Argument.
Darüber hinaus war es uns nicht möglich, MathJax selbst zu hosten, sondern wir nutzten Cloudflare.
Mit Katex ist das Hosten problemlos selbst möglich. Das heißt, kein Request geht an einen amerikanischen Server (ein eventuelles Tracking ist nicht mehr möglich). Die Requests gehen alle an unsere eigenen Server.
Wichtig:
(1) Katex hat einige Einschränkungen, siehe auch Supported Functions. Das heißt, es kann vorkommen, dass Latex in bestehenden Posts korrigiert werden muss.
Sammlung von Korrekturen:
\begin{align}
⟶ \begin{aligned}
\eqalign{ ... }
⟶ \begin{aligned} ... \end{aligned}
\pmatrix{ ... }
⟶ \begin{pmatrix} ... \end{pmatrix}
\matrix{ ... }
⟶ \begin{matrix} ... \end{matrix}
\bbox[#ff88ff, 1px]{1}
⟶ nun über \colorbox{#ff88ff}{1}
\color{red}
⟶ \textcolor{red}
, da color sonst alle folgenden Zeichen färbt\mathrmLaTeX
⟶ \mathrm{\LaTeX}
\require{cancel}
⟶ wird nicht mehr benötigt, da in Katex enthalten\mbox{ ... }
→ nun über \text{ ... }
\begin{gather} ... \end{gather}
→ \begin{aligned} ... \end{aligned}
\enclose{ ... }
→ \cancel{ ... }
\begin{equation} ... \end{equation}
→ \begin{aligned} ... \end{aligned}
\begin{equation*} ... \end{equation*}
→ \begin{aligned} ... \end{aligned}
\text{%}
→ \text{\%}
(Prozentzeichen muss escaped werden)
\cases{ ... }
→ \begin{cases} ... \end{cases}
\
→ alleinstehende Backslashes entfernen\stackrel{...} ...
→ hier muss zwingend die zweite Klammer gesetzt werden: \stackrel{...} {...}
- für mehrfaches Superscript muss jede Basis umklammert werden, also z. B.
{{x}^{y}}^z
- folgt ein Latexbefehl nach einem Superscript, muss dieser umklammert werden, also z. B.
x^{\sqrt{2}}
\dddot{x}
→ 3 Punkte über Buchstaben, Workaround über \stackrel{...}{x}
\im
→ \operatorname{im}
Bitte kommentiert unten, wenn ihr nicht-gerendertes Latex seht, damit wir die Änderungen dokumentieren und vornehmen können.
(2) Automatische Zeilenumbrüche funktionieren in Katex wie folgt:
KaTeX 0.10.0+ will insert automatic line breaks in inline math after relations or binary operators such as “=” or “+”. These can be suppressed by \nobreak or by placing math inside a pair of braces, as in {F=ma}. \allowbreak will allow automatic line breaks at locations other than relations or operators. Hard line breaks are \\ and \newline.
(3) Hinweise zu Bearbeitungen:
- Automatisiert: Das
{align}
bei \begin{align}
(und \end{align}
) wurde in 795 Posts ersetzt mit {aligned}
. - Automatisiert: Das
{align*}
wurde in 279 Posts ersetzt mit {aligned}
. - Händisch:
\require{cancel}
wurde händisch ersetzt in ca. 40 Posts. - Automatisiert: Das
\mbox
wurde in 772 Posts ersetzt mit \text
.
- Automatisiert:
\left(
und right)
wurden in 529 Posts ersetzt mit \left(
und \right)
.
- Weitere Bearbeitungen siehe Aktion: Hilfe beim Bearbeiten von Latex in Posts
PS I: Der Latex-Assistent nutzt nun ebenfalls Katex.
PS II: Sehr hilfreich ist Symbols and Functions in KaTeX (available and not available)
Nachtrag:
Wir haben das Parsen durch Katex um eine Preprozessor ergänzt, der mehrfache Whitespaces (im HTML als  
zu erkennen) zu einem einfachen Leerzeichen (also nicht HTML-Zeichen) umwandelt. Dadurch kommt es zu wesentlich weniger Katex-Fehlern. Code hierzu ist (Übergabe als Option bei Katex): preProcess: (math) => math.replace(/\xa0/g, ' '),