LaTeX表格处理

2023-11-18

关于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
pt 1 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
ex ex 1 ex ≈ \approx 当前字体中字字符x 的高度
em em 1 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/142826485https://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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

LaTeX表格处理 的相关文章

  • RMarkdown / pandoc 无法使用乳胶颜色命令编织 Pdf

    Mac 操作系统 10 11 6 R版本 3 3 1 MacTex 2016 TexLive 6 2 2 RMarkdown 1 0 9014 针织 1 14 潘多克 1 17 当乳胶命令如下时 RMarkdown 无法编织 PDF tex
  • xtable 包:跳过输出中的一些行

    In the xtable输出 如果我希望某些行中没有任何内容 我将输入NA位于与我要跳过的行相对应的矩阵元素中 然而 这将导致 xtable 输出类似 我想知道的是我如何做到这一点 所以它只是 对于我想跳过的那一行 仍然不确定我是否理解正
  • YAML before_body include 中 LaTeX 中的 R 代码

    我有一个 LaTeX 部分 我将其放在 knitr 生成的 PDF 文档的顶部 我通过使用 YAML 选项实现了这一点 output pdf document includes before body file tex file tex 包
  • 如何在 Sweave 文档的表格中包含超链接?

    我有一个包含超链接的数据框 我想使用它作为可点击链接呈现Sweave 我知道关于xtable 但不确定如何使用它将数据帧的内容视为 LaTeX 命令 一种策略是使用sanitize text function来自print函数于xtable
  • Flyspell 无法在 emacs 中加载 LaTeX 文件

    下列的这个网页 http www sop inria fr members Manuel Serrano flyspell flyspell html 我编辑了 emacs 文件并添加了以下行 add hook LaTeX mode hoo
  • VSCode 自定义宏

    我目前正在尝试使用 VSCode 但我不知道如何正确定义宏并将它们绑定到特定的按键绑定 我习惯使用 Sublime text 并且我定义了一些宏 可以帮助我更快地打字并减少错误 我想要获得的宏如下 alt shift q 哪些类型 并将光标
  • sphinx 使用 Latexpdf 删除 pdf 中的章节标题?

    我使用 Latexpdf 和 sphinx 生成从 rst 到 pdf 的文档 如何删除每章之前的章节标题 CHAPTER ONE 如中所述狮身人面像文档 http sphinx doc org config html你可以改变latex
  • Knit 在 R 代码中转义乳胶特殊字符(例如 ~、$)

    当我在这个knitr文档的输出上运行它时 LaTeX崩溃了 因为LaTeX特殊字符没有正确转义 有任何提示如何解决这个问题吗 documentclass beamer begin document begin frame Unescaped
  • 如何在 R markdown 中生成没有前导码的 LaTeX 文件?

    我有一个 LaTeX 文档 它被分割成多个 tex files 我正在使用 R markdown 生成图形和表格 是否可以从 Rmd 生成没有前导码的 tex 文件 以便我能够在文档中使用输出 目前 我需要手动将部分输出复制到我的 tex
  • 如何使用 stargazer 或 xtable 省略交互?

    是否可以使用omit选项 通常我会将变量名称写入omit c varname 但在互动的情况下我不知道该写什么 有什么提示吗 在其他包中如何解决这个问题 例如xtable documentclass article begin docume
  • Vim:如何将一组行重新格式化为一行(如果该行是一个句子)?

    不是重复的在 Vim 中 将文件中的所有行连接成一行的最简单方法是什么 https stackoverflow com questions 391710 in vim what is the simplest way to join all
  • 调整 R Markdown PDF 文档中文本和块输出之间的间距

    我无法理解如何控制 R Markdown PDF 文档中文本和块输出之间的间距 下面是一个文档的示例 output pdf document setlength lineskip 0pt begin center Random Text e
  • includepdf 将文档堆栈覆盖在一页上

    我正在尝试使用以下方法在文档中包含 PDF includepdf 问题是 Latex 将 pdf 的所有站点放在文档的一页上 彼此重叠 我对此有点迷失 没有找到任何解决方案 begin figure H includepdf landsca
  • 在 LaTeX Beamer 中更改 \textbullet 的颜色

    我不想使用 Beamer 的标准蓝色主题 我想用beaver 这是深红色 一切看起来都不错 除了如果我使用itemize要点仍然是蓝色的 有没有一种好方法可以让项目符号随我使用的颜色主题而变化 如果我选择淡黄色主题 我希望子弹也会变成黄色
  • 插件 (vim-latex) 在启动时导致 gVim 崩溃

    我正在尝试使用在 Windows XP 上使用 gVim 但是一旦我打开 tex 文件 或者一旦我set ft tex gVim 崩溃且没有可见的错误消息 控制台 vim 中不会发生崩溃 我已经按照设置说明进行了操作 据我所知 并且我尝试禁
  • tikz:为节点设置适当的x值

    这个问题源于这个问题here https stackoverflow com questions 2772972 latex curly braces outside math 我想生成一个跨越一些文本行的大括号 问题是我必须手动对齐 x
  • 有没有办法让 LaTeX 将图形放置在同一页面中作为对该图形的引用?

    我正在使用 LaTeX 和图形环境 我非常熟悉该环境的参数 htbp 而且我通常也熟悉 LaTeX 默认情况下决定将每个图形放在哪里的策略 例如 将图形放置在页面的顶部或底部 我想知道是否有一个包 宏或一些我可以提供的命令 这样如果我有一个
  • 在 LaTeX 中自动将新句子中第一个单词的第一个字母大写

    我知道 LaTeX 的吹嘘点之一是它没有这种微软式的行为 尽管如此 它有时还是有用的 LaTeX 已经在您键入 非反斜杠 句点后添加了一个额外的空格 因此应该可以使其自动将后面的字母大写 是否有一个明显的方法来编写一个宏来执行此操作 或者是
  • 如何在直线上分解长方程?

    我正在尝试在新行中添加一个方程 问题是方程对于该行来说太长了 我需要手动打破它 否则 它只会重叠到右列或右边缘 并且看起来很难看 有没有一种方法可以让 LaTeX 帮我打破方程 看起来不错 我附上我的乳胶代码 begin align f n
  • Pandoc Markdown 分页符

    最近我开始使用 Pandoc markdown 它似乎是 LaTeX 的一个很好的替代品 因为我的文档没有很多数学公式 而且我没有任何使用 LaTeX 的经验 再加上不到 2 周的提交截止日期 这使它成为一个很好的解决方案 我无法解决的一件

随机推荐

  • 极简短网址链接生成系统网站源码

    极简短网址链接生成系统 前两年流行的新浪短网址和一些小站长搭建的短网址基本都gg了 想要一个既稳定又好用的短网址系统只有自己搭建了 今天给大家分享一个很好用的短网址系统 本系统是国内程序员开发 后台简洁 适合自用 安装教程 1 上传源码并解
  • .net下用c# 编写成语字典查询工具

    呵呵 以前弄的一个成语字典数据库 最近用C 写了个查询工具 界面 源代码如下 http blog csdn net greenerycn 请遵守署名非商业的CC版权 using System using System Collections
  • 【往届均已检索】2023年控制理论与应用国际会议(ICoCTA 2023)

    往届均已检索 2023年控制理论与应用国际会议 ICoCTA 2023 重要信息 会议网址 www icocta org 会议时间 2023年10月20 22日 召开地点 福建 厦门 截稿时间 2023年8月30日 录用通知 投稿后2周内
  • 时间格式2019-06-27T16:00:00.000Z转换为北京时间

    时间的描述 UTC 国际时间 UTC 8 伦敦时间 UTC 8就是国际时加八小时 是东八区时间 也就是北京时间 String dateTime 2019 06 27T16 00 00 000Z dateTime dateTime repla
  • 让ChatGPT帮你写一个剧情脚本

    最近 很多视频制作者正在使用AI编写视频脚本 效率直接提升20倍以上 而ChatGPT作为一个强大的AI模型 在各个领域都得到了广泛应用 尽管对于ChatGPT的介绍不是很多 但是它已经在很多自媒体平台上被广泛利用来处理工作了 如果你想学习
  • 激活函数及其各自的优缺点

    原文链接 感谢原作者 温故知新 激活函数及其各自的优缺点 1 什么是激活函数 所谓激活函数 Activation Function 就是在人工神经网络的神经元上运行的函数 负责将神经元的输入映射到输出端 激活函数对于人工神经网络模型去学习
  • 整体学习法之信息分类

    在学习的时候 我们都是有一个流程 获取信息 gt 理解信息 gt 扩展信息 gt 纠正信息 gt 应用信息 信息分成以下几类 随意信息 比如太阳半径多少 苹果的价格这些 都是一些毫无规律的东西 这些就是靠机械记忆 几乎不需要什么处理 也没有
  • [YOLO专题-16]:YOLO V5 - 如何把labelme json训练数据集批量转换成yolo数据集

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 https blog csdn net HiWangWenBing article details 122334367 目录 前言 第1章
  • Java高级开发工程师面试题汇总

    面试主要涉及到的技术点 概述 以Java编程基础 JVM原理 Spring Spring Boot Redis Zookeeper 消息队列 Kafka Rocket MQ MySQL等为主 也包括Dubbo Tomcat性能优化 容器化技
  • 被腾讯云的AI绘画整破防了

    购买 618活动 贪便宜29 9买了个腾讯云的AI绘画 问题 主要遇到了两个问题 整破防了兄弟们 1 文档问题 只封装了请求之后获取base64格式的图片 没有封装如何从base64转换成图片展示出来 这个还需要自己去开发 2 sdk 安装
  • mysql 续行符_继续字符集——「一个命令行搞懂Mysql字符集」

    其实我纠结挺久 要不要写这一篇文章 不怎么想让大家感觉我好像只会字符集一样 Mysql在数据的存储上 提供了不同的字符集支持 在数据的比对上 又提供了不同的字符序支持 与Oracle实例级别的设置不同 Mysql很灵活 它提供了不同级别的设
  • 蓝桥杯算法训练VIP-求先序排列

    题目 题目链接 题解 递归 首先要了解什么是先序遍历 中序遍历和后序遍历 大佬讲解树的遍历 一般同学们应该都知道如何遍历 这个题有点像模拟实现题 就是把你手算的过程实现一遍 整体思路 先从后序遍历中确定根 再去中序遍历中找到根的左右两侧的子
  • 超线程技术

    超线程 HT Hyper Threading 是英特尔研发的一种技术 于2002年发布 超线程技术原先只应用于Xeon 处理器中 当时称为 Super Threading 之后陆续应用在Pentium 4 HT中 早期代号为Jackson
  • 字体图标的使用方式

    字体图标的使用 无论用哪种方法 咋们首先都得引入文件 如何使用字体图标呢 首先咋们要先了解到一个东西 这个东西就是字体图标库 https www iconfont cn 字体图标有四种引入方式 无论何种引入方式 都要先下载本地字体包 引入c
  • Anaconda Navigator打不开 This application failed to start because it could not find or load the QT ....

    anaconda Navigator打不开 直接弹出错误窗口 在网上试了很多方法都没有成功 折腾了好久 卸载重装还是一样的错误 手动添加过如下的环境变量 网上有的人成功了但是我没有 还是报错 下面分享以下我最后解决的方法给大家参考 1 删除
  • 多元有序logistic回归_stata速学

    NO 07 ZEYI 06 2020 正文共 2010字 28图 预计阅读时间 6分钟 嘿喽 我是则已 这是stata的第七期学习 前面学习了最小二乘回归分析 非线性回归分析都要求因变量是连续变量 但很多时候因变量是离散的 即1就是1 2就
  • CUDA使用结构体传输时出现写入位置的访问冲突

    这是我的之前写的关于在CUDA中传输结构体的代码 CUDA结构体传输 include cuda runtime h include device launch parameters h include
  • 混合分布(mixture distribution)

    文章目录 1 基本概念 2 基本性质 1 基本概念 在概率与统计中 如果我们有一个包含多个随机变量的随机变量集合 再基于该集合生成一个新的随机变量 则该随机变量的分布称为混合分布 mixture distribution 具体来说 首先 根
  • 对Fiber架构的理解?解决了什么问题?

    一 问题 JavaScript引擎和页面渲染引擎两个线程是互斥的 当其中一个线程执行时 另一个线程只能挂起等待 如果 JavaScript 线程长时间地占用了主线程 那么渲染层面的更新就不得不长时间地等待 界面长时间不更新 会导致页面响应度
  • LaTeX表格处理

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