CommunityCodierung & Entwicklunggithub.com

37-vertin/markdown-math-render

Codex-Fähigkeit: Regeln zur Darstellung mathematischer Formeln in Markdown für die Codex Desktop-App (nur Blockformeln, Unicode inline, tabellensicher) inklusive Selbstprüf-Skript.

Was ist markdown-math-render?

Diese Fähigkeit definiert verbindliche Regeln für die Darstellung mathematischer Formeln in Markdown-Dokumenten, die mit der Codex Desktop-App erstellt wurden. Die App rendert ausschließlich Blockformeln `$$...$$`, jedoch keine Inline-Formeln `$...$` (bestätigt in GitHub Issue #14985). Um dies zu umgehen, wandelt die Fähigkeit kurze Inline-Ausdrücke in Unicode-Zeichen um (z. B. `x²`, `√x`, `f′(x)`) und verarbeitet komplexe Ausdrücke als separate Blockformeln. Da auch Tabellenzellen keine Formelbegrenzer unterstützen, werden Formeln entweder als Unicode dargestellt oder unter die Tabelle gesetzt. Ein integriertes Selbstprüf-Skript (`check_inline_math.py`) stellt vor der Veröffentlichung sicher, dass keine Inline-`$...$`-Begrenzer mehr vorhanden sind und dass `$$...$$`-Formeln ordnungsgemäß in separaten Zeilen stehen. Die Fähigkeit ist Teil einer Repository-übergreifenden Toolchain und wird über mehrere Auslöser aktiviert, was eine konsistente und fehlerfreie Darstellung von Formeln in Codex gewährleistet.

Funktioniert mit✓Claude Code✓Codex CLI~Cursor
npx skills add 37-vertin/markdown-math-render

Installed? Explore more Codierung & Entwicklung skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Markdown-Formeldarstellungsregeln und Fehlerbehebung

Auslösepfad: Drei Sicherungen, um Ausführung sicherzustellen

Diese Fähigkeit stellt über drei Pfade sicher, dass sie beim Schreiben von Formeln ausgeführt wird:

  1. Vorauslösung: Die Beschreibung deklariert „vor dem Schreiben mathematischer Formeln“ – die Fähigkeit wird ausgelöst, bevor überhaupt ein Darstellungsfehler auftritt.
  2. Workflow-Einbindung: Die Hauptfähigkeit des Repositorys math-question-skill (D:\math_question\SKILL.md) referenziert diese Fähigkeit in ihren verbindlichen Regeln – Aufgaben, Erklärungen und tägliche Fragen durchlaufen alle diesen Pfad.
  3. Selbstprüfung vor Veröffentlichung: Vor dem endgültigen Versand von formelhaltigen Ausgaben wird scripts/check_inline_math.py ausgeführt; gefundene Inline-$...$-Begrenzer müssen in Blockformeln oder reinen Text umgewandelt werden, bevor gesendet/geschrieben wird.

Kernregeln (Verbindlich innerhalb der Codex App)

Die Codex Desktop-App rendert ausschließlich eigenständige Blockformeln $$...$$, aber keine Inline-$...$-Formeln (offiziell bestätigt in Issue #14985). Die Formel selbst ist korrekt – das Problem liegt im falschen Begrenzer:

❌ $f(x)=\sqrt[3]{x}$                       ← Inline $...$, App rendert nicht
❌ $\dfrac{f(x_0+h)-f(x_0)}{h}$             ← Inline $...$, App rendert nicht

Lösung – Formel in eine separate Zeile setzen, mit $$...$$:

✅ Aus
$$
f'(x_0)=\lim_{h\to0}\dfrac{f(x_0+h)-f(x_0)}{h}
$$
folgt differenzierbar ⟺ der Grenzwert existiert und ist endlich

Kurze Inline-Ausdrücke werden mit Unicode-Mathematiksymbolen verschönert, die dem gerenderten Ergebnis nahekommen:

  • Hoch-/Tiefstellung: xˣ (U+02E3), 10⁶, 2ⁿ, x₀, x₁
  • Wurzeln: √x (U+221A), ∛x (U+221B Kubikwurzel)
  • Brüche als hochgestellte Form: x¹⁄³ (¹ U+00B9 + ⁄ U+2044 + ³ U+00B3)
  • Ableitungsstrich: f′(x) (U+2032, nicht den geraden Apostroph ' verwenden)
  • Operatoren/Relationssymbole: ·, −, ±, ∞, ≠, ≤, ≥, ∈

⚠️ Schreibweise ^(...) wie im Quellcode vermeiden: x^(1/3) sieht wie Quellcode aus; stattdessen ∛x oder x¹⁄³.

Komplexe Inline-Ausdrücke (Brüche, Wurzeln, Grenzwerte) als Block $$...$$ formatieren – nicht gewaltsam als reinen Text darstellen.

Was tun, wenn der Benutzer „Inline-Formeln beibehalten“ verlangt (harte Regel bleibt bestehen)

Im Gespräch könnte der Benutzer sagen: „Inline-Formeln mit $...$ beibehalten, nur Abstände korrigieren“ – das ändert nichts am Rendering-Verhalten der App. Inline-$...$-Formeln werden in der Codex App grundsätzlich nicht gerendert; das Hinzufügen von Leerzeichen erzeugt nur „Quelltext plus Leerzeichen“, was schlechter aussieht und dennoch als Fehlschlag gilt (historische Lektion: Nach Korrektur der Klebeprobleme meldete der Benutzer weiterhin „an diesen Stellen gibt es immer noch Probleme“ – die Ursache waren nicht korrigierte Inline-$...$-Formeln). Daher:

  • Vor dem Abschluss weiterhin die harten Regeln anwenden: Kurze Inline-Formeln durch Unicode ersetzen, komplexe in eigenständige $$...$$-Blockformeln umwandeln;
  • Wenn der Benutzer ausdrücklich darauf besteht, Inline-$...$-Formeln beizubehalten, zunächst die Konsequenzen erläutern (App zeigt Quelltext an) und am Ende der Ausgabe einen „Renderhinweis“ anfügen;
  • Aufgrund der Benutzeranforderung nicht die Selbstprüfung mit check_inline_math.py überspringen; [FAIL] muss auf Null reduziert sein, bevor der Vorgang als abgeschlossen gilt.

Inline-Formel → Unicode-Schnellreferenz

SzenarioInline LaTeX (verboten)Unicode-Lösung
Einzelner Variablenbuchstabe$f$, $g$, $A$f, g, A (reiner Text)
Hoch-/Tiefstellung$x^n$, $x_0$, $a_n$xⁿ, x₀, aₙ
Wurzel$\sqrt{x}$, $\sqrt[3]{x}$√x, ∛x
Bruch$\frac1n$, $\frac{x^n}{1+x}$Kurzform 1/n; komplexe Form als $$...$$-Block
Grenzwert$\lim_{n\to\infty}a_n$lim(n→∞) aₙ (Unicode: Pfeil nach unten nicht möglich, Annäherungsbedingung in Klammern an lim anhängen; komplexe Form als Block)
Integral$\int_0^1 f(x)\,dx$Komplexe Form als $$...$$-Block, nicht gewaltsam inline
Betrag$\lvert x\rvert$`
Menge/Relation$x\in[0,1]$, $f\le g$x∈[0,1], f ≤ g
Pfeil$x\to0$, $n\to\infty$x→0, n→∞
Auslassungspunkte$a_1+\cdots+a_k$a₁+…+aₖ

Formeln in Tabellen (zweithäufigstes Problem in der Codex App)

Innerhalb von Tabellenzellen werden $...$-Formeln nicht gerendert; $$...$$ als separate Zeile hingegen zerstört die Tabellenzeile. In Tabellenzellen werden grundsätzlich keine Formelbegrenzer verwendet:

VorgehenErläuterung
❌ $x^{1/3}$ in ZelleInline wird nicht gerendert, Quelltext wird angezeigt
❌ $$x^{1/3}$$ in ZelleMehrzeiliger Begrenzer zerstört Tabelle
✅ Nur Klartext/Unicode in Zelle∛x, `
✅ Formel unterhalb der TabelleJede Formel als separate Zeile $$...$$ nach der Tabelle
✅ Inhalt überwiegend FormelnStrukturierte Liste verwenden (Untertitel + $$...$$), keine Tabelle

Beispiel – drei nicht differenzierbare Funktionen:

FunktionVerhalten bei x = 0
∛xSenkrechte Tangente, Differenzenquotient → +∞
x·sin(1/x)Starke Oszillation, Grenzwert existiert nicht

Formel unterhalb der Tabelle:

$$ \lim_{h\to0}\frac{h^{1/3}}{h}=+\infty $$

Selbstprüfung vor Veröffentlichung (30 Sekunden, vor Abschluss zwingend erforderlich)

⚠️ Zuerst die Konsolenkodierung auf UTF-8 setzen: Die Windows-Standardkonsole verwendet GBK, was bei Skriptausgaben mit chinesischen Zeichen oder Emojis (z. B. ✅) zu UnicodeEncodeError oder Zeichensalat führt. Vor der Prüfung Folgendes ausführen:

[Console]::OutputEncoding = [System.Text.Encoding]::UTF8
$OutputEncoding = [System.Text.Encoding]::UTF8
$env:PYTHONIOENCODING = 'utf-8'

Chat-Antwortentwurf prüfen:

python "D:\math_question\.agents\skills\markdown-math-render\scripts\check_inline_math.py" - < Entwurf.txt

Bereits geschriebene Datei prüfen:

python "D:\math_question\.agents\skills\markdown-math-render\scripts\check_inline_math.py" "D:\math_question\Zieldatei.md"
  • Exit-Code 0 (Ausgabe [OK]) → sauber, kann gesendet/geschrieben werden
  • Exit-Code 0 mit [STYLE]-Hinweis → ^(...)-Schreibweise wie im Quellcode vorhanden (z. B. x^(1/3)), sieht wie Code aus; ∛x/x¹⁄³ oder Blockformel empfohlen (Stilhinweis, blockiert nicht)
  • Exit-Code 1 (Ausgabe [FAIL] mit Zeilennummern) → zwei Problemtypen: Inline $...$ (in eigenständige $$...$$-Zeile oder Unicode-Klartext umwandeln); $$...$$ nicht in separater Zeile (Text am Zeilenanfang/-ende der $$-Zeile entfernen). Nach Zeilennummer korrigieren und erneut ausführen, bis kein [FAIL] mehr auftritt

Formel selbst auf Korrektheit prüfen (30 Sekunden)

Das Repository enthält ein eigenes KaTeX-CLI, um die TeX-Syntax zu validieren:

@'
\dfrac{f(x_0+h)-f(x_0)}{h}
'@ | node scripts/node_modules/katex/cli.js
  • Ausgabe enthält <annotation ...> und Exit-Code 0 → Formel ist korrekt, Problem liegt bei Begrenzer/Renderer
  • ParseError → TeX-Syntaxfehler, Formel zuerst korrigieren

Ein-Satz-Prinzip

In der Codex App: Formeln grundsätzlich in separaten Zeilen mit $$...$$; kurze Inline-Ausdrücke mit Unicode-Hoch-/Tiefstellung verschönern (xˣ, f′(x)); Tabellenzellen enthalten keine Formeln, Formeln unter die Tabelle setzen; vor der Veröffentlichung check_inline_math.py zur Absicherung ausführen – Inline-$...$ sind verboten.

Verwandte Skills