我想将表格中一个列标题的两行标签旋转约 60°。我尝试使用\rotatebox
一些示例所示的方法。但是,这个宏会旋转整个框,而不会将文本的第二行稍微推一点,以使两行从相同的水平对齐开始。
\documentclass{article}
\usepackage{graphicx}
\usepackage{booktabs}
\begin{document}
\begin{tabular}{lll}
Thing & \rotatebox{60}{Height} &
\rotatebox{60}{\parbox{6em}{Width \\ (end to end)}} \\
\midrule
House & 10m & 10m \\
Car & 1m & 5m \\
Crane & 15m & 20m \\
\bottomrule
\end{tabular}
\end{document}
我仍然可以通过在第二行的开头手动添加一个空格(例如 a\quad
或 a ~
)来解决这个问题……但这并不是很美观,并且在修改文本或更多行时可能会很烦人。
是否有其他方法可以旋转文本,同时保持其沿表格垂直对齐\midrule
?
答案1
虽然并不完美,但由于字母的几何形状,我建议在多行列头的情况下旋转每行文本。此外,我认为最后两列应该右对齐,但列头除外,列头应该左对齐。这导致使用将\rlap
列头保持在下方单元格上方,并使用以下方式补偿上方文本的间距\addlinespace
:
\documentclass{article}
\usepackage{graphicx}
\usepackage{booktabs}
\begin{document}
Some text. Some other text. Some more text. Some more text.
\begin{tabular}{lrr}
\addlinespace[2ex ]
Thing & \multicolumn{1}{l}{\,\,\rlap{\rotatebox{60}{Height}}} &
\multicolumn{1}{l}{ \rlap{\rotatebox[origin = lb]{60}{Width}\hspace{-0.75em}\rotatebox[origin = lb]{60}{(end to end)}}} \\
\midrule
House & 10m & 10m \\
Car & 1m & 5m \\
Crane & 15m & 20m \\
\bottomrule
\end{tabular}
\end{document}