LaTeX表格处理

article/2025/10/24 21:28:11

关于LaTeX中对表格的一些处理

在使用latex撰写文档时,可能会遇到表格太大超过页面范围,表格太小显示不美观,以及生成跨行表格,表头斜线等问题,以下是一些调整表格的命令。

调整表格大小

使用以下的latex命令之前,需要在latex文件中导入包:\usepackage{graphicx}

一、通过改变行间距或列间距调整表格大小

表格中包含中文字符时,默认的行间距会使得中文字符贴近表格上边线,很不美观,此时,我们可以使用如下命令来调整表格的行间距,让字符位于每一行的中间。

1. 调整行间距:\renewcommand{\arraystretch}{0.5}

示例:

\begin{table}[h]\renewcommand{\arraystretch}{0.5}\caption{XXX}\label{table1}\centering\begin{tabular}{}...\end{tabular}
\end{table}

在这里插入图片描述
除了表格的行间距,我们还可以通过调整表格的列间距来使得表格在页面上的显示更加美观。

2. 调整列间距:\setlength\tabcolsep{7mm}{XXX}

示例:

\begin{table}[h]\caption{XXX}\label{table2}\centering\setlength{\tabcolsep}{7mm}{\begin{tabular}{}...\end{tabular}}
\end{table}

在这里插入图片描述
虽然使用列间距可以使得表格在页面大小内进行合适的缩放,但这样做的前提是“表格内的内容比较稀疏(更适合用于将窄的表格放宽)”。而像下面的表格,就无法通过调整列间距的方法来改变大小了。
在这里插入图片描述
针对上述这种情况,我们可以有以下的处理方式。

二、将整个表格当做图形调整大小

latex中的“\resizebox{宽度}{高度}{对象}”命令可以调整对象的宽度和高度为设定值,若宽度或高度中的任意一项为“!”,则表示在改变另一项时,当前项会按照原始宽高比进行缩放。

1.单栏形式的latex文档:\resizebox{\linewidth}{!}{XXX}

将表格的整体宽度设定为当前环境宽度,高度按照原始宽高比缩放。
示例:

\begin{table}[h]\caption{XXX}\label{table2}\centering\resizebox{\linewidth}{!}{\begin{tabular}{}...\end{tabular}}
\end{table}

在这里插入图片描述

2.双栏形式的latex文档:\resizebox{\textwidth}{!}{XXX}

将表格的整体宽度设定为页面中一行文字的宽度,高度按照原始宽高比缩放。
示例:

\begin{table}[h]\caption{XXX}\label{table2}\centering\resizebox{\textwidth}{!}{\begin{tabular}{}...\end{tabular}}
\end{table}

以图形方式调整单栏形式和双栏形式的表格宽度本质并没有什么不同,只是在表格宽度的依据上有所区别,单栏中依赖“当前环境宽度\linewidth”,而在双栏中则依赖“文本区域宽度\textwidth”。

三、latex中一些宽度定义的含义

  • \hsize: 是latex中定义的长度,当结束一个段落时,它会查看\hsize的当前值,以便将其分成水平方框,是Tex中的原语,不推荐使用;

  • \textwidth: 是文本区域的全局宽度,可以理解为页面上一整行文字的宽度;

  • \pagewidth: 整个页面纸张的宽度,包含了页边的宽度,比\textwidth要大;

  • \linewidth: 这指得是目前环境的宽度,是依赖于上下文的一个宽度值,是一个变量,它表示文本行的当前大小。例如新建了一个box,在这个box中,\linewidth是box中文字的宽度;

  • \columnwidth: 当前分栏的宽度,单栏文档中和\textwidth是一致的。

四、latex中的长度单位

单位名称说明
mm毫米1 mm = 2.845 pt
cm厘米1 cm= 10 mm= 28.453 pt
pt1 pt = 0.351 mm
sp定标点65536 sp = 1 pt
bp大点1 bp = 0.353 mm ≈ \approx 1 pt
dd迪多点1 dd = 0.376 mm = 1.07 pt
pc派卡1 pc = 4.218 mm = 0.166 in = 12 pt
cc西塞罗1 cc= 4.513 mm= 12 dd = 12.84 pt
in英寸1 in = 25.4 mm = 72.27 pt
exex1 ex ≈ \approx 当前字体中字字符x 的高度
emem1 em ≈ \approx 当前字体中字符 M 的宽度

跨行跨列表格

表格的跨行和跨列操作需要用到\multicolumn, \multirow指令,因此需要使用\usepackage{multirow}导入multirow包。
实例:

\begin{table}[h]\small\caption{跨行跨列表格}\centering\renewcommand{\arraystretch}{1.5}\setlength{\tabcolsep}{2.7mm}{\begin{tabular}{|c|c|c|c|c|c|c|}\hline\multirow{2}{*}{\textbf{方法}} & \multicolumn{2}{c|}{\textbf{数据集一}} & \multicolumn{2}{c|}{\textbf{数据集二}} & \multicolumn{2}{c|}{\textbf{数据集三}} \\ \cline{2-7} & \textbf{方法一}    & \textbf{方法二}      & \textbf{方法三}     & \textbf{方法四}      & \textbf{方法五}    & \textbf{方法六}     \\ \hline\textbf{精度} & 0.4166 & 0.2533 & 0.3229 & 0.1014 & 0.4060 & 0.2410 \\ \hline\textbf{准确度} & 0.4443 & 0.2285 & 0.3333 & 0.1864 & 0.4457 & 0.2005 \\ \hline\textbf{错误率} & 0.4113 & 0.2663 & 0.3223 & 0.2003 & 0.4902 & 0.3444 \\ \hline\textbf{损失} & 0.4116 & 0.2224 & 0.3448 & 0.2223 & 0.5009 & 0.3117 \\ \hline\textbf{其他} & 0.5188 & 0.3066 & 0.3370 & 0.2225 & 0.5442 & 0.3220   \\ \hline\textbf{提升} & 11.00 & 4.72 & 10.90 & 10.11 & 1.00 & 3.72 \\ \hline\end{tabular}}
\end{table}

在这里插入图片描述
命令“\multirow{2}{*}{\textbf{方法}}”中,“\multirow”表示当前单元格需要跨行,参数’2’,表示当前单元格跨2行,参数’*‘表示自动调整表格文字大小,最后的大括号中填写需要跨行显示的单元格文字,此处的"\textbf"命令表示对文字进行加粗显示。跨行命令只需要在第一行填写单元格数据,在后面的行中,对应位置的单元格可以使用’{}'占位,也可以直接空着不写。

命令"\multicolumn{2}{c|}{\textbf{数据集一}}“中,”\multicolumn"表示当前单元格需要跨列,参数’2’,表示跨两列,'c|'表示当前单元格的文字需要居中,并且需要在单元格的右侧画一道竖线。

命令"\hline"表示绘制一条横线。

"\cline{2-3}"表示在第2和第3单元格出绘制横线。

表头斜线

在绘制表格时,有时需要在一个单元格中表示两种含义,这就需要使用表头斜线来进行区分。具体使用如下(需要使用\usepackage{diagbox}包):

\diagbox[optional]{内容1}{内容2}{内容3}...

命令‘\diagbox’表示在当前单元格内使用斜线分割;’[optional]'方括号内是可选参数,具体参数细节可以查看官方文档https://mirrors.tuna.tsinghua.edu.cn/CTAN/macros/latex/contrib/diagbox/diagbox.pdf;大括号内的内容即为单元格内要显示的信息,有多少个大括号,单元格就会被斜线分成多少个区。
示例:

\begin{table}[h]\small\caption{斜线表头表格}\centering\renewcommand{\arraystretch}{1.5}\setlength{\tabcolsep}{2.7mm}{\begin{tabular}{|c|c|c|c|c|c|c|}\hline\diagbox{指标}{方法} & \textbf{方法一}    & \textbf{方法二}      & \textbf{方法三}     & \textbf{方法四}      & \textbf{方法五}    & \textbf{方法六}     \\ \hline\textbf{精度} & 0.4166 & 0.2533 & 0.3229 & 0.1014 & 0.4060 & 0.2410 \\ \hline\textbf{准确度} & 0.4443 & 0.2285 & 0.3333 & 0.1864 & 0.4457 & 0.2005 \\ \hline\textbf{错误率} & 0.4113 & 0.2663 & 0.3223 & 0.2003 & 0.4902 & 0.3444 \\ \hline\textbf{损失} & 0.4116 & 0.2224 & 0.3448 & 0.2223 & 0.5009 & 0.3117 \\ \hline\textbf{其他} & 0.5188 & 0.3066 & 0.3370 & 0.2225 & 0.5442 & 0.3220   \\ \hline\textbf{提升} & 11.00 & 4.72 & 10.90 & 10.11 & 1.00 & 3.72 \\ \hline\end{tabular}}
\end{table}

在这里插入图片描述

参考文章:
表格大小:https://blog.csdn.net/wbl90/article/details/52597429
宽度定义:https://zhuanlan.zhihu.com/p/142826485,https://liam.page/2015/08/17/width-in-latex/
长度单位:https://blog.csdn.net/robert_chen1988/article/details/52739825
表格跨行跨列:https://blog.csdn.net/happygogf/article/details/50963275
斜线表头:https://mirrors.tuna.tsinghua.edu.cn/CTAN/macros/latex/contrib/diagbox/diagbox.pdf


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

相关文章

latex画表格(自用)

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

Latex论文表格画法

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

LaTeX中的表格

LaTeX中的表格 这一节我们主要讨论LaTeX中表格的制作和排版问题。 (1)在LaTeX中,可以使用tabular环境生成表格。 (2)tabular环境需要一个指定列排版格式的必选参数。可以用l指定左对齐,用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是什么? Qt是一个基于C语言的图形用户界面(GUI)开发框架,Qt不仅仅可以进行GUI开发,除此之外Qt也能进行很多其它功能开发,包括但不限于多线程、数据库、图像处理、音视频处理、网络通信与文件IO等。 Qt…

Qt学习心得体会

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

QT 学习笔记(二)

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

Qt学习 - 总

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

Qt日常学习

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

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

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

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

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

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

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

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

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

Qt学习之C++基础

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

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

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

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

1. 前言 上一篇博客,简单的介绍了一下C的面向对象编程,这篇博客就主要是用来入门Qt,废话不多说,开干! Qt入门系列: Qt学习之C基础 Qt学习之Qt安装 Qt学习之Qt基础入门(上) Qt学习之Qt基础入门(中) Qt学习…

qt基础入门教程

1、t的介绍、优点、成功案例 5.8.0 Qt是一个跨平台的C图形用户界面应用程序框架。它为应用程序开发者提供建立艺术级图形界面所需的所有功能。爸是完全面向对象的,很容易扩展,并且允许真正的组件编程。 推荐安装 wps linux 桌面环境 虚拟机软件 屏幕共…

Qt入门教程100篇(已完结)

😈「CSDN主页」:传送门 😈「Bilibil首页」:传送门 😈「CSDN学院」:传送门 😈「本文的内容」:Qt基础教程 😈「动动你的小手」:点赞👍收藏⭐️评论&…

QT入门看这一篇就够了——超详细讲解(40000多字详细讲解,涵盖qt大量知识)

目录 一、Qt概述 1.1 什么是Qt 1.2 Qt的发展史 1.3 Qt的优势 1.4 Qt版本 1.5 成功案例 二、创建Qt项目 2.1 使用向导创建 2.2 一个最简单的Qt应用程序 2.2.1 main函数中 2.2.2 类头文件 2.3 .pro文件 2.4 命名规范 2.5 QtCreator常用快捷键 三、Qt按钮小程序 …