Tabelle mit gedrehtem Inhalt in richtiger Länge darstellen

Tabellen und Grafiken erstellen und anordnen


Phawi
Forum-Anfänger
Forum-Anfänger
Beiträge: 13
Registriert: So 8. Nov 2015, 15:59

Tabelle mit gedrehtem Inhalt in richtiger Länge darstellen

Beitrag von Phawi »

Hey Liebe Leute,
ich habe eine Tabelle, welche einen gedrehten Text enthält. Funktioniert soweit ganz gut :)
nur schießt der Text leider über die Zelle hinaus, habe schon mit \rule rumprobiert, aber damit irgendwie nichts anständiges hin bekommen. Jemand eine Idee?

Wär euch unendlich dankbar!

Gruß
Philipp


\documentclass{scrartcl} 
\usepackage{multirow} 
\usepackage{rotating}
\newcommand\tabrotate[1]{\begin{turn}{90}\rlap{#1}\end{turn}}



\begin{document} 



\begin{table}[]
\centering
\caption{My caption}
\label{my-label}
\begin{tabular}{ll|l|l|l|l|}
\cline{3-6}
                                                                       &                                         & \multicolumn{4}{l|}{Titel oben}                                                                                                                                          \\ \cline{3-6} 
                                                                       &                                         & 1 & 2 & 3 & 4 \\ \hline
  \multicolumn{1}{|l|}{\multirow{4}{*}{\tabrotate{\bfseries Titel links wird leider zu lang dargestellt}}} & 1      &                                  &                                                    &                                                    &                                             \\ \cline{2-6} 
\multicolumn{1}{|l|}{}                                                 & 2  &                                  &                                                    &                                                    &                                             \\ \cline{2-6} 
\multicolumn{1}{|l|}{}                                                 & 3 &                                  &                                                    &                                                    &                                             \\ \cline{2-6} 
\multicolumn{1}{|l|}{}                                                 & 4        &                                  &                                                    &                                                    &                                             \\ \hline
\end{tabular}
\end{table}





\end{document}

Noch so einer

Beitrag von Noch so einer »

Das hast Du selbst so eingestellt. Mit \rlap sagst Du nämlich, dass der Text rechts so lang werden darf wie er will und auch nicht umbrochen werden soll. Wenn Du einen Umbruch im Text erlauben willst, dann musst Du eine Box verwenden, die einen solchen Umbruch explizit erlaubt. Außerdem musst Du dann sagen, wie breit diese Box (maximal) sein soll. Dafür bietet sich varwidth an:
\documentclass[captions=tableabove]{scrartcl}% KOMA-Script sagen, dass Tabellenüberschriften verwendet werden sollen! 
\usepackage{multirow} 
\usepackage{graphicx}% für \rotatebox
\usepackage{varwidth}
\newcommand\tabrotate[2][3]{\rotatebox{90}{\begin{varwidth}{#1\normalbaselineskip}#2\end{varwidth}}}



\begin{document} 

\begin{table}[]
\centering
\caption{My caption}
\label{my-label}
\begin{tabular}{ll|l|l|l|l|}
\cline{3-6}
                                                                       &                                         & \multicolumn{4}{l|}{Titel oben}                                                                                                                                          \\ \cline{3-6} 
                                                                       &                                         & 1 & 2 & 3 & 4 \\ \hline
  \multicolumn{1}{|l|}{\multirow{4}{*}{\tabrotate{\bfseries Titel links wird leider zu lang dar\-ge\-stellt}}} & 1      &                                  &                                                    &                                                    &                                             \\ \cline{2-6} 
\multicolumn{1}{|l|}{}                                                 & 2  &                                  &                                                    &                                                    &                                             \\ \cline{2-6} 
\multicolumn{1}{|l|}{}                                                 & 3 &                                  &                                                    &                                                    &                                             \\ \cline{2-6} 
\multicolumn{1}{|l|}{}                                                 & 4        &                                  &                                                    &                                                    &                                             \\ \hline
\end{tabular}
\end{table}

\end{document}
Übrigens profitieren Tabellen meist ganz enorm davon, wenn man die ganzen vertikalen Linien verlässt und auch die horizontalen Linien auf ein Mindestmaß reduziert. Da die Hauptleserichtung einer Tabelle nämlich horizontal ist und vertikale Linien diese Hauptleserichtung extrem stören, sind Tabellen ohne vertikale Linien normalerweise besser lesbar. Aus demselben Grund sollte man vertikalen Text auf ein absolut notwendiges Maß reduzieren und möglichst nur im Tabellenkopf aber nicht innerhalb der Tabellenzeilen verwenden – auch nicht am Anfang der Tabellenzeilen.

Daher:
\documentclass[captions=tableabove]{scrartcl} 
\usepackage{multirow} 
\usepackage{booktabs}

\begin{document} 

\begin{table}
\centering
\caption{My caption}
\label{my-label}
\begin{tabular}{llllll}
 & & \multicolumn{4}{l}{Titel oben}\\
 & & 1 & 2 & 3 & 4 \\ 
\midrule
\multirow{4}{5em}{Titel links wird leider zu lang dar\-ge\-stellt} & 1 & & &\\
 & 2 & & & & \\
 & 3 & & & & \\
 & 4 & & & & \\
\bottomrule
\end{tabular}
\end{table}

\end{document}

Phawi
Forum-Anfänger
Forum-Anfänger
Beiträge: 13
Registriert: So 8. Nov 2015, 15:59

Beitrag von Phawi »

Hey noch so einer,
vielen lieben dank schonmal für deine Hilfe!

ich würde bei dem gedrehten Titel bleiben, da meine Tabelle sonst zu breit wird.

aber gibt es nicht eine Möglichkeit, dass der Titel nicht umgebrochen wird?
also meine Vorstellung war eigentlich so wie in meinem ersten Beispiel. Der Titel wird in einer Reihe durchgeschrieben, nur dass die Zellen rechts davon entsprechende länger werden dass das ins Feld passt.

Gruß
Phawi

Noch so einer

Beitrag von Noch so einer »

Verstehe ich nicht. Was nützt es Dir wenn die Zellen rechts länger werden??? Oder meinst Du, dass die Zeilen höher werden sollen? Automatisch bekommst Du das nicht. Du kannst aber beispielsweise \arraystretch auf einen entsprechend hohen Wert einstellen. Bei der im Beispiel benötigten Höhe wird die schon jetzt hässliche Tabelle dann natürlich maximal hässlich.

Phawi
Forum-Anfänger
Forum-Anfänger
Beiträge: 13
Registriert: So 8. Nov 2015, 15:59

Beitrag von Phawi »

haha :D
ich werde deine Bedenken auf jeden Fall bei einer Suche nach alternativen berücksichtigen, ansonsten danke für den Tipp mit dem \arraystretch

Antworten