跳转到正文
EasyLaTeXDocs

基础表格、跨列与长表格

使用 tabular 排列单页表格,使用 booktabs 绘制简洁横线;表格超过一页时使用 longtable。表格内容应服务于比较和查阅,而不是把段落文字硬塞进网格。

EasyLaTeX 编译器设置:XeLaTeX + ctex;推荐加载 booktabs。跨页表格需要 longtable。

最小表格

tabular 的列格式放在花括号内:l 左对齐、c 居中、r 右对齐。列之间用 & 分隔,行末用 \\ 结束:

LaTeX
\begin{tabular}{lcr}
  名称 & 类别 & 数值 \\
  样本 A & 对照组 & 12.3 \\
  样本 B & 实验组 & 15.8 \\
\end{tabular}

数字列通常右对齐,便于比较小数点附近的数值。复杂数值对齐可在后续专题使用专门工具;基础表格先保证列含义清楚。

更清晰的横线

加载 booktabs 后,使用 \toprule、\midrule 和 \bottomrule:

LaTeX
\usepackage{booktabs}

\begin{tabular}{lcr}
  \toprule
  名称 & 类别 & 数值 \\
  \midrule
  样本 A & 对照组 & 12.3 \\
  样本 B & 实验组 & 15.8 \\
  \bottomrule
\end{tabular}

booktabs 的横线留白和粗细经过设计。正文表格通常不需要竖线,也不应在每一行之间画横线;过多网格会分散读者对数据的注意力。

对齐与固定宽度列

p{宽度} 创建固定宽度、可自动换行的段落列:

LaTeX
\begin{tabular}{lp{7cm}r}
  \toprule
  编号 & 说明 & 分数 \\
  \midrule
  A1 & 这是一段较长的说明,会在指定宽度内自动换行。 & 95 \\
  \bottomrule
\end{tabular}

表格整体过宽时,先缩短表头、让说明列换行或拆分表格。不要默认使用 \resizebox 把所有文字缩小到难以阅读。

跨列单元格

\multicolumn{列数}{对齐}{内容} 可合并多列:

LaTeX
\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 浮动体里:

LaTeX
\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 环境。两者的分页机制不同,不能嵌套。

完整示例

LaTeX
\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}
基础表格、跨列与长表格 | EasyLaTeX | EasyLaTeX