最后一列上的 `>{\centering}` 弄乱了表格

最后一列上的 `>{\centering}` 弄乱了表格

我希望代码能给我一个宽度固定、水平居中的表格。我曾经>{\centering}在表格定义中这样做过,但将其添加到最后一列会完全改变表格并引发一堆错误(包括 \hline 处于错误的位置)。我做错了什么/有更好的方法吗?

\documentclass{article}
\usepackage{array,booktabs}% http://ctan.org/pkg/{array,booktabs}

\begin{document}

\begin{table}[htbp]
\center
\caption{a table}
\centering
%\hskip-2cm \begin{tabular}{p{0.9cm}| cccccc}
\begin{center}
\small
\begin{tabular}
{>{\centering}m{1.3cm}| >{\centering}p{2.14cm}>{\centering}p{2.14cm}>{\centering}p{2.13cm}>{\centering}p{2.13cm}p{2.13cm}}
Angle ($ ^{\circ}$) \newline $\dot{m}$ (g/m/s)   & 0 & 15 & 30 & 45 & 60 \\

\hline
\\

  70 
& 1
& 1 
& 1
& 1
& 1 \\
 

  70 
& 1
& 1 
& 1
& 1
& 1 \\



  70 
& 1
& 1 
& 1
& 1
& 1 \\
 \hline
\end{tabular}
\end{center}
\end{table}


\end{document}

centering这是最后一列 之后的图像在此处输入图片描述

答案1

问题是>{\centering}p{2.13cm}最后一列的含义发生了变化\\,因此您要么使用\tabularnewline,要么执行>{\centering\arraybackslash}p{2.13cm}

但是,由于除了左上角的单元格之外,其他单元格似乎都不需要换行,因此使用起来更简单

w{c}{2.14cm}

指定具有中心对齐的固定宽度列。

另一方面,您必须猜测宽度才能适合给定的文本宽度。所以我建议用另一种方法来处理表格。

\documentclass{article}
\usepackage{array,booktabs}% http://ctan.org/pkg/{array,booktabs}

\newcommand{\smashedcell}[1]{\smash{\begin{tabular}[t]{@{}c@{}}#1\end{tabular}}}

\begin{document}

\begin{table}[htbp]
\centering\small

\caption{a table}

\begin{tabular*}{\textwidth}{ @{\extracolsep{\fill}} *{6}{c} @{} }
\toprule
\smashedcell{$\dot{m}$ \\ (g/m/s)} & \multicolumn{5}{c}{Angle ($^{\circ}$)} \\
\cmidrule{2-6}
& 0 & 15 & 30 & 45 & 60 \\
\midrule
70 & 1 & 1 & 1 & 1 & 1 \\
70 & 1 & 1 & 1 & 1 & 1 \\
70 & 1 & 1 & 1 & 1 & 1 \\
\bottomrule
\end{tabular*}

\end{table}

在此处输入图片描述

请注意,只需一个\centering声明就足够了。不要使用\center,也不要使用center内的环境table,因为它们会增加垂直空间(前者永远不应使用)。

答案2

最好定义一个newcolumn,而不是将每一列都指定为>{\centering}m{1.3cm},并包含\arraybackslash命令,修改后的结果MWE是:

\documentclass{article}
\usepackage{array,booktabs}% http://ctan.org/pkg/{array,booktabs}

\begin{document}

\newcolumntype{C}[1]{>{\centering\arraybackslash}p{#1}}%

\begin{table}[htbp]
\center
\caption{a table}
\centering
%\hskip-2cm \begin{tabular}{p{0.9cm}| cccccc}
\begin{center}
\small
\begin{tabular}{C{1.3cm}| C{2.14cm}C{2.14cm}C{2.13cm}c C{2.13cm}}
Angle ($ ^{\circ}$) \newline $\dot{m}$ (g/m/s)   & 0 & 15 & 30 & 45 & 60 \\

\hline
\\

  70 
& 1
& 1 
& 1
& 1
& 1 \\
 

  70 
& 1
& 1 
& 1
& 1
& 1 \\



  70 
& 1
& 1 
& 1
& 1
& 1 \\
 \hline
\end{tabular}
\end{center}
\end{table}


\end{document}

输出

在此处输入图片描述

相关内容