
Ich verwende den Tabellenassistenten von Kile, um eine \tabularx
Umgebung für eine meiner Tabellen zu erstellen, und ich möchte, dass sie in eine Seite passt. Derzeit sieht mein Setup so aus:
{%
\newcommand{\mc}[3]{\multicolumn{#1}{#2}{#3}}
\begin{center}
\begin{tabularx}{\textwidth}[]{l|c|c|c|}\cline{2-4}
%data ....
\end{tabularx}
\end{center}
}%
Allerdings überschreiten meine Tabellen selbst mit dem Parameter \textwidth die Grenzen der Seite deutlich.
Ich habe versucht, diese Diskussion zu lesen: -Wie zwingt man eine Tabelle auf die Seitenbreite?
Aber es hat nicht geholfen, die gewählte Lösung scheint nicht zu funktionieren. Wie kann ich das beheben?
Antwort1
Die Breite der Tabelle lässt sich tabularx
anpassen, indem man die Breite bestimmter Spalten ändert. Die Standardspaltentypen ( r
, c
, l
) werden von nicht geändert tabularx
und verhalten sich daher nicht anders. Stattdessen X
wird ein neuer Spaltentyp definiert, der Textumbrüche zulässt und dessen Breite sich je nach Breite der anderen Spalten ändert. Siehe die Beispiele indas Handbuch.
l
Wenn Sie nur Spalten mit und ohne Komma verwenden c
, sind diese daher genauso breit wie ihr breitester Inhalt.
Wenn Sie den Inhalt einer X
Spalte rechtsbündig ausrichten möchten, verwenden Sie >{\raggedleft\arraybackslash}
, zum Zentrieren ersetzen Sie \raggedleft
es durch \centering
. Das \arraybackslash
ist eigentlich nur in der letzten Spalte erforderlich, aber unten habe ich es in allen hinzugefügt.
\documentclass[border=2mm]{standalone}
\usepackage{tabularx}
\newcommand\word{a bunch of text and some more text and yet more text}
\begin{document}
\begin{tabularx}{8cm}{
|>{\raggedleft\arraybackslash}X
|>{\centering\arraybackslash}X
|>{\raggedright\arraybackslash}X
| X |}
Right & Center & Left & Justified \\ \hline
\word & \word & \word & \word
\end{tabularx}
\end{document}