0 Daumen
457 Aufrufe

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 scanne.
  • 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. Nun 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}
  • \begin{aligned}\begin{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 &nbsp 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, ' '),

geschlossen: News
von mathelounge
von 12 k

Was ist mit dem aligned?

$$\begin{aligned} (&-5x^3 &+ &21x^2 &+ &0x &- &16) \div (x-1) = -5x^2 + 16x + 16 \\ -(&-5x^3 &+ &5x^2) \\ \hline & & &16x^2 &+ &0x \\ & & -(&16x^2 &- &16x) \\ \hline & & & & &16x &- &16 \\ & & & & -(&16x &- &16) \\ \hline & & & & &0 \\ \end{aligned}$$


\begin{aligned} (&-5x^3 &+ &21x^2 &+ &0x &- &16) \div (x-1) = -5x^2 + 16x + 16 \\ -(&-5x^3 &+ &5x^2) \\ \hline & & &16x^2 &+ &0x \\ & & -(&16x^2 &- &16x) \\ \hline & & & & &16x &- &16 \\ & & & & -(&16x &- &16) \\ \hline & & & & &0 \\ \end{aligned}

Was ist mit dem aligned?

Da sind eben die horizontalen Abstände so groß ... wenn man dann ein Polynom 4.Ordung durch eines mit 3.Ordnung dividiert wird es auf der Seite schon eng.

Abstände statt mit \\ mit \\[1ex] oder \\[15pt] setzen. Vielleicht hilft das?

** Verlesen. Lese zu schnell heute :)

Abstände statt mit \\ mit \\[1ex] oder \\[15pt] setzen.

Ich schrieb:

Da sind eben die horizontalen Abstände so groß ...

also die zwischen den 'Spalten', bzw. vor dem + bzw. Minus  ;-)

Abstände statt mit \\ mit \\[1ex] oder \\[15pt] setzen. Vielleicht hilft das?

Außerdem will ich ja genau dies NICHT machen. Das ist doch die Arbeit eines Text-Setz-System wie LaTeX. Idealerweise macht man sowas wie\begin{division} .. & .. \\ .. \end{division}
und das System macht einfach 'alles richtig'.

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Mathelounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community