LaTeX 表格
在 tabular 环境中书写各行,单元格之间用 & 分隔,每行末尾写 \\;需要表题和编号时,把它放进 table 浮动体中。
第一个表格
表格以 \begin{tabular}{...} 开始。花括号中每列一个字母:l 表示左对齐,c 表示居中,r 表示右对齐。在表格内部,& 移到下一个单元格,\\ 结束当前行。
三列,三种对齐方式
\begin{tabular}{lcr}
Fruit & Colour & Price \\
Apple & red & 0.44 \\
Banana & yellow & 1.20 \\
\end{tabular}你不需要在源代码中把 & 对齐。它们两侧的空格会被忽略,所以只有在有助于阅读代码时才需要对齐。
列类型
列格式决定表格有多少列,以及每一列如何对齐。
| 字母 | 含义 | 在 Scissor LaTeX 中 |
|---|---|---|
l, c, r | 左对齐、居中、右对齐 | 可用。 |
p{4cm} | 固定宽度的段落列 | 按左对齐列处理。宽度被忽略,所以长文本不会在 4 cm 处换行。 |
m{..}, b{..} | array 宏包提供的段落列 | 按左对齐列处理;宽度被忽略。 |
X (tabularx) | 拉伸以填满宽度的列 | 按左对齐列处理。 |
| | 列与列之间的竖线 | 可用。 |
@{..}, >{..}, <{..} | 单元格周围的间距和代码 | 接受但忽略。 |
表格线:\hline 或 booktabs
\hline 在整个表格上画一条横线,列格式中的 | 画出竖线。这样就得到经典的带边框外观。
用 \hline 和 | 制作的带边框表格
\begin{tabular}{|l|r|}
\hline
Name & Points \\
\hline
Erika Mustermann & 44 \\
John Doe & 38 \\
\hline
\end{tabular}许多期刊偏好更少的线条。booktabs 宏包提供三条线:表头上方的 \toprule、表头下方的 \midrule 和末尾的 \bottomrule,不使用竖线。
用 booktabs 排版相同的数据
\begin{tabular}{lr}
\toprule
Name & Points \\
\midrule
Erika Mustermann & 44 \\
John Doe & 38 \\
\bottomrule
\end{tabular}表题、编号和引用
要给表格加上表题和编号,请把 tabular 放进 table 环境中。添加 \caption{...},并在其后添加 \label{...}。然后 \ref{...} 就能在正文任意位置输出该表格的编号。
带表题的编号表格
\begin{table}[ht]
\centering
\caption{Points after the first round.}
\label{tab:points}
\begin{tabular}{lr}
\toprule
Name & Points \\
\midrule
Erika Mustermann & 44 \\
Hans Mustermann & 41 \\
\bottomrule
\end{tabular}
\end{table}
Table~\ref{tab:points} shows the points.表题出现在你书写它的位置:这里位于表格上方,这也是表格表题的常见位置。如果想让它位于下方,请把 \caption 放在 tabular 之后。
跨列单元格
\multicolumn{n}{align}{text} 把一行中的 n 个单元格合并为一个,并指定其对齐方式。常见用法是给一组列加上共同的表头。
跨两列的表头
\begin{tabular}{lcc}
\toprule
& \multicolumn{2}{c}{Round} \\
Name & 1 & 2 \\
\midrule
Erika & 44 & 40 \\
John & 38 & 45 \\
\bottomrule
\end{tabular}跨行单元格
在 LaTeX 中,multirow 宏包的 \multirow{n}{*}{text} 让一个单元格的高度超过一行。Scissor LaTeX 保留文本,但不保留跨行:文本位于第一行,下面各行在该列保持为空。
\multirow:文本保留在第一行
\begin{tabular}{llr}
\toprule
Group & Name & Points \\
\midrule
\multirow{2}{*}{A} & Erika & 44 \\
& John & 38 \\
\bottomrule
\end{tabular}对大多数表格来说,这样阅读起来没有问题。如果标签应当在这几行之间居中,请改为把它写在中间一行。
与 TeX 安装的不同之处
这些写法在 TeX 安装中也都能编译,所以你在这里写的文档在那里仍然可用。
相关内容:用 multirow 制作跨多行的单元格,用 array、tabularx、longtable 设置列宽,用 caption、subcaption 设置表题,以及在浮动体中了解位置控制。如果想通过点击来创建表格,请使用 LaTeX 表格生成器。
常见问题
如何在 LaTeX 中给表格添加表题?
把 tabular 放进 \begin{table} ... \end{table} 中,并在其中写 \caption{Your text}。Scissor LaTeX 会为表格编号,并在表题前输出“Table 1:”。
为什么我的长文本在 p 列中不换行?
Scissor LaTeX 目前还不应用列宽,所以 p{4cm} 列的宽度等于其中最长的一行。请用 \newline 拆分长单元格,或把它们缩短。
如何合并 LaTeX 表格中的单元格?
用 \multicolumn{2}{c}{text} 跨列合并单元格。在 Scissor LaTeX 中,用 \multirow 向下跨行合并时会保留文本,但不保留跨行。
本页的每个示例都在构建网站时由 Scissor LaTeX 排版。 最后更新:2026-11-07