MathML scriptbasierte Elemente
Wir setzen die Überprüfung der grundlegenden mathematischen Notationen fort und konzentrieren uns auf das Erstellen von MathML-Elementen mit Skripten.
Indizes und Hochstellungen
Ähnlich wie im vorherigen Artikel gesehen, haben die <msub>, <msup> und <msubsup> eine spezielle Struktur, die genau zwei Elemente (für <msub>, <msup>) oder drei Elemente (für <msubsup>) erwartet:
<p>
msub:
<math>
<msub>
<mtext>child1</mtext>
<mtext>child2</mtext>
</msub>
</math>
</p>
<p>
msup:
<math>
<msup>
<mtext>child1</mtext>
<mtext>child2</mtext>
</msup>
</math>
</p>
<p>
msubsup:
<math>
<msubsup>
<mtext>child1</mtext>
<mtext>child2</mtext>
<mtext>child3</mtext>
</msubsup>
</math>
</p>
Unten ist die Darstellung des obigen Beispiels in Ihrem Browser.
Sie sollten bemerken, dass:
- Das zweite Kind des
<msub>Elements als Index an sein erstes Kind angehängt ist. - Das zweite Kind des
<msup>Elements als Hochstellung an sein erstes Kind angehängt ist. - Die zweiten und dritten Kinder des
<msubsup>Elements sind jeweils als Index und Hochstellung an sein erstes Kind angehängt. - Der Text in den Skripten verkleinert dargestellt wird.
Unterskripe und Oberskripe
Die <munder>, <mover> und <munderover> Elemente sind sehr ähnlich, außer dass sie zur Anbindung von Unterskripten und Oberskripten verwendet werden. Anstatt Details zu geben, überlassen wir es Ihnen, deren Definitionen mit der folgenden Übung selbst herauszufinden.
Erkennen von Unter-/Oberskripten
Versuchen Sie im folgenden Beispiel, die Namen der mysteriösen Elemente zu erraten (als Fragezeichen geschrieben) und klicken Sie auf die Schaltfläche, um die Lösung anzuzeigen:
Erkennen von scriptbasierten Elementen
Die folgende MathML-Formel enthält einen komplexeren Ausdruck, der Brüche, Wurzeln und Skripte verschachtelt. Versuchen Sie, die mit scriptbasierten Elementen <msub>, <msup>, <msubsup>, <munder>, <mover>, <munderover> aufgebauten Elemente zu erraten. Jedes Mal, wenn Sie auf ein solches Element klicken, wird es hervorgehoben und eine Bestätigungsmeldung angezeigt. Lesen Sie schließlich den MathML-Quellcode, um zu überprüfen, ob dieser Ihrer Erwartung entspricht.
Weitere Operator-Eigenschaften
Wir haben bereits einige Eigenschaften des <mo> Elements gesehen, nämlich das Strecken in vertikaler Richtung und Abstände. Jetzt, wo scriptbasierte Elemente verfügbar sind, können wir diese Liste erweitern. Wir werden dies tun, indem wir unser vorheriges Beispiel anpassen.
Strecken in horizontaler Richtung
Lassen Sie uns zuerst die Substitutionen und vornehmen:
Wir realisieren jetzt, dass die untere Klammer "⎵" und der Pfeil nach rechts "→" horizontal gestreckt werden, um die Breite der substituierten Werte zu decken. Denken Sie daran, dass einige vertikale Operatoren gestreckt werden können, um die Höhe der nicht dehnbaren Geschwister in einem <mrow> zu decken. Ähnlich können einige horizontale Operatoren gestreckt werden, um die Breite der nicht dehnbaren Geschwister in einem <munder>, <mover> oder <munderover> Element zu decken.
Hinweis:
Das Strecken kann für jedes Kind des <munder>, <mover> oder <munderover> Elements erfolgen, nicht nur für das Unterskript oder Oberskript.
Großer Operator und Grenzwerte
Bisher wurde unser Beispiel tatsächlich mit dem Attribut display="block" gerendert. Betrachten wir dasselbe Beispiel, wie es ohne dieses Attribut gerendert wird:
Wie erwartet ist die Formel nicht mehr zentriert und die Darstellung wurde geändert, um die Höhe zu minimieren. Fokussiert man auf das Summensymbol, so erkennt man, dass das Sigma kleiner gezeichnet und die Skripte des <munderover> Elements nun als Index und Hochstellung angefügt sind! Dies ist auf zwei Eigenschaften des Operators "∑" zurückzuführen:
- largeop: Der Operator wird mit einem größeren Glyph gezeichnet, wenn das
<math>Tag eindisplay="block"Attribut hat. - movablelimits: Die Unterskripte und Oberskripte, die an den Operator angehängt sind, werden entsprechend als Indizes und Hochstellungen gerendert, wenn das
<math>Tag nicht dasdisplay="block"Attribut hat.
Hinweis:
Die largeop Eigenschaft ist eigentlich nicht mit Skripten verwandt, obwohl Operatoren mit dieser Eigenschaft typischerweise mit Skripten versehen werden. Die movablelimits Eigenschaft wird auch für <munder> und <mover> Elemente berücksichtigt.
Zusammenfassung
In diesem Artikel haben wir die Überprüfung des grundlegenden Layouts abgeschlossen, indem wir die Elemente <msub>, <msup>, <msubsup>, <munder>, <mover>, <munderover> für Indizes, Hochstellungen, Unterskripte und Oberskripte eingeführt haben. Mit diesen Elementen konnten wir kurz neue Eigenschaften des <mo> Elements einführen. Im nächsten Artikel werden wir uns weiterhin auf tabellarisches Layout konzentrieren.