我有下表:
\documentclass[a4paper,11pt]{report}
\usepackage[english]{babel}
\usepackage{booktabs}
\begin{document}
\begin{tabular}{|cc|ccc|}
\hline
\multicolumn{2}{|c|}{Parameters} & \multicolumn{3}{|c|}{This is some long text about precision and recall}\\
\hline
n & p &S& P & R\\
\hline
3000 & 0.5 & 3000 & 0.01 & 1.00\\
3000 & 0.1 & 3000 & 0.01 & 1.00\\
3000 & 0.008 & 30 & 1.00 & 1.00\\
\hline
\end{tabular}
\end{document}
如您所见,变量 S、P 和 R 未正确对齐。我希望它们各自占用相同的空间。我该怎么做?
答案1
这是一种可能的情况,其中每列都由样式定义P
(因此array
需要包),其中假设为 2cm;然后 3 列的宽度由dimexpr
6cm 从 3 x 2cm 中得出的位置决定。
更新:OP 尝试了m{1cm}
,所以 6cm 应该改为 3cm。
代码
\documentclass[border=5pt]{standalone}%[a4paper,11pt]{report}
\usepackage[english]{babel}
\usepackage{booktabs,array,multirow}
\newcolumntype{M}{>{\centering\arraybackslash}m{1cm}}
\newcolumntype{P}{>{\raggedright\arraybackslash}p{2cm}}
\begin{document}
\begin{tabular}{|cc|*{3}{M}|}
\hline
\multicolumn{2}{|c|}{\multirow{2}{*} {Parameters}} & \multicolumn{3}{p{\dimexpr 3cm+2\arrayrulewidth+4\tabcolsep\relax}|}{This is some long text about precision and recall}\\
\hline
n & p &S& P & R\\
\hline
3000 & 0.5 & 3000 & 0.01 & 1.00\\
3000 & 0.1 & 3000 & 0.01 & 1.00\\
3000 & 0.008 & 30 & 1.00 & 1.00\\
\hline
\end{tabular}
\end{document}
因此,如果假设 S、P、R 列为 3cm,则应将 6cm 更改为 9cm。
代码
\documentclass[border=5pt]{standalone}%[a4paper,11pt]{report}
\usepackage[english]{babel}
\usepackage{booktabs,array}
\newcolumntype{P}{>{\raggedright\arraybackslash}p{2cm}}
\begin{document}
\begin{tabular}{|cc|*{3}{P}|}
\hline
\multicolumn{2}{|c|}{Parameters} & \multicolumn{3}{p{\dimexpr 6cm+2\arrayrulewidth+4\tabcolsep\relax}|}{This is some long text about precision and recall}\\
\hline
n & p &S& P & R\\
\hline
3000 & 0.5 & 3000 & 0.01 & 1.00\\
3000 & 0.1 & 3000 & 0.01 & 1.00\\
3000 & 0.008 & 30 & 1.00 & 1.00\\
\hline
\end{tabular}
\end{document}
答案2
我是这样实现它的:
\documentclass[a4paper,11pt]{report}
\usepackage[english]{babel}
\usepackage{array}
\usepackage{booktabs}
\newcolumntype{C}[1]{>{\centering\arraybackslash}m{#1}}
\begin{document}
\begin{tabular}{C{1.5cm}C{1.5cm}C{2.5cm}C{2.5cm}C{2.5cm}}
\toprule
\multicolumn{2}{c}{Parameters} & \multicolumn{3}{c}{This is some long text about precision and recall}\\
\midrule
n & p & S& P & R\\
\midrule
3000 & 0.5 & 3000 & 0.01 & 1.00\\
3000 & 0.1 & 3000 & 0.01 & 1.00\\
3000 & 0.008 & 30 & 1.00 & 1.00\\
\bottomrule
\end{tabular}
\end{document}