关于tex中的表格设置

文章目录

控制表格列宽和行高

将下面的代码放在table环境内,放在tabular环境外

== 调整表格宽度和高度==:
\resizebox{\textwidth}{2cm}{%第一个{}是表格宽度, 第二个{}是表格高度 \begin{tabular} XXXX \end{tabular} } %12可随机设置,调整到适合自己的大小为止
调整列间距:
\setlength{\tabcolsep}{7mm}{ \begin{tabular} XXXX \end{tabular} }%7可随机设置,调整到适合自己的大小为止

上面的代码实现的效果往往不好,实现的是一种图片性质的缩放。

改变行高的方法是:

\renewcommand\arraystretch{1}(在array宏包中)

arraystretch默认定义为1,可以重定义得到制定倍数的表格行距。例如:

控制表格列宽的同时实现居中

利用array宏包,并配合命令p{宽}<{\centering}即可实现

\begin{table}[h]
	\caption{符号说明}
	\centering
	\begin{tabular}{ p{3cm}<{\centering} p{7cm}<{\centering} p{3cm}<{\centering} }
		\toprule
		{\heiti 符号} & {\heiti 意义}& {\heiti 单位}\\
		\hline
		Format & Extension& Description\\
		Format & Extension& Description\\
		Format & Extension& Description\\
		\bottomrule
	\end{tabular}
\end{table}

tex中多表格排列

subcaption 宏包(和subfigure会冲突)

还同时提供了 subfigure 和 subtable 环境,它们的语法和功能与 minipage 完全相同,只是在里面可以直接使用 \caption 命令来表示子标题。

效果:

单元格的合并与分割

\multicolumn{<项数>}{<新列格式>}{<内容>} 命令可用于将一行中几个不同的表项合并为一项,它经常用于排版跨列的表头,例如:

注意这里合并的新列格式里面只有一个c, l, r或p{<宽>},以及可选的@选项和表线。\multicolumn命令不仅可以用于合并多列,也可以只"合并"一列,作用是改变所在表项的对齐、竖线格式,例如:


\cline命令与\hline命令类似,都可以画水平的表格线,不过\cline带有一个形如==<起>-<止>==参数,用来说明表格起始和终止的列号,用来画出不完全或间断的横线。

与\multicolumn命令相反,\vline命令可以在表项内部画一条只占一行高度的竖线。如果用它来拆分已有的表项,要注意加上合适的间距,例如:

不过,使用\vline拆分表项不易掌握间距,另一种方式是直接使用嵌套的表格,此时应该注意在两侧只使用@{},避免间距和竖线,例如:

使用multirow宏包提供的\multirow命令排版跨行的表项。\multirow命令的基本语法格式如下:
\multirow{<行数>}{<宽度>}{<内容>}
\multirow{<行数>}*{<内容>}

使用前一种形式,内容达到宽度后会自动换行;使用后面一种形式,产生表项的宽度就是输入内容的宽度。

对单个单元格进行操作

makecell宏包提供的==\makecell==命令可以单独控制表项单元,可以在表项中使用\命令自由地换行。在不打算固定表列宽度时,它比p{<宽度>}选项更为灵活,例如:

\makecell命令的内容默认居中对齐,也可以使用可选选项t、b、l、r、c等分别控制其垂直与水平方式为顶部、底部、左对齐、右对齐或居中。

tex 复制代码
\begin{tabular}{|r|r|}
  \hline
\makecell[l]{before processing \\ data} & \makecell[r]{after processing \\ data}\\
\hline
4934 &8945\\
  \hline
\end{tabular}

makecell宏包的这种表项分行常用在表头中。它还为表头单独定义了与\makecell类似的\thead命令,它产生字体较小、上下间距较大的单元,更适合文字角度的多行表头使用,例如:

latex 复制代码
\begin{tabular}{|r|r|}
  \hline
\thead[r]{before processing \\ data} & \thead[l]{after processing \\ data}\\
\hline
4934 &8945\\
  \hline
\end{tabular}

makecell的 \rothead命令则相当于旋转了90度的\thead命令,这个命令还依赖rotating宏包。使用\rothead时需要给旋转表头的宽度\rotheadsize赋值,例如:

表头的字体由\theadfont命令控制,默认是\foonotesize; 间距由\theadgape或\rotheadgape生成,默认是\gape; 对齐是由\theadalign控制,默认是{cc}。可以重定义这些命令来控制表头的格式,详细内容可参考makecell宏包的文档。

如果同时使用multirow宏包和makecell宏包,命令 \multirowcell和\multirowthead 命令则成为\makecell、\thead与\multirow的结合体,可以在跨行的表项中随意地使用\命令换行,例如:

相关推荐
hccee8 分钟前
C# IO文件操作
开发语言·c#
hummhumm12 分钟前
第 25 章 - Golang 项目结构
java·开发语言·前端·后端·python·elasticsearch·golang
J老熊22 分钟前
JavaFX:简介、使用场景、常见问题及对比其他框架分析
java·开发语言·后端·面试·系统架构·软件工程
zmd-zk37 分钟前
flink学习(2)——wordcount案例
大数据·开发语言·学习·flink
好奇的菜鸟41 分钟前
Go语言中的引用类型:指针与传递机制
开发语言·后端·golang
Alive~o.01 小时前
Go语言进阶&依赖管理
开发语言·后端·golang
花海少爷1 小时前
第十章 JavaScript的应用课后习题
开发语言·javascript·ecmascript
手握风云-1 小时前
数据结构(Java版)第二期:包装类和泛型
java·开发语言·数据结构
喵叔哟1 小时前
重构代码中引入外部方法和引入本地扩展的区别
java·开发语言·重构
尘浮生1 小时前
Java项目实战II基于微信小程序的电影院买票选座系统(开发文档+数据库+源码)
java·开发语言·数据库·微信小程序·小程序·maven·intellij-idea