Skriptelemente in MathML

Wir setzen die Überprüfung grundlegender mathematischer Notationen fort und konzentrieren uns auf den Aufbau von MathML-Elementen mit Skripts.

Tief- und Hochstellungen

Ähnlich wie im vorherigen Artikel gesehen, haben <msub>, <msup> und <msubsup> eine spezielle Struktur, die genau zwei Elemente (für <msub>, <msup>) oder drei Elemente (für <msubsup>) erwartet:

html
<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 sehen Sie die Darstellung des obigen Beispiels in Ihrem Browser.

Sie sollten bemerken, dass:

  • Das zweite Kind des <msub>-Elements als Tiefstellung an das erste Kind angehängt wird.
  • Das zweite Kind des <msup>-Elements als Hochstellung an das erste Kind angehängt wird.
  • Die zweiten und dritten Kinder des <msubsup>-Elements werden jeweils als Tiefstellung und Hochstellung ihres ersten Kindes angehängt.
  • Der Text innerhalb der Skripts wird verkleinert.

Hinweis: Die MathML-Elemente <msub> und <msup> unterscheiden sich von den HTML-Elementen <sub> und <sup>. Sie ermöglichen es Autoren, beliebige MathML-Subbäume als Skripts bereitzustellen, nicht nur Text.

Unter- und Überschriften

Die <munder>, <mover> und <munderover>-Elemente sind sehr ähnlich, außer dass sie zum Anfügen von Unter- und Überschriften verwendet werden. Anstatt Details zu geben, lassen wir Sie ihre Definitionen selbst mit der folgenden Übung herausfinden.

Aktives Lernen: Erkennen von Unter-/Über-Schriften

Versuchen Sie im folgenden Beispiel, die Namen der geheimnisvollen Elemente (als Fragezeichen dargestellt) zu erraten und klicken Sie auf die Schaltfläche, um die Lösung anzuzeigen:

Aktives Lernen: Erkennen von Skriptelementen

Die folgende MathML-Formel enthält einen komplexeren Ausdruck, der Brüche, Wurzeln und Skripte verschachtelt. Versuchen Sie, die mit Skriptelementen <msub>, <msup>, <msubsup>, <munder>, <mover>, <munderover> angelegten 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 diese Ihrer Erwartung entspricht.

Weitere Eigenschaften von Operatoren

Wir haben zuvor einige Eigenschaften des <mo>-Elements gesehen, nämlich das Strecken in vertikaler Richtung und das Abstandhalten. Jetzt, da Skriptelemente verfügbar sind, können wir diese Liste erweitern. Das werden wir tun, indem wir unser vorheriges Beispiel anpassen.

Strecken in horizontaler Richtung

Lassen Sie uns zunächst die Substitutionen βz1+z2\beta := z*{1} + z*{2} und αv1+v2\alpha := v*{1} + v*{2} durchführen:

Wir bemerken nun, dass die untere Klammer "⎵" und der nach rechts gerichtete Pfeil "→" sich horizontal dehnen, um die Breite der Ersatzwerte abzudecken. Denken Sie daran, dass einige vertikale Operatoren sich strecken können, um die Höhe nicht dehnbarer Geschwister innerhalb eines <mrow> abzudecken. Ebenso können sich einige horizontale Operatoren strecken, um die Breite nicht dehnbarer Geschwister in einem <munder>, <mover> oder <munderover>-Element abzudecken.

Hinweis: Das Strecken kann für jedes Kind des <munder>, <mover> oder <munderover>-Elements auftreten, nicht nur für die Unter- oder Überschrift.

Große Operatoren und Grenzen

Bisher wurde unser Beispiel tatsächlich mit dem Attribut display="block" gerendert. Schauen Sie sich das gleiche Beispiel an, wie es ohne dieses Attribut gerendert wird:

Wie erwartet ist die Formel nicht mehr zentriert und die Darstellung ist so verändert, dass die Höhe minimiert wird. Konzentrieren Sie sich auf das Summationssymbol, dann werden Sie bemerken, dass das Sigma kleiner gezeichnet ist und dass die Skripts des <munderover>-Elements nun als Tiefstellung und Hochstellung angefügt sind! Dies ist aufgrund zweier Eigenschaften des "∑"-Operators:

  • largeop: Der Operator wird mit einem größeren Glyph dargestellt, wenn das <math>-Tag ein display="block"-Attribut hat.
  • movablelimits: Wenn das <math>-Tag kein display="block"-Attribut hat, werden die Unter- und Überschriften des Operators als Tiefstellung und Hochstellung dargestellt.

Hinweis: Die largeop-Eigenschaft ist eigentlich nicht mit Skripts verwandt, obwohl Operatoren, die diese Eigenschaft haben, typischerweise Skriptunterstützung anbieten. Die movablelimits-Eigenschaft wird auch bei <munder>- und <mover>-Elementen berücksichtigt.

Zusammenfassung

In diesem Artikel haben wir die Überprüfung des grundlegenden Layouts abgeschlossen und die Elemente <msub>, <msup>, <msubsup>, <munder>, <mover>, <munderover> für Tiefstellungen, Hochstellungen, Unter- und Überschriften eingeführt. Mit diesen Elementen konnten wir kurz neue Eigenschaften des <mo>-Elements vorstellen. Im nächsten Artikel werden wir uns auf den tabellarischen Layout konzentrieren.

Siehe auch