So richten Sie gedrehte Tabellenzellen aus

So richten Sie gedrehte Tabellenzellen aus

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}

Bildbeschreibung hier eingeben

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 tabularxfü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}

Bildbeschreibung hier eingeben

verwandte Informationen