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,一经查实,立即删除!

相关文章

勒索病毒入门级理解

勒索病毒是泛指一切通过锁定被感染者计算机系统或文件并施以敲诈勒索的新型计算机病毒。其特点和相关信息可以归纳如下: 一、定义与特征 定义:勒索病毒是一种恶意软件,它通过加密用户的文件或阻止用户访问计算机操作系统,以此要…

分页联合查询实现方法(Java)

controller层 GetMapping("/page")Operation(summary "获得标注属性管理分页")public CommonResult<PageResult<MarkerPropertyViewVO>> getMarkerPropertyPage(Valid MarkerPropertyPageReqVO pageVO) {PageResult<MarkerPropertyDO> …

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

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

0058__NTFS重解析点(Reparse Points)

NTFS重解析点&#xff08;Reparse Points&#xff09;-CSDN博客

c语言----队列

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

sql查询练习

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

记录PostgreSql 使用dblink跨库

dblink 是 PostgreSQL 的一个模块&#xff0c;允许你从当前数据库会话中连接到其他数据库并执行 SQL 命令。这对于跨库查询、数据同步或临时数据交换等场景非常有用。 以下是如何使用 dblink 进行跨库查询的基本步骤&#xff1a; 启用 dblink&#xff1a; 如果你的 PostgreSQ…

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

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

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

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

CentOS8换源

一、备份 切换至源目录&#xff0c;备份源&#xff1a; cd /etc/yum.repos.d/ #进入源目录 ls #查看源文件 mkdir bkup #创建备份目录 mv CentOS-Linux-* bkup #将源文件移动至备份文件夹若是更换源并且原生源已经备份的情况下&#xff0c;使用rm -f *.repo删除原先文件…

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

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

Python面向对象 -- 多态

本套课在线学习视频&#xff08;网盘地址&#xff0c;保存到网盘即可免费观看&#xff09;&#xff1a; ​​https://pan.quark.cn/s/2040f00d3205​​ 在Python中&#xff0c;变量的访问控制可以通过不同的命名约定实现&#xff0c;包括系统变量、保护变量和私有变量。这些命…

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

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

d88888888

分析&#xff1a;v9999999999 vn输出n个n 先算出n的位数p 所以答案是nn*10的p次方n*10的2p次方.....n*10的&#xff08;n-1&#xff09;p次方 化简n*&#xff08;10的0次方10的p次方10的2p次方.....10的&#xff08;n-1&#xff09;p次方&#xff09; 后面为等比数列求和 …

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

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

golang 自旋

自旋 自旋锁的定义&#xff1a;当一个线程尝试去获取某一把锁的时候&#xff0c;如果这个锁此时已经被别人获取(占用)&#xff0c;那么此线程就无法获取到这把锁&#xff0c;该线程将会等待&#xff0c;间隔一段时间后会再次尝试获取。这种采用循环加锁 -> 等待的机制被称为…

力扣2488.统计中位数为 K 的子数组

力扣2488.统计中位数为 K 的子数组 等价转换 子数组为奇数 &#xff1a; 左小 右小 左大 右大 左小 – 左大 右大 – 右小 子数组为偶数 &#xff1a; 左小 右小 左大 右大 – 1 左小 – 左大 右大 – 右小 - 1提示中说明k为两数中左边那个 先从k的下标pos开始往左逆序…

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

新能源汽车的核心部件之一是电池&#xff0c;其性能直接关系到整车的续航里程、安全性和寿命。为了确保电池的性能和可靠性&#xff0c;测试是必不可少的环节。本文介绍了一种基于LabVIEW的新能源汽车电池性能测试系统&#xff0c;通过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&#xff08;ZhiPu AI&#xff09; 智谱 AI 是由清华大学计算机系技术成果转化而来的公司&#xff0c;致力于打造新一代认知智能通用模型。 1.申请调用权限 智谱AI开放平台网址&#xff1a;https://open.bigmodel.cn/ 点击开始使用&#xff0c;进行登录/注册。 智谱A…