【LaTeX】表格梳理:基本表格、跨行(multirow)和跨列(multicolumn)表格
写在最前面
版权声明:本文为原创,遵循 CC 4.0 BY-SA 协议。转载请注明出处。
LaTeX 是一种强大的排版系统,特别适合用于科学和技术文档的编写。
在 LaTeX 中,表格的创建和排版是一项常见任务。本文将详细介绍如何使用 LaTeX 创建和美化表格,包括基本表格、跨行(multirow)和跨列(multicolumn)表格的制作。
全部代码见三、
一、基本表格
LaTeX 中创建表格的基本环境是 tabular
环境。一个简单的表格可以如下创建:
|c|c|c|
表示表格有三列,且每列内容居中,并在列之间绘制竖线。\hline
用于在表格的行之间绘制横线。- 每行的单元格内容用
&
符号分隔,并以\\
结束。
\documentclass{article}
\begin{document}
\begin{tabular}{|c|c|c|}
\hline
Header 1 & Header 2 & Header 3 \\
\hline
Cell 1 & Cell 2 & Cell 3 \\
\hline
Cell 4 & Cell 5 & Cell 6 \\
\hline
\end{tabular}
\end{document}
1.表头标题
- 使用
\caption
命令为每个表格添加标题。 - 表格被包裹在
table
环境中,以便正确处理标题和位置。 - 使用
\centering
使表格在页面上居中。
2.常用选项[htbp]
常用选项[htbp]是浮动格式:
-『h』当前位置。将图形放置在正文文本中给出该图形环境的地方。如果本页所剩的页面不够,这一参数将不起作用。
-『t』顶部。将图形放置在页面的顶部。
-『b』底部。将图形放置在页面的底部。
-『p』浮动页。将图形放置在一只允许有浮动对象的页面上。
一般使用[htb]这样的组合,只用[h]是没有用的。这样组合的意思就是latex会尽量满足排在前面的浮动格式,就是h-t-b这个顺序,让排版的效果尽量好。
!h 只是试图放在当前位置。如果页面剩下的部分放不下,还是会跑到下一页的。一般页言,用 [!h] 选项经常会出现不能正确放置的问题,所以常用 [ht]、[htbp] 等。
如果是双栏,你需要占据一整行,那么就是\begin{figure*}[htbp]
如果你确实需要把图片放在当前位置,不容改变,可以用float宏包的[H]选项。不过如果这样做,出现放不下的问题时需要手工调整。使用格式如下:
\usepackage{float}
3.其他
行宽,1.2倍行距
\renewcommand\arraystretch{1.2}
强制自适应宽度
\resizebox{1.0\linewidth}{!}{
二、表格美化
为了使表格更美观,可以使用 booktabs
宏包,这个宏包提供了更美观的横线命令。
\toprule
、\midrule
和\bottomrule
分别用于表格的顶线、中间线和底线,线条更细更美观。
\documentclass{article}
\usepackage{booktabs}
\begin{document}
\begin{tabular}{ccc}
\toprule
Header 1 & Header 2 & Header 3 \\
\midrule
Cell 1 & Cell 2 & Cell 3 \\
Cell 4 & Cell 5 & Cell 6 \\
\bottomrule
\end{tabular}
\end{document}
1.跨列(multicolumn)
当需要在表格中让某个单元格跨越多列时,可以使用 multicolumn
命令。
\multicolumn{2}{c}{Header 3}
表示Header 3
跨越两列,内容居中。\multicolumn{3}{c}{Cell 6}
表示Cell 6
跨越三列,内容居中。
\documentclass{article}
\usepackage{booktabs}
\begin{document}
\begin{tabular}{cccc}
\toprule
Header 1 & Header 2 & \multicolumn{2}{c}{Header 3} \\
\midrule
Cell 1 & Cell 2 & Cell 3 & Cell 4 \\
\midrule
Cell 5 & \multicolumn{3}{c}{Cell 6} \\
\bottomrule
\end{tabular}
\end{document}
2.跨行(multirow)
使用 multirow
宏包可以实现单元格的跨行。
\multirow{2}{*}{Header 1}
表示Header 1
跨越两行,内容垂直居中。- 同理,
Cell 1
也跨越两行。
\documentclass{article}
\usepackage{booktabs}
\usepackage{multirow}
\begin{document}
\begin{tabular}{ccccc}
\toprule
\multirow{2}{*}{Header 1} & Header 2 & \multicolumn{2}{c}{Header 3} \\
& Header 4 & Header 5 & Header 6 \\
\midrule
\multirow{2}{*}{Cell 1} & Cell 2 & Cell 3 & Cell 4 & Cell 5 \\
& Cell 6 & Cell 7 & Cell 8 & Cell 9 \\
\bottomrule
\end{tabular}
\end{document}
三、全部latex代码
注意,为了使之适配中文,需要切换编辑器
\documentclass{article}
\usepackage{graphicx} % Required for inserting images
\usepackage{booktabs}
\usepackage{multirow}
\usepackage{caption}
\usepackage{ctex} % 引入 xeCJK 宏包以支持中文
\title{表格排版示例}
\author{Yu}
\date{August 2024}
\begin{document}
\maketitle
\section{介绍}
% 表格 1: 基本表格
\begin{table}[h!]
\centering
\caption{基本表格}
\begin{tabular}{|c|c|c|}
\hline
表头 1 & 表头 2 & 表头 3 \\
\hline
单元格 1 & 单元格 2 & 单元格 3 \\
\hline
单元格 4 & 单元格 5 & 单元格 6 \\
\hline
\end{tabular}
\end{table}
% 表格 2: 使用 booktabs 美化的表格
\begin{table}[h!]
\centering
\caption{使用 booktabs 美化的表格}
\begin{tabular}{ccc}
\toprule
表头 1 & 表头 2 & 表头 3 \\
\midrule
单元格 1 & 单元格 2 & 单元格 3 \\
单元格 4 & 单元格 5 & 单元格 6 \\
\bottomrule
\end{tabular}
\end{table}
% 表格 3: 跨列的表格
\begin{table}[h!]
\centering
\caption{跨列的表格}
\begin{tabular}{cccc}
\toprule
表头 1 & 表头 2 & \multicolumn{2}{c}{表头 3} \\
\midrule
单元格 1 & 单元格 2 & 单元格 3 & 单元格 4 \\
\midrule
单元格 5 & \multicolumn{3}{c}{单元格 6} \\
\bottomrule
\end{tabular}
\end{table}
% 表格 4: 跨行的表格
\begin{table}[h!]
\centering
\caption{跨行的表格}
\begin{tabular}{ccccc}
\toprule
\multirow{2}{*}{表头 1} & 表头 2 & \multicolumn{2}{c}{表头 3} \\
& 表头 4 & 表头 5 & 表头 6 \\
\midrule
\multirow{2}{*}{单元格 1} & 单元格 2 & 单元格 3 & 单元格 4 & 单元格 5 \\
& 单元格 6 & 单元格 7 & 单元格 8 & 单元格 9 \\
\bottomrule
\end{tabular}
\end{table}
\end{document}
四、小结
通过本文的详细介绍,我应该已经掌握了如何在 LaTeX 中创建和美化表格。表格的基本结构、跨列、跨行的实现方法都已经涵盖。
熟练使用这些技巧,可以帮助你在 LaTeX 文档中创建专业而美观的表格。希望本文对你有所帮助!
如果有任何问题或进一步的需求,请随时留言讨论 ~
hello,我是 是Yu欸 。如果你喜欢我的文章,欢迎三连给我鼓励和支持:👍点赞 📁 关注 💬评论,我会给大家带来更多有用有趣的文章。
原文链接 👉 ,⚡️更新更及时。
欢迎大家点开下面名片,添加好友交流。