# Mathematical Markup Language

Die Mathematical Markup Language (MathML) ist ein Dokumentenformat zur Darstellung mathematischer Formeln und komplexer Ausdrücke. Wie in allen XML-Sprachen (z. B. XHTML) werden in MathML die Inhalte eines Dokumentes in einer logischen Struktur unabhängig von ihrer graphischen Gestaltung abgelegt.
MathML ist Bestandteil von HTML5 und gilt seit 2015 als ISO-Standard (ISO/IEC DIS 40314).

## Entwicklung
### Versionen

HTML wird vom World Wide Web Consortium (W3C) und der Web Hypertext Application Technology Working Group (WHATWG) weiterentwickelt. Der Standard MathML 2.0 wird durch eine Spezifikation des World Wide Web Consortium (W3C) von 2001 festgelegt. Seit Oktober 2010 genießt MathML 3.0 den Status einer W3C-Empfehlung.
Während weiter an MathML 4.0 gearbeitet wird, wurde im August 2021 MathML Core vorgestellt. Das Subset MathML Core ist eine Untermenge mit erweiterten Implementierungsdetails, die auf den Regeln von LaTeX und OpenType 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.

### Teilsprachen

MathML besteht aus zwei Teilsprachen, die gemeinsam zum Einsatz kommen können:
* 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.
* 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.

## Browser-Unterstützung

Eine Verwendung von MathML im Webdesign krankte an der mangelnden Browserunterstützung. Seit März 2023 unterstützen nun jedoch alle modernen Browser MathML Core.
Browser wie Firefox und Safari unterstützten seit Version 1.8 (erschienen 2005), bzw. 5.1 MathML. Der Internet Explorer unterstützte MathML nicht, es musste das MathPlayer-Plug-in installiert werden.
Opera unterstützte ab Version 9.5 MathML in weiten Teilen. Opera verwendete dabei CSS in Verbindung mit SVG zur Darstellung. Mit dem Umstieg der Rendering-Engine in Opera 15 entfiel die MathML-Unterstützung. Google Chrome unterstützte MathML vorübergehend in der Version 24 (erschienen im Januar 2013), mit der Version 25 wurde MathML allerdings wieder deaktiviert.
Seit Version 109 unterstützt Chrome MathML wieder, möglich wurde dies durch Entwickler der Fa. Igalia. Auch die anderen auf der Blink-Engine von Chrome basierenden Browser wie Opera und Edge unterstützen nun MathML.

### Möglichkeiten

MathML Core ist als XML-Dialekt integraler Bestandteil von HTML5. Es ist auf die modernen Browser zugeschnitten und wurde speziell für die Zusammenarbeit mit anderen Webstandards entwickelt, darunter HTML, CSS, DOM und JavaScript.
Durch die Syntax lässt es sich durch CSS formatieren. Mit JavaScript kann das DOM eines MathML-Dokuments ausgelesen und dynamisch verändert werden.

### Bearbeitung

Unter Mathematikern und anderen interessierten Benutzern gilt MathML für die manuelle Editierung als unhandlich, sodass nur Programme zur Generierung zum Einsatz kommen. Daher wird zur Erstellung mathematischer Dokumente häufig auf das altbewährte Textsatzsystem LaTeX gesetzt. Andererseits gibt es immer mehr Programme, die auf Basis von MathML Formeln beschreiben.

## Verwandte Standards

OpenMath wurde zum großen Teil von denselben Personen entwickelt, die auch Content MathML entwickelt haben, um die Semantik von Formeln besser zu beschreiben. Im Gegensatz zu Content MathML hat es keinen festen Vorrat an Funktionen und Operatoren, sondern ist um neue Symbole erweiterbar.
OMDoc wurde entwickelt, um größere mathematische Strukturen als Formeln aufzuschreiben: Aussagen wie Definitionen, Sätze, Beweise oder Beispiele, bis hin zu Theorien und Lehrbüchern. Formeln in OMDoc können sowohl in Content MathML als auch in OpenMath aufgeschrieben werden; zur Präsentation können sie nach Presentation MathML konvertiert werden.

## MathML-Software (Auswahl)

* Amaya Editor/Browser
* GNU TeXmacs
* LibreOffice Math