文章目录
控制表格列宽和行高
将下面的代码放在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的结合体,可以在跨行的表项中随意地使用\命令换行,例如: