如何对齐旋转的表格单元格

如何对齐旋转的表格单元格

我需要帮助来对齐旋转的单元格文本。问题是我事先不知道表格中出现的文本,所以我不能使用类似 的东西\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}

在此处输入图片描述

我希望在表格单元格的底部有单词“text”和“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}

在此处输入图片描述

相关内容