WaBis

walter.bislins.ch

Makro: mtab

Die mtab-Makros ermöglichen ein professionelles Formatieren von Formeln in Wiki-Seiten. Formeln können mit referenzierbaren Nummern oder Labeln versehen werden. Es gibt mehrere Makros, die zusammen arbeiten. Von einigen Makros gibt es unterschiedliche Varianten.

Das Formatieren von Formeln geschieht mittels verschachtelter Tabellen. Es ist wichtig, dass die Formel-Makros korrekt angewandt werden, da sonst ungültes HTML entsteht und die Seite nicht richtig dargestellt wird oder gar das ganze Layout durcheinander gerät.

Einzelne Formel Formatieren

{{mtab|ID|Flags|Width|Tab-Attr|box=Box-Attr|row=Row-Attr|Cell-Attr}}
<xmath>Formel</xmath>
{{where|Where-Attr}}
{{msym|Symbol|Text}}
   :
{{end mtab}}
ID (optional)
Das Zeichen #, eine Zahl oder ein Name/Label für die Formel (siehe Beschreibung unten). Die ID (falls angegeben) wird links von der Formel in Klammern angezeigt. ID muss das erste Argument sein. Wenn weitere Argumente angegeben werden sollen, aber ID leer sein soll, muss als ID ein Leerstring in der Argumentliste stehen.
Flags (optional)
  • grid: zeichnet Rahmen um die Tabellen-Zellen.
  • frame: macht einen dicken Rahmen um die Formel.
  • underline: unterstreicht die Formel.
  • noscroll: Wenn Formeln breiter als die Seitenbreite werden, erscheint ein Scrollbar, mit dem die Formel hin und her geschoben werden kann. Dieses Verhalten kann mit noscroll unterdrückt werden.
  • left, right: positioniert die Formel links bzw. rechts an den Seitenrand und der Text fliesst um die Formel herum (entspricht dem CSS-Attribut float:left oder float:right).
Width (optional)
Format: 123px. Wenn der Platz vom linken Rand zu einem rechts fliessenden Bereich (Bild oder Textbox) zu eng wird, erscheint ein Scrollbar für die Formel. Wenn man stattdessen lieber die Formel unterhalb des rechten Bereiches platziert haben will, kann man mit diesem Argument die Breite für die Formel festlegen. Wird der Platz für die Formel kleiner als diese Breite, wird die Formel nach unten verschoben, sodass sie unterhalb des rechten Breiches platziert wird, wo sie wieder die ganze Seitenbreite zur Verfügung hat. Die Formel wird nie breiter als die Seitenbreite. Dies wird erreicht, indem intern das CSS-Attribut max-width:100% definiert wird, wenn Width definiert wird.
Tab-Attr (optional)
Es können Breitenangaben in folgender Form für die Tabelle gemacht werden: w:123 für 123 Pixel, w:100% für Breitenangaben in Prozent. Um die Breite der Tabellen-Zelle zu setzen, definiert man einfach einen Style wie: width:40%.
box=Box-Attr (optional)
Attribute für die Container-Box. Es können entweder Klassennamen mit einem $ Zeichen davor, oder direkt Style-Angaben angegeben werden. Das Attribut darf mehrfach vorkommen. Beispiele: box=$Class, box=border:2px solid red.
row=Row-Attr (optional)
Attribute für Tabellen-Zeilen. Es können entweder Klassennamen mit einem $ Zeichen davor, oder direkt Style-Angaben angegeben werden. Das Attribut darf mehrfach vorkommen. Beispiele: row=$Class, row=border:2px solid red.
Cell-Attr (optional)
Attribute für die Zelle, in welcher die Formel dargestellt wird. Es können entweder Zellen-Attribute wie bei normalen Tabellen-Zellen, Klassennamen mit einem $ Zeichen davor, oder direkt Style-Angaben angegeben werden. Das Attribut darf mehrfach vorkommen. Beispiele: $Class, border:2px solid red. Zellen-Attribute können z.B. sein: cs:2 um die Formel über zwei Spalten zu spannen, c, um die Formel zu zentrieren usw.
Formel
Formel in TeX-Syntax.
Where-Attr (optional)
Angaben zur Formatierung der Zelle mit den Symbolbeschreibungen, z.B: cs:2 um die Beschreibungen über zwei Tabellen-Zellen auszudehnen wenn zwei Formeln tabellarisch nebeneinander dargestellt werden (siehe Mehrere Formeln nebeneinander).
Symbol
In der Formel verwendetes Symbol in TeX-Syntax (z.B. \alpha für α).
Text
Beschreibung des Symbols, Einheiten, Wert usw.
ID Beispiel Beschreibung
{{mtab}} Keinen Text links der Formel anzeigen
# {{mtab|#}} Automatisch generierte Nummer links der Formel anzeigen
#Name {{mtab|#Newton}} Automatisch generierte Nummer anzeigen. Formel kann unter Name referenziert werden
Zahl {{mtab|3}} Nummer (3) anzeigen. Formel kann unter dieser Nummer referenziert werden. Die Automatische Nummerierung wird auf diesen Wert gesetzt, sodass die nächste ID beim {{mtab|#}} (4) wird.
Label {{mtab|Ref1}} Text Label anzeigen. Formel kann unter Label referenziert werden

Wenn ID mit # beginnt, wird eine automatisch generierte, bei 1 beginnende, fortlaufende Nummer links von der Formel angezeigt. Steht nur das # Zeichen, ist diese Nummer gleichzeitig der Name, unter dem die Formel mit dem Makro {{mref}} referenziert werden kann.

Wenn hinter dem # noch ein Name steht, erhält die Formel zwar auch eine automatische Nummer, die Formel kann jedoch mit {{mref|Name}} unter diesem Namen referenziert werden. So bleiben Referenzen auch dann gültig, wenn Formeln umgestellt werden und dadurch neu nummeriert werden.

Ist ID ein Label (ohne #), so wird dieser links der Formel angezeigt und ist gleichzeitig der Name, unter welcher die Formel referenziert werden kann.

Wird als ID eine Zahl angegeben, wird der interne Zähler für die automatische Nummerierung auf diese Zahl gesetzt. Unter dieser Zahl kann die Formel referenziert werden.

Formeln mit ID's können mit dem Makro {{mref}} auf derselben Seite oder auf einer anderen Seite referenziert werden. Das Makro {{mref}} erzeugt einen Link, der beim Anklicken zur entsprechenden Formel führt.

Beispiel 1

{{mtab|#First}}

<xmath>p = \rho \cdot R_S \cdot T</xmath>

{{where}}
{{msym|p|statischer Druck in (/:N/m^2/)}}
{{msym|\rho|Gasdichte (Luftdichte) in (/:kg/m^3/)}}
{{msym|R_S|spezifische Gaskonstante (Luft: (/R_S = 287: J/kg/K/))}}
{{msym|T|Temperatur in Kelvin}}
{{end mtab}}

und so sieht es aus (siehe auch Makro: math):

(1)
wobei'
' =' 'statischer Druck in N/m2
' =' 'Gasdichte (Luftdichte) in kg/m3
' =' 'spezifische Gaskonstante (Luft: RS = 287 J/kg/K)
' =' 'Temperatur in Kelvin

HTML Namen für Formel ID

Aus der ID einer Formel wird ein HTML Anchor erzeugt, welcher von anderen Webseiten verlinkt werden kann:

ID → H_MATH-ID

In einer externen Webseite kann also eine Formel wie im folgenden Beispiel referenziert werden:

<a href="seite.html#H_MATH-ID">Formel ID</a>

Auf Wiki-Seiten kann man einfach das Makro {{mref}} verwenden:

{{mref|ID|Seite}}

Spracheinstellung MTabLanguage

Das Makro {{where}} verwendet standardmässig einen Text wie "wobei" bei deutscher Einstellung des Wikis. Will man eine andere Sprache verwenden, kann dies mit fogendem Makro erreicht werden:

{{MTabLanguage|lang}}

lang: Momentan unterstützde Sprachen: de (default) und en.

Das Makro muss vor dem ersten Aufruf einen mtab Makros verwendet werden.

Mehrere Formeln untereinander

Wenn mehrere Formeln mit nur einer Legende direkt untereinander gesetzt werden sollen und jede Formel eine eigene ID erhalten soll, muss die Variante des Makros mtab+ für jede weitere Formel verwendet werden:

{{mtab|ID}}
<xmath>Formel</xmath>
{{mtab+|ID}}
<xmath>Formel</xmath>
{{where}}
{{msym|Symbol|Text}}
   :
{{end mtab}}

Beispiel 2

{{mtab|III|frame}}

<xmath>p = \rho \cdot R_S \cdot T</xmath>

{{mtab+|4|underline}}

<xmath>\rho = {p \over R_S \cdot T}</xmath>

{{where}}
{{msym|p|statischer Druck in (/:N/m^2/)}}
{{msym|\rho|Gasdichte (Luftdichte) in (/:kg/m^3/)}}
{{msym|R_S|spezifische Gaskonstante (Luft: (/R_S = 287: J/kg/K/))}}
{{msym|T|Temperatur in (/:Kelvin/)}}
{{end mtab}}

und so sieht es aus:

(III)
(4)
wobei'
' =' 'statischer Druck in N/m2
' =' 'Gasdichte (Luftdichte) in kg/m3
' =' 'spezifische Gaskonstante (Luft: RS = 287 J/kg/K)
' =' 'Temperatur in Kelvin

Formel in mehreren Teilen

Wenn eine Formel zu kompliziert ist, kann sie in mehrere Teilformeln aufgespaltet werden. Wenn die Unter-Formeln keine eigene ID erhalten sollen, sondern statt dessen ein Text wie mit an dieser Stelle stehen soll, muss die Variante mtab* verwendet werden:

{{mtab|ID}}
<xmath>Formel</xmath>
{{mtab*|Text}}
<xmath>Formel</xmath>
{{where}}
{{msym|Symbol|Text}}
   :
{{end mtab}}

Beispiel 3

{{mtab|#}}

<xmath>p = p_0\, \left( {T_0 + \alpha \cdot h \over T_0} \right) 
^ {-\beta} = p_0\, \left( 1 + {\alpha \cdot h \over T_0} \right) 
^ {-\beta}</xmath>

{{mtab*|mit}}

<xmath>\beta = {M \cdot g \over R \cdot \alpha} = { g \over R_S \cdot \alpha}</xmath>

{{where}}
{{msym|p|statischer Druck in der Höhe (/h/) in (/:N/m^2/)}}
{{msym|:|...}}
{{end mtab}}

und so sieht es aus:

(5)
mit
wobei'
' =' 'statischer Druck in der Höhe h in N/m2
' =' '...

Mehrere Formeln nebeneinander

Wenn mehrere Formeln nebeneinander stehen sollen, muss die Variante mtab> verwendet werden. In Kombination mit der Variante mtab+ oder mtab* können Formel-Tabellen erstellt werden.

{{mtab>|Cell-Attr}}
Cell-Attr (optional)
Angaben zur Formatierung der Formel-Zelle, Beispiele: width:46%, $hili1, usw.

Anwendung:

{{mtab|ID|Width|Tab-Attr|Cell-Attr}}
<xmath>Formel-links</xmath>
{{mtab>|Cell-Attr}}
<xmath>Formel-rechts</xmath>
{{mtab+|ID}}
<xmath>Formel-links</xmath>
{{mtab>}}
<xmath>Formel-rechts</xmath>
{{where|cs:2}}
{{msym|Symbol|Text}}
   :
{{end mtab}}

Beachte, dass beim Makro {{where}} als Argument cs:2 angegeben werden muss, weil die Legende zwei Spalten der Tabelle überspannen soll (cs = col span).

Bei Width kann man die Breite der Tabelle in der Form w:100% angeben. Mit Tab-Attr kann man z.B. das Tabellengitter mit grid anzeigen lassen.

Mit Cell-Attr kann man die Breite der ersten, zweiten und weiterer Spalten in der Form width:NN% angeben. Die Zellenbreiten müssen nur für die erste Zeile der Tabelle angegeben werden.

Tipp: Um etwa gleich breite Spalten zu erhalten, kann man die Spaltenbreite der ersten n-1 Spalten nach folgender Formel berechnen:

Spaltenbreite in Prozent = (100 - 8) / n

In dieser Formel wird berücksichtigt, dass die Spalte mit der ID bei voller Fensterbreite ca. 8% des Platzes benötigt.

Beispiel für 2 Spalten: Breite = (100 - 8) / 2 = 46%

Beispiel 4

{{mtab||grid|w:100%|width:46%}}

'''Linearer Temperaturverlauf'''

{{mtab>|width:46%}}

'''Isotherm ((/T = $const./))'''

{{mtab+|10}}

<xmath>p(h) = p_{ref} \left( 1 + {\alpha_i\, (h-h_{ref}) \over T_{ref}} \right) 
^ {-\beta}</xmath>

{{mtab>}}

<xmath>p(h) = p_{ref}\cdot e^{- (h-h_{ref}) / h_s }</xmath>

{{mtab+|#}}

<xmath>\rho(h) = \rho_{ref} \left( 1 + {\alpha_i\, (h-h_{ref}) \over T_{ref}} \right) 
^ {-\beta - 1}</xmath>

{{mtab>}}

<xmath>\rho(h) = \rho_{ref} \cdot e ^ {-(h-h_{ref}) / h_s}</xmath>

{{where|cs:2}}
{{msym|p(h)|statischer Druck in der Höhe (/h/) in (/:N/m^2/)}}
{{msym|:|...}}
{{end mtab}}

und so sieht es aus:

Linearer Temperaturverlauf

Isotherm (T = const.)

(10)
(11)
wobei'
' =' 'statischer Druck in der Höhe h in N/m2
' =' '...

Formeln referenzieren (Makro:mref)

Eine Formel kann über ihre ID im Text mit Hilfe des Makros {{mref}} referenziert werden:

{{mref|ID|Seite}}
ID (optional, default = #)
Nummer oder Name einer Formel
Seite (optional)
Seitenname, wenn eine Formel auf einer anderen Seite referenziert wird. Seite hat die Syntax eines Wiki-Links ohne eckige Klammern.

Wenn ID weggelassen wird oder # ist, wird automatisch jene Formel referenziert, welche eine Zahl als ID hat und oberhalb von {{mref}} steht.

Mit ID kann auch eine Formel mit einer Zahl als ID relativ referenziert werden: -1 referenziert wie # jene Formel mit einer Zahl als ID, welche oberhalb von {{mref}} steht. Mit +1 wird die nächste Formel mit einer Zahl als ID referenziert, mit +2 die übernächste usw.

Wenn eine Formel einen Namen als ID hat, kann sie direkt unter diesem Namen referenziert werden. Dies nennt man eine absolute Referenz. Absolute Referenzen haben den Vorteil, dass sie bei Umstellung der Formeln nicht angepasst werden müssen. Beachte, dass beim Umstellen die Formeln eventuell neu nummeriert werden.

Beispiel 5

In diesem Satz wird auf die Formel {{mref|5}} verwiesen.

und so sieht es aus:

In diesem Satz wird auf die Formel (5) verwiesen.

Beispiel 6

In diesem Satz wird auf die Formel {{mref|First}} verwiesen.

und so sieht es aus:

In diesem Satz wird auf die Formel (1) verwiesen.

Beispiel 7

In diesem Satz wird auf die Formel {{mref|#}} und {{mref|-2}} verwiesen.

und so sieht es aus:

In diesem Satz wird auf die Formel (11) und (10) verwiesen.

Legende ohne Formel

Manchmal kann es nützliche sein, eine Reihe kurzer Formeln mit Hilfe des Makros col auf mehrere Spalten zu verteilen. Der für alle Formeln gemeinsame Label-Bereich kann dann separat darunter platziert werden, indem der Bereich mit {{mtab-}} begonnen wird:

{{mtab-}}
{{where}}
{{msym|p(h)|statischer Druck in der Höhe (/h/) in (/:N/m^2/)}}
{{msym|:|...}}
{{end mtab}}

und so sieht es aus:

wobei'
' =' 'statischer Druck in der Höhe h in N/m2
' =' '...
Weitere Infos zur Seite
Erzeugt Sonntag, 29. Juni 2014
von wabis
Zum Seitenanfang
Geändert Donnerstag, 2. November 2017
von wabis