Tabellen

Tabellen erstellen

Eine Besonderheit in AsciiDoc ist, dass Tabellen zum Standard-Repertoire gehören. Das ist nicht in jeder Auszeichnungssprache der Fall.

Eine einfache Tabelle erstellen Sie so:

|===
|Spalte 1 |Spalte 2 |Spalte 3

|Zelle 1.1 |Zelle 1.2 |Zelle 1.3
|Zelle 2.1 |Zelle 2.2 |Zelle 2.3
|===

Das Ergebnis:

Spalte 1 Spalte 2 Spalte 3

Zelle 1.1

Zelle 1.2

Zelle 1.3

Zelle 2.1

Zelle 2.2

Zelle 2.3

Die Syntax ist einfach:

  • Mit |=== öffnen und schließen Sie die Tabelle.

  • Mit jedem | erstellen Sie eine neue Zelle.

  • Eine neue Zeile im Editor beginnt eine neue Reihe in der Tabelle.

Kopfzeile und Spaltenbreiten

Eine Kopfzeile entsteht automatisch, wenn Sie nach der ersten Zeile eine Leerzeile einfügen:

|===
|Name |Alter |Stadt

|Anna |28 |Berlin
|Max |35 |München
|===
Name Alter Stadt

Anna

28

Berlin

Max

35

München

Mit dem cols-Attribut können Sie die Spaltenbreiten festlegen:

[cols="1,2,1"]
|===
|Schmal |Breit |Schmal

|A |B |C
|===

Die Zahlen geben das Verhältnis der Spaltenbreiten an. 1,2,1 bedeutet: erste Spalte 1 Teil, zweite Spalte 2 Teile, dritte Spalte 1 Teil.

Rahmen und Gitter

Sie können das Aussehen der Tabelle mit weiteren Parametern anpassen:

Parameter Wirkung

frame=all/ends/sides/none

Äußerer Rahmen

grid=all/cols/rows/none

Innere Gitterlinien

stripes=even/odd/all/none

Zeilenstreifen (Zebra-Muster)

Ein Beispiel mit mehreren Parametern:

[cols="1,2", frame=none, grid=rows, stripes=odd]
|===
|Parameter |Beschreibung

|width |Breite der Tabelle
|align |Ausrichtung
|===
Definieren Sie in den Systemeinstellungen eine Textersetzung (z.B. ttab), die automatisch ein vollständiges Tabellengerüst einfügt. So sparen Sie sich das wiederholte Tippen der Grundstruktur.

Verschachtelte Tabellen

Manchmal möchten Sie eine Tabelle innerhalb einer anderen Tabelle platzieren, zum Beispiel um zusammengehörige Details in einer Zelle weiter zu strukturieren. AsciiDoc unterstützt das über sogenannte verschachtelte Tabellen (nested tables).

Die Herausforderung: Der AsciiDoc-Parser muss erkennen können, wo die äußere Tabelle aufhört und wo die innere beginnt. Deshalb verwendet die innere Tabelle andere Trennzeichen als die äußere.

Die Regeln

  • Die äußere Tabelle nutzt wie gewohnt |=== als Begrenzung und | für Zellen.

  • Die Zelle, die eine innere Tabelle enthalten soll, muss den Inhaltstyp a (für „AsciiDoc") erhalten. Damit wird der Zellinhalt als vollständiges AsciiDoc interpretiert.

  • Die innere Tabelle verwendet !=== als Begrenzung und ! für Zellen (statt |=== und |).

Ein vollständiges Beispiel

[cols="1,2a"] 1
|=== 2
|Kategorie |Details 3

|Obst 4
| 5
!=== 6
!Name !Farbe 7

!Apfel !Rot 8
!Banane !Gelb
!=== 9

|Gemüse
|
!===
!Name !Farbe

!Karotte !Orange
!Brokkoli !Grün
!===

|=== 10
1 cols="1,2a" : Die zweite Spalte erhält den Typ a (AsciiDoc-Inhalt). Nur so kann sie eine verschachtelte Tabelle enthalten.
2 |=== : Öffnet die äußere Tabelle.
3 |Kategorie |Details : Kopfzeile der äußeren Tabelle. Die Leerzeile danach macht sie zur Kopfzeile.
4 |Obst : Erste Zelle der Datenzeile (Spalte 1).
5 | : Zweite Zelle der Datenzeile (Spalte 2, Typ a ). Der Inhalt folgt ab der nächsten Zeile.
6 !=== : Öffnet die innere (verschachtelte) Tabelle. Das ! statt | signalisiert dem Parser, dass dies eine Ebene tiefer gehört.
7 !Name !Farbe : Kopfzeile der inneren Tabelle. Auch hier erzeugt eine Leerzeile danach die Kopfzeile.
8 !Apfel !Rot : Datenzeile der inneren Tabelle.
9 !=== : Schließt die innere Tabelle.
10 |=== : Schließt die äußere Tabelle.

Das Ergebnis:

Kategorie Details

Obst

Name Farbe

Apfel

Rot

Banane

Gelb

Gemüse

Name Farbe

Karotte

Orange

Brokkoli

Grün

Elemente auf einen Blick

Element Bedeutung

cols="1,2a"

Spaltenbreiten im Verhältnis 1:2. Das a hinter der 2 setzt den Inhaltstyp der zweiten Spalte auf „AsciiDoc".

|===

Öffnet oder schließt die äußere Tabelle.

|

Trennt Zellen in der äußeren Tabelle.

!===

Öffnet oder schließt eine innere (verschachtelte) Tabelle.

!

Trennt Zellen in der inneren Tabelle.

Verschachtelte Tabellen können das Dokument schnell unübersichtlich machen. Setzen Sie sie sparsam ein. Oft ist eine Beschreibungsliste oder eine zusätzliche Spalte die bessere Wahl.