我经常需要将表头分成几行,但我不知道如何将它们排版得美观一些。
我发现最好的方法是使用 \pbox (如下例所示)来获得右对齐的换行文本。
但是我怎样才能使所有表格标题单元格对齐到该行的底部?
\documentclass{article}
\usepackage{booktabs,pbox}
\begin{document}
\begin{table}
\centering
\begin{tabular}{l*{3}{r}}
\toprule
1 & \pbox{1.5cm}{\raggedleft first column contents} & \pbox{1.5cm}{\raggedleft second column contents even longer} & third\\
\midrule
2 & 10 & 15 & 10\\
\bottomrule
\end{tabular}
\end{table}
\end{document}
答案1
使用 可以轻松实现这一点makecell
:它的\thead
和\makecell
命令允许在单元格内换行以及对单元格进行常见格式设置。因此,您可以自行决定换行的位置:
\documentclass{article}
\usepackage{booktabs,pbox}
\usepackage{makecell}
\renewcommand\theadalign{rb}
\begin{document}
\begin{table}
\centering
\begin{tabular}{l*{3}{r}}
\toprule
1 & \thead{first column\\ contents} & \thead{second column \\ contents\\ even longer} & \thead{third} \\
\midrule
2 & 10 & 15 & 10\\
\bottomrule
\end{tabular}
\end{table}
\end{document}
答案2
我认为\pbox
它真的没有太大帮助,我只是\parbox
在这里使用它b
来对齐其底行。
\documentclass{article}
\usepackage{booktabs,array}
\begin{document}
\begin{table}
\centering
\begin{tabular}{l*{3}{r}}
\toprule
1 &
\parbox[b]{1.5cm}{\raggedleft first column contents} &
\parbox[b]{1.5cm}{\raggedleft second column contents even longer} &
third\\
\midrule
2 & 10 & 15 & 10\\
\bottomrule
\end{tabular}
\end{table}
\end{document}