Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

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:

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 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.

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

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 βz1+z2\beta := z*{1} + z*{2} und αv1+v2\alpha := v*{1} + v*{2} 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 ein display="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 das display="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.

Siehe auch