Zum Inhalt springen

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 rechts

Hinweis

Aus den vorliegenden Elementdefinitionen geht die Maßeinheit von Position nicht 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,75

Die 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, bar und num sind 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 verschiedenen Leader-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                     9000

Tab 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
            → TabStop

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

Zuletzt aktualisiert am