
Ich brauche Hilfe beim Ausrichten von gedrehtem Zellentext. Das Problem ist, dass ich den Text, der in der Tabelle erscheinen soll, nicht im Voraus kenne. Daher kann ich nichts wie verwenden \settowidth\rotheadsize{text}
.
Das ist, was ich bisher habe.
\documentclass{article}
\usepackage{graphicx}
\usepackage{makecell, rotating}
\renewcommand\theadalign{lb}
\begin{document}
\small
\noindent\begin{tabular}{@{}|p{2.5cm}|l|p{2cm}|l|l|p{16mm}|p{13mm}|@{}}
\hline
A & \rothead{text} & a long text that spans over multiple lines & b & c & d & \rothead{efg} \\
\hline
\multicolumn{7}{|c|}{sometext} \tabularnewline
\hline
\end{tabular}
\end{document}
Ich hätte gerne die Wörter „Text“ und „efg“ unten in der Tabellenzelle, sodass sie gut mit der letzten Grundlinie von „ein langer Text … mehrere Zeilen“ übereinstimmen.
Ich bin nicht sicher, ob das wichtig ist: Ich verwende es tabularx
für die Tabellen.
Antwort1
Wenn Sie alles (z. B. auch die A
) unten haben möchten, sollte die Verwendung des Spaltentyps [b] für die lange Spalte funktionieren. Wenn sie oben bleiben sollen, müssen Sie wahrscheinlich die große Spalte messen, z. B. so:
\documentclass{article}
\usepackage{graphicx}
\usepackage{makecell, rotating}
\renewcommand\theadalign{lb}
\usepackage{zref-savepos}
\begin{document}
\small
\newlength\startstopdistance
\startstopdistance=\dimexpr \zposy{stop}sp-\zposy{start}sp+\baselineskip+\arrayrulewidth\relax
\noindent\begin{tabular}{@{}|p{2.5cm}|l|p{2cm}|l|l|p{16mm}|p{13mm}|@{}}
\hline\noalign{\zsavepos{start}}
A & \raisebox{\startstopdistance}[0pt][0pt]{\rotatebox{90}{text}}& a long text that spans over multiple lines & b & c & d &
\raisebox{\startstopdistance}[0pt][0pt]{\rotatebox{90}{efg}} \\
\hline\noalign{\zsavepos{stop}}
\multicolumn{7}{|c|}{sometext} \tabularnewline
\hline
\end{tabular}
\end{document}