Tab
Kurzbeschreibung
Das XML-Element
<Tab>fügt innerhalb eines<Content>einen Tabulatorsprung ein.Der nachfolgende Inhalt wird am nächsten verfügbaren Tabstopp fortgesetzt.
Individuelle Tabstopps werden innerhalb der
<BlockProperties>des zugehörigen Blocks konfiguriert.
Einordnung
Bereich: Inhalte
Schwierigkeitsgrad: ⭐⭐☆☆☆
Vorkenntnisse: Block · Content · BlockProperties
Siehe auch
- Block
- Content
- BlockProperties
- Table
Zweck
Mit <Tab> können Inhalte innerhalb einer Zeile gezielt voneinander getrennt und ausgerichtet werden.
Typische Anwendungsfälle sind:
- Beschriftungen und zugehörige Werte,
- mehrere Auswahlmöglichkeiten in einer Zeile,
- rechts oder mittig ausgerichtete Informationen,
- Formularfelder,
- einfache mehrspaltige Inhaltsbereiche,
- punktierte oder gestrichelte Führungslinien.
Im Unterschied zu Leerzeichen richtet ein Tabulator den nachfolgenden Inhalt an einer definierten Position aus.
Dadurch bleibt das Layout auch dann stabiler, wenn sich die Länge vorausgehender Texte oder Variablen ändert.
Grundprinzip
Die Tabulatorsteuerung besteht aus zwei Teilen:
Content
└── Tab
→ löst den Tabulatorsprung aus
BlockProperties
└── Tabs
└── TabStops
└── TabStop
→ definiert Position und Ausrichtung<Tab> wird an der Stelle eingefügt, an der der Sprung erfolgen soll.
Der zugehörige <TabStop> bestimmt, an welcher Position der nachfolgende Inhalt fortgesetzt wird.
Position innerhalb der Dokumentvorlage
<Tab> wird innerhalb eines <Content> verwendet.
<Block>
<Content>
<Text Content="Bezeichnung">
</Text>
<Tab>
</Tab>
<Text Content="Wert">
</Text>
</Content>
</Block>Das Element besitzt keine Attribute und enthält keine Unterelemente.
Im bereitgestellten Beispiel steht <Tab> unmittelbar zwischen zwei Texten innerhalb desselben <Content>. :contentReference[oaicite:0]{index=0}
Eigenschaften von Tab
| Eigenschaft | Wert |
|---|---|
| Enthält Attribute | Nein |
| Enthält Unterelemente | Nein |
Verwendung innerhalb von <Content> |
Ja |
| Erzeugt sichtbaren Text | Nein |
| Löst einen Tabulatorsprung aus | Ja |
Verwendung ohne eigenen Tabstopp
Ein <Tab> kann auch ohne eine eigene Tabstopp-Konfiguration innerhalb der <BlockProperties> verwendet werden.
<Block>
<Content>
<Text Content="Das ist ein Tab">
</Text>
<Tab>
</Tab>
<Text Content="und hier geht es weiter">
</Text>
</Content>
</Block>In diesem Fall wird der nächste standardmäßig verfügbare Tabstopp des Dokuments beziehungsweise des Absatzes verwendet.
Hinweis
Ohne eine eigene Konfiguration ist die genaue Zielposition von den vorhandenen Dokument- und Formateinstellungen abhängig.
Für ein kontrolliertes und reproduzierbares Layout sollte daher bei Bedarf ein eigener
<TabStop>definiert werden.
Eigenen Tabstopp konfigurieren
Ein individueller Tabstopp wird innerhalb der <BlockProperties> des Blocks festgelegt.
<Block>
<Content>
<Text Content="Das ist ein Tab mit Position im Lineal">
</Text>
<Tab>
</Tab>
<Text Content="und weiter.">
</Text>
</Content>
<BlockProperties>
<Tabs>
<TabStops>
<TabStop Type="left">
<Position>6804</Position>
</TabStop>
</TabStops>
</Tabs>
</BlockProperties>
</Block>Das bereitgestellte Beispiel zeigt genau dieses Zusammenspiel: <Tab> befindet sich im <Content>, während die Zielposition innerhalb von <BlockProperties> über <Tabs> und <TabStop> definiert wird. :contentReference[oaicite:1]{index=1}
Tabs
<Tabs> ist der Container für die Tabulatorkonfiguration eines Blocks.
Es wird innerhalb der <BlockProperties> verwendet.
<BlockProperties>
<Tabs>
...
</Tabs>
</BlockProperties><Tabs> enthält selbst keine Attribute.
TabStops
<TabStops> fasst die einzelnen Tabstopps des Blocks zusammen.
<Tabs>
<TabStops>
<TabStop Type="left">
<Position>2000</Position>
</TabStop>
</TabStops>
</Tabs>Innerhalb von <TabStops> können mehrere <TabStop>-Elemente definiert werden.
Jedes im <Content> vorkommende <Tab> springt zum jeweils nächsten passenden Tabstopp.
TabStop
Ein <TabStop> beschreibt eine konkrete Tabulatorposition.
Die JSON-Konfiguration stellt dafür folgende Eigenschaften bereit:
| Eigenschaft | Beschreibung |
|---|---|
| Type | Legt die Ausrichtung beziehungsweise Funktion des Tabstopps fest. |
| Position | Legt die Position des Tabstopps innerhalb der Zeile fest. |
| Leader | Legt fest, ob und mit welchen Zeichen der freie Bereich bis zum Tabstopp gefüllt wird. |
Die Eigenschaften werden teils als Attribute und teils als Unterelemente dargestellt.
Typische Schreibweise:
<TabStop
Type="left"
Leader="none">
<Position>2000</Position>
</TabStop>Position
Position legt fest, an welcher Stelle der Tabstopp innerhalb der Zeile liegt.
<TabStop Type="left">
<Position>6804</Position>
</TabStop>Je größer der Wert ist, desto weiter rechts liegt der Tabstopp.
Kleiner Wert
→ weiter links
Größerer Wert
→ weiter rechtsHinweis
Aus den vorliegenden Elementdefinitionen geht die Maßeinheit von
Positionnicht ausdrücklich hervor.Der geeignete Wert sollte deshalb über das Lineal beziehungsweise die Vorschau des Developers ermittelt und anschließend mit einem erzeugten Testdokument geprüft werden.
Type
Type legt fest, wie der Inhalt am Tabstopp ausgerichtet oder wie ein vorhandener Tabstopp behandelt wird.
Zur Verfügung stehen:
| Wert | Beschreibung |
|---|---|
| left | Richtet den nachfolgenden Inhalt links am Tabstopp aus. |
| start | Richtet den Inhalt am Beginn der Schreibrichtung aus. |
| center | Zentriert den Inhalt am Tabstopp. |
| right | Richtet den nachfolgenden Inhalt rechts am Tabstopp aus. |
| end | Richtet den Inhalt am Ende der Schreibrichtung aus. |
| decimal | Richtet numerische Inhalte am Dezimaltrennzeichen aus. |
| bar | Erzeugt an der angegebenen Position eine vertikale Linie. |
| num | Tabstopptyp für nummerierungsbezogene Ausrichtungen. |
| clear | Entfernt beziehungsweise überschreibt einen Tabstopp an der angegebenen Position. |
Linksbündiger Tabstopp
<TabStop Type="left">
<Position>2000</Position>
</TabStop>Der nachfolgende Inhalt beginnt an der angegebenen Position.
Zentrierter Tabstopp
<TabStop Type="center">
<Position>4500</Position>
</TabStop>Der Inhalt wird um die angegebene Position herum zentriert.
Rechtsbündiger Tabstopp
<TabStop Type="right">
<Position>9000</Position>
</TabStop>Das Ende des nachfolgenden Inhalts liegt an der angegebenen Position.
Dezimaler Tabstopp
<TabStop Type="decimal">
<Position>7000</Position>
</TabStop>Dieser Typ eignet sich insbesondere für Zahlen mit Dezimalstellen.
12,50
150,00
1234,75Die Werte werden am Dezimaltrennzeichen ausgerichtet.
Tabstopp entfernen
Mit Type="clear" kann ein vorhandener oder geerbter Tabstopp an einer bestimmten Position aufgehoben werden.
<TabStop Type="clear">
<Position>4536</Position>
</TabStop>Solche clear-Tabstopps kommen auch in vorhandenen XML-Dokumenten gemeinsam mit normalen linken Tabstopps vor. :contentReference[oaicite:2]{index=2}
Hinweis
Die Typen
start,end,barundnumsind in der Elementkonfiguration enthalten, ihre konkrete Wirkung innerhalb der intracon:bk-Render-Engine ist in den vorliegenden Unterlagen jedoch nicht näher beschrieben.Sie sollten deshalb anhand eines Testdokuments geprüft werden.
Leader
Leader bestimmt, ob der freie Bereich bis zum Tabstopp mit sichtbaren Zeichen gefüllt wird.
Zur Verfügung stehen:
| Wert | Darstellung |
|---|---|
| none | Keine Füllzeichen |
| dot | Punkte |
| hyphen | Bindestriche |
| underscore | Unterstriche |
| heavy | Stärkere Fülllinie |
| middleDot | Mittig gesetzte Punkte |
Beispiel mit Punkten
<Block>
<Content>
<Text Content="Gesamtbetrag">
</Text>
<Tab>
</Tab>
<Text Content="125,00 €">
</Text>
</Content>
<BlockProperties>
<Tabs>
<TabStops>
<TabStop
Type="right"
Leader="dot">
<Position>9000</Position>
</TabStop>
</TabStops>
</Tabs>
</BlockProperties>
</Block>Mögliche Darstellung:
Gesamtbetrag........................125,00 €Beispiel mit Unterstrichen
<TabStop
Type="left"
Leader="underscore">
<Position>7000</Position>
</TabStop>Dies kann beispielsweise für auszufüllende Formularbereiche verwendet werden.
Hinweis
In den durchsuchten Praxis-XML-Dateien wurden zahlreiche Tabstopps mit
Type="left"gefunden. Ein belastbares Beispiel für die verschiedenenLeader-Werte war dort jedoch nicht enthalten.Die Darstellung der Füllzeichen sollte daher vor dem produktiven Einsatz getestet werden.
Mehrere Tabstopps
Innerhalb eines Blocks können mehrere Tabstopps definiert werden.
<Block>
<Content>
<Text Content="Name">
</Text>
<Tab>
</Tab>
<Text Content="Datum">
</Text>
<Tab>
</Tab>
<Text Content="Betrag">
</Text>
</Content>
<BlockProperties>
<Tabs>
<TabStops>
<TabStop Type="left">
<Position>2500</Position>
</TabStop>
<TabStop Type="center">
<Position>5500</Position>
</TabStop>
<TabStop Type="right">
<Position>9000</Position>
</TabStop>
</TabStops>
</Tabs>
</BlockProperties>
</Block>Die einzelnen <Tab>-Elemente springen der Reihe nach zum jeweils nächsten Tabstopp.
Name Datum Betrag
│ │ │
2500 5500 9000Tab mit anderen Inhaltselementen
<Tab> kann nicht nur zwischen Texten verwendet werden.
Auch andere Inhaltselemente können vor oder nach einem Tabulator stehen, beispielsweise:
<Variable><Checkbox><Symbol>- weitere Inhalte innerhalb eines
<Content>
In vorhandenen Vorlagen wird <Tab> beispielsweise zwischen zwei Checkboxen verwendet, um die zweite Auswahlmöglichkeit an einem definierten linken Tabstopp auszurichten. :contentReference[oaicite:3]{index=3}
Ein weiteres Praxisbeispiel kombiniert eine Checkbox, einen Tabulatorsprung und nachfolgenden Text. :contentReference[oaicite:4]{index=4}
Tab oder Tabelle?
Sowohl Tabulatoren als auch Tabellen können Inhalte nebeneinander ausrichten.
Sie eignen sich jedoch für unterschiedliche Aufgaben.
| Tab | Tabelle |
|---|---|
| Geeignet für einfache Ausrichtungen innerhalb einer Zeile. | Geeignet für komplexe mehrzeilige Layouts. |
| Wenig XML-Code. | Klare Struktur aus Zeilen und Zellen. |
| Gut für Beschriftung und Wert. | Gut für umfangreiche Informationsbereiche. |
| Abhängig von Tabstopps und Textlängen. | Stabiler bei komplexen oder mehrzeiligen Inhalten. |
Als Faustregel gilt:
- Verwenden Sie
<Tab>für einfache horizontale Ausrichtungen innerhalb eines Blocks. - Verwenden Sie
<Table>für komplexere Layouts mit mehreren Zeilen, Spalten oder längeren Inhalten.
Tab oder Leerzeichen?
Leerzeichen sollten nicht zur gezielten Positionierung von Inhalten verwendet werden.
<Text Content="Name Wert">
</Text>Diese Darstellung ist abhängig von:
- Schriftart,
- Schriftgröße,
- Zeichenbreite,
- nachträglichen Textänderungen.
Ein Tabulator ist dafür wesentlich besser geeignet.
<Text Content="Name">
</Text>
<Tab>
</Tab>
<Text Content="Wert">
</Text>Developer-Tipp
Verwenden Sie für horizontale Ausrichtungen keine langen Folgen von Leerzeichen.
Definieren Sie stattdessen einen Tabstopp in den
<BlockProperties>und lösen Sie ihn im<Content>mit<Tab>aus.
Typische Einsatzgebiete
<Tab> eignet sich insbesondere für:
- Beschriftung und Wert in einer Zeile,
- Telefonnummer und Durchwahl,
- Datum und Aktenzeichen,
- Checkboxen nebeneinander,
- einfache Formularzeilen,
- Beträge mit rechtsbündiger Ausrichtung,
- Inhaltsverzeichnisse mit Füllzeichen,
- Unterschrifts- oder Eingabefelder.
Best Practices
- Eigene Tabstopps definieren, wenn eine feste Position benötigt wird.
<Tab>nur innerhalb des zugehörigen Blocks verwenden.- Positionen anhand des Developer-Lineals und eines Testdokuments prüfen.
- Für Zahlen gegebenenfalls
Type="decimal"verwenden. - Für einfache Ausrichtungen Tabulatoren, für komplexe Layouts Tabellen verwenden.
- Leerzeichen nicht als Ersatz für Tabstopps einsetzen.
- Mehrere Tabstopps in aufsteigender Reihenfolge definieren.
- Geerbte oder unerwünschte Tabstopps bei Bedarf mit
Type="clear"aufheben.
XML-Wissen
<Tab> besitzt selbst keine Information über die Zielposition.
Das Element löst lediglich den Sprung zum nächsten verfügbaren Tabstopp aus.
Die eigentliche Steuerung erfolgt über:
BlockProperties
→ Tabs
→ TabStops
→ TabStopDadurch sind Inhalt und Layout voneinander getrennt:
Content
→ An welcher Stelle soll gesprungen werden?
BlockProperties
→ An welche Position soll gesprungen werden?Typische Fehler
Nur Tab verwenden und eine feste Position erwarten
Ohne eigenen <TabStop> richtet sich der Sprung nach den vorhandenen Standard- oder Formatvorgaben.
Für eine bestimmte Zielposition muss ein Tabstopp in den <BlockProperties> definiert werden.
TabStop im Content anlegen
Die Tabstopp-Konfiguration gehört nicht in <Content>.
<Tab> steht im Inhalt; <Tabs> steht innerhalb der <BlockProperties>.
Leerzeichen zusätzlich verwenden
Werden vor oder nach einem <Tab> viele Leerzeichen eingefügt, kann die Ausrichtung unvorhersehbar werden.
Zu viele Tabstopps verwenden
Viele Tabstopps innerhalb eines Blocks erschweren die Wartung.
Bei komplexen Layouts ist eine Tabelle häufig die bessere Lösung.
Position ungeprüft übernehmen
Ein Positionswert aus einer anderen Vorlage muss nicht zum aktuellen Seitenlayout, zu den Seitenrändern oder zur verwendeten Tabellenzelle passen.
Die Darstellung sollte deshalb immer im konkreten Dokument geprüft werden.
Fazit
<Tab> ist ein einfaches Element für die horizontale Ausrichtung von Inhalten innerhalb eines Blocks.
Die vollständige Funktion entsteht durch das Zusammenspiel aus dem Tabulatorsprung im <Content> und den Tabstopps in den <BlockProperties>.
Für einfache einzeilige Ausrichtungen ist <Tab> häufig die übersichtlichere Lösung. Bei komplexeren mehrzeiligen Strukturen sollte dagegen eine Tabelle verwendet werden.