我正在尝试制作包含一些数字数据的简单表格。我使用了 booktabs 包,总体来说表格看起来非常好,但我认为最好根据最宽的列让列的宽度相等。是否可以让 latex 自动均匀拉伸这些列?
谢谢你的帮助。
\usepackage{tikz}
\usepackage{booktabs}
\begin{document}
\begin{table}[ht]
\centering
\begin{tabular}[t]{ccccc}
\toprule
\# & \textsc{Precision} & \textsc{Recall} & \textsc{F1} &\textsc{MAP} \\
\midrule
0 & 0.0117 & 0.6838 & 0.0230 & 0.0112 \\
1 & 0.0099 & 0.7084 & 0.0195 & 0.0109 \\
2 & 0.0095 & 0.7096 & 0.0187 & 0.0105 \\
3 & 0.0088 & 0.7215 & 0.0174 & 0.0101 \\
4 & 0.0085 & 0.7401 & 0.0168 & 0.0096 \\
5 & 0.0080 & 0.7467 & 0.0158 & 0.0087 \\
6 & 0.0079 & 0.7571 & 0.0156 & 0.0088 \\
7 & 0.0073 & 0.7794 & 0.0145 & 0.0087 \\
8 & 0.0071 & 0.7902 & 0.0141 & 0.0085 \\
9 & 0.0069 & 0.7981 & 0.0137 & 0.0084 \\
10 & 0.0065 & 0.7990 & 0.0129 & 0.0078 \\
\bottomrule
\end{tabular}
\end{table}
\end{document}
答案1
array
在和包的帮助下,calc
您可以实现以下目标:
\documentclass{article}
\usepackage{array}
\usepackage{calc}
\usepackage{booktabs}
\begin{document}
\begin{table}[ht]
\centering
\begin{tabular}[t]{c*{4}{w{c}{\widthof{\textsc{Precision}}}}}
\toprule
\# & \textsc{Precision} & \textsc{Recall} & \textsc{F1} &\textsc{MAP} \\
\midrule
0 & 0.0117 & 0.6838 & 0.0230 & 0.0112 \\
1 & 0.0099 & 0.7084 & 0.0195 & 0.0109 \\
2 & 0.0095 & 0.7096 & 0.0187 & 0.0105 \\
3 & 0.0088 & 0.7215 & 0.0174 & 0.0101 \\
4 & 0.0085 & 0.7401 & 0.0168 & 0.0096 \\
5 & 0.0080 & 0.7467 & 0.0158 & 0.0087 \\
6 & 0.0079 & 0.7571 & 0.0156 & 0.0088 \\
7 & 0.0073 & 0.7794 & 0.0145 & 0.0087 \\
8 & 0.0071 & 0.7902 & 0.0141 & 0.0085 \\
9 & 0.0069 & 0.7981 & 0.0137 & 0.0084 \\
10 & 0.0065 & 0.7990 & 0.0129 & 0.0078 \\
\bottomrule
\end{tabular}
\end{table}
\end{document}
答案2
除了@leandriis 的建议之外,我还建议进行以下布局更改:
- 拆除侧轴承IE. 表格序言中的@{}
- 减少
\tabcolsep
- 标题中的所有字母
smallcaps
- 右对齐列
- 按每四行之间的小间距对行进行分组。
\documentclass{article}
\usepackage{array}
\usepackage{calc}
\usepackage{booktabs}
\setlength{\tabcolsep}{1.5pt}
\newcommand{\cc}[1]{\multicolumn{1}{r}{\textsc{\MakeLowercase{#1}}}}
\begin{document}
\begin{table}[ht]
\centering
\begin{tabular}[t]{@{}c*{4}{w{r}{\widthof{\textsc{Precision}}}}@{}}
\toprule
\# & \cc{Precision} & \cc{Recall} & F1 &\cc{MAP} \\
\midrule
0 & 0.0117 & 0.6838 & 0.0230 & 0.0112 \\
1 & 0.0099 & 0.7084 & 0.0195 & 0.0109 \\
2 & 0.0095 & 0.7096 & 0.0187 & 0.0105 \\
3 & 0.0088 & 0.7215 & 0.0174 & 0.0101 \\[0.25\normalbaselineskip]
4 & 0.0085 & 0.7401 & 0.0168 & 0.0096 \\
5 & 0.0080 & 0.7467 & 0.0158 & 0.0087 \\
6 & 0.0079 & 0.7571 & 0.0156 & 0.0088 \\
7 & 0.0073 & 0.7794 & 0.0145 & 0.0087 \\[0.25\normalbaselineskip]
8 & 0.0071 & 0.7902 & 0.0141 & 0.0085 \\
9 & 0.0069 & 0.7981 & 0.0137 & 0.0084 \\
10 & 0.0065 & 0.7990 & 0.0129 & 0.0078 \\
\bottomrule
\end{tabular}
\end{table}
\end{document}