Seite 1 von 1
Tabelle mit gedrehtem Inhalt in richtiger Länge darstellen
Verfasst: Mi 10. Feb 2016, 21:50
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}
Verfasst: Do 11. Feb 2016, 08:22
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}
Verfasst: Do 11. Feb 2016, 11:30
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
Verfasst: Do 11. Feb 2016, 11:45
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.
Verfasst: Fr 12. Feb 2016, 00:17
von Phawi
haha

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