Formel-Block
Mathematische und naturwissenschaftliche Notation — Brüche, Exponenten, Indizes, griechische Buchstaben und chemische Formeln über \ce{...} — serverseitig als Bild mit echtem Alt-Text gerendert, da kein E-Mail-Client echte Mathematik setzt.
Wie es funktioniert
Der Block nimmt eine kleine LaTeX-ähnliche Notationszeichenkette (zum Beispiel \frac{-b \pm \sqrt{b^2-4ac}}{2a}) entgegen und rendert sie serverseitig über GET /api/formula zu einem PNG. Das ist ein signierter Endpunkt, der auf denselben von Grund auf gebauten Raster-/PNG-Kodierungsprimitiven aufbaut, die auch die Analysen-Diagramm-Blöcke bereits verwenden: Es ist niemals eine clientseitige Mathe-Bibliothek beteiligt, und es steckt keine npm-Abhängigkeit hinter dem Renderer.
Der Inhalt einer Formel ist nach dem Erstellen fest, anders als das Countdown-GIF, das pro Ansicht neu erzeugt werden muss, um aktuell zu bleiben. Daher wird die gesamte Render-Anfrage (Notation, Anzeigemodus, Farbe) direkt in die URL signiert, und der Endpunkt benötigt keinen Firestore-Lesevorgang — die Antwort trägt einen langlebigen, unveränderlichen Cache-Header.
Die Notationssyntax deckt Brüche, Exponenten (^), Indizes (_), Quadratwurzeln, griechische Buchstaben, benannte Funktionen (\sin, \lim, \log und andere), Mengen-/Logiksymbole (\forall, \in, \cup, \neg und andere) sowie gängige Operatoren ab. \left(/\right( werden erkannt, aber in normaler Größe gerendert statt automatisch an ihren Inhalt angepasst, da dies ein kleiner Bitmap-Renderer ist, keine vollständige TeX-Engine. \text{...} fällt mitten in einer Formel auf einfache Wörter zurück, um einen Term zu beschriften.
Chemische Formeln erhalten ihr eigenes \ce{...}-Makro: eine kleine, mhchem-ähnliche Teilmenge. Elementanzahlen werden automatisch tiefgestellt (H2O wird mit tiefgestellter 2 gerendert), nachgestellte Ionenladungen automatisch hochgestellt (H3O+, SO4^2-), und -> wird als Reaktionspfeil gerendert. Das bedeutet, dass \ce{2H2 + O2 -> 2H2O} es nicht erfordert, für jede Atomanzahl und Ladung ^/_ von Hand zu schreiben.
Syntax, die der Parser nicht erkennt — vollständige LaTeX-Dokumente, Pakete, Matrizen, Tabellen — unterbricht den Versand niemals. Sie fällt stattdessen darauf zurück, die rohe Notationszeichenkette als reinen Text zu rendern. Diese Garantie wird auf zwei Ebenen durchgesetzt: Der Parser selbst degradiert unbekannte Makros zu reinem Text, und der äußerste Aufruf des Renderers wirft niemals einen Fehler, selbst bei einem Layout-Grenzfall.
Das Bild wird in einem für seinen Anzeigemodus passenden Maßstab angeordnet: größer für Block, kleiner für Inline. Es verringert sich automatisch schrittweise, sollte es das E-Mail-sichere Größenbudget überschreiten. Die meisten Formeln passen beim ersten Versuch; nur ein ungewöhnlich langer Ausdruck benötigt einen kleineren Maßstab, und ein pathologischer Fall wird auf den Mindestmaßstab begrenzt, statt endlos zu wiederholen.
Das gerenderte <img> trägt explizite width-/height-Attribute, die aus diesem Layout-Durchlauf bemessen sind, sodass Outlook und andere Clients beim Laden des Bildes nicht neu umbrechen (springendes Reflow). Entscheidend ist, dass es außerdem ein alt-Attribut trägt, das auf die rohe Notationszeichenkette selbst gesetzt ist. Eine Formel ist niemals in einem Bild ohne Text-Äquivalent gefangen, für einen Client, der Bilder blockiert, oder einen Screenreader, der eine Bitmap nicht auslesen kann.
Konfigurierbare Felder:
- Notation (LaTeX-ähnlich) — der Formeltext, begrenzt auf 300 Zeichen (ein zu langer Wert wird vor dem Rendern stillschweigend abgeschnitten, unterbricht den Versand nie).
- Anzeigemodus — Inline (klein, sitzt innerhalb einer Textzeile) oder Block (größer, eigene Zeile).
- Ausrichtung — Links, Zentriert oder Rechts (nur im Block-Modus wirksam).
- Farbe — die Strichfarbe der Notation; ein ungültiger oder leerer Wert fällt auf den eigenen, nahezu schwarzen Standardwert des Renderers zurück, statt den signierten Endpunkt mit einem Wert zu erreichen, den er ablehnen würde.
- Hintergrundfarbe, Innenabstand, Rahmen und Eckenradius der Karte.
Eine leere Notation rendert überhaupt nichts statt eines leeren Bildes — der Block gibt schlicht nichts aus, wenn kein Text zum Setzen vorhanden ist.
Unterstützte Syntax
Jedes Beispiel unten ist ein echtes, live signiertes Bild des tatsächlichen /api/formula-Endpunkts, kein Mockup — was Sie hier sehen, ist also genau das, was der Posteingang eines Empfängers rendert. Alles, was nicht auf dieser Liste steht (vollständige LaTeX-Dokumente, Pakete, Matrizen, Tabellen, Akzente wie \bar/\hat, Auslassungspunkte wie \dots), wird nicht erkannt. Es wird stattdessen wörtlich als eigener getippter Text gerendert, statt den Versand zu unterbrechen, sodass in einer Vorschau meist offensichtlich ist, dass ein Makro nicht unterstützt wird.
Brüche
\frac{a+b}{c-d}Exponenten und Indizes
a_n = a_1 + (n-1)dQuadratwurzeln, verschachtelt mit einem Bruch
\sigma = \sqrt{\frac{1}{n}\sum (x_i - \mu)^2}Die Mitternachtsformel — Brüche, ±, und eine Quadratwurzel zusammen
x = \frac{-b \pm \sqrt{b^2-4ac}}{2a}Griechische Buchstaben
\Delta = b^2 - 4acBenannte Funktionen und Grenzwerte (aufrecht, nicht kursiv)
\lim_{x \to 0} \frac{\sin x}{x} = 1Mengen- und Logiksymbole
\forall x \in S,\ x^2 \geq 0\left(/\right)-Klammern — erkannt, aber nicht automatisch an ihren Inhalt angepasst
y = \left(x+1\right)^2\text{...} für eine Beschriftung mitten in einer Formel
d = 5\text{ mi}Chemische Formeln über \ce{...} — automatisch tiefgestellte Atomanzahlen, ein Reaktionspfeil
\ce{2H2 + O2 -> 2H2O}\ce{...} — automatisch hochgestellte Ionenladungen
\ce{SO4^2-}Beispiele
Subject
This week in study group: the quadratic formula
Eine Zusammenfassungs-E-Mail für den Chemieunterricht setzt eine ausgeglichene Reaktion inline in einem Satz: „Photosynthese: \ce{6CO2 + 6H2O -> C6H12O6 + 6O2}“ direkt neben erklärendem Text. Siehe Bildung dafür, wie Formel neben Aufgabe, Quiz und Karteikarten-Stapel in einer Klassen-Digest-E-Mail einzuordnen ist. Ein Physik-Aufgabenblatt setzt die Mitternachtsformel im Block-Modus als eigene Zeile ein, größer skaliert und zentriert, vor einem durchgerechneten Beispiel. Ein Statistik-Newsletter verwendet eine kurze Inline-Formel wie \mu = \frac{\sum x_i}{n} mitten im Satz, ohne den Lesefluss des umgebenden Absatzes zu unterbrechen. Beachten Sie, dass das \mu ist, nicht \bar{x}: Akzent-Makros wie \bar/\hat gehören nicht zur oben unterstützten Syntax, daher ist ein einfacher griechischer Buchstabe der sichere Ersatz für einen Mittelwert, wo einer benötigt wird.
So sieht der statische Fallback aus
<div style="margin:8px 0;text-align:left">
<img src="https://mailinapp.com/api/formula?d=eyJub3RhdGlvbiI6...&s=abc123..."
width="184" height="52" alt="E = mc^2"
style="display:inline-block;max-width:100%;height:auto;vertical-align:middle" />
</div>
Es gibt hier nur eine Render-Stufe — ein signiertes <img>, dessen alt-Text stets die exakte Notationszeichenkette trägt, sodass die Formel weiterhin kommuniziert, selbst wenn das Bild selbst nicht lädt.