Seite 1 von 1

Tabelle mit multicolumn -- Problem Spaltenbreite

Verfasst: Mi 5. Mai 2010, 11:48
von bmro
Hallo Allerseits,

ich versuche eine Tabelle zu erstellen, wo eine Spalte zwei Unterspalten hat.
Das Problem ist, dass die erste Unterspalte schmaler als die zweite ist.
Hier ist Mini-Beispiel
\documentclass[ngerman, headsepline,footsepline,12pt]{scrreprt}
\usepackage{times}
\usepackage[latin1]{inputenc} % Umlaute

\usepackage{multicol}
\usepackage{multirow}

\usepackage{setspace}
\onehalfspacing

\usepackage[ngerman]{babel}

\begin{document}

\begin{table}[h]
\centering
\caption{Tabellenbeschreibung}
\begin{tabular}{|l|c|c|c|c|c|}
\hline
\multirow{2}{*}{} & \multicolumn{2}{c|}{Überschrift eins} & \multicolumn{2}{c|}{Überschrift zwei} & Überschrift drei \\
\cline{2-6}
& 2 & 3 & 4 & 5 & 6 \\
\hline
1 & 2 & 3 & 4 & 5 & 6 \\
\hline
1 & 2 & 3 & 4 & 5 & 6 \\
\hline
1 & 2 & 3 & 4 & 5 & 6 \\
\hline
1 & 2 & 3 & 4 & 5 & 6 \\
\hline
\multicolumn{6}{|c|}{1-6} \\
\hline
\end{tabular}
\label{tab:}
\end{table}

\end{document}
Wenn ich die Spaltenbreite mit p{<size>} ändere, bekomme ich zwar gleichgroße Untersplaten, aber dafür muss ich zum einen viele Werte ausprobieren, bis ich eine zufriedenstellende Layout bekomme, zum anderen bekomme ich die Einträge in den Unterspalten nicht zentriert, sondern nur linksbündig.
Hier ist das Mini-Beispiel dafür:
\documentclass[ngerman, headsepline,footsepline,12pt]{scrreprt}
\usepackage{times}
\usepackage[latin1]{inputenc} % Umlaute

\usepackage{multicol}
\usepackage{multirow}

\usepackage{setspace}
\onehalfspacing

\usepackage[ngerman]{babel}

\begin{document}

\begin{table}[h]
\centering
\caption{Tabellenbeschreibung}
\begin{tabular}{|l|p{2cm}|p{2cm}|c|c|c|}
\hline
\multirow{2}{*}{} & \multicolumn{2}{c|}{Überschrift eins} & \multicolumn{2}{c|}{Überschrift zwei} & Überschrift drei \\
\cline{2-6}
& 2 & 3 & 4 & 5 & 6 \\
\hline
1 & 2 & 3 & 4 & 5 & 6 \\
\hline
1 & 2 & 3 & 4 & 5 & 6 \\
\hline
1 & 2 & 3 & 4 & 5 & 6 \\
\hline
1 & 2 & 3 & 4 & 5 & 6 \\
\hline
\multicolumn{6}{|c|}{1-6} \\
\hline
\end{tabular}
\label{tab:}
\end{table}

\end{document}
Über einen Vorschlag würde ich mich sehr freuen.

Bmro

Verfasst: Do 6. Mai 2010, 10:42
von bmro
Keine Antworten :(

ich habe eine Halblösung und zwar:
mit dem Paket array und
\newcolumntype{C}[1]{>{\centering\arraybackslash}p{#1}}
bekomme ich nun die Einträge zentriert, aber immer noch muss ich mir eine passende Spaltenbreite ausdenken

Mini-bsp:
\documentclass[ngerman, headsepline,footsepline,12pt]{scrreprt}
\usepackage{times}
\usepackage[latin1]{inputenc} % Umlaute

\usepackage{multicol}
\usepackage{multirow}
\usepackage{array}

\usepackage{setspace}
\onehalfspacing

\usepackage[ngerman]{babel}

\begin{document}

\newcolumntype{C}[1]{>{\centering\arraybackslash}p{#1}}
\begin{table}[h]
\centering
\caption{Tabellenbeschreibung}
\begin{tabular}{|l|C{2cm}|C{2cm}|C{2cm}|C{2cm}|c|}
\hline
\multirow{2}{*}{} & \multicolumn{2}{c|}{Überschrift eins} & \multicolumn{2}{c|}{Überschrift zwei} & Überschrift drei \\
\cline{2-6}
& 2 & 3 & 4 & 5 & 6 \\
\hline
1 & 2 & 3 & 4 & 5 & 6 \\
\hline
1 & 2 & 3 & 4 & 5 & 6 \\
\hline
1 & 2 & 3 & 4 & 5 & 6 \\
\hline
1 & 2 & 3 & 4 & 5 & 6 \\
\hline
\multicolumn{6}{|c|}{1-6} \\
\hline
\end{tabular}
\label{tab:}
\end{table}

\end{document}

Verfasst: Do 6. Mai 2010, 10:50
von bloodworks
Hallo wenn ich dein Problem richtig verstanden habe dann suchst du das Paket tabularx. Oder etwas neuer tabulary.

Verfasst: Do 6. Mai 2010, 10:56
von Xenara
Mein Ansatz funktioniert auch mit tabularx. Ausserdem hab ich deine Tabelle etwas überarbeitet. Vertikale Linien sollten nämlich vermieden werden, und das Paket booktabs ermöglicht schönere Abstände, sodass für die Verständlichkeit und Übersichtlichkeit nur noch wenige horizontale Linien nötig sind.

Schau mal, wies dir gefällt:
\documentclass[ngerman, headsepline,footsepline,12pt]{scrreprt} 
\usepackage{times} 
\usepackage[latin1]{inputenc} % Umlaute 

\usepackage{multicol} 
\usepackage{multirow} 
\usepackage{array} 

\usepackage{tabularx}
\usepackage{booktabs}


\usepackage{setspace} 
\onehalfspacing 

\usepackage[ngerman]{babel} 

\begin{document} 

\newcolumntype{Y}{>{\centering\arraybackslash}X} 

\begin{table}[h] 
\centering 
\caption{Tabellenbeschreibung} 
\begin{tabularx}{.8\textwidth}{lYYYYc} 
\toprule
\multirow{2}{*}{} & \multicolumn{2}{c}{Überschrift eins} & \multicolumn{2}{c}{Überschrift zwei} & Überschrift drei \\ 
& 2 & 3 & 4 & 5 & 6 \\ 
\cmidrule(rl){2-3} \cmidrule(rl){4-5} \cmidrule(rl){6-6} 
1 & 2 & 3 & 4 & 5 & 6 \\ 
1 & 2 & 3 & 4 & 5 & 6 \\ 
1 & 2 & 3 & 4 & 5 & 6 \\ 
1 & 2 & 3 & 4 & 5 & 6 \\ 
\midrule 
\multicolumn{6}{c}{1-6} \\ 
\bottomrule 
\end{tabularx} 
\label{tab:} 
\end{table} 


\newcolumntype{C}[1]{>{\centering\arraybackslash}p{#1}} 
\begin{table}[h] 
\centering 
\caption{Tabellenbeschreibung} 
\begin{tabular}{|l|C{2cm}|C{2cm}|C{2cm}|C{2cm}|c|} 
\hline 
\multirow{2}{*}{} & \multicolumn{2}{c|}{Überschrift eins} & \multicolumn{2}{c|}{Überschrift zwei} & Überschrift drei \\ 
\cline{2-6} 
& 2 & 3 & 4 & 5 & 6 \\ 
\hline 
1 & 2 & 3 & 4 & 5 & 6 \\ 
\hline 
1 & 2 & 3 & 4 & 5 & 6 \\ 
\hline 
1 & 2 & 3 & 4 & 5 & 6 \\ 
\hline 
1 & 2 & 3 & 4 & 5 & 6 \\ 
\hline 
\multicolumn{6}{|c|}{1-6} \\ 
\hline 
\end{tabular} 
\label{tab:} 
\end{table} 

\end{document}
P.S. Schönes Minimalbeispiel :)

Verfasst: Do 6. Mai 2010, 20:04
von bmro
Danke :).
es funktioniert. ich werde es mir anschauen.

Verfasst: Fr 9. Mai 2014, 15:57
von Sebastian-Gast
Auch wenn das Thema hier schon etwas hälter ist, ich habe ein kleines Problem mit dem von euch vorgestellten Tabellenformat. Habe das obige Beispiel von Xenara bei mir implementiert und angepasst. Jedoch ist die Zweite Zeile der Multirow nicht mittig zur Ersten. Sieht ziemlich blöd aus. Kennt jemand da einen Trick?

begin{table}[h]
\centering
\caption{Tabellenbeschreibung}
\begin{tabularx}{.8\textwidth}{lYYYYYY}
\toprule
\multirow{2}{*}{} & \multicolumn{3}{c}{\textbf{(1+1)-Evolutionary / Powell}} & \multicolumn{3}{c}{\textbf{Simplex}} \\
& Phase 1 & Phase 2 &  Phase 3 &Phase 1 & Phase 2 &  Phase 3 \\
\cmidrule(rl){2-4} \cmidrule(rl){5-7} 
$T_x$ & 2 & 3 & 4 & 5 & 6 \\
$T_y$& 2 & 3 & 4 & 5 & 6 \\
$T_z$ & 2 & 3 & 4 & 5 & 6 \\
$R_x$ & 2 & 3 & 4 & 5 & 6 \\
$R_y$ & 2 & 3 & 4 & 5 & 6 \\
$R_z$ & 2 & 3 & 4 & 5 & 6 \\
\bottomrule
\end{tabularx}
\label{tab:}
\end{table} 

Verfasst: Fr 9. Mai 2014, 16:15
von Sebastian-Gast
Habe das Problem etwas eingrenzen können, es funktioniert solange die erste Zeile der Multirow nicht länger ist als die Zweite. In meinem Beispiel kann ich durch entfernen der BOLD Schrift die Breite der beiden Zellen etwas verringern und dann passt es. Aber richtig gut ist das ja auch nicht :(