PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Komplexe färbige Tabelle



kbee
02-10-2012, 21:47
Liebe Forumgemeinde,

ich wende mich mit ein paar Fragen an Euch, da ich nach stundenlangem Herumprobieren und Internet stöbern zu keinem vernünftigen Ergebnis komme.
Ich möchte eine Tabelle im (Seiten-)Querformat erstellen die folgendes Aussehen hat:
1. Spalte ist eine multirow über mehrere Zeilen (kommt insgesamt 3x vor)
2. Spalte ist ebenfalls eine multirow und sollte grau eingefärbt sein (3x)
3. Spalte Text ohne Umbruch
4. Spalte Spalte mit definierter Breite in der Text umbrechen soll

Ich zeige Euch mal was ich bisher mühsam zusammengebastelt habe:


\documentclass[fontsize=12pt, paper=a4, headinclude, twoside=true, parskip=half+, pagesize=auto]{scrreprt}

\usepackage{lmodern}
\usepackage[T1]{fontenc} % Ligaturen, richtige Umlaute im PDF
\usepackage[utf8]{inputenc} % UTF8-Kodierung für Umlaute usw
\usepackage{multirow} % Tabellen-Zellen über mehrere Zeilen
\usepackage{multicol} % mehre Spalten auf eine Seite
\usepackage{blindtext}
\usepackage{pdflscape}
\usepackage{colortbl} % Für farbige Tabellenzellen mit cellcolor
\usepackage{rotating}

\begin{document}

\blindtext[3]
\newpage

\begin{landscape}
\begin{table}[tbp]
\begin{center}
\renewcommand{\arraystretch}{1.5}
\begin{tabular}{c c l p{16cm}}
\hline
\multirow{7}{*} {K1} & \multirow{7}{*} {\begin{sideways} eines \end{sideways}}
& TEXT A & Das ist der Text der in dieser Spalte geschrieben und umgebrochen wird, wenn er länger ist als normal\\
& & TEXT A & Das ist der Text der in dieser Spalte geschrieben und umgebrochen wird \\
& & TEXT A & Das ist der Text der in dieser Spalte geschrieben und umgebrochen wird \\
& & TEXT A & Das ist der Text der in dieser Spalte geschrieben und umgebrochen wird, wenn er länger ist als normal \\
& & TEXT A & Das ist der Text der in dieser Spalte geschrieben und umgebrochen wird \\
& & TEXT A & Das ist der Text der in dieser Spalte geschrieben und umgebrochen wird \\
& & TEXT A & Das ist der Text der in dieser Spalte geschrieben und umgebrochen wird \\
\hline
\multirow{2}{*} {K2} & \multirow{2}{*} {\begin{sideways} anderes \end{sideways}}
& TEXT B & Das ist der Text der in dieser Spalte geschrieben und umgebrochen wird\\
& & TEXT B & Das ist der Text der in dieser Spalte geschrieben und umgebrochen wird \\
\hline
\multirow{3}{*} {K3} & \multirow{3}{*} {\begin{sideways} drittes \end{sideways}}
& TEXT C & Das ist der Text der in dieser Spalte geschrieben und umgebrochen wird\\
& & TEXT C & Das ist der Text der in dieser Spalte geschrieben und umgebrochen wird \\
& & TEXT C & Das ist der Text der in dieser Spalte geschrieben und umgebrochen wird \\
\end{tabular}
\end{center}
\caption []{Unterschrift der Tabelle}
\end{table}
\renewcommand{\arraystretch}{1}
\end{landscape}

\end{document}


Dabei treten folgende Probleme auf:
1. Die ersten beiden Spalten erscheinen vertikal nicht zentriert, je mehr Zeilenumbrüche in der letzten Spalte "passieren" umso mehr rutscht der Inhalt nach oben.
2. Wenn ich versuche die 2. Spalte mit ">{\columncolor{gray}} c" einzufärben, passieren schlimme Dinge: Text tlw. nicht mehr lesbar, verschoben, ...

Weiters kann es durchaus vorkommen, dass die Tabelle die Seitenbreite sprengt und mehr als eine Seite benötigt. Ich habe das mit dem longtable Packet versucht, bin aber leider daran gescheitert. Reicht es nicht das longtable-Package einzubinden und dann statt tabular longtable zu verwenden?

Ich bin Euch für alle Tipps und Rückmeldungen sehr dankbar, das Aussehen der Tabelle ist zur Zeit auf jeden Fall furchtbar.

Danke und lg
kbee

hakaze
04-10-2012, 11:29
Die Anleitung zu multirow (http://mirror.ctan.org/macros/latex/contrib/multirow/doc/multirow.pdf) beschreibt schon alle deine Probleme:

1. Der Algorithmus versagt beim vertikalen Zentrieren, wenn mehrzeilige Zellen von der multirow überspannt werden. In diesem Fall muss man die Ausrichtung manuell mit dem fixup-Parameter korrigieren.

2. Farbige Zellen werden zeilenweise eingefärbt. Sie "übermalen" also den Inhalt von multirow, da der formal nur in der ersten Zeile steht. Als Lösung können die multirows auch von unten nach oben mit negativer Zeilenzahl definiert werden.

3. Innerhalb einer Umgebung reichen Umschaltbefehle (z.b. nur centering statt begin/end center). Außerdem müssen die Werte nicht zurückgesetzt werden (siehe arraystretch) da sie nur innerhalb der Gruppe (in diesem Fall table) wirksam sind.

\documentclass[fontsize=12pt, paper=a4, headinclude, twoside=true, parskip=half+, pagesize=auto]{scrreprt}

\usepackage{lmodern}
\usepackage[T1]{fontenc} % Ligaturen, richtige Umlaute im PDF
\usepackage[utf8]{inputenc} % UTF8-Kodierung für Umlaute usw
\usepackage{multirow} % Tabellen-Zellen über mehrere Zeilen
\usepackage{blindtext}
\usepackage{pdflscape}
\usepackage[table]{xcolor} % Für farbige Tabellenzellen mit cellcolor
\usepackage{rotating}

\begin{document}

\blindtext[3]
\clearpage

\begin{landscape}
\begin{table}[tbp]
%\begin{center}
\centering
\renewcommand{\arraystretch}{1.5}
\begin{tabular}{c >{\columncolor{gray}} c l p{16cm}}
\hline
\multirow{7}{*}[-2em]{K1} &
& TEXT A & Das ist der Text der in dieser Spalte geschrieben und umgebrochen wird, wenn er länger ist als normal\\
& & TEXT A & Das ist der Text der in dieser Spalte geschrieben und umgebrochen wird \\
& & TEXT A & Das ist der Text der in dieser Spalte geschrieben und umgebrochen wird \\
& & TEXT A & Das ist der Text der in dieser Spalte geschrieben und umgebrochen wird, wenn er länger ist als normal \\
& & TEXT A & Das ist der Text der in dieser Spalte geschrieben und umgebrochen wird \\
& & TEXT A & Das ist der Text der in dieser Spalte geschrieben und umgebrochen wird \\
& \multirow{-7}{*} {\begin{sideways} eines \end{sideways}}& TEXT A & Das ist der Text der in dieser Spalte geschrieben und umgebrochen wird \\
\hline
\multirow{2}{*} {K2} &
& TEXT B & Das ist der Text der in dieser Spalte geschrieben und umgebrochen wird\\
&\multirow{-2}{*}[-0.2em]{\begin{sideways}anderes \end{sideways}} & TEXT B & Das ist der Text der in dieser Spalte geschrieben und umgebrochen wird \\
\hline
\multirow{3}{*} {K3} &
& TEXT C & Das ist der Text der in dieser Spalte geschrieben und umgebrochen wird\\
& & TEXT C & Das ist der Text der in dieser Spalte geschrieben und umgebrochen wird \\
&\multirow{-3}{*} {\begin{sideways} drittes \end{sideways}} & TEXT C & Das ist der Text der in dieser Spalte geschrieben und umgebrochen wird \\
\end{tabular}
%\end{center}
\caption []{Unterschrift der Tabelle}
\end{table}
%\renewcommand{\arraystretch}{1}
\end{landscape}

\end{document}

PS. mach für deine Versuche mit longtable auch ein Beipiel, wenn das Problem noch besteht!

kbee
06-10-2012, 18:12
Hallo hakaze,

Danke für Deine Rückmeldung, ich hab mir Deine Tipps angesehen und komme jetzt (endlich!) zu einem ansehnlichen Ergebnis.
Jetzt hab ich nur mehr das Problem mit dem longtable. Ich glaube ich versteh da was nicht/falsch.

Wenn ich folgenden Code verwende


\documentclass[fontsize=12pt, paper=a4, headinclude, twoside=true, parskip=half+, pagesize=auto]{scrreprt}

\usepackage{lmodern}
\usepackage[T1]{fontenc} % Ligaturen, richtige Umlaute im PDF
\usepackage[utf8]{inputenc} % UTF8-Kodierung für Umlaute usw
\usepackage{multirow} % Tabellen-Zellen über mehrere Zeilen
\usepackage{blindtext}
\usepackage{pdflscape}
\usepackage[table]{xcolor} % Für farbige Tabellenzellen mit cellcolor
\usepackage{rotating}

\begin{document}

\blindtext[3]
\clearpage

\begin{landscape}
\begin{longtable}[tbp]
%\begin{center}
\centering
\renewcommand{\arraystretch}{1.5}
\begin{tabular}{c >{\columncolor{gray}} c l p{16cm}}
\hline
\multirow{7}{*}[-2em]{K1} &
& TEXT A & Das ist der Text der in dieser Spalte geschrieben und umgebrochen wird, wenn er länger ist als normal\\
& & TEXT A & Das ist der Text der in dieser Spalte geschrieben und umgebrochen wird \\
& & TEXT A & Das ist der Text der in dieser Spalte geschrieben und umgebrochen wird \\
& & TEXT A & Das ist der Text der in dieser Spalte geschrieben und umgebrochen wird, wenn er länger ist als normal \\
& & TEXT A & Das ist der Text der in dieser Spalte geschrieben und umgebrochen wird \\
& & TEXT A & Das ist der Text der in dieser Spalte geschrieben und umgebrochen wird \\
& \multirow{-7}{*} {\begin{sideways} eines \end{sideways}}& TEXT A & Das ist der Text der in dieser Spalte geschrieben und umgebrochen wird \\
\hline
\multirow{2}{*} {K2} &
& TEXT B & Das ist der Text der in dieser Spalte geschrieben und umgebrochen wird\\
&\multirow{-2}{*}[-0.2em]{\begin{sideways}anderes \end{sideways}} & TEXT B & Das ist der Text der in dieser Spalte geschrieben und umgebrochen wird \\
\hline
\multirow{3}{*} {K3} &
& TEXT C & Das ist der Text der in dieser Spalte geschrieben und umgebrochen wird\\
& & TEXT C & Das ist der Text der in dieser Spalte geschrieben und umgebrochen wird \\
&\multirow{-3}{*} {\begin{sideways} drittes \end{sideways}} & TEXT C & Das ist der Text der in dieser Spalte geschrieben und umgebrochen wird \\
\hline
\multirow{3}{*} {K4} &
& TEXT C & Das ist der Text der in dieser Spalte geschrieben und umgebrochen wird\\
& & TEXT C & Das ist der Text der in dieser Spalte geschrieben und umgebrochen wird \\
&\multirow{-3}{*} {\begin{sideways} drittes \end{sideways}} & TEXT C & Das ist der Text der in dieser Spalte geschrieben und umgebrochen wird \\
\hline
\multirow{3}{*} {K5} &
& TEXT C & Das ist der Text der in dieser Spalte geschrieben und umgebrochen wird\\
& & TEXT C & Das ist der Text der in dieser Spalte geschrieben und umgebrochen wird \\
&\multirow{-3}{*} {\begin{sideways} drittes \end{sideways}} & TEXT C & Das ist der Text der in dieser Spalte geschrieben und umgebrochen wird \\
\hline
\multirow{3}{*} {K6} &
& TEXT C & Das ist der Text der in dieser Spalte geschrieben und umgebrochen wird\\
& & TEXT C & Das ist der Text der in dieser Spalte geschrieben und umgebrochen wird \\
&\multirow{-3}{*} {\begin{sideways} drittes \end{sideways}} & TEXT C & Das ist der Text der in dieser Spalte geschrieben und umgebrochen wird \\
\hline
\end{tabular}
%\end{center}
\caption []{Unterschrift der Tabelle}
\end{longtable}
%\renewcommand{\arraystretch}{1}
\end{landscape}


gibts eine Fehlermeldung. Wenn ich longtable statt tabular verwende, dann bricht er nicht um. Kann es sein, dass dann der äußere (klammernde) table den Umbruch verhindert?? Wenn ich die "äußere Klammer" (table) weglasse, wie kann ich dann centering, float-Parameter setzen??

Danke für Deine Unterstützung
kbee

rstuby
06-10-2012, 18:29
Ich sehe zwar in deinem Beispiel keine table-Umgebung, aber wenn du eine benutzt, wird deren Inhalt selbstverständlich keinem Seitenumbruch unterzogen, sondern gleitet an eine passende Stelle. Dafür sind ja auch die float-Parameter da, wozu willst du die brauchen, wenn du eine festgelegte und umgebrochene longtable verwendest?
Die Beschriftung setzt du dann mit
\captionof{table}{Hier steht die Beschriftung}
\centering müsste in jeder beliebigen Umgebung oder Gruppe funktionieren, wenn du keine hast, benutze einfach {...} oder \begingroup...\endgroup.

longtable muss tatsächlich an der Stelle von tabular stehen. Und \usepackage{longtable} in der Präambel.
Aber irgendwie läuft es bei mir auch mit diesen Änderungen nicht, und wird auch keine vernünftige Fehlermeldung ausgegeben. nur "emergency stop" und "exit code = 1".
Ich vermute mal, mit der landscape-Ungebung gibt es Probleme.

hakaze
06-10-2012, 18:34
Longtable ersetzt table und tabular, d.h. es nimmt direkt die Spaltendefinition entgegen und keine Platzierungsoptionen für Gleitobjekte. Schließlich soll die Tabelle ja nicht gleiten sondern umgebrochen werden. Ergo ist auch die Verwendung von longtable innerhalb von table keine gute Idee und wird mit einem Abbruch quittiert.

\documentclass[fontsize=12pt, paper=a4, headinclude, twoside=true, parskip=half+, pagesize=auto]{scrreprt}

\usepackage{lmodern}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{multirow,longtable}
\usepackage{blindtext}
\usepackage{pdflscape}
\usepackage[table]{xcolor}
\usepackage{rotating}

\begin{document}
\blindtext[3]
\clearpage

\begin{landscape}
\centering
\renewcommand{\arraystretch}{1.5}
\begin{longtable}{c >{\columncolor{gray}} c l p{16cm}}
\hline
\multirow{7}{*}[-2em]{K1} &
& TEXT A & Das ist der Text der in dieser Spalte geschrieben und umgebrochen wird, wenn er länger ist als normal\\
& & TEXT A & Das ist der Text der in dieser Spalte geschrieben und umgebrochen wird \\
& & TEXT A & Das ist der Text der in dieser Spalte geschrieben und umgebrochen wird \\
& & TEXT A & Das ist der Text der in dieser Spalte geschrieben und umgebrochen wird, wenn er länger ist als normal \\
& & TEXT A & Das ist der Text der in dieser Spalte geschrieben und umgebrochen wird \\
& & TEXT A & Das ist der Text der in dieser Spalte geschrieben und umgebrochen wird \\
& \multirow{-7}{*} {\begin{sideways} eines \end{sideways}}& TEXT A & Das ist der Text der in dieser Spalte geschrieben und umgebrochen wird \\
\hline
\multirow{2}{*} {K2} &
& TEXT B & Das ist der Text der in dieser Spalte geschrieben und umgebrochen wird\\
&\multirow{-2}{*}[-0.2em]{\begin{sideways}anderes \end{sideways}} & TEXT B & Das ist der Text der in dieser Spalte geschrieben und umgebrochen wird \\
\hline
\multirow{3}{*} {K3} &
& TEXT C & Das ist der Text der in dieser Spalte geschrieben und umgebrochen wird\\
& & TEXT C & Das ist der Text der in dieser Spalte geschrieben und umgebrochen wird \\
&\multirow{-3}{*} {\begin{sideways} drittes \end{sideways}} & TEXT C & Das ist der Text der in dieser Spalte geschrieben und umgebrochen wird \\
\hline
\multirow{3}{*} {K4} &
& TEXT C & Das ist der Text der in dieser Spalte geschrieben und umgebrochen wird\\
& & TEXT C & Das ist der Text der in dieser Spalte geschrieben und umgebrochen wird \\
&\multirow{-3}{*} {\begin{sideways} drittes \end{sideways}} & TEXT C & Das ist der Text der in dieser Spalte geschrieben und umgebrochen wird \\
\hline
\multirow{3}{*} {K5} &
& TEXT C & Das ist der Text der in dieser Spalte geschrieben und umgebrochen wird\\
& & TEXT C & Das ist der Text der in dieser Spalte geschrieben und umgebrochen wird \\
&\multirow{-3}{*} {\begin{sideways} drittes \end{sideways}} & TEXT C & Das ist der Text der in dieser Spalte geschrieben und umgebrochen wird \\
\hline
\multirow{3}{*} {K6} &
& TEXT C & Das ist der Text der in dieser Spalte geschrieben und umgebrochen wird\\
& & TEXT C & Das ist der Text der in dieser Spalte geschrieben und umgebrochen wird \\
&\multirow{-3}{*} {\begin{sideways} drittes \end{sideways}} & TEXT C & Das ist der Text der in dieser Spalte geschrieben und umgebrochen wird \\
\hline
\caption{Unterschrift der Tabelle}
\end{longtable}
\end{landscape}
\end{document}

rstuby
06-10-2012, 19:05
Ach so, das mit der caption wusste ich nicht.
Mein Fehler kam aber daher, dass ich das \end{document} nicht mit kopiert hatte :-=

kbee
08-10-2012, 22:01
Lieber hakaze,

Danke, ich hatte da irgendwie schon einen Wurm in meinem Hirn.
Irgendwie ist das sehr logisch, wenn man die Antwort kennt ;-))

Danke für Deine Unterstützung.

lg
kbee

kbee
10-10-2012, 11:29
Liebe Forumgemeinde,

ich habe meine Tabelle jetzt weiterentwickelt, bin aber wieder auf Probleme gestoßen, die ich nicht zu lösen im Stande bin.

Meine jetzige Fassung sieht folgendermaßen aus:


\documentclass[fontsize=12pt, paper=a4, headinclude, twoside=true, parskip=half+, pagesize=auto]{scrreprt}

\usepackage{lmodern}
\usepackage[T1]{fontenc} % Ligaturen, richtige Umlaute im PDF
\usepackage[utf8]{inputenc} % UTF8-Kodierung für Umlaute usw
\usepackage{multirow} % Tabellen-Zellen über mehrere Zeilen
\usepackage{pdflscape}
\usepackage{colortbl} % Für farbige Tabellenzellen mit cellcolor
\usepackage{rotating}
\usepackage{graphicx}
\usepackage{booktabs}
\usepackage{longtable}
\usepackage{xcolor}

\colorlet{mygreen}[rgb]{green!40}
\colorlet{myblue}[rgb]{blue!60}
\colorlet{myred}[rgb]{red!40}

\begin{document}

\begin{landscape}
\centering
\renewcommand{\arraystretch}{1.5}
\begin{longtable}{c >{\columncolor{gray}} c l p{16cm}}
\toprule
\endfirsthead
\toprule
\endhead
\midrule\nopagebreak
\caption{Eine Beispieltabelle}\\
\endfoot
\caption[]{Eine Beispieltabelle \textsl{(Fortsetzung)}}\\
\endlastfoot
\multirow{7}{*}[-2em]{K1} &
\cellcolor{mygreen} & wfen & Das ist der Text der in dieser Spalte geschrieben und umgebrochen wird, wenn er länger ist als normal\\
& \cellcolor{mygreen}& sen & Das ist der Text der in dieser Spalte geschrieben und umgebrochen wird \\
& \cellcolor{mygreen}& sen & Das ist der Text der in dieser Spalte geschrieben und umgebrochen wird \\
& \cellcolor{mygreen}& een & Das ist der Text der in dieser Spalte geschrieben und umgebrochen wird, wenn er länger ist als normal \\
& \cellcolor{mygreen}& aen & Das ist der Text der in dieser Spalte geschrieben und umgebrochen wird \\
& \cellcolor{mygreen}& Ken & Das ist der Text der in dieser Spalte geschrieben und umgebrochen wird \\
& \cellcolor{mygreen}\multirow{-7}{*} {\begin{sideways} pe \end{sideways}}& a & Das ist der Text der in dieser Spalte geschrieben und umgebrochen wird \\
\midrule
\multirow{2}{*} {K2} &
\cellcolor{myblue} & TEXT B & Das ist der Text der in dieser Spalte geschrieben und umgebrochen wird\\
&\cellcolor{myblue}\multirow{-2}{*}[-0.2em]{\begin{sideways}anderes \end{sideways}} & TEXT B & Das ist der Text der in dieser Spalte geschrieben und umgebrochen wird \\
\midrule
\multirow{3}{*} {K3} &
\cellcolor{myred} & TEXT C & Das ist der Text der in dieser Spalte geschrieben und umgebrochen wird\\
&\cellcolor{myred} & TEXT C & Das ist der Text der in dieser Spalte geschrieben und umgebrochen wird \\
&\cellcolor{myred}\multirow{-3}{*} {\begin{sideways} drittes \end{sideways}} & TEXT C & Das ist der Text der in dieser Spalte geschrieben und umgebrochen wird \\
\midrule
\end{longtable}
\end{landscape}

\end{document}


Mit der Ausgabe habe ich jetzt folgende zwei Formatierungsprobleme:
*) Erste und zweite Spalte sind nicht vertikal zentriert
*) Einträge in der dritten Spalte lassen sich vertikal nicht auf die vierte Spalte zentrieren, wenn diese mehr als eine Zeile enthält

Ich bitte um Eure Unterstützung
lg
kbee

hakaze
10-10-2012, 11:54
Mit der Ausgabe habe ich jetzt folgende zwei Formatierungsprobleme:
*) Erste und zweite Spalte sind nicht vertikal zentriert
*) Einträge in der dritten Spalte lassen sich vertikal nicht auf die vierte Spalte zentrieren, wenn diese mehr als eine Zeile enthält
ad 1:
Siehe meine Antwort weiter oben:

Die Anleitung zu multirow (http://mirror.ctan.org/macros/latex/contrib/multirow/doc/multirow.pdf) beschreibt schon alle deine Probleme:

1. Der Algorithmus versagt beim vertikalen Zentrieren, wenn mehrzeilige Zellen von der multirow überspannt werden. In diesem Fall muss man die Ausrichtung manuell mit dem fixup-Parameter korrigieren.
ad 2:
Das lässt sich beheben, indem man m-Spalten statt p-Spalten (http://en.wikibooks.org/wiki/LaTeX/Tables#The_tabular_environment) im Tabellen-Header verwendet:
\begin{longtable}{c >{\columncolor{gray}} c l m{16cm}}

kbee
10-10-2012, 22:02
Herzlichen Dank für die Antwort.

Leider hat sich aufgrund einer Konzept-Umstellung das Layout für die Tabelle komplett geändert und soll jetzt folgendermaßen aussehen:

*) Spalte 3 beinhaltet nur 1-zeiligen Text
*) Spalte 4 beinhaltet längere Texte, die umbrechen sollen
*) Spalte 3 und Spalte 4 haben (innerhalb von K1, K2 und K3) nicht die gleiche Anzahl Zeilen
*) Die Einträge in Spalte 3 sollen möglichst vertikal "gleichverteilt" über die Höhe dargestellt werden
*) Dasselbe gilt auch für Spalte 4 (unterschiedlich lange Texte über mehrere Zeilen)
*) Die Einträge der Spalte 1 und 2 sollten, wenn die Tabelle über eine Seite hinausgeht, auf allen Seiten angedruckt werden.

Ich hab ehrlich gesagt keine Ahnung, ob so etwas in LaTeX überhaupt lösbar ist, oder ob es nicht besser wäre dem Problem mit Zeichenprogrammen zu begegnen.

Ich kann kein Minimalbeispiel angeben (außer meinen vorherigen), da ich nicht mal weiß, wo ich da ansetzen kann.

lg
kbee

hakaze
11-10-2012, 17:43
Die Frage ist ja: brauchst du überhaupt eine Tabelle oder eher ein Blockschema?

Das kann ich deinen bisherigen Angaben nicht entnehmen. Im zweiten Fall ist vielleicht ein externes Zeichenprogramm die bessere Wahl (es sei denn, du möchtest dich in TikZ/pgf einarbeiten). Dabei wirst du dir aber auch Gedanken über die Seitenumbrüche machen müssen, wenn du viel Inhalt hast.

Wenn du "nur" eine Tabelle haben willst, würde ich an deiner Stelle auf den ganzen Schnick-Schnack mit multirow und cellcolor verzichten. Deren Verwendung trägt nicht zum Informationsgewinn der Tabelle bei.

Hier mal ein Beispiel mit ausschließlich horizontalen Linien zur Gliederung:

\documentclass[fontsize=12pt, paper=a4, headinclude, twoside=true, parskip=half+, pagesize=auto]{scrreprt}

\usepackage{lmodern}
\usepackage[T1]{fontenc} % Ligaturen, richtige Umlaute im PDF
\usepackage[utf8]{inputenc} % UTF8-Kodierung für Umlaute usw
\usepackage{pdflscape}
\usepackage{rotating}
\usepackage{graphicx}
\usepackage{booktabs}
\usepackage{longtable}

\newcommand{\Textkurz}{Das ist der Text, der in dieser Spalte geschrieben und noch nicht umgebrochen wird.}
\newcommand{\Textlang}{Das ist der Text, der in dieser Spalte geschrieben und umgebrochen wird, wenn er länger als die verfübare Breite ist.}

\begin{document}

\begin{landscape}
\centering
\renewcommand{\arraystretch}{1.5}
\begin{longtable}{c c l p{16cm}}
\toprule
\endfirsthead
\toprule
\endhead
\midrule
\caption{Eine Beispieltabelle}\\
\endfoot
\caption[]{Eine Beispieltabelle \textsl{(Fortsetzung)}}\\
\endlastfoot
K1 & pe & wfen & \Textlang \\ \cmidrule{3-4}
& & sen & \Textkurz \\ \cmidrule{3-4}
& & sen & \Textkurz \\ \cmidrule{3-4}
& & een & \Textlang \\ \cmidrule{3-4}
& & aen & \Textkurz \\ \cmidrule{3-4}
& & Ken & \Textkurz \\ \cmidrule{3-4}
& & a & \Textkurz \\
\midrule
K2 & anderes & TEXT B & \Textkurz \\ \cmidrule{3-4}
& & TEXT B & \Textkurz \\
\midrule
K3 & drittes & TEXT C & \Textkurz \\ \cmidrule{3-4}
& & TEXT C & \Textkurz \\ \cmidrule{3-4}
& & TEXT C & \Textkurz \\
\midrule
K1 & pe & wfen & \Textlang \\ %\cmidrule{3-4}
% hier kommt der Umbruch
K1 & pe & sen & \Textkurz \\ %\cmidrule{3-4}
& & sen & \Textkurz \\ %\cmidrule{3-4}
& & een & \Textlang \\ %\cmidrule{3-4}
& & aen & \Textkurz \\ %\cmidrule{3-4}
& & Ken & \Textkurz \\ %\cmidrule{3-4}
& & a & \Textkurz \\
\midrule
K2 & anderes & TEXT B & \Textkurz \\ %\cmidrule{3-4}
& & TEXT B & \Textkurz \\
\midrule
K3 & drittes & TEXT C & \Textkurz \\ %\cmidrule{3-4}
& & TEXT C & \Textkurz \\ %\cmidrule{3-4}
& & TEXT C & \Textkurz \\
\bottomrule
\end{longtable}
\end{landscape}

\end{document}

Das mit der Wiederholung des Zellinhalts beim Seitenumbruch kan man vielleicht auch automatisch machen. Ich haben die Werte einfach per Hand nochmal eingefügt. Außerdem habe ich auf der 2. Seite auch auf die cmidrules verzichtet, weil die Tabelle sonst aussieht wie ein Gitterfenster ;)

kbee
11-10-2012, 20:03
Hallo hakaze,

Danke, dass Du mir als DAU so ausdauernd zur Seite stehst :).
Ich habe mich offensichtlich nicht gut ausgedrückt und habe deshalb eine Graphik angefertigt, die mein Tabellen-(Wunsch)design veranschaulichen soll.

*) Spalte 1 ist noch trivial: sie soll vertikal zentriert erscheinen und für den Fall, dass der Block K1 länger als eine Seite ist, auch auf der zweiten Seite vertikal zentriert dargestellt werden.
*) Spalte 2 ist deswegen gedreht, weil der Text länger ist und sich sowieso auf den ganzen Block bezieht, die Farben sind wichtig, da sie die Verbindung zu einer anderen Graphik herstellen.
Ab jetzt wirds kompliziert:
*) Spalte 3 hat im Block K1 7 Einträge die über die Blockhöhe (K1) vertikal gleichmäßig verteilt sein sollen (alle Einträge sind einzeilig)
*) In Spalte 4 befinden sich längere Textpassagen, die den 7 Einträgen in Spalte 3 gegenüberstehen sollen. Die Anzahl der Textblöcke ist variabel, genauso wie die Länge des Texts pro Textblock (die graue Hintergrundfarbe in der angehängten Graphik soll in der echten LaTeX-Tabelle nicht auftauchen, sie soll nur die Textblöcke besser symbolisieren).

Die blau strichlierte Linie zeigt einen möglichen Seitenumbruch an, der aber abhängig ist von Anzahl und Größe der Textblöcke in Spalte 4.

Es folgt im weiteren noch ein K2 und ein K3 Block. K2 hat z.B. nur 2 Einträge in der 3. Spalte.

Der Aufwand für TikZ/pgf erscheint mir sehr hoch, vor allem in Anbetracht des Umstandes, dass ich exakt diese eine(!) Tabelle damit realisieren würde.

Mit einem Graphikprogramm ist es auch nicht ganz trivial, da ich die einzelnen "Teiltabellen" quasi "manuell" auseinanderschneiden müßte, um dann auf den einzelnen Seiten Teiltabellen einfügen zu können. Ändert sich irgendwas im Text in der Spalte 4, kann ich alles über den Haufen schmeißen und neu zeichnen.
Außerdem würde ich eine LaTeX-interne Lösung favorisieren, da sie einfach besser zum Gesamterscheinungsbild und Layout passt.

So, jetzt hab ich Dir die Ohren (Augen) vollgequasselt. Ich hoffe Du kannst einigermaßen nachvollziehen, wo meine Vorstellungen/Probleme liegen und bin für jeden Tipp dankbar.

lg
kbee