PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem bei Tabelle mit \multirow



schlachus
28-02-2008, 11:40
Moin zusammen,

bin neu hier und habe ein Problem mit Tabellen. Habe schon Stundenlang das Netz und Foren durchgestöbert und rumprobiert, komme aber nicht zu einer Lösung. Daher der Versuch des Postings. Wäre sehr glücklich, wenn mir jemand helfen könnte.

Problem: Ich möchte eine Tabelle erstellen, bei der ich selber die Spaltenbreite festlege, die Zellen teilweise zentriert und teilweise linksbündig sind und zusätzlich noch einige Zellen Zeilenweise oder Spaltenweise zusammengefasst sind. Das bekomme ich in dieser Kombination irgendwie nicht hin.

Unten folgt das Minimalbeispiel: Ich habe extra die Originaltexte drinnen gelassen. Wenn die Zellinhalte kürzer sind, ist es kein Problem und die Inhalte der mit \multirow zusammenfassten Zellen erscheinen vertikal mittig ausgerichtet. Bei längeren Zellinhalten funktioniert dies jedoch nicht mehr.

Eigentlich möchte ich nur die Spalten 3 und 4 zentriert haben. Das bekomme ich aber irgendwie überhaupt nicht hin.

Habe es auch schon mit tabularx probiert aber das Problem mit der vertikalen mittigen Ausrichtung bleibt auch hier.

Kann mir irgendeiner weiterhelfen??

Viele Dank
Schlachus


\documentclass[12pt, oneside]{book}

\usepackage{multirow}

\begin{document}

\begin{table} [htp]
\centering
\begin{tabular}{|p{3cm}|p{2cm}|p{3cm}|p{3cm}|}
\hline
\multicolumn{2}{|c|}{}& \multicolumn{2}{c|}{Subadditivität} \\
\multicolumn{2}{|l|}{ } & gering & hoch \\ \hline
\multirow{6}{3cm}{Irreversibilität} & \multirow{3}{*}{gering} & III & IV \\
& & Markt mit Tendenz zu Inflexibilität & Vor Konkurrenz geschütztes natürliches Monopol \\
& & I.d.R. wirtschaftspolitischer Eingriff wünschenswert. & Evtl. Probleme durch Anpassungsmängel. \\
\cline{2-4}
& \multirow{3}{*}{hoch} & I & II \\
& & "`Normaler"' Markt & Durch potenzielle Konkurrenz diszipliniertes natürliches Monopol \\
& & Kein Eingriff erforderlich. & Kein Eingriff erforderlich. \\
\hline
\end{tabular}
\end{table}

\end{document}

sofa-surfer
28-02-2008, 13:12
Hallo,

hier mal (m)ein Vorschlag:



\documentclass[12pt, oneside]{book}
\usepackage{tabularx,graphicx}
\usepackage{multirow}
\usepackage[latin1]{inputenc}
\usepackage{ragged2e}
\newcolumntype{R}{>{\RaggedRight\arraybackslash}X}

\begin{document}

\begin{table} [htp]
\centering
\begin{tabularx}{\textwidth}{|ll|R|R|}
\hline
\multicolumn{2}{|c}{}& \multicolumn{2}{c|}{Subadditivität} \\
\multicolumn{2}{|l|}{ } & \centering gering & \centering hoch \tabularnewline \cline{2-4}
\multirow{10}{*}{\rotatebox{90}{Irreversibilität}} & \multirow{5}{*}{\rotatebox{90}{gering}} & III & IV \\
& & Markt mit Tendenz zu Inflexibilität & Vor Konkurrenz geschütztes natürliches Monopol \\
& & I.d.R. wirtschaftspolitischer Eingriff wünschenswert. & Evtl. Probleme durch Anpassungsmängel. \\
\cline{2-4}
& \multirow{5}{*}{\rotatebox{90}{hoch}} & I & II \\
& & "`Normaler"' Markt & Durch potenzielle Konkurrenz diszipliniertes natürliches Monopol \\
& & Kein Eingriff erforderlich. & Kein Eingriff erforderlich. \\
\hline
\end{tabularx}
\end{table}

\end{document}


Matthias

schlachus
28-02-2008, 18:52
Hallo Matthias,
danke für den Vorschlag. Es funktioniert prächtig!!
Ich frage lieber nicht nach, warum das anders nicht funktioniert hat... :)

Lg,
Schlachus

sofa-surfer
28-02-2008, 19:49
Ich frage lieber nicht nach, warum das anders nicht funktioniert hat... :)


Naja, ich denke das Grundproblem war, dass deine Zeilenangaben in den \multirow-Befehlen nicht gestimmt haben. Oder was genau meinst du mit "nicht funktunieren"?

Matthias

schlachus
28-02-2008, 21:56
Hallo Matthias,
ich bin davon ausgegangen, dass ich in den multirow Befehl die Anzahl der Zeilen des Tabellenrasters eintragen muss, wie ich es programmiere und nicht, wie die Ausgabe dann tatsächlich ist. In meinem Fall hatte die Tabelle ja strukturell 4 Spalten und 8 Zeilen. Bei der Ausgabe waren es dann durch die langen Zelleninhalte mehr Zeilen (12). Anscheinend ist dann diese Zeilenanzahl relevant, oder habe ich es falsch verstanden?

Danke und viele Grüße
Schlachus

sofa-surfer
28-02-2008, 22:17
Hallo Matthias,
ich bin davon ausgegangen, dass ich in den multirow Befehl die Anzahl der Zeilen des Tabellenrasters eintragen muss, wie ich es programmiere und nicht, wie die Ausgabe dann tatsächlich ist. In meinem Fall hatte die Tabelle ja strukturell 4 Spalten und 8 Zeilen. Bei der Ausgabe waren es dann durch die langen Zelleninhalte mehr Zeilen (12). Anscheinend ist dann diese Zeilenanzahl relevant, oder habe ich es falsch verstanden?


Richtig, es zählt die tatsächliche Zeilenanzahl, nicht die logische/strukturelle.

Matthias