MathML-Tabellen

Sobald alle grundlegenden mathematischen Notationen bekannt sind, bleibt zu überlegen, wie tabellarische Layouts verwendet werden können, die für matrixähnliche Ausdrücke und andere fortgeschrittene mathematische Layouts genutzt werden können.

MathML-Tabellenelemente

Die MathML-Tabellenelemente sind ähnlich denjenigen für HTML-Tabellen: Das <mtable>-Element repräsentiert eine mathematische Tabelle, es hat <mtr>-Elemente als Kinder (die Zeilen darstellen), von denen jedes <mtd>-Elemente als Kinder hat (die Zellen darstellen). Ein <mtable>-Element kann an jeder Stelle in einer MathML-Formel eingefügt werden. Das <mtd>-Element kann eine beliebige Anzahl von MathML-Kindern enthalten und wird sie als <mrow>-Container layouten.

Tabellen werden typischerweise für matrixähnliche Ausdrücke (einschließlich Vektoren) verwendet. Hier ist ein einfaches Beispiel, das aus dem Artikel über die CSS matrix()-Funktion entnommen ist:

html
<math display="block">
  <mrow>
    <mo>(</mo>
    <mtable>
      <mtr>
        <mtd>
          <mi>a</mi>
        </mtd>
        <mtd>
          <mi>c</mi>
        </mtd>
        <mtd>
          <mn>0</mn>
        </mtd>
        <mtd>
          <msub>
            <mi>t</mi>
            <mi>x</mi>
          </msub>
        </mtd>
      </mtr>
      <mtr>
        <mtd>
          <mi>b</mi>
        </mtd>
        <mtd>
          <mi>d</mi>
        </mtd>
        <mtd>
          <mn>0</mn>
        </mtd>
        <mtd>
          <msub>
            <mi>t</mi>
            <mi>y</mi>
          </msub>
        </mtd>
      </mtr>
      <mtr>
        <mtd>
          <mn>0</mn>
        </mtd>
        <mtd>
          <mn>0</mn>
        </mtd>
        <mtd>
          <mn>1</mn>
        </mtd>
        <mtd>
          <mn>0</mn>
        </mtd>
      </mtr>
      <mtr>
        <mtd>
          <mn>0</mn>
        </mtd>
        <mtd>
          <mn>0</mn>
        </mtd>
        <mtd>
          <mn>0</mn>
        </mtd>
        <mtd>
          <mn>1</mn>
        </mtd>
      </mtr>
    </mtable>
    <mo>)</mo>
  </mrow>
</math>

Ermöglichen, dass Zellen mehrere Zeilen und Spalten überspannen

Dies ist wiederum ähnlich wie bei HTML-Tabellen. Das <mtd>-Element akzeptiert die Attribute columnspan und rowspan, um anzugeben, dass die Zelle mehrere Zeilen und Spalten überspannt. Nachfolgend überspannt die innere Matrix zwei Spalten der äußeren Matrix:

Hinweis: Aus historischen Gründen wird das MathML-Attribut für Spaltenüberspannung columnspan und nicht colspan genannt.

Verwendung für fortgeschrittenes Layout

Neben der Darstellung von matrixähnlichen Objekten werden MathML-Tabellen manchmal für fortgeschrittene Layouts in mathematischen Formeln verwendet, zum Beispiel in Wikipedias Definition des Legendresymbols. Hier werden die verschiedenen Fälle in drei verschiedenen Zeilen geschrieben, während die Werte und Bedingungen in zwei verschiedenen Spalten platziert werden.

Warnung: Der <mtable>-Artikel bietet fortgeschrittenere Layoutoptionen über spezielle Attribute wie Ausrichtung oder Abstände. Diese entstanden vor den CSS-Äquivalenten und wurden ursprünglich für Renderer entworfen, die CSS nicht unterstützten. Diese Attribute sind jedoch möglicherweise nicht in allen Browsern implementiert. In Zukunft wird es wahrscheinlich, dass die Verwendung von <mtable> nur für Layout-Zwecke (d.h. keine tatsächlichen matrixähnlichen Objekte) durch CSS-basierte Alternativen ersetzt werden kann.

Zusammenfassung

In diesem Artikel haben wir die <mtable>, <mtr> und <mtd> Elemente vorgestellt, die den HTML-Tabellenelementen entsprechen. Wir haben gesehen, wie sie zur Darstellung matrixähnlicher Objekte verwendet werden und wie sie manchmal für fortgeschrittene Layouts genutzt werden.

Sie haben dieses Modul fast abgeschlossen — es gibt nur noch eine letzte Aufgabe. In der Bewertung zu den drei berühmten mathematischen Formeln werden Sie Ihr neues Wissen nutzen, um einen kleinen mathematischen Artikel mit HTML und MathML neu zu schreiben.

Siehe auch