LaTeX: Tabellen mit angepassten Spaltenbreiten

Hallo allerseits,

Ich suche eine Umgebung, ähnlich wie tabularx, bei der ich eine Tabelle über die ganze Seitenbreite ziehen kann, bei der jedoch die Spaltenbreiten intelligent angepasst werden (wie bei HTML tabellen).

Hier ist der Code einer solchen Tabelle (wie ich es momentan mache): http://pastebin.org/16492

Wie Ihr sehen könnt, ist die Tabelle sehr voll und das „Gargantuan“ ragt hinten aus der Tabelle heraus in den Seitenrand. Aber mit den passenden Spaltenbreiten käme man weitgehend um Zeilenumbrüche innerhalb der Spalten herum und es würde auch kein Text herausragen. Nun habe ich aber viele solcher Tabellen, und ein manuelles anpassen der Spaltenbreiten ist überhaupt nicht praktikabel.

Vielleicht hat ja jemand eine Idee…

Grüße
Benjamin

Hallo,

Ich suche eine Umgebung, ähnlich wie tabularx, bei der ich
eine Tabelle über die ganze Seitenbreite ziehen kann, bei der
jedoch die Spaltenbreiten intelligent angepasst werden (wie
bei HTML tabellen).

Schonmal mit „tabular*“ versucht? Das ist die Standardmethode. Der Unterschied und was tabularx überhaupt macht ist sehr schön in der zu tabularx gehörenden Anleitung erklärt. Einfach mal reingucken.

Hier ist der Code einer solchen Tabelle (wie ich es momentan
mache): http://pastebin.org/16492

Generell ist es nicht einfach, wenn Du in den Spalten nur ein „-“ oder „x“ stehen hast. Flexible Breiten werden bei tabularx über interne „parbox“ Befehle ermöglicht. Dabei braucht aber TeX eine Möglichkeit, Absätze vernünftig zu setzen, also mehr als ein einzelnes, kurzes Wort.

In Deinem Fall würde ich die Tabelle einfach stürzen, d.h. um 90° drehen, und ohne Schnickschnack normal setzen. Dann sollte die Breite passen. Dafür gäbes es z.B. das „rotating“ Paket, das die Umgebung „sidewaystable“ zur Verfügung stellt. Google ist Dein Freund.

Gruß

Fritze

Hallo,

vielen Dank für deine schnelle Antwort.

Schonmal mit „tabular*“ versucht? Das ist die Standardmethode.
Der Unterschied und was tabularx überhaupt macht ist sehr
schön in der zu tabularx gehörenden Anleitung erklärt. Einfach
mal reingucken.

tabular* hatte ich verworfen, weil es die Abstände zwischen den Spalten vergrößert und nicht die Spalten selbst. Dadurch lassen sich Zeilen aber nicht mehr farbig hinterlegen, weil das colortab Package offenbar jede einzelne Zelle einfärbt. Somit ist der Farbstreifen dann zwischen den Spalten unterbrochen. Korrigiere mich, wenn ich irre, aber tabular und tabular* können auch keine Zelleninhalte umbrechen.

Generell ist es nicht einfach, wenn Du in den Spalten nur ein
„-“ oder „x“ stehen hast. Flexible Breiten werden bei tabularx
über interne „parbox“ Befehle ermöglicht. Dabei braucht aber
TeX eine Möglichkeit, Absätze vernünftig zu setzen, also mehr
als ein einzelnes, kurzes Wort.

Gut zu wissen, trotzdem schade.

In Deinem Fall würde ich die Tabelle einfach stürzen, d.h. um
90° drehen, und ohne Schnickschnack normal setzen. Dann sollte
die Breite passen. Dafür gäbes es z.B. das „rotating“ Paket,
das die Umgebung „sidewaystable“ zur Verfügung stellt. Google
ist Dein Freund.

Ich hatte gehofft, darum herum zu kommen. Da es aber offenbar nicht (einfach) anders geht, werde ich es wohl so machen müssen.

Grüße
Benjamin

Hallo,

Du solltest mal eine Anleitung zu LaTeX anschauen.

Korrigiere mich, wenn ich irre, aber tabular und
tabular* können auch keine Zelleninhalte umbrechen.

Dann korrigiere ich das mal: Sie können. Man muss die Spalten als p{} vorgeben.

\begin{tabular}{rlp{8cm}}

Dann gibt es aber die gleichen Probleme, wie bei tabularx, weil das Parboxen sind, die LaTeX nur dann gut umbrechen kann, wenn genügend Text mit genügend Trennstellen vorhanden ist. Einzelne Worte oder gar Buchstaben lassen sich nunmal nicht so gut umbrechen.

Wenn man nicht stürzen will und Platzprobleme hat, kann man den Inhalt von Tabellen übrigens auch in einer kleineren Schriftgröße setzen. Man sollte darauf achten, dass es leicht lesbar bleibt, sich der Leser also nicht anstrengen muss, um den Inhalt zu entziffern.

Gruß

Fritze

Hallo,

Du solltest mal eine Anleitung zu LaTeX anschauen.

Korrigiere mich, wenn ich irre, aber tabular und
tabular* können auch keine Zelleninhalte umbrechen.

Dann korrigiere ich das mal: Sie können. Man muss die Spalten
als p{} vorgeben.

\begin{tabular}{rlp{8cm}}

Dann gibt es aber die gleichen Probleme, wie bei tabularx,
weil das Parboxen sind, die LaTeX nur dann gut umbrechen kann,
wenn genügend Text mit genügend Trennstellen vorhanden ist.
Einzelne Worte oder gar Buchstaben lassen sich nunmal nicht so
gut umbrechen.

Das werde ich probieren. Ich hatte nur gehofft, ohne das „Gefummel“ auszukommen.

Wenn man nicht stürzen will und Platzprobleme hat, kann man
den Inhalt von Tabellen übrigens auch in einer kleineren
Schriftgröße setzen. Man sollte darauf achten, dass es leicht
lesbar bleibt, sich der Leser also nicht anstrengen muss, um
den Inhalt zu entziffern.

Ich benutze schon \small und \sf für die Tabelle. Ich denke, noch kleiner machen sollte ich die Schrift nicht.

Grüße
Benjamin