LaTeX表格灵活设置列宽

一些基本的插入表格的操作见:https://blog.csdn.net/gsgbgxp/article/details/129457872
遇到问题先查阅《IShort》和刘海洋老师的《LaTeX入门》。

设置表格列宽基础操作(不借助tabularx)

先从一个简单表格开始

\begin{table}[!h]\centering\begin{tabular}{cc}\hline{\textbf{System}} & {\textbf{TeX}} \\\hlineAll & TeX Live \\macOS & MacTeX \\Windows & MikTeX \\\hline\end{tabular}
\end{table}

显示效果为
在这里插入图片描述
如果我们想设置两列的宽度,可以采用的方案为设置{p{4cm}p{4cm}}

\begin{table}[!h]\centering\begin{tabular}{p{4cm}p{4cm}}\hline{\textbf{System}} & {\textbf{TeX}} \\\hlineAll & TeX Live \\macOS & MacTeX \\Windows & MikTeX \\\hline\end{tabular}
\end{table}

在这里插入图片描述

这里补充说明以下:

  • l/c/r :单元格内容左对齐/居中/右对齐,不折行
  • p{⟨width⟩} :单元格宽度固定为⟨width⟩,可自动折行

这些参数是可以不借助其他宏包直接使用的。

在上面的表格中,默认是左对齐。如果想要标题行居中,其他行仍左对齐,可以采用的方式为

\begin{table}[!h]\centering\begin{tabular}{p{4cm}p{4cm}}\hline\multicolumn{1}{c}{System} & \multicolumn{1}{c}{TeX} \\\hlineAll & TeX Live \\macOS & MacTeX \\Windows & MikTeX \\\hline\end{tabular}
\end{table}

显示效果为
在这里插入图片描述
这里的\multicolumn{1}{c}虽然没有合并多列表格,但是却可以借此实现居中。
如果想要所有行都是居中,可以采用下面的方式:

\begin{table}[!ht]\centering\begin{tabular}{>{\centering\arraybackslash}p{4cm}>{\centering\arraybackslash}p{4cm}}\hline{Column 1} & \multicolumn{1}{r}{Column 2} \\\hlineAll & TeX Live \\macOS & MacTeX \\Windows & MikTeX \\\hline\end{tabular}
\end{table}

显示效果为
在这里插入图片描述
这里关键在于定义了>{\centering\arraybackslash}p{4cm},但是这需要额外的array宏包,即

\usepackage{array}

借助tabularx宏包调整表格列宽

以下内容摘自《Ishort》

在这里插入图片描述

ragged 的意思是“参差不齐的”,raggedright 的意思就是“右侧参差不齐的”,即左对齐。

在这里插入图片描述

设置与页面同宽的表格

利用tabularx宏包可以轻松实现,可以看下面几个示例。

各列宽度不同

不借助tabularx宏包

下面先仅给出一个示例

\begin{table}[!ht]
\newcolumntype{C}[1]{>{\centering\arraybackslash}p{#1}}
\centering 
\begin{tabular}{cC{2cm}C{3cm}}\topruleColumn 1 & Column 2 & Column 3 \\\midruleData 1 如果是文本较长会发生什么? & Data 2 如果是文本较长会发生什么? & Data 3 \\\bottomrule
\end{tabular}
\end{table}

显示效果为
在这里插入图片描述

借助tabularx宏包

示例1

\begin{table}[htb]
\centering
\begin{tabularx}{\textwidth}{>{\hsize=0.85\hsize}X>{\hsize=0.85\hsize}X>{\hsize=1.5\hsize}X>{\hsize=0.85\hsize}X>{\hsize=0.85\hsize}X}
\hline
列1 & 列2 & 列3 & 列4 & 列5 \\
\hline
内容... & 内容... & 内容... & 内容... & 内容... \\
\hline
\end{tabularx}
\caption{一个自适应宽度的表格示例}
\label{tab:example}
\end{table}

示例2【推荐】

\begin{table}[htb]
\centering
\newcolumntype{C}{>{\centering\arraybackslash}X} % 居中对齐的自动调整列宽类型
\newcolumntype{L}[1]{>{\centering\arraybackslash}p{#1}} % 指定宽度的左对齐列类型
\begin{tabularx}{\textwidth}{|C|L{4cm}|L{2cm}|C|}\hline列 1 & 列 2 & 列 3 & 列 4 \\\hline内容 & 内容 & 内容 & 内容 \\\hline
\end{tabularx}
\end{table}

设置列间距

\setlength{\tabcolsep}{3mm} 可用于设置表格中列之间的水平间距(列间距)。

在 LaTeX 的表格中,默认情况下,列之间的间距是由 \tabcolsep 参数控制的。该参数定义了列之间的额外空间。通过修改 \tabcolsep 的值,可以增加或减少列之间的间距。

\setlength{\tabcolsep}{3mm} 这个命令将 \tabcolsep 的值设置为 3mm。这意味着在使用该命令后,表格中的列之间的水平间距将增加到 3mm。这可以用于调整表格的外观,使其更加紧凑或稀疏。

以下是一个示例,展示了如何在表格中使用 \setlength{\tabcolsep}{3mm} 命令:

\begin{table}
\centering
\setlength{\tabcolsep}{3mm} % 设置列间距为 3mm
\begin{tabular}{|c|c|}
\hline
Header 1 & Header 2 \\
\hline
Data 1 & Data 2 \\
Data 3 & Data 4 \\
\hline
\end{tabular}
\caption{A table with increased column spacing}
\end{table}

在上面的示例中,\setlength{\tabcolsep}{3mm} 命令被放置在表格环境之前,使得整个表格内的列之间的间距增加到 3mm。这样可以使表格的列之间具有更宽的间距,增加可读性或美观性。可以根据需要调整列间距的数值。

其他问题

为什么设置表格总宽度为textwidth但结果却超出页面范围?

由于tabcolsep的存在,下面的表格虽然计算总和是textwidth,但会超出页面范围。
可以通过 @{} 的方式解决。
下面给出三个表格示例

\begin{table}[!ht]  
\centering  
\caption{表格宽度超出页面范围}  
\begin{tabular}{  >{\centering\arraybackslash}m{0.3\textwidth} >{\centering\arraybackslash}p{0.5\textwidth}  >{\centering\arraybackslash}b{0.2\textwidth}  
}  
\toprule
列1 & 列2 & 列3 \\ 
\midrule
这是一个较长的文本,它将被换行显示,并居中对齐。 & 这是另一个较长的文本,它也将被换行显示,并居中对齐。 & 这是一个简短的文本,居中对齐。 \\ 
\bottomrule
\end{tabular}  
\end{table}  %-------------------------------------------------
\begin{table}[!ht]  
\centering  
\caption{表格和页面同宽}   
\begin{tabular}{  @{}>{\centering\arraybackslash}m{0.3\textwidth} @{}>{\centering\arraybackslash}p{0.5\textwidth} @{}>{\centering\arraybackslash}b{0.2\textwidth} @{}
}  
\toprule
列1 & 列2 & 列3 \\ 
\midrule
这是一个较长的文本,它将被换行显示,并居中对齐。 & 这是另一个较长的文本,它也将被换行显示,并居中对齐。 & 这是一个简短的文本,居中对齐。 \\ 
\bottomrule
\end{tabular}  
\end{table}  %-------------------------------------------------
\begin{table}[!ht]
\centering
\caption{表格和页面同宽}  
\begin{tabularx}{\textwidth}{@{}l@{}|@{}X@{}|@{}r@{}}\hline左列 & 中间列 & 右列 \\\hline内容1 & 这是一个很长的中间内容,它会自动换行以适应列宽。继续写作,看看效果如何。继续写作,看看效果如何。继续写作,看看效果如何。继续写作,看看效果如何。 & 内容3 \\内容2 & 中间内容 & 内容4 \\\hline
\end{tabularx}
\end{table}

显示效果为
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/40761.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

软件确认测试和系统测试包括哪些测试内容?有什么区别?

一、软件确认测试 软件确认测试,顾名思义,是为了确认软件的正确性和完整性而进行的测试过程。它旨在验证软件是否符合用户需求和软件开发规范。测试内容包括: 1、功能确认:通过对软件各项功能进行测试,验证其是否按照…

c语言----队列

很久没有写文章了。因为放假了嘛,给自己稍微放松了一下,所以最近的更新很慢。呜呜下一次一定改。然后咧。今天我想与大家分享的是队列。虽然这个知识点我们应该在讲了堆的实现就应该写的,但是后面忘了,以为自己是写了的。但是昨天…

sql查询练习

1.表的结构 课程表:课程编号cid,课程名称canme,老师tid, 教师表:教师tid,教师姓名tname 分数表:学生student_sid,课程 cours_id,,分数score 学生表&#xff…

DC/AC电源模块为现代电子设备提供稳定的能源

BOSHIDA DC/AC电源模块为现代电子设备提供稳定的能源 DC/AC电源模块是一种重要的电子设备,它为现代电子设备提供稳定的能源。在今天的高科技社会中,电子设备已经成为人们生活和工作的重要组成部分。从家用电器到计算机、手机、汽车和航天航空设备&…

基于antv x6实现的组织架构图

X6 是基于 HTML 和 SVG 的图编辑引擎,基于 MVC 架构,用户更加专注于数据逻辑和业务逻辑。 一、业务背景 将组织树形结构图形化,更直观的展示个人所在的组织架构。 二、功能点 组织结构按需渲染,支持层级展开、收缩按需求自定义…

【软件测试】之黑盒测试用例的设计

🏀🏀🏀来都来了,不妨点个关注! 🎧🎧🎧博客主页:欢迎各位大佬! 文章目录 1.测试用例的概念2.测试用例的好处3. 黑盒测试用例的设计3.1 黑盒测试的概念3.2 基于需求进行测…

AI绘画Stable Diffusion画全身图总是人脸扭曲?ADetailer插件实现一键解决!

大家好,我是向阳 你是否遇到过SD生成的人物脸部扭曲、甚至令人恶心的情况?也曾感到束手无策?别担心,这份教程专为你而来。 在使用SD生成人物全身照时,你可能经常发现人物的脸部会出现扭曲问题。这是因为人物面部像素…

【前端】IntersectionObserver 实现图片懒加载和无限滚动

【前端】IntersectionObserver 实现图片懒加载和无限滚动 在前端开发中,性能优化是一个重要的考量因素。随着现代网页和应用的复杂性增加,确保页面快速加载和流畅运行变得越来越重要。本文将介绍一种强大的工具——IntersectionObserver API&#xff0c…

LabVIEW新能源汽车电池性能测试系统

新能源汽车的核心部件之一是电池,其性能直接关系到整车的续航里程、安全性和寿命。为了确保电池的性能和可靠性,测试是必不可少的环节。本文介绍了一种基于LabVIEW的新能源汽车电池性能测试系统,通过LabVIEW与数据采集设备的无缝集成&#xf…

Unity 实现UGUI 简单拖拽吸附

获取鼠标当前点击的UI if(RectTransformUtility.RectangleContainsScreenPoint(rectTransform, Input.mousePosition)) {return rectTransform.gameObject; } 拖拽 在Update 中根据鼠标位置实时更新拖拽的图片位置。 itemDrag.transform.position Input.mousePosition; …

秒拿AI模型API Key!Chat2DB AI模型切换实用秘籍

智谱AI(ZhiPu AI) 智谱 AI 是由清华大学计算机系技术成果转化而来的公司,致力于打造新一代认知智能通用模型。 1.申请调用权限 智谱AI开放平台网址:https://open.bigmodel.cn/ 点击开始使用,进行登录/注册。 智谱A…

The Sandbox 创作者的幕后采访: 了解创作者的内心世界

我们采访了一些在 "创作者挑战" 中脱颖而出的顶尖创作者,探讨他们成功的秘诀以及在创造玩家喜爱的体验方面的心得。 The Sandbox 创作者挑战涌现出许多才华横溢的创作者,他们在游戏制作机制上的创新和突破引起了 The Sandbox 社区的广泛关注。…

大白菜U盘启动工具

大白菜如何u盘启动进winpe装系统大白菜是一款非常实用的U盘启动盘制作工具,可以帮助用户快速地将U盘制作成启动盘,从而方便地进行系统安装、维护和修复等操作。官方网站: 大白菜u盘启动盘制作工具_大白菜u盘装系统_大白菜pe_大白菜官网-首页…

Spring AI 1.0.0 新变化,从 0.8.1 如何升级

Spring AI 1.0.0-M1 版本已经发布,距离 1.0.0 正式版又更近了一步。同时这也意味着,Spring AI 1.0.0 的 API 已经基本确定,不会发生大的改动。这里介绍一下,相对于上一个发布版本 0.8.1,Spring AI 1.0.0 的一些重要的变…

轻松跨越国界:使用WildCard畅享全球AI服务

大家好,现在AI技术已经深入到我们的日常生活中。然而,许多朋友仍然难以获取优质的AI工具和应用。那么,如何才能使用像ChatGPT这样的AI服务呢? 今天我为大家介绍一个“一劳永逸”的解决方案,它就是我们的主角——WildC…

阿里云 ECS 服务器的安全组设置

阿里云 ECS 服务器的安全组设置 缘由安全组多个安全组各司其职一些常见的IP段百度 IP 段华为云 IP 段搜狗蜘蛛 IP 段阿里云 IP 段 。。。 缘由 最近公司规模缩减,原有的托管在 IDC 机房的服务器,都被处理掉了,所有代码都迁移到了阿里云的云服…

腾讯云函数部署环境[使用函数URL]

使用函数URL 之前使用的是网关API,最近腾讯云的网关API说要关闭了,所以没有办法这里改成函数URL,使用后发现只要不是在浏览器直接访问的情况,函数URL都可以满足! 这里结合腾讯云函数node.js返回自动带反斜杠这篇文章来做说明,比如这里的URL如下: 结合文章腾讯云函数node.js返…

T113基于评估板SDK配置PD引脚异常

使用PD0/PD1/PD2作为IO输入时,发现输入检测到的值异常,断开输入的信号,直接示波器打IO口,还能发现波形信号,猜测该引脚存在引脚复用情况。 原因 这三个引脚在默认系统是作为显示相关引脚功能。 解决方法 1 ) Uboot修改

99. 岛屿数量

题目描述:给定一个由 1(陆地)和 0(水)组成的矩阵,你需要计算岛屿的数量。岛屿由水平方向或垂直方向上相邻的陆地连接而成,并且四周都是水域。你可以假设矩阵外均被水包围。 输入描述&#xff1a…

SSZipArchive 解压后 中文文件名乱码问题

不知道什么情况,做为一个三方广泛使用的框架库,会出现这种比较低级的问题! 还有中文的文件名解压后显示乱码! 经过深入研究排查,发现目录或文件名编码错误!但是POD库,不可能直接在里面改&#…