latex表格手把手超详细教程(table, tabular, multirow, multicolumn)

article/2025/10/23 23:20:03

最近写论文要用latex,实验部分需要画表格,于是百度看了两个多小时的博客,一无所获,全都写的乱七八糟的,越看越烦躁,于是谷歌五分钟,就学会了怎么画表格,下面是我最终画出来的表格:

在这里插入图片描述

接着我将讲解如何从零开始绘制一张latex表格,参考LaTeX tables - Tutorial with code examples

先画一张最简单的表格

绘制Latex表格需要用到 tabletabular 环境。其中 table 环境里写表格的标题(caption)、表格的偏移之类的。 tabular 环境则是绘制表格的内容。一个简单的表格绘制代码如下所示:

\documentclass{article}\begin{document}\begin{table}[h!]\begin{center}\caption{Your first table.}\begin{tabular}{l|c|r} % <-- Alignments: 1st column left, 2nd middle and 3rd right, with vertical lines in between\textbf{Value 1} & \textbf{Value 2} & \textbf{Value 3}\\$\alpha$ & $\beta$ & $\gamma$ \\\hline1 & 1110.1 & a\\2 & 10.1 & b\\3 & 23.113231 & c\\\end{tabular}\end{center}
\end{table}\end{document}

table-1.png

首先是 table 环境部分,\begin{center}让表格居中,\caption{Your first table.}写表格的标题。

然后是 tabular 环境部分,\begin{tabular}{l|c|r}这里面的{l|c|r},包含了三个字母,代表了表格总共有三列,第一列靠左偏移,第二列居中,第三列靠右偏移。竖线代表列之间用线分隔开来,如果想要左右两边都用线包围起来,应该改成{|l|c|r|}。接下来就是正式的表格绘制部分。

latex里的表格是一行行来绘制的,每一行里面用&来分隔各个元素,用\\来结束当前这一行的绘制。代码中\textbf{Value 1} & \textbf{Value 2} & \textbf{Value 3}\\绘制表格的第一行,是三个加粗的字符串。第二行$\alpha$ & $\beta$ & $\gamma$ \\则是三个希腊字符。

接着是\hline,它的作用是画一整条横线,注意如果想画一条只经过部分列的横线,则可以用cline{a-b},代表的是画一条从第a列到第b列的横线。

至此就画完了表头部分,接下来填充表格数据,这个很简单,看代码即可。

简单的表格画完了,但是完全不能满足需求,我需要用到的是一个更复杂的表格形式,一个表格单元占据了多个行或者列。

表格单元占据多个行或者列

这里需要用到multirowmulticolumn,首先要引入相关的包:

%...
\usepackage{multirow} % Required for multirows
\begin{document}
%...

multirowmulticolumn的格式如下:

\multirow{NUMBER_OF_ROWS}{WIDTH}{CONTENT} 

NUMBER_OF_ROWS代表该表格单元占据的行数,WIDTH代表表格的宽度,一般填 * 代表自动宽度,CONTENT则是表格单元里的内容。

\multicolumn{NUMBER_OF_COLUMNS}{ALIGNMENT}{CONTENT}

NUMBER_OF_COLUMNS代表该表格单元占据的列数,ALIGNMENT代表表格内容的偏移(填l,c或者r),CONTENT则是表格单元里的内容。

一个multirow的例子

%...\begin{table}[h!]\begin{center}\caption{Multirow table.}\label{tab:table1}\begin{tabular}{l|S|r}\textbf{Value 1} & \textbf{Value 2} & \textbf{Value 3}\\$\alpha$ & $\beta$ & $\gamma$ \\\hline\multirow{2}{*}{12} & 1110.1 & a\\ % <-- Combining 2 rows with arbitrary with (*) and content 12& 10.1 & b\\ % <-- Content of first column omitted.\hline3 & 23.113231 & c\\4 & 25.113231 & d\\\end{tabular}\end{center}
\end{table}%...

table-5.png

主要是这一句代码\multirow{2}{*}{12} & 1110.1 & a\\,使得内容为 12 的这一个表格单元占据了两行。注意的是,下一行的第一个位置,由于已经被 12 这个单元给占据了,因此第二行的代码是& 10.1 & b\\,这里第一个位置没有写东西,如果写了东西会使得这一行超过3列,表格错位。

一个multicolumn的例子

%...\begin{table}[h!]\begin{center}\caption{Multicolumn table.}\label{tab:table1}\begin{tabular}{l|S|r}\textbf{Value 1} & \textbf{Value 2} & \textbf{Value 3}\\$\alpha$ & $\beta$ & $\gamma$ \\\hline\multicolumn{2}{c|}{12} & a\\ % <-- Combining two cells with alignment c| and content 12.\hline2 & 10.1 & b\\3 & 23.113231 & c\\4 & 25.113231 & d\\\end{tabular}\end{center}
\end{table}%...

table-6.png

这里主要是这一句代码\multicolumn{2}{c|}{12} & a\\,使得内容为 12 的这一个表格单元占据了两列。所以这一行接下来只能填一个元素a。注意这里的ALIGNMENT写的是c|代表表格内容居中,表格右侧有竖线而左侧没有。

结合multirow与multicolumn

可以看到我所需要画的表格中,内容为Model的这个表格单元需要同时占据两行和两列,这是最复杂的。其实只需要把\multirow{NUMBER_OF_ROWS}{WIDTH}{CONTENT}的CONTENT写成multicolumn就可以了。

%...\begin{table}[h!]\begin{center}\caption{Multirow and -column table.}\label{tab:table1}\begin{tabular}{l|S|r}\textbf{Value 1} & \textbf{Value 2} & \textbf{Value 3}\\$\alpha$ & $\beta$ & $\gamma$ \\\hline\multicolumn{2}{c|}{\multirow{2}{*}{1234}} & a\\ % <-- Multicolumn spanning 2 columns, content multirow spanning two rows\multicolumn{2}{c|}{} & b\\ % <-- Multicolumn spanning 2 columns with empty content as placeholder\hline3 & 23.113231 & c\\4 & 25.113231 & d\\\end{tabular}\end{center}
\end{table}%...

table-7.png

最主要的语句\multicolumn{2}{c|}{\multirow{2}{*}{1234}} & a\\使得内容为1234的表格单元占据了2行两列,所以当前这一行右边只能再写一个元素a了,然后注意的是下一行是\multicolumn{2}{c|}{} & b\\用一个空的multicolumn来代表前两个位置空置,然后填剩下的一个元素b

我的表格实例代码

\begin{table*}[t]
\centering
\caption{MAP scores of teacher model, different student models with 4 widths and three baseline models with different length of binary codes on CIFAR-10 and SUN datasets.}
\label{table1}
\begin{tabular}{|c|c|c|c|c|c|c|c|c|c|c|c|}
\hline
\multicolumn{2}{|c|}{\multirow{2}{*}{Model}} &\multirow{2}{*}{FLOPs}&\multirow{2}{*}{Params} & \multicolumn{4}{c|}{CIFAR-10}&\multicolumn{4}{c|}{SUN}\\
\cline{5-12}\multicolumn{2}{|c|}{} & & & 12bits & 24bits & 32bits & 48bits & 12bits & 24bits & 32bits & 48bits \\
\hline\multicolumn{2}{|c|}{Teacher} &4.12G	&25.56M	&0.87841	&0.89512	&0.9014	&0.90601	&0.83587	&0.85736	&0.86297	&0.87103\\ 
\hline%0.25x-----------------
\multirow{4}{*}{$0.25\times$} & Stu-1 & 0.15G & 1.03M &
0.70746 & 0.73458 &	0.74909 &	0.75833 &	0.69618 &	0.76631 &	0.78075 &	0.78787 \\
\cline{2-12}\multirow{4}{*}{} & Stu-2 &0.19G	&1.08M	&0.7629	&0.79111	&0.80039	&0.80519	&0.73539	&0.79714	&0.80753	&0.81195\\
\cline{2-12}\multirow{4}{*}{} & Stu-3 &0.26G	&1.43M	&0.84684	&0.86443	&0.87384	&0.88268	&0.79284	&0.83442	&0.84350	&0.84353\\
\cline{2-12}\multirow{4}{*}{} & Stu-4 & 0.29G	&1.99M	&0.85901	&0.87269	&0.8836	&0.88728	&0.81997	&0.84620	&0.85041	&0.85036\\
\hline
\end{tabular}
\label{table_MAP}
\end{table*}

在这里插入图片描述

这里我用\begin{table*}[t]有一个星号,是为了让表格宽度与页面等宽而不是二分之一宽。

latex的基本画法就差不多这样了,如果还有更高的需求,最好去谷歌查询,因为百度出来的博客写的实在太烂了,排版混乱,不知所云,看了也是浪费时间。


http://chatgpt.dhexx.cn/article/8V155kJk.shtml

相关文章

Latex基本表格绘制

Latex基本表格绘制 文章目录 Latex基本表格绘制1.基本格式2.添加竖线和横线3.设置每一列的单元格格式4.常见的三线表5.table环境6.单元格合并7.斜线表头8.其他(2018.11.23)1.基本格式 \documentclass{article}\begin{document}\begin{tabular}{cc}%一个c表示有一列,格式为居中…

LaTeX表格Table使用解析

推荐一个在线生成表格命令的工具&#xff1a;LaTeX Table Generator 常用选项[htbp]是浮动格式&#xff1a; h当前位置。将图形放置在正文文本中给出该图形环境的地方。如果本页所剩的页面不够&#xff0c;这一参数将不起作用。 t顶部。将图形放置在页面的顶部。 b底部。将图形…

在 LaTeX 中插入表格

原  文&#xff1a;在 LaTeX 中插入表格 译  者&#xff1a;Xovee 翻译时间&#xff1a;2020-1024 在 LaTeX 中插入表格 在科研论文中&#xff0c;表格是最重要的内容之一。LaTeX 提供了许多定制化表格的功能&#xff0c;包括调整表格大小&#xff0c;合并单元格&#xf…

LaTeX表格处理

关于LaTeX中对表格的一些处理 在使用latex撰写文档时&#xff0c;可能会遇到表格太大超过页面范围&#xff0c;表格太小显示不美观&#xff0c;以及生成跨行表格&#xff0c;表头斜线等问题&#xff0c;以下是一些调整表格的命令。 调整表格大小 使用以下的latex命令之前&am…

latex画表格(自用)

绘制 latex 表格需要用到 table 和 tabular 环境。 其中table环境里写表格的标题&#xff08;caption&#xff09;、表格的偏移之类的。 tabular环境则是绘制表格的内容。 首先是table环境部分&#xff0c;\begin{center} 让表格居中&#xff0c;\caption{Table name.} 写表格…

Latex论文表格画法

参考 Latex论文表格画法 - 云社区 - 腾讯云 1、基本表格画法 \begin{table}[htbp] 表示表格的开始。中括号中的 htbp 表示的是表格的浮动格式。当然这个基本参数不仅仅只是对表格有用。需要注意的是&#xff0c;一般使用 [htb] 这样的组合&#xff0c;这样组合的意思就是Latex会…

LaTeX中的表格

LaTeX中的表格 这一节我们主要讨论LaTeX中表格的制作和排版问题。 &#xff08;1&#xff09;在LaTeX中&#xff0c;可以使用tabular环境生成表格。 &#xff08;2&#xff09;tabular环境需要一个指定列排版格式的必选参数。可以用l指定左对齐&#xff0c;用c指定居中对齐&a…

Latex 制作表格

Latex 制作表格 前言一、Latex三线表1、普通三线表2、跨页三线表 二、简单表1、基本需求表2、表格整体相关设置【表名及位置、表宽、注解、字号】1. 表格标题及位置2. 表宽设置3. 表格注解4. 字号设置 三、复杂表1、合并单元格2、斜线表头 五、常用表格模板代码总结 前言 Late…

Qt学习c++

Qt学习C 平台及版本Day01 HelloWorld程序生成Day02 分析第一个Qt程序1) main.cpp2) mainwindow.h和mainwindow.cpp Day03 Qt控件和事件Day04 信号和槽基本理解connect()函数实现信号和槽实例演示信号和槽机制 Day05 Qt QLabel文本框的使用QLabel文本框的信号和槽QLabel的常用方…

Qt学习基础

1. Qt是什么&#xff1f; Qt是一个基于C语言的图形用户界面&#xff08;GUI&#xff09;开发框架&#xff0c;Qt不仅仅可以进行GUI开发&#xff0c;除此之外Qt也能进行很多其它功能开发&#xff0c;包括但不限于多线程、数据库、图像处理、音视频处理、网络通信与文件IO等。 Qt…

Qt学习心得体会

Qt是一种跨平台C图形界面程序开发框架&#xff0c;在社会中各种行业都有着举足轻重的地位。 Qt为了实现对象与对象之间的通信&#xff0c;提出了信号与槽的概念。当一个对象发生改变会发送一个信号通知另一个对象执行一个函数&#xff0c;这个函数称为槽&#xff0c;信号只需要…

QT 学习笔记(二)

文章目录 一、标准信号和槽1. 准备工作1.1 main.c1.2 widget.cpp 2. 添加按钮2.1 widget.h2.2 widget.cpp2.3 运行结果 3. 信号和槽&#xff08;重点&#xff09;3.1 信号3.2 自定义槽3.3 widget.h3.4 widget.cpp3.5 运行结果 二、两个独立窗口1. 添加新窗口2. 自定义信号3. 窗…

Qt学习 - 总

Qt学习 学习中的错误常用快捷键杂项布局信号与槽数据库相关QSS选择器 {property:value}Qt样式表设置函数 setStyleSheet()QSS文本属性 事件QMouseEvent&#xff1a;鼠标事件键盘事件QWheelEvent&#xff1a;滚轮事件QCloseEvent&#xff1a;关闭事件QTimerEvent&#xff1a;超时…

Qt日常学习

2022/07/28 使用Visual Studio2019 搭配 Qt5.14&#xff0c;可视化Qt界面使用QtDesigner。 若只使用代码来做界面太麻烦&#xff0c;效率低&#xff1b;只使用可视化界面进行拖拽效率高但无法实现全部功能。使用代码可视化结合的方式能够实现绝大部分功能。 练习1&#xff1…

QT入门学习(一):什么是QT

QT 是什么&#xff1f; QT是一个跨平台C图形用户界面应用程序开发框架。它不仅可以开发GUI程序&#xff0c;也可以开发非GUI程序。我们通常使用QT开发GUI程序。 它可以开发Windows、Linux、Mac平台的应用程序。也可以开发移动端应用程序以及嵌入式程序。 QT 模块 QT 有模块…

一位大佬对于 Qt 学习的最全总结(三万字干货)

击上方“C语言与CPP编程”&#xff0c;选择“关注/置顶/星标公众号” 干货福利&#xff0c;第一时间送达&#xff01; 分享一位大佬 Github 上关于 Qt 学习的总结。作者无私分享了一百多个自定义控件以及几本 Qt 的书籍&#xff08;C Qt&#xff09;&#xff0c;特此引用这个大…

QT学习笔记(一)——QT基础

QT学习笔记&#xff08;一&#xff09;——QT基础 文章目录 QT学习笔记&#xff08;一&#xff09;——QT基础前言一、QT是什么&#xff1f;二、基础内容1.pro文件规则及含义2. Widget头文件3. QT坐标系的定义4. QApplication应用程序类5.按钮&#xff1a;QPushButton6. 信号和…

Qt初学者的一些学习方法、参考资料

1&#xff0c;简介 最近有一些朋友加我&#xff0c;询问Qt入门学习的方法、资料 我基本都一一作答&#xff0c;根据情况给出了一些参考意见 感觉很多新手开始学习时很迷茫&#xff0c;不知道学习哪些方面、看什么资料 这里干脆写一篇文章&#xff0c;把自己的学习过程给大家介…

Qt学习之C++基础

前言 用了大概2个月的时间&#xff0c;学了Qt&#xff0c;然后开发一个小项目&#xff0c;总的来说&#xff0c;在主机GUI程序中&#xff0c;相比Java的Swing和JavaFX&#xff0c;个人感觉Qt的界面设计更加简便一点&#xff0c;灵活性更高一些&#xff0c;然后下边就主要简述一…

Qt学习之Qt基础入门(中)

1. 前言 上一篇博客&#xff0c;总结了Qt的一些基础用法&#xff0c;这篇博客继续跟视频学习Qt的常用方法 Qt入门系列&#xff1a; Qt学习之C基础 Qt学习之Qt安装 Qt学习之Qt基础入门(上) Qt学习之Qt基础入门(中) Qt学习之Qt基础入门(下) 本文原创&#xff0c;创作不易&…