Tabellen-Layout |
Die Kontextvariablen für Tabellen können in zwei Klassen
eingeteilt werden. Solche die die ganze Tabelle betreffen, die
beginnen mit dem Präfix table-, und
solche die nur eine einzelne Zelle betreffen, diese beginnen mit dem
Präfix cell-. Während normale
Kontextvariablen mit den Konstrukten
table-width≔
Diese Parameter geben einen Hinweis auf die ungefähren Dimensionen einer Tabelle. Die Parameter table-hmode und table-vmode bestimmen, wie sie auszuwerten sind.
table-hmode≔
table-hmode und table-vmode werden zur Zeit ignoriert. Momentan werden table-width und table-height als minimale Tabellendimensionen interpretiert. In Zukunft sollen table-hmode und table-vmode aber steuern wie genau table-width und table-height auszuwerten sind.
table-halign≔l
Die vorstehenden Parameter bestimmen, wie die Tabelle in den umgebenden Text eingefügt werden soll. Mögliche Werte für table-halign sind l (links), c (zentriert) und r (rechts); mögliche Werte für table-valign sind t (ganz oben), f (auf Bruchlinienhöhe), c (zentriert) und b (ganz unten).
Außer den oben genannten Werten sind noch weitere möglich, die die Tabelle in Bezug zu der Basislinie bestimmter Zellen positioniert. Für table-halign sind dies L (nach der linken Spalte ausrichten), C (nach der mittleren Spalte ausrichten), R (nach der rechten Spalte ausrichten) und O (nach der Spalte der privilegierten Zelle table-col-origin ausrichten , s.u.). Entsprechend kann table-valign die zusätzlichen Werte T (nach der obersten Zeile ausrichten), C (Nach der Mittelzeile ausrichten), B (nach der untersten Zeile ausrichten) und O (nach der Zeile der privilegierten Zelle table-row-origin ausrichten, s.u.).
table-row-origin≔0
Die Tabellen-Koordinaten einer privilegierten Zelle, origin cell, die zur Ausrichtung im umgebenden Text dienen kann (s.o.).
table-lsep≔0fn
table-rsep≔0fn
table-bsep≔0fn
Der kontextabhängige Leerraum, Padding, um eine Tabelle (zusätzlich zum Padding um die einzelnen Zellen).
table-lborder≔0ln
table-rborder≔0ln
table-bborder≔0ln
Breite der Tabellenränder zusätzlich zur Breite der Ränder um die einzelnen Zellen.
Boolesche Variable, die angibt ob ein Seitenumbruch innerhalb der Tabelle erlaubt ist. Wenn table-hyphen auf y gesetzt ist, kann ein Seitenumbruch erfolgen aber nur dann, wenn
Ein Beispiel, dass für eine Tabelle mit erlaubtem
Seitenumbruch ist
table-min-rows≔
table-min-cols≔
table-max-rows≔
Man kann die minimale und die maximale Anzahl sowohl von Zeilen
wie von Spalten festlegen. Das begrenzt die Möglichkeiten des
Editors beim Einfügen und Löschen von Zeilen und
Spalten. Dies ist besonders nützlich bei Tabellenmakros. So
sind für
Die Hintergrundfarbe einer Zelle.
cell-width≔
Diese Variablen sind Vorgaben für die Festlegung von Zellhöhe und -Breite, die außerdem von den Variablen cell-hmode und cell-vmode sowie cell-hpart und cell-vpart abhängt.
cell-hpart≔
Wenn die Summe s der Breiten aller Spalten kleiner ist als die Breite der Tabelle w, dann muss man vorgeben, was mit dem leeren Platz geschehen soll. Der Parameter cell-hpart legt fest wie viel Platz eine einzelne Zelle von dem leeren Platz bekommen soll. Der horizontale Anteil einer ganzen Spalte ist das Maximum der Anteile aller Zellen der Spalte. pi sei der so definierte Anteil jeder Spalte i, (i∈{1,…,n}). Der verbleibende Anteil wird dann verteilt, in dem jeder Spalte Dann wird jeder Spalte i der Anteil pi (w - s)/(p1 + ⋯ + pn) zugeteilt wird. Ganz entsprechend wird in jeder Zeile verfahren.
cell-hmode≔exact
Diese Parameter legen fest, auf welche Weise Breite und Höhe der Zelle zu berechnen sind. Wenn cell-hmode auf exact gesetzt ist, dann ist die Breite cell-width. Wenn cell-hmode auf min oder auf max gesetzt ist, dann ist die wirkliche Breite das Minimum von cell-width und der Breite des Zellinhalts bzw. das entsprechende Maximum. Die Festlegung der Zellhöhe geschieht analog.
cell-halign≔l
Diese Parameter bestimmen die Zellausrichtung. Mögliche Werte für cell-halign sind l (links), c (zentriert), r (rechts), . (Dezimalpunkt), , (Dezimalkomma) und R (vertikale Basislinie). Mögliche Werte für cell-valign sind t (ganz oben), c (zentriert), b (ganz unten) und B (Basislinie).
cell-lsep≔0fn
cell-rsep≔0fn
cell-bsep≔0fn
Padding einer Zelle (links, rechts, ganz unten und ganz oben).
cell-lborder≔0ln
cell-rborder≔0ln
cell-bborder≔0ln
Die Dicke der Linien, die als Ränder die Zelle begrenzen (links, rechts, ganz unten und ganz oben). Die Breite der Randlinie zwischen den Zellen Ti,j und Ti,j + 1 an den Positionen (i,j) und (i,j + 1) ist das Maximum der rechten Randlinie von Ti,j und der linken von Ti,j + 1. Analog werden die oberen und unteren Randlinien-Breiten bestimmt.
Wie bereits oben beschrieben können die Dimensionen und die Ausrichtung der Zellen vom Inhalt abhängen. Wenn die Zellen Boxen enthalten dann kann die Höhe der Boxen von deren Inhalt abhängen, denn z.B. hat der Buchstabe „k“ eine größere Oberlänge als „y“, das dafür eine größere Unterlänge besitzt. Solche Unterschiede führen manchmal zu unerwünschten Ungleichmäßigkeiten im Satzbild. Die vertikale Zellenkorrektur cell-vcorrect verbessert die Gleich-mäßigkeit von Text in einer einzigen Schriftart, indem Boxen nach oben oder unten verschoben werden in einer Weise, die nur von der gewählten Schriftart abhängt. Mögliche Werte für cell-vcorrect sind n (keine Höhenkorrektur), b (vertikale Korrektur unten), t (vertikale Korrektur oben), a (vertical correction of bottom and the top).
Normalerweise wird innerhalb von Zellen nicht getrennt. Durch
setzen der Option
cell-row-span≔1
Man kann Zellen so konfigurieren, das diese den Platz von mehreren Zellen belegen, die entweder rechts neben ihnen oder unter ihnen liegen. Mit solchen Mehrfachzellen können z.B. Überschriften, die sich über mehrere Zellen erstrecken und sie zusammenfassen, in die Tabelle eingefügt werden. cell-row-span und cell-col-span legen fest, wie breit bzw. wie hoch eine solche Zelle in Anzahl der Nachbarzellen ist.
Diese Kontextvariable kann eine „dekorierende” Zelle
enthalten. Diese fügt der die ursprünglichen Tabelle
weitere Spalten und Zeilen außen hinzu. Das Konstrukt
Bisher ist nur das Längsformat, portrait, implementiert.
cell-row-nr≔1
Das ist noch nicht implementiert. In Zukunft sollen diese Variablen die aktuelle Zellposition während des Schriftsetzens enthalten.