LATEX关于表格的一些处理


1、表格初步

首先举一个例子:

\begin{table*}[t] %导言区1
	\begin{tabular}{|l||c|r|}%导言区2
		\hline
		123&123&123\\ \cline{1-1}
		4&5&6\\
		7&8&9\\ \hline
	\end{tabular}
\end{table*} 

在这里插入图片描述

1.1 导言区1

table 后面加* 完成双栏表格
{table}有若干可选参数 [!htbp]表格将会按照所给参数,依次尝试按照每个参数进行排版,当无法排版时,将会按照下一个参数

参数 设置
h 【here】将表格放在当前文字表格出现的位置位置
t 【top】将表格放在当前页的页首
b 【bottom】将表格放在当前页的底部
p 【page】将表格放在下一页的页首(但是好像会有一些问题一直到没有内容的新的一页)表示独占一页
! 表示忽略美观因素,尽可能按照参数指定的方式来处理表格浮动位置

另外有的时候,我们希望某个浮动体就在我们书写源码的地方。这时我们可以调用 float 宏包,并将浮动位置指定为 H,就可以实现了。

1.2 导言区2

参数 设置
l 水平左对齐
c 水平居中对齐
r 水平右对齐

1.3 其他指令

参数 设置
| 画一条竖直线
|| 画二条紧相邻的竖直线
& column separator
\\ start new row (additional space may be specified after \ using square brackets, such as \[6pt]
\hline 水平横线,这条命令只能位于第一行前面或紧接在行结束命令\的后面,表示在刚结束的那一行画一根水平的直线。如果这条命令位于表格的开头,那么就会在表格顶部画一横线,横线的宽度与表格的宽度相同. 放在一起的两条水平\hline命令就会画出两条间隔很小的水平线.
\tabularnewline 用于强制一表格行的结束,而\\除了可以结束整个一行表格内容外,还可以在单个列的内容中实现换行
\cline{i-j} 部分的水平横线 从i到j。这条命令的放置同\hline命令,并且在一行中可以出现多次。该命令从第n列的左边开始,画一条到第m列右边结束的水平线.
\vline 该命令画一条竖直线,其高度等于其所在行的行高。用这种命令,可以得到那些不是贯穿整个表格的竖直线.

2、单元格的合并

2.1 按照列合并

需要引用宏包:

\usepackage{multicolumn}

语法:

\multicolumn{n}{format}{item}
% n 合并列数
% format 格式 lcr 靠左居中靠右 是否需要加竖线等等
% item  文本

例子:

\begin{table*}[t] 
	\begin{tabular}{|c|c|c|}
		\hline 
		\multicolumn{3}{|c|}{123}\\\hline
		4&5&6\\\hline
		7&8&9\\\hline
	\end{tabular}
\end{table*} 

效果图:
在这里插入图片描述

2.2 按照行合并

需要引用宏包:

\usepackage{multirow}

语法:

\multirow{nrows}[bigstructs]{width}[fixup]{text}
% nrows  设定所占用的行数。
% bigstructs 此为可选项,主要是在你使用了 bigstruct 宏包时使用。
% width 设定该栏文本的宽度。如果想让 LaTeX 自行决定文本的宽度,则用 * 即可。设置宽度之后下面的强迫换行才可以使用。
% fixup 此为可选项,主要用来调整文本的垂直位置。使用绝对位置eg. 6pt, -5cm
% text  所要排版的文本。可用 \\ 来强迫换行。

例子1(最普通的用法):

\begin{table*}[t] 
  \begin{tabular}{ |l|l|l|}
    \hline
                  1234 & 1234 & 1234 \\ \hline
    \multirow{4}{*}{1} & 1    & 1234 \\
                       & 2    & 1234 \\%到了要撰写下一行表格时,被跨行的该栏位,直接留空,不可填字(填了之后就会知道为什么了)
                       & 3    & 1234 \\%到了要撰写下一行表格时,被跨行的该栏位,直接留空,不可填字
                       & 3    & 1234 \\ \hline%到了要撰写下一行表格时,被跨行的该栏位,直接留空,不可填字
    \multirow{3}{*}{2} & 1    & 1234 \\
                       & 2    & 1234 \\%到了要撰写下一行表格时,被跨行的该栏位,直接留空,不可填字
                       & 3    & 1234 \\ \hline%到了要撰写下一行表格时,被跨行的该栏位,直接留空,不可填字
                    3  & 1    & 1234 \\ \hline
    \multirow{2}{*}{4} & 1    & 1234 \\
                       & 2    & 1234 \\ \hline%到了要撰写下一行表格时,被跨行的该栏位,直接留空,不可填字
  \end{tabular}
\end{table*} 

在这里插入图片描述
例子2(一些参数设置的例子):

\begin{table*}[t] 
	\begin{tabular}{ |l|l|l|}
		\hline
		1234 & 1234 &1234 \\ \hline
		\multirow{4}{40pt}[-10pt]{1\\1} & 1 & 1234 \\%限制宽度和上下偏移的量
		                               & 2 & 1234 \\
		                               & 3 & 1234 \\
		                               & 3 & 1234 \\ \hline
		\multirow{3}{40pt}[5pt]{2\\2} & 1 & 1234 \\%限制宽度和上下偏移的量
		                              & 2 & 1234 \\
		                              & 3 & 1234 \\ \hline
		                            3 & 1 & 1234 \\ \hline
		\multirow{2}{40pt}[3pt]{4\\4} & 1 & 1234 \\%限制宽度和上下偏移的量
		                              & 2 & 1234 \\\hline
	\end{tabular}
\end{table*} 

在这里插入图片描述

2.3 多行列合并

目标要求:
水平和垂直的对齐格式均可控制
注意事项:
对于多行多列的单元格合并需要把合并的单元格的位置空出来
下面行的占位也需要用列合并去占位 这样中间就不会有多出来空单元格边框线了。如果直接采用~ & ~ & ...的方式来占位,会受到表格划线方式{|c|c|c|c|}的影响而多划一条竖线。

\begin{table*}[t] 
	\begin{tabular}{ |l|l|l|}
		\hline
		\multicolumn{2}{|c|}{\multirow{2}{*}{1245} } & 3 \\ \cline{3-3}
		                    \multicolumn{2}{|c|}{}   & 6 \\ \hline
		                                       7 & 8 & 9 \\ \hline
	\end{tabular}
\end{table*} 

在这里插入图片描述

3 列的设置技巧

3.1 固定列宽设置(水平对齐)

目的要求:
设置固定列宽,超过固定宽度之后会进行自动的回行

需要添加包

\usepackage{array}

语法
有三种属性可以设置分别为
p{‘width’} paragraph column with text vertically aligned at the top
p水平基线顶部对齐,左右默认为左对齐
m{‘width’} paragraph column with text vertically aligned in the middle(requires array package)
m水平基线中间对齐,左右默认为左对齐
b{‘width’} paragraph column with text vertically aligned at the bottom (requires array package)
b水平基线底部对齐,左右默认为左对齐

\begin{table*}[t] 
	\begin{tabular}{|p{1cm}|p{1cm}|p{1cm}|}%导言区2
		\hline
		apple & apple & apple apple apple\\ \hline
		       4 & 5       & 6           \\ \hline
		       7 & 8       & 9           \\ \hline
	\end{tabular}
	\\
	space for a line
	\\
	\begin{tabular}{|m{1cm}|m{1cm}|m{1cm}|}%导言区2
		\hline
		apple&apple&apple apple apple\\ \hline
		4&5&6\\\hline
		7&8&9\\\hline
	\end{tabular}
	\\
	space for a line
	\\
	\begin{tabular}{|b{1cm}|b{1cm}|b{1cm}|}%导言区2
		\hline
		apple&apple&apple apple apple\\ \hline
		4&5&6\\\hline
		7&8&9\\\hline
	\end{tabular}
\end{table*} 

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ytt1klXz-1593917218540)(https://raw.githubusercontent.com/ZhouziqunZZQZZQ/picBed/master/typora202007/05/095327-725878.png)]

3.2 固定列宽设置(垂直左中右对齐)

设置左右中对齐(以p为例)
<{\raggedleft}左对齐
<{\centering}居中
<{\raggedright}右对齐

\begin{table*}[t] 
	\begin{tabular}{|p{1cm}<{\raggedleft}|p{1cm}<{\centering}|p{1cm}<{\raggedright}|}
		\hline
		apple &apple&apple apple apple\\ \hline
		    4 & 5   &6\\\hline
		    7 & 8   &9\\\hline
	\end{tabular}
\end{table*} 

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vd0AffLv-1593917218542)(https://raw.githubusercontent.com/ZhouziqunZZQZZQ/picBed/master/typora202006/23/204327-115738.png)]

3.3 列设置(设置输出为手写体数字)

目的要求:
设置表格中的字符都是数学手写字体
语法

\>{\cmd} and <{\cmd}

例子:

\usepackage{array}
\newcolumntype{F}{>{$}c<{$}}
\begin{tabular}{FFF}
	\alpha & \beta    & \gamma   \\
	\delta & \epsilon & \upsilon \\
	\sigma & \tau     & \phi     \\
\end{tabular}

在这里插入图片描述

4 行的设置

4.1 添加行间距方法一

\begin{tabular}{ll}
	\hline
	Mineral & Color \\[0.5cm]
	Ruby & red \\
	Sapphire & blue \\
	\hline
\end{tabular}

在这里插入图片描述

4.2 调整行间距的方法

% 方法一
\setlength{\tabcolsep}{5pt} %colums, default value is 6pt

%方法二
\renewcommand{\arraystretch}{1.5} %rows, default value is 1.0这一句代码,作用是将每一行的高度变为原来的两倍。

%方法三
\hline\noalign{\smallskip}
cline{i-j}\noalign{\smallskip}
% 另外一种方式是在`\hline`和`cline{i-j}`前面或者后添加`\noalign{\smallskip}`
experiment1\\%没有设置行距的情况
\begin{tabular}{ | l | l | r | }
    \hline
    \multicolumn{2}{c}{Item} \\ \cline{1-2}
    Animal    & Description & Price (\$) \\ \hline
    Gnat      & per gram    & 13.65      \\
              & each        & 0.01       \\
    Armadillo & frozen      & 8.99       \\ \hline
\end{tabular}
\\
\\
experiment2\\%更改固定行距之后的表格
\setlength{\tabcolsep}{4pt}
\begin{tabular}{ | l | l | r | }
  \hline
  \multicolumn{2}{c}{Item} \\ \cline{1-2}
  Animal    & Description & Price (\$) \\ \hline
  Gnat      & per gram    & 13.65      \\
            & each        & 0.01       \\
  Armadillo & frozen      & 8.99       \\ \hline
\end{tabular}
\\
\\
experiment3\\%使用renewcommand的方法进行行高设置
\renewcommand{\arraystretch}{1.5}
\begin{tabular}{ | l | l | r | }
  \hline
  \multicolumn{2}{c}{Item} \\ \cline{1-2}
  Animal    & Description & Price (\$) \\ \hline
  Gnat      & per gram    & 13.65      \\
            & each        & 0.01       \\
  Armadillo & frozen      & 8.99       \\ \hline
\end{tabular}
\\
\\
experiment4\\
\setlength{\tabcolsep}{6pt}
\renewcommand{\arraystretch}{1.0}
\begin{tabular}{ | l | l | r | }
  \hline\noalign{\smallskip}
  \multicolumn{2}{c}{Item} \\ \cline{1-2}\noalign{\smallskip}
  Animal    & Description & Price (\$) \\ \noalign{\smallskip}\hline\noalign{\smallskip}
  Gnat      & per gram    & 13.65      \\
            & each        & 0.01       \\
  Armadillo & frozen      & 8.99       \\ \noalign{\smallskip}\hline
\end{tabular}

在这里插入图片描述

参考文献

LaTeX 表格_yhl_leo-CSDN博客_latex 表格
LaTeX 表格指定宽度并居中_yhl_leo-CSDN博客_latex 表格 居中
Latex 表格过大(或过小)的调整方法_wbl901的博客-CSDN博客_latex resizebox
LaTeX固定表格每一列宽度并指定对齐方式(居中) - 简书
LaTeX技巧313:如何设定如tabular的宽度(总的宽度)_LaTeX_Fun_新浪博客
Latex 表格内文字过长自动换行_virhuiai的专栏-CSDN博客_latex表格自动换行
LaTeX中表格单元格中内容自动换行 (Wrap text)问题_陈广智的专栏-CSDN博客_latex表格自动换行
LaTeX_Fun_新浪博客,里面有很多技巧和交流群
一份其实很短的 LaTeX 入门文档 | 始终
常用数学符号的 LaTeX 表示方法
Figures and Tables in a LATEX Document

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章