Skip to content

LaTeX 表格

1 基本表格结构

1.1 最简单的表格

使用 tabular 环境创建基本表格:

latex
\begin{tabular}{|c|c|c|}
\hline
列1 & 列2 & 列3 \\ \hline
A & B & C \\ \hline
D & E & F \\ \hline
\end{tabular}
  • | 表示竖线
  • c 表示居中对齐
  • & 分隔列
  • \\ 换行
  • \hline 添加水平线

1.2 对齐方式

  • l 左对齐
  • c 居中对齐
  • r 右对齐
  • p{宽度} 固定宽度并自动换行

示例:

latex
\begin{tabular}{|l|c|r|}
\hline
左对齐 & 居中对齐 & 右对齐 \\ \hline
A & B & C \\ \hline
D & E & F \\ \hline
\end{tabular}

2 表格边框控制

2.1 无边框表格

latex
\begin{tabular}{ccc}
A & B & C \\
D & E & F \\
\end{tabular}

2.2 部分边框

latex
\begin{tabular}{|l|c|r|}
\hline
&&\\ \hline
A & B & C \\ 
D & E & F \\ \hline
\end{tabular}

上面例子只在首尾添加水平线

2.3 更精细的边框控制

使用 array 包的 \cline 命令:

latex
\usepackage{array}
...
\begin{tabular}{|l|c|r|}
\hline
&&\\ \hline
A & B & C \\ \cline{2-3}
D & E & F \\ \hline
\end{tabular}

3 合并单元格

3.1 横向合并

\multicolumn

latex
\begin{tabular}{|c|c|c|}
\hline
\multicolumn{2}{|c|}{合并两列} & 列3 \\ \hline
A & B & C \\ \hline
D & E & F \\ \hline
\end{tabular}

3.2 纵向合并

\multirow{行数}{宽度}{内容}

需要 multirow 包:

latex
\usepackage{multirow}
...
\begin{tabular}{|c|c|c|}
\hline
\multirow{2}{*}{合并两行} & 列2 & 列3 \\ \cline{2-3}
 & B & C \\ \hline
D & E & F \\ \hline
\end{tabular}

4 表格尺寸控制

4.1 固定列宽

latex
\begin{tabular}{|p{2cm}|p{3cm}|p{1.5cm}|}
\hline
& 较长文本会自动换行 & 很短 \\ \hline
A & B & C \\ \hline
\end{tabular}

4.2 表格整体宽度

使用 tabularx 包:

latex
\usepackage{tabularx}
...
\begin{tabularx}{\textwidth}{|X|X|X|}
\hline
自动调整宽度 & 自动调整宽度 & 自动调整宽度 \\ \hline
A & B & C \\ \hline
\end{tabularx}

X 表示自动调整宽度的列

5 长表格处理

对于跨页表格,使用 longtable 包:

latex
\usepackage{longtable}
...
\begin{longtable}{|c|c|c|}
\hline
\textbf{列1} & \textbf{列2} & \textbf{列3} \\ \hline
\endhead % 表头重复
\hline
\multicolumn{3}{|r|}{\small 续下页} \\ \hline
\endfoot % 页脚
\hline
\endlastfoot % 最后一页页脚
A & B & C \\ \hline
D & E & F \\ \hline
... % 可以有很多行
\end{longtable}

6 表格样式美化

6.1 使用 booktabs

latex
\usepackage{booktabs}
...
\begin{tabular}{ccc}
\toprule
列1 & 列2 & 列3 \\
\midrule
A & B & C \\
D & E & F \\
\botrule
\end{tabular}
  • \toprule - 顶部粗线
  • \midrule - 中间细线
  • \botrule - 底部粗线

6.2 添加颜色

使用 colortbl 包:

latex
\usepackage{colortbl}
...
\begin{tabular}{|l|c|r|}
\hline
\rowcolor{gray!30} 左 &&\\ \hline
A & \cellcolor{red!30}B & C \\ \hline
D & E & F \\ \hline
\end{tabular}

需要 xcolor 包支持颜色

7 复杂表格示例

latex
\documentclass{article}
\usepackage{array, multirow, booktabs, colortbl, xcolor}

\begin{document}

\begin{table}[htbp]
\centering
\caption{复杂表格示例}
\begin{tabular}{|>{\columncolor{gray!20}}l|c|r|}
\hline
\rowcolor{gray!40}\textbf{项目} & \textbf{数值} & \textbf{说明} \\ \hline
\multirow{2}{*}{第一组} & 10 & 描述1 \\ \cline{2-3}
 & 20 & 描述2 \\ \hline
\multirow{3}{*}{第二组} & \cellcolor{yellow!30}30 & 描述3 \\ \cline{2-3}
 & 40 & 描述4 \\ \cline{2-3}
 & 50 & 描述5 \\ \hline
\end{tabular}
\label{tab:complex}
\end{table}

\end{document}

8 表格与文本环绕

使用 wraptable 包实现文字环绕表格:

latex
\usepackage{wrapfig}
...
\begin{wraptable}{r}{0.5\textwidth}
\centering
\begin{tabular}{|c|c|}
\hline
A & B \\ \hline
C & D \\ \hline
\end{tabular}
\caption{环绕表格}
\end{wraptable}
这里是环绕表格的文本内容...

9 对齐与浮动体

9.1 表格浮动

默认情况下,表格是浮动体,可以使用以下参数控制:

latex
\begin{table}[htbp]
% h - 当前位置
% t - 页顶
% b - 页底
% p - 单独页面
\centering
...表格内容...
\end{table}

9.2 精确对齐

使用 \centering, \raggedright, \raggedleft 控制表格内文本对齐:

latex
\begin{tabular}{|>{\raggedright}p{3cm}|>{\centering}p{2cm}|>{\raggedleft}p{3cm}|}
\hline
左对齐文本 & 居中文本 & 右对齐文本 \\ \hline
... & ... & ... \\ \hline
\end{tabular}

10 常见问题解决

10.1 表格线不显示

确保正确使用 \hline|,检查是否有拼写错误

10.2 单元格内容过长

使用 p{宽度}tabularx 环境

10.3 表格跨页

使用 longtable

10.4 中文支持

确保使用支持中文的文档类和字体包:

latex
\usepackage[UTF8]{ctex}

11 完整示例

latex
\documentclass{article}
\usepackage{array, multirow, booktabs, colortbl, xcolor, longtable, wrapfig}

\begin{document}

\begin{table}[htbp]
\centering
\caption{示例表格}
\begin{tabular}{|>{\columncolor{gray!10}}l|c|r|}
\hline
\rowcolor{gray!30}\textbf{项目} & \textbf{数值} & \textbf{说明} \\ \hline
A & 10 & 描述1 \\ \hline
B & 20 & 描述2 \\ \hline
\multirow{2}{*}{C} & 30 & \cellcolor{yellow!20}描述3 \\ \cline{2-3}
 & 40 & 描述4 \\ \hline
\end{tabular}
\label{tab:example}
\end{table}

\begin{wraptable}{r}{0.4\textwidth}
\centering
\begin{tabular}{|c|c|}
\hline
X & Y \\ \hline
1 & 2 \\ \hline
3 & 4 \\ \hline
\end{tabular}
\caption{环绕表格}
\end{wraptable}
这里是环绕表格的文本内容,可以很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长