Как выровнять повернутые ячейки таблицы

Как выровнять повернутые ячейки таблицы

Мне нужна помощь с выравниванием текста в повернутой ячейке. Проблема в том, что я заранее не знаю текст, который появится в таблице, поэтому я не могу использовать что-то вроде \settowidth\rotheadsize{text}.

Вот что у меня есть на данный момент.

\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}

введите описание изображения здесь

Мне бы хотелось, чтобы слова «текст» и «efg» располагались внизу ячейки таблицы, чтобы они хорошо выровнялись с последней базовой линией «длинного текста ... несколько строк».

Не уверен, важно ли это: я использую tabularxдля таблиц.

решение1

Если вы хотите, чтобы все (например, также A) было внизу, используйте тип столбца [b] для длинного столбца, это должно сработать. Если они должны остаться наверху, вам, вероятно, придется измерить большой столбец, например, так:

\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}

введите описание изображения здесь

Связанный контент