基础表格、跨列与长表格
使用 tabular 排列单页表格,使用 booktabs 绘制简洁横线;表格超过一页时使用 longtable。表格内容应服务于比较和查阅,而不是把段落文字硬塞进网格。
EasyLaTeX 编译器设置:XeLaTeX + ctex;推荐加载 booktabs。跨页表格需要 longtable。
最小表格
tabular 的列格式放在花括号内:l 左对齐、c 居中、r 右对齐。列之间用 & 分隔,行末用 \\ 结束:
\begin{tabular}{lcr}
名称 & 类别 & 数值 \\
样本 A & 对照组 & 12.3 \\
样本 B & 实验组 & 15.8 \\
\end{tabular}
数字列通常右对齐,便于比较小数点附近的数值。复杂数值对齐可在后续专题使用专门工具;基础表格先保证列含义清楚。
更清晰的横线
加载 booktabs 后,使用 \toprule、\midrule 和 \bottomrule:
\usepackage{booktabs}
\begin{tabular}{lcr}
\toprule
名称 & 类别 & 数值 \\
\midrule
样本 A & 对照组 & 12.3 \\
样本 B & 实验组 & 15.8 \\
\bottomrule
\end{tabular}
booktabs 的横线留白和粗细经过设计。正文表格通常不需要竖线,也不应在每一行之间画横线;过多网格会分散读者对数据的注意力。
对齐与固定宽度列
p{宽度} 创建固定宽度、可自动换行的段落列:
\begin{tabular}{lp{7cm}r}
\toprule
编号 & 说明 & 分数 \\
\midrule
A1 & 这是一段较长的说明,会在指定宽度内自动换行。 & 95 \\
\bottomrule
\end{tabular}
表格整体过宽时,先缩短表头、让说明列换行或拆分表格。不要默认使用 \resizebox 把所有文字缩小到难以阅读。
跨列单元格
\multicolumn{列数}{对齐}{内容} 可合并多列:
\begin{tabular}{lcc}
\toprule
\multicolumn{1}{c}{样本} & \multicolumn{2}{c}{测量结果} \\
\cmidrule(lr){2-3}
名称 & 第一次 & 第二次 \\
\midrule
A & 12.3 & 12.6 \\
B & 15.8 & 16.1 \\
\bottomrule
\end{tabular}
\cmidrule(lr){2-3} 为第 2 至 3 列绘制短横线,适合分组表头。
跨页长表格
tabular 不能自动分页。表格超过一页时,使用 longtable,且不要再包在 table 浮动体里:
\usepackage{longtable}
\usepackage{booktabs}
\begin{longtable}{llr}
\caption{样本测量记录}\label{tab:measurements} \\
\toprule
编号 & 日期 & 数值 \\
\midrule
\endfirsthead
\toprule
编号 & 日期 & 数值 \\
\midrule
\endhead
A1 & 2026-07-01 & 12.3 \\
A2 & 2026-07-02 & 12.6 \\
% 继续添加行;表格会在页面边界自动分页。
\bottomrule
\end{longtable}
\endfirsthead 前定义第一页表头,\endhead 前定义续页表头。长表格会自行分页,因此不适合 figure 或 table 的浮动逻辑。
常见问题
Extra alignment tab has been changed to \cr
某一行的 & 数量与列数不匹配。三列表格每行应有两个 &;检查是否漏写、误写,或单元格文本中出现了未转义的 &。
表格超出页边距
先让长文本列使用 p{...},简化表头,或拆分为两张逻辑清晰的表格。横向页面或缩放是最后考虑的方案。
长表格不显示或位置异常
确认没有将 longtable 放进 table 环境。两者的分页机制不同,不能嵌套。
完整示例
\documentclass[UTF8,a4paper,12pt]{ctexart}
\usepackage{booktabs}
\begin{document}
\begin{table}[tbp]
\centering
\caption{样本测量结果}
\label{tab:results}
\begin{tabular}{lcr}
\toprule
名称 & 类别 & 数值 \\
\midrule
样本 A & 对照组 & 12.3 \\
样本 B & 实验组 & 15.8 \\
\bottomrule
\end{tabular}
\end{table}
表 \ref{tab:results} 汇总了两个样本的测量结果。
\end{document}