
Preciso de ajuda para alinhar o texto da célula girada. O problema é que não sei antecipadamente o texto que aparece na tabela, então não posso usar algo como \settowidth\rotheadsize{text}
.
Isso é o que tenho até agora.
\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}
Eu gostaria de ter as palavras 'texto' e 'efg' na parte inferior da célula da tabela para que ela se alinhe perfeitamente com a última linha de base de “um texto longo... múltiplas linhas”.
Não tenho certeza se isso é importante: eu uso tabularx
para as tabelas.
Responder1
Se você quiser tudo (por exemplo, também o A
) na parte inferior, usar o tipo de coluna [b] para a coluna longa deve funcionar. Se eles permanecerem no topo, você provavelmente terá que medir a coluna grande, por exemplo, assim:
\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}