MathML skriptierte Elemente
Wir setzen die Untersuchung grundlegender mathematischer Notationen fort und konzentrieren uns darauf, MathML-Elemente mit Skripten zu erstellen.
Tief- 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 zu sehen.
Sie sollten bemerken, dass:
- Das zweite Kind des
<msub>-Elements als Tiefstellung an das erste Kind angefügt wird. - Das zweite Kind des
<msup>-Elements als Hochstellung an das erste Kind angefügt wird. - Die zweiten und dritten Kinder des
<msubsup>-Elements werden jeweils als Tiefstellung und Hochstellung an das erste Kind angefügt. - Der Text innerhalb der Skripte wird verkleinert.
Unter- und Überstellungen
Die <munder>, <mover> und <munderover>-Elemente sind sehr ähnlich, außer dass sie verwendet werden, um Unter- und Überstellungen anzufügen. Anstatt ins Detail zu gehen, lassen wir Sie deren Definitionen mit der folgenden Übung selbst herausfinden.
Erkennen von Unter-/Überstellungen
Versuchen Sie im folgenden Beispiel, die Namen der geheimnisvollen Elemente (als Fragezeichen geschrieben) zu erraten, und klicken Sie auf den Button, um die Lösung zu zeigen:
Erkennen von skriptierten Elementen
Die folgende MathML-Formel enthält einen komplexeren Ausdruck, der Brüche, Wurzeln und Skripte verschachtelt. Versuchen Sie, die mit skriptierten Elementen <msub>, <msup>, <msubsup>, <munder>, <mover>, <munderover> angeordneten Elemente zu erraten. Jedes Mal, wenn Sie auf ein solches Element klicken, wird es hervorgehoben und eine Bestätigungsmeldung angezeigt. Lesen Sie schließlich die MathML-Quelle, um zu überprüfen, ob dies Ihrer Erwartung entspricht.
Weitere Eigenschaften des Operators
Wir haben bereits einige Eigenschaften des <mo>-Elements wie das Strecken in vertikaler Richtung und das Spacing gesehen. Jetzt, da skriptierte Elemente verfügbar sind, können wir diese Liste erweitern. Wir werden das tun, indem wir unser vorheriges Beispiel abändern.
Strecken in horizontaler Richtung
Lassen Sie uns zuerst die Substitutionen und durchführen:
Wir erkennen jetzt, dass die untere Klammer "⎵" und der Rechts-Pfeil "→" sich horizontal strecken, um die Breite der eingesetzten Werte abzudecken. Erinnern Sie sich, dass einige vertikale Operatoren sich strecken können, um die Höhe nicht-streckbarer Geschwister innerhalb eines <mrow> zu decken. Ebenso können sich einige horizontale Operatoren strecken, um die Breite nicht-streckbarer Geschwister in einem <munder>, <mover> oder <munderover>-Element zu decken.
Hinweis:
Das Strecken kann bei jedem Kind des <munder>, <mover> oder <munderover>-Elements vorkommen, nicht nur beim Unterscript oder Überscript.
Großer Operator und Grenzen
Bisher wurde unser Beispiel tatsächlich mit dem display="block"-Attribut dargestellt. Sehen wir uns dasselbe Beispiel ohne dieses Attribut an:
Wie erwartet, ist die Formel nicht mehr zentriert und die Darstellung wird geändert, um die Höhe zu minimieren. Mit Fokus auf das Summationssymbol kann man bemerken, dass das Sigma kleiner gezeichnet wird und dass die Skripte des <munderover>-Elements nun als Tiefstellung und Hochstellung angefügt sind! Dies liegt an zwei Eigenschaften des "∑"-Operators:
- largeop: Der Operator wird mit einem größeren Glyph gezeichnet, wenn das
<math>-Tag eindisplay="block"Attribut hat. - movablelimits: Die Unter- und Überskripte, die an den Operator angefügt sind, werden als Tiefstellung und Hochstellung gerendert, wenn das
<math>-Tag nicht dasdisplay="block"-Attribut hat.
Hinweis:
Die largeop-Eigenschaft ist tatsächlich unabhängig von Skripten, obwohl Operatoren mit dieser Eigenschaft typischerweise skriptiert sind. Die movablelimits-Eigenschaft wird auch für <munder>- und <mover>-Elemente berücksichtigt.
Zusammenfassung
In diesem Artikel haben wir die grundlegende Layoutvorstellung der Elemente <msub>, <msup>, <msubsup>, <munder>, <mover>, <munderover> für Tief-, Hoch-, Unter- und Überstellungen abgeschlossen. 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.