sysrq
04-04-2011, 10:17
Hallo,
ursprünglich wollte ich ein Tabellenspalten haben, die eine feste Breite und horizontal zentrierten Inhalt hat. Das mit der festen Breite kann mit einem p{2cm} schnell gelöst werden:
\documentclass{scrbook}
\begin{document}
\begin{tabular}{|p{5cm}|p{5cm}|p{5cm}|}
\hline
Das ist ein wenig Text & Noch mehr & Und noch mehr Text \\
\hline
Weiter & Das ist die nächste Zeile leider mit viel zu viel Inhalt & Und noch etwas Text \\
\hline
Das ist die letzte Zeile & Noch etwas Inhalt & Und schon fertig \\
\hline
\end{tabular}
\end{document}
Jedoch ist der Text nicht horizontal zentriert. Abhilfe schafft hier eine neue Spaltendefinition:
\documentclass{scrbook}
\usepackage{array}
\begin{document}
\newcolumntype{S}[1]{>{\centering\arraybackslash}p{#1}}
\begin{tabular}{|S{5cm}|S{5cm}|S{5cm}|}
\hline
Das ist ein wenig Text & Noch mehr & Und noch mehr Text \\
\hline
Weiter & Das ist die nächste Zeile leider mit viel zu viel Inhalt & Und noch etwas Text \\
\hline
Das ist die letzte Zeile & Noch etwas Inhalt & Und schon fertig \\
\hline
\end{tabular}
\end{document}
Alles funktioniert wunderbar. Ich weiß zwar immer noch nicht wieso das \arraybackslash notwendig ist. Aber ich bin zumindest zufrieden, dass es alles so funktioniert wie ich es mir vorgestellt habe.
Im Internet habe ich noch eine weitere Spaltendefinition gefunden, die mit @{} arbeiteitet:
\documentclass{scrbook}
\usepackage{array}
\begin{document}
\newcolumntype{S}[1]{@{}>{\centering\arraybackslash}p{#1}@{}}
\begin{tabular}{|S{5cm}|S{5cm}|S{5cm}|}
\hline
Das ist ein wenig Text & Noch mehr & Und noch mehr Text \\
\hline
Weiter & Das ist die nächste Zeile leider mit viel zu viel Inhalt & Und noch etwas Text \\
\hline
Das ist die letzte Zeile & Noch etwas Inhalt & Und schon fertig \\
\hline
\end{tabular}
\end{document}
Das einzige was mir auffällt ist, dass die Spalten auf einmal schmaler werden. Als ob ihnen das @{} Platz stehlen würde. Aber das dürfte doch eigentlich nicht sein, schließlich wird ja eine feste Breite vorgegeben. Was passiert hier also hinter den Külissen von Latex? Google hat mir da nicht helfen können.
ursprünglich wollte ich ein Tabellenspalten haben, die eine feste Breite und horizontal zentrierten Inhalt hat. Das mit der festen Breite kann mit einem p{2cm} schnell gelöst werden:
\documentclass{scrbook}
\begin{document}
\begin{tabular}{|p{5cm}|p{5cm}|p{5cm}|}
\hline
Das ist ein wenig Text & Noch mehr & Und noch mehr Text \\
\hline
Weiter & Das ist die nächste Zeile leider mit viel zu viel Inhalt & Und noch etwas Text \\
\hline
Das ist die letzte Zeile & Noch etwas Inhalt & Und schon fertig \\
\hline
\end{tabular}
\end{document}
Jedoch ist der Text nicht horizontal zentriert. Abhilfe schafft hier eine neue Spaltendefinition:
\documentclass{scrbook}
\usepackage{array}
\begin{document}
\newcolumntype{S}[1]{>{\centering\arraybackslash}p{#1}}
\begin{tabular}{|S{5cm}|S{5cm}|S{5cm}|}
\hline
Das ist ein wenig Text & Noch mehr & Und noch mehr Text \\
\hline
Weiter & Das ist die nächste Zeile leider mit viel zu viel Inhalt & Und noch etwas Text \\
\hline
Das ist die letzte Zeile & Noch etwas Inhalt & Und schon fertig \\
\hline
\end{tabular}
\end{document}
Alles funktioniert wunderbar. Ich weiß zwar immer noch nicht wieso das \arraybackslash notwendig ist. Aber ich bin zumindest zufrieden, dass es alles so funktioniert wie ich es mir vorgestellt habe.
Im Internet habe ich noch eine weitere Spaltendefinition gefunden, die mit @{} arbeiteitet:
\documentclass{scrbook}
\usepackage{array}
\begin{document}
\newcolumntype{S}[1]{@{}>{\centering\arraybackslash}p{#1}@{}}
\begin{tabular}{|S{5cm}|S{5cm}|S{5cm}|}
\hline
Das ist ein wenig Text & Noch mehr & Und noch mehr Text \\
\hline
Weiter & Das ist die nächste Zeile leider mit viel zu viel Inhalt & Und noch etwas Text \\
\hline
Das ist die letzte Zeile & Noch etwas Inhalt & Und schon fertig \\
\hline
\end{tabular}
\end{document}
Das einzige was mir auffällt ist, dass die Spalten auf einmal schmaler werden. Als ob ihnen das @{} Platz stehlen würde. Aber das dürfte doch eigentlich nicht sein, schließlich wird ja eine feste Breite vorgegeben. Was passiert hier also hinter den Külissen von Latex? Google hat mir da nicht helfen können.