关于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的结合体,可以在跨行的表项中随意地使用\命令换行,例如:

相关推荐
m0_748708058 分钟前
C++中的观察者模式实战
开发语言·c++·算法
qq_5375626720 分钟前
跨语言调用C++接口
开发语言·c++·算法
wjs202431 分钟前
DOM CDATA
开发语言
Tingjct32 分钟前
【初阶数据结构-二叉树】
c语言·开发语言·数据结构·算法
猷咪1 小时前
C++基础
开发语言·c++
IT·小灰灰1 小时前
30行PHP,利用硅基流动API,网页客服瞬间上线
开发语言·人工智能·aigc·php
快点好好学习吧1 小时前
phpize 依赖 php-config 获取 PHP 信息的庖丁解牛
android·开发语言·php
秦老师Q1 小时前
php入门教程(超详细,一篇就够了!!!)
开发语言·mysql·php·db
烟锁池塘柳01 小时前
解决Google Scholar “We‘re sorry... but your computer or network may be sending automated queries.”的问题
开发语言
是誰萆微了承諾1 小时前
php 对接deepseek
android·开发语言·php