
Manchmal brauche ich eine solche Tabelle, deren Spaltenbreiten untereinander gleich sein sollen. Hier ist ein Beispiel:
Name Email
John [email protected]
Bill [email protected]
Tim [email protected]
Die Spalte „Name“ sollte rechtsbündig und die Spalte „E-Mail“ linksbündig sein. Natürlich haben beide Spalten die gleiche Breite.
Ich denke, diese Anforderung kann durch \starttable
und erreicht werden \stoptable
, aber wie kombiniert man l
oder r
mit der erforderlichen Breite?
Antwort1
Die \starttable
Syntax ist veraltet und sollte daher für neue Dokumente vermieden werden. Aus diesem Grund stelle ich eine Lösung mit natürlichen Tabellen vor, auch HTML-Tabellen genannt. Da natürliche Tabellen sehr ausführlich sind, können sie am besten mit dem database
Modul kombiniert werden. Dies ermöglicht eine sehr einfache und lesbare Syntax, ist jedoch weniger flexibel. Es hängt von Ihren Anforderungen ab, ob das
database
Modul in diesem Fall sinnvoll ist. Der Aufbau der natürlichen Tabellen ist in beiden Fällen gleich.
Für einfachere Aufgaben reichen möglicherweise die tabellarischen Übersichten aus.
\usemodule [database]
\defineseparatedlist
[NaturalTable]
[separator=comma, %% not necessary, already the default
before=\bTABLE, after=\eTABLE,
first=\bTR, last=\eTR,
left=\bTD, right=\eTD,
setups=s:NaturalTable]
\startsetups [s:NaturalTable]
\setupTABLE [frame=off, distance=5mm]
\setupTABLE [column] [1] [width=2cm, align=flushright]
\setupTABLE [row] [1] [style=bold]
\stopsetups
\starttext
\startNaturalTable
Name, Email
John, [email protected]
Bill, [email protected]
Tim , [email protected]
\stopNaturalTable
\starttabulate [|p(3cm)r|l|]
\NC Name \NC Email \AR
\NC John \NC [email protected] \AR
\NC Bill \NC [email protected] \AR
\NC Tim \NC [email protected] \AR
\stoptabulate
\stoptext