MathML
- Einsteiger-Tutorial zu MathML
- Algebra mit MathML und JavaScript
- Geometrie mit MathML, SVG und JavaScript
- Element-Referenz für den schnellen Überblick
Inhaltsverzeichnis
Vorüberlegungen
HTML wurde 1990 vom Web-Gründer Tim Berners-Lee am CERN als Auszeichnungssprache für wissenschaftliche (und andere) Texte entwickelt. Während HTML zusammen mit dem WWW auch außerhalb der wissenschaftlichen Welt immer präsenter wurde und heute aus dem täglichen Leben nicht mehr wegzudenken ist, blieben XML-Dialekte wie SVG und MathML aufgrund mangelnder Browserunterstützung vergleichsweise unbekannt.
Formeln wurden in HTML als Rastergrafiken eingefügt, was zwei Nachteile hatte:
- Selbst kleine Änderungen an der Formel benötigten oft einen völligen Neubeginn
- Grafiken sind nicht zugänglich und konnten so den Inhalt nicht allen Nutzern verfügbar machen.
Präsentation und Inhalt
MathML bestand bis zur Version 3.0 aus zwei Teilsprachen, die gemeinsam zum Einsatz kommen konnten:
- Content MathML beschreibt nur die Struktur einer Formel, also welche Funktionen oder Operatoren auf welche Variablen oder Werte angewendet werden. In diesem Format ist die Bedeutung (Semantik) einer Formel besser zu erfassen. Diese Variante wurde nie von Browsern implementiert.
- Presentation MathML ist stärker auf die grafische Gestaltung einer Formel orientiert. Es schreibt zwar nicht die genaue Gestaltung einer Formel vor, wohl aber die Anordnung und Reihenfolge der Symbole.[1] MathML Core besteht aus Presentation MathML.
MathML Core
Deshalb wurde MathML ähnlich wie SVG2[2] reformiert und in HTML integriert. Das Subset MathML Core -verabschiedet im August 2021 - ist eine Untermenge mit erweiterten Implementierungsdetails, die auf den Regeln von LaTeX und Open Font format beruht. Es ist auf die modernen Browser zugeschnitten und wurde speziell für die Zusammenarbeit mit anderen Webstandards entwickelt, darunter HTML, CSS, DOM und JavaScript.
Ähnlich wie bei SVG2 wurden einige Elemente (MathML 3.0 hatte 195, Math ML Core nur noch 32 Elemente)[3], mehr noch aber eine Vielzahl spezieller MathML-Attribute, aussortiert, wobei parallel die Integration von CSS für MathML vorangetrieben wird.
Mittlerweile unterstützen alle großen Browser MathML, trotzdem sollte zusätzlich der Einsatz der JavaScript-Bibliothek MathJax erwogen werden, um MathML allen Nutzern zur Verfügung zu stellen.[4]
Dabei gibt es zwei Baustellen:
- Ein Webseitenersteller sollte nicht nur Textinhalt und Grafiken, sondern eben auch Formeln zugänglich für alle lesbar ins Netz stellen. Dafür ist MathML die passende Technologie.
- Nutzer können diese Formeln dank der guten Browserunterstützung lesen.
- Nutzer, denen eine gute Darstellung wichtig ist, können zusätzlich zu den systemeigenen Schriften die Schriften Latin Modern Math und STIX Two Math herunterladen und installieren.[5]
- Nutzer, die ein eingeschränktes Sehvermögen haben, können MathML beliebig skalieren, da es aus Glyphen besteht und immer gestochen scharf bleibt.
- Nutzer von Screenreadern können zusätzlich den MathPlayer installieren, der ihnen Formeln vorliest oder über die Braille-Zeile ausgibt.
In unserem Wiki, das wie die Wikipedia mit der Mediawiki-Software läuft, ist der Einsatz von MathML noch nicht möglich. Im SVG-Bereich gibt es mehrere Formeln, die als Rastergrafiken abgebildet werden. Eine Extension ist vorhanden und wird evtl. in Zukunft implementiert.[6]
Im Self-Forum können Sie Formeln in LaTeX-Syntax eingeben. Diese werden dann via MathJax in MathML umgewandelt.
LaTeX vs. MathML
Warum sollte man jetzt etwas Neues einführen? - Ich hatte bisher - auch im SELF-Forum - mit LaTeX gearbeitet?
\frac{1}{x}
Das sieht (für den geübten Nutzer) einfach aus. Schwierig wird es, wenn Sie …
- einen Anker innerhalb Ihres Ausdrucks erstellen
- DOM-Manipulationen anwenden
oder - die Farbe des Nenners im Ausdruck 1/x dynamisch ändern
möchten.
Wie wäre es jetzt mit:
<mfrac>
<mn>1</mn>
<mi>x</mi>
</mfrac>
MathML ist für Bibliotheksautoren und Webentwickler viel einfacher als TeX zu handhaben.[7]
Hilfsmittel
Editoren und Generatoren
Zwischenergebnis unserer Recherchen war erst einmal das Staunen über das aufgeblasene Markup. Während HTML nur die Inhaltsstruktur erfasst (HTML kam anfangs mit 18 Elementen aus, von denen 15 heute noch einen Großteil des Markups ausmachen!) und nur gelegentlich Wörter betont oder hervorhebt, ist MathML sehr ausführlich.
Während (fast) jeder Mensch und selbst eine Suchmaschine
(a+b)2 = a2 + 2ab + b2
problemlos lesen kann, werden bei MathML Formeln in ihre kleinsten Bestandteile zerlegt und ausgezeichnet.
Auf die Spitze getrieben wird es bei der Auslassung von Multiplikationszeichen, die in MathML (unsichtbar) notiert werden und dann von Screenreadern vorgelesen werden können:
<mn>2</mn>
<mo>⁢</mo>
<mi>a</mi>
<mo>⁢</mo>
<mi>b</mi>
mi
, mn
und mo
notiert werden, werden von Chrome nicht gerendert!'Fazit: Das zeigt eben auch die Daseinsberechtigung von MathML auf:
MathML ist in die HTML-Welt integriert und kann …
- mit CSS ansprechend gestaltet,
- mit JavaScript dynamisch verändert
und - von Screenreadern (im Gegensatz zu Formeln in Grafiken) auch vorgelesen werden.
Allerdings sollte MathML nicht per Hand geschrieben, sondern von Formel-Editoren automatisch erzeugt werden.
In einem eigenen Kapitel werden wir Editoren, Generatoren und Online-Tools vorstellen, die Ihnen die Arbeit erleichtern.
--Matthias Scharwies (Diskussion) 17:24, 16. Mär. 2023 (CET)
MathJax
MathJax ist eine browserübergreifende, auf JavaScript basierende Bibliothek, die mathematische Formeln und Gleichungen, die in LaTeX und MathML Markup geschrieben wurden, in Webbrowsern grafisch darstellt. Sie wird als freie Software (Open-Source) unter Apache-Lizenz veröffentlicht.
Die Javascript-Library MathJax kann von www.mathjax.org geladen oder über ein Content Delivery Network (CDN) eingebunden werden.
<script id="MathJax-script" async
src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js">
</script>
Nachdem das CDN auf cdn.mathjax.org 2017 eingestellt wurde, führt die MathJax Dokumentation weitere CDNs auf.
Weblinks
- W3C: MathML Home Page: MathML-Einstiegsseite des W3-Konsortiums.
Das W3-Konsortium entwickelt MathML und gibt die entsprechenden Recommendations (Empfehlungen) heraus. - MDN: MathML
- Wikipedia: Mathematical Markup Language
- Articles from arXiv.org as responsive HTML5 web pages (ar5iv.labs.arxiv.org)
umfangreiche Sammlungen von mathematischen Formeln - MathML-Grundlagen 90minütiges Video-Tutorial von Dr. Thomas Meinike (datenverdrahten.de)
Editoren
- TeXZilla von Frédéric Wang
wandelt LaTeX in MathML um; MathML kann mit dem Seiteninspektor ausgelesen werden - LATExml A LATEX to XML/HTML/MathML Converter
wandelt LaTeX in Webseiten um; MathML kann mit dem Seiteninspektor ausgelesen werden - itex2MML Plugin
Quellen
- ↑ Fundamentals of MathML / Presentation and content (Excerpt from "The MathML Handbook" by Pavi Sandhu)
- ↑ SELF-Blog: SVG 2 - was lange währt ... vom 16.11.2016
- ↑ W3C: The elements of MathML-Core MathML Core Explainer
- ↑ SELF-Forum: Unterstützung Falkon vom 12.03.2023
- ↑ MDN: Fonts for MathML
- ↑ https://www.mediawiki.org/wiki/Extension:Math
- ↑ On: Bringing MathML back to Chromium (hackernews)