Sie sind hier

vertikale Zentrierung von Tabelleneintraegen bei vergroessertem Zeilenabstand

Hallo zusammen,

ich wuerde gerne das (typische) Problem beheben, dass Text (oder Formeln) in Tabellen mit horizontalen Linien "oben"/"unten" an den Linien anstoesst (anstossen). Ich moechte einfach die Zeilenhoehe vergroessern (also praktisch den Abstand zweier horizontaler Linien) _und_ allen Text oder alle Formeln die in einem Feld stehen vertikal zentrieren. Es gibt ja Packages wie cellspace, booktabs, tabls, aber ich moechte maximale Freiheit in der Gestaltung behalten, darum waere mir am liebsten, wenn ich einfach jede Zeile adjustieren koennte. Das geht ja z.B. mit \\[3ex] vor dem \hline-Befehl am Zeileende. Diese Loesung waer mir auch am liebsten, allerdings betrachte man folgendes vollstaendiges Minimalbeispiel.....

\documentclass{scrreprt}
\usepackage{tabularx}
\usepackage{booktabs}
\renewcommand*{\tabularxcolumn}[1]{m{#1}} %vertically centers entries of a tabularx-table
\newcolumntype{C}{>{\centering\arraybackslash}X}
\begin{document}
\begin{table}[htdp]
\centering
\begin{tabularx}{\linewidth}{X|C|C}
\multicolumn{3}{c}{\rule[-20pt]{0pt}{0pt}Just a heading}\\
& column 1& column 2 \\
\hline
row 1 & bla1 & bla2 \\[3ex] \hline
row 2 & bla3 & bla4 \\[3ex] \hline
\end{tabularx}
\end{table}
\end{document}

...und stelle fest, dass es fuer die 2. Spalte (mit "column 1" bezeichnet) noch hervorragend klappt [es ist gewuenscht, dass die erste Spalte linksbuendig und alle (zwei) nachfolgenden zentriert sind, daher meine neue Spaltentyp-Definition "C"], aber fuer die _letzte_ Spalte nicht mehr. Man kann auch noch mehr Spalten machen und sieht, dass es immer bei der letzten schief geht. Wie kann man das beheben?
Meine erste Idee war, einfach noch eine leere Spalte anzuhaengen, was auch funktioniert, allerdings verursacht diese immer eine gewisse Mindestbreite, die das ganze Konzept von tabularx damit zunichte macht....
Meine zweite Idee war, den Parameter \arraystretch einzusetzen. Das geht bei "kleinen" stretches auch noch gut, allerdings (Extremfall..) betrachte man z.B. bei dem stretch um 400%, dass die vertikale Ausrichtung natuerlich auch nicht mehr zentriert ist.... siehe dazu folgendes Beispiel (optisch natuerlich suboptimal, aber mir geht's ja nur ums Prinzip):

\documentclass{scrreprt}
\usepackage{tabularx}
\renewcommand*{\tabularxcolumn}[1]{m{#1}} %vertically centers entries of a tabularx-table
\newcolumntype{C}{>{\centering\arraybackslash}X}
\renewcommand*{\arraystretch}{4} %stretches line distance by 400%
\begin{document}
\begin{table}[htdp]
\centering
\begin{tabularx}{\linewidth}{X|C|C}
\multicolumn{3}{c}{\rule[-20pt]{0pt}{0pt}Just a heading}\\
& column 1& column 2 \\
\hline
row 1 & bla5 & bla6 \\ \hline
row 2 & bla7 & bla8 \\ \hline
\end{tabularx}
\end{table}
\end{document}

Das hat wahrscheinlich mit Komascript rel. wenig zu tun, aber da mir hier immer so gut geholfen wurde riskier ich es trotzdem mal zu fragen.... Ich hoffe ihr habt eine Idee.

Vielen Dank im Voraus

marius

forum: 
Comments for "vertikale Zentrierung von Tabelleneintraegen bei vergroessertem Zeilenabstand" abonnieren