 |
Wer Formeln und Gleichungen ins Web setzen wollte, hatte ein Problem: HTML selbst bot keine Möglichkeit, Terme angemessen darzustellen. Also blieb nur der Ausweg über proprietäre Plug-Ins oder GIF-Dateien. Beide Möglichkeiten waren alles andere als optimal.
Deswegen hat das W3C 1998 eine auf XML basierende Markup-Sprache standardisiert, die zur Darstellung, Speicherung und Verarbeitung von mathematischen Termen dient.
Merkmale Prinzipiell lässt sich mit MathML so ziemlich alles darstellen, was ein Mathematiker gerne ausdrücken möchte. Die Informationen werden dabei, da auf XML basierend, in einfachen Textdateien gespeichert.
Low-Level-Technologie Daraus resultiert: MathML lässt sich mit einem einfachen Texteditor erstellen. Das ist jedoch nicht empfehlenswert. Selbst das W3C sieht MathML als Low-Level-Technologie, d.h. dass die Dateien selbst nicht von Menschen, sondern von Software erzeugt werden sollten.
Content und Presentation Markup MathML kann in zwei große Bereiche unterteilt werden: Presentation Markup und Content Markup. Presentation Markup speichert die zweidimensionale optische Struktur von Termen, also nur das Aussehen. Content Markup dagegen speichert den inhaltlichen Kontext der einzelnen Elemente, ist dabei aber eingeschränkter als Presentation Markup. Grob gesagt kann man mit Content Markup die Formeln der gymnasialen Oberstufe darstellen.
Soll heißen: wer Presentation Markup verwendet und einen Term wie x² verwendet, speichert im Code selbst nur die Information, dass die 2 über dem x stehen soll. Wer dagegen Content Markup verwendet, hat im Code stehen, dass die 2 der zu dem x gehörende Exponent ist.
Damit ist klar: Content Markup entspricht eher dem Grundgedanken von XML und ist prinzipiell auch vielseitiger einsetzbar. Daher sollten Sie, wenn möglich, auf Presentation Markup verzichten.
Die Spezifikation Die Spezifikation von MathML ist, da Low-Level-Technologie, recht komplex. Trotzdem ist es für jemanden, der Interesse daran hat, faszinierend zu sehen, wie Gleichungen in Markup umgesetzt werden. Auf der Math-Homepage des W3C findet man diese Spezifikationen, genauso wie weitere interessante Informationen.
Wir wollen in diesem Artikel jedoch nicht zu sehr ins Detail gehen und uns daher auf die für die Praxis wichtigen Punkte beschränken.
Darstellung von MathML Wie immer bei solch neuen Technologien stellt sich die Frage: welche Browser können MathML darstellen?
Der aktuelle Mozilla kann es im Prinzip, genauso wie darauf basierende Netscape-Versionen. Der Amaya kann es ebenfalls. Für den Internet Explorer benötigt man noch externe Plug-Ins, so z.B. den MathPlayer.
Für die Zukunft geben wir jedoch die Prognose ab, dass auch der IE MathML nativ unterstützen wird.
Einbinden von MathML Sie können MathML direkt in XHTMl-Dokumente einbinden. Dafür wird für die MathML-Elemente ein eigener Namensraum verwendet, was zur Konsequenz hat, dass solche gemixten Dokumente nicht mehr mit einer XHTMl-DTD validierbar sind. Das W3C stellt jedoch eine passende DTD zur Verfügung, die XHTML, MathML und SVG vereint.
Sie sollten in Dokumente, in denen XHTML und MathML gemischt vorkommen, zusätzlich ein XSL-Stylesheet einbinden, das je nach vorhandenen Anzeigemöglichkeiten den MathML-Code so verändert, dass er optimal angezeigt wird.
Doch genug der Theorie. Eine Beispiel-Datei könnte so aussehen:
<?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="http://www.w3.org/Math/XSL/mathml.xsl"?> <html xmlns="http://www.w3.org/1999/xhtml"> <head>Header</head> <body> <h1>Beispiel</h1> <math xmlns="http://www.w3.org/1998/Math/MathML"> <apply> <plus/> <ci>x</ci> <ci>y</ci> </apply> </math> </body> </html>
Wichtig dabei ist: - die erste Zeile
- das XSL-Stylesheet
- das math-Tag und der zugehörige Namensraum
Also, simple Grundregel: MathML immer in math-Tags verpacken.
Natürlich lassen sich auch mehrere Formeln in einem Dokument unterbringen:
<?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="http://www.w3.org/Math/XSL/mathml.xsl"?> <html xmlns="http://www.w3.org/1999/xhtml"> <head>Header</head> <body> <h1>Beispiel</h1> <math xmlns="http://www.w3.org/1998/Math/MathML"> <apply> <plus/> <ci>x</ci> <ci>y</ci> </apply> </math> <h1>Beispiel 2</h1> <math xmlns="http://www.w3.org/1998/Math/MathML"> <apply> <times/> <ci>z</ci> <ci>x</ci> </apply> </math> </body> </html>
MathML erzeugen Wenn Sie MathML nicht per Hand erzeugen wollen (das ist ohnehin nicht empfohlen, also lassen Sie's, wenn Sie nicht unbedingt müssen), dann sollten Sie sich einen Editor für MathML suchen.
Das W3C hat eine Liste mit Programmen, die MathML unterstützen. Dort sollten Sie sich einmal umsehen.
Ansonsten: die großen Pakete Mathematica und Maple unterstützen MathML teilweise. Es gibt auch andere Programme (kostenpflichtig), die MathML generieren, z.B. MathType. Schließlich gibt es auch kostenlose Systeme, wie den mathmled.
Es gibt auch Konverter-Systeme, so z.B. einen LaTex2MathML-Konverter. Schließlich ist es sogar möglich, auf dem Server MathML automatisiert zu GIF rendern zu lassen. Die passenden Links finden Sie auf der o.g. W3C-Software-Site.
Fazit Dem produktiven Einsatz von MathML steht eigentlich nichts mehr im Wege. Sie sollten ab und zu auf der Math-Homepage des W3C vorbeischauen, um aktuell zu bleiben.
|
 |
|
|
Sie wollen diese Seite ausdrucken? Dafür haben wir eine spezielle Druckversion ohne grafische Elemente entwickelt! |
|
|
Einführung in CSS bei HTMLWorld.
|
|