PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Zeilenumbruch in Tabellenzelle



Huschpuscheldi
11-08-2010, 21:07
Hallo!
Habe eine Tabelle mit 3 Spalten erzeugt, in der Spalte ganz rechts ist viel Text der in mehreren Zeilen dargestellt werden muss, weil die Spalte sonst "aus dem Bild" ist.
Habe es schon mit "p{6cm}" versucht, geht auch, aber ich will keine Spaltenbreite manuell festlegen, sondern das die Tabelle genauso breit ist wie meine die Zeilen vom Text drüber und drunter um einen sauberen Rand zu haben. Mit p{...} muss ich ausprobierern bis es passt, aber dann ist es eben doch nicht so genau.
Geht das auch besser?



\begin{table}[htb]
\begin{tabular}{|c|c|p{7cm}|}\hline
Abkürzung & Bezeichnung & Erklärung\\\hline
ABC & Das ist die Bezeichnung & Die lange Erklärung muss in 2 Zeilen gedruckt werden, weil eine zu klein ist\\\hline
\end{tabular}
\caption{Tabelle}
\end{table}

Stefan_K
11-08-2010, 21:11
Das geht besser mit tabularx. Am Beispiel:


\usepackage{tabularx}
...

\begin{table}[htb]
\begin{tabularx}{\textwidth}{|c|c|X|}\hline
Abkürzung & Bezeichnung & Erklärung\\\hline
ABC & Das ist die Bezeichnung & Die lange Erklärung muss in 2 Zeilen gedruckt werden, weil eine zu klein ist\\\hline
\end{tabularx}
Dieses Vergittern der ganzen Tabellen ist übrigens unschön und dient nicht der Lesbarkeit.

Stefan


--
TeXblog (http://texblog.net)

Huschpuscheldi
11-08-2010, 21:20
So siehts schon besser aus, danke.
Mit den Linien hab ich etwas experimentiert.
Gerade fällt mir auf das das Wort "Erklärung" linksbündig ist und nicht zentriert, so wie die anderen beiden Wörter in der ersten Zeile. Warum ist das nicht zentriert wenn die sich Spaltenbreite am Text orientiert?

Stefan_K
11-08-2010, 21:24
Hier ist einmal ein Beispiel, wo booktabs zur Verbesserung der Tabelle verwendet wird. Lediglich horizontale Linien zur Abgrenzung, im Inneren möglichst keine, es werden einige Features gezeigt für geteilte Innenlinien, verschiedene Linienbreiten und Abstände. Die caption steht oben, es ist sehr üblich, Tabellen oben zu beschriften und Bilder unten.

Mit \multicolumn (http://texblog.net/help/latex/ltx-268.html) ist auch die letzte Überschrift zentriert. Ich nehme an, die mehrzeilige Erklärung willst Du nicht auch zentrieren, oder?


\documentclass{scrartcl}
\usepackage[ngerman]{babel}
\usepackage{tabularx}
\usepackage[utf8]{inputenc}
\usepackage{booktabs}
\setlength{\heavyrulewidth}{1.5pt}
\setlength{\abovetopsep}{1ex}
\newcommand*{\head}[1]{\textbf{#1}}
\begin{document}
\begin{table}[htb]
\caption{Tabelle}
\begin{tabularx}{\textwidth}{@{}ccX@{}}
\toprule
\head{Abkürzung} & \head{Bezeichnung}
& \multicolumn{1}{c}{\head{Erklärung}} \\
\cmidrule(r){1-1}\cmidrule(lr){2-2}\cmidrule(r){3-3}
ABC & Das ist die Bezeichnung & Die lange Erklärung muss in 2 Zeilen
gedruckt werden, weil eine zu klein ist\\
\bottomrule
\end{tabularx}
\end{table}
\end{document}

Stefan

Huschpuscheldi
11-08-2010, 21:40
Die caption steht oben, es ist sehr üblich, Tabellen oben zu beschriften und Bilder unten.

Stimmt, hab ich vergessen


Ich nehme an, die mehrzeilige Erklärung willst Du nicht auch zentrieren, oder?

Stimmt, danke

Stefan_K
11-08-2010, 21:45
Dann müsste es ja eigentlich passen. X-Spalten sind im Blocksatz gesetzt. \multicolumn sorgt dann dafür, dass für dei Überschrift eine Ausnahme gemacht wird und zentriert wird, dafür steht das zweite Argument c darin.
@{} entfernt übrigens den Abstand rechts und links, so dass der Text nicht mit Lücke beginnt und endet.

Stefan