Bootstrap

LaTeX入门学习(5)(表格)

表格的使用

常用参数

通常表格的环境可以通过table或者tabular设置,设置的时候&表示表格的分隔,\\表示下一行表格,c表示居中对其,(lr)分别表示左右对齐。例如我们在当前位置插入表格(2x3),如果要给表格左右加上框则可以|ccc|,垂直方向上加上横线可以使用:\hline

\begin{tabular}{ccc}
第一行&第二行&第三行\\
a&b&c\\
\end{tabular}

这里写图片描述
如果你想加上一些其它参数:

\begin{center}
\begin{tabular}{|c|c|c|}
\hline
第一行&第二行&第三行\\
\hline
a&b&c\\
\hline
\end{tabular}

这里写图片描述

如果你想固定表格宽度,你可以这样(需要使用`array`包)

tabu

如果你不想控制每个单元的宽度,均匀分布在单元格,使用tabu包,查看下面的例子:

\begin{tabu} to 0.8\textwidth { | X[l] | X[c] | X[r] | }
\hline
第一列 & 第二列 & 第三列 \\
\hline
第一列内容  & 第二列内容  & 第三列内容  \\
\hline
\end{tabu}

这里写图片描述
纵向上对齐(需要array包):

\begin{tabular}{cp{23em}m{2em}b{2em}}                              
        \hline                                                     
        横向居中&居下&居中&居上\\                                  
        \hline                                                     
        a b c d e f g& a b c d e f g&a b c d e f g&a b c d e f g\\ 
\hline                                                             
\end{tabular}                                                      

如下:

在这里插入图片描述

x列格式自动计算列宽

tabularx 宏包为我们提供了方便的解决方案。它引入了一个 X 列格式,类似 p 列格式,不过
会根据表格宽度自动计算列宽,多个 X 列格式平均分配列宽。X 列格式也可以用 array 里的辅助
格式修饰对齐方式,需要包含tabularx包。

\end{tabular}                                                            
        \begin{tabularx}{32em}{|*{5}{>{\centering\arraybackslash}X|}}    
                \hline                                                   
        第一列&第二列&第三列&第四列&第五列\\                             
        \hline                                                           
        a b c d e f&a b c d e f&a b c d e f&a b c d e f&a b c d e f\\    
        \hline                                                           
                                                                         
\end{tabularx}                                                           

上面的每一列平均分配宽度32,*{5}表示后面的命令重复5次,>{\centering\arraybackslash}为了克服centering对列表的影响,需要加上\arraybackslashX表示单元格。
在这里插入图片描述

任意行列的表

结合多行和多列

\begin{tabular}{ |m{3cm}||m{3cm}|m{3cm}|m{3cm}|  }
 \hline
 \multicolumn{4}{|c|}{融合四个单元格为一个单元格} \\
 \hline
 第二行第一列& 第二行第二列 &第二行第三列&第二行第四列\\
 \hline
 第三行第一列   & 第三行第二列&第三行第三列&第三行第四列\\
 第四行第一列   & 第四行第二列&第四行第四列&第四行第四列\\
 第五行第一列   & 第五行第二列&第五行第五列&第五行第四列\\
 \hline
\end{tabular}

这里写图片描述


处理多行融合

需要在导言部分添加包\usepackage{multirow}

\begin{center}
\begin{tabular}{ |c|c|c|c| } 
\hline
第一列 & 第二列 & 第三列 \\
\hline
\multirow{3}{4em}{定义新的一列} & 其他不变 & 其他不变 \\ 
& cell5 & cell6 \\ 
& cell8 & cell9 \\ 
\hline
\end{tabular}
\end{center}


\end{tabularx}
\begin{table}[!htbp]
    \centering
    \begin{tabular}{|c|c|c|c|c|c|c|} %表格7列 全部居中显示
        \hline
        \multicolumn{7}{|c|}{表的总览}\\  %横向合并7列单元格  两侧添加竖线
        \hline
        \multicolumn{6}{|c|}{前五列}&第六列\\
        \cline{1-7}%为前七列添加横线
        \multirow{4}*{整合列}&(3,2)&(3,3)&(3,4)&(3,5)&(3,6)&(3.7)\\  %该单元格(6行7列中第3到3+4的左右单元格编程整合列,然后数据放在4单元格的竖直中心) 
        \cline{2-7}  %为第二列到第七列添加横线
                     &(4,2)&(4,3)&(4,4)&(4,5)&(4,6)&(4,7)\\
                   \cline{2-7}
                     &(5,2)&(5,3)&(5,4)&(5,5)&(5,6)&(5,7)\\
                   \cline{2-7}
                     &(6,2)&(6,3)&(6,4)&(6,5)&(6,6)&(6,218)\\
                   \hline
    \end{tabular}
\end{table}

在这里插入图片描述
异形表(斜线表头需要添加\usepackage{diagbox}):

\begin{table}[!htbp]
\centering
\begin{tabular}{c|c|c|c|c}
\cline{1-4}
\multicolumn{1}{|c|}{\diagbox{随机变量X}{$p_{ij}$}{随机变量Y}}&$y_1$&$y_2$&$y_3$\\ %添加斜线表头
\hline
\multicolumn{1}{|c|}{$x_1$} & $p_{11}$ & $p_{12}$ & $p_{13}$&\multicolumn{1}{|c|}{$\sum_{1-}p_{ij}$}\\
\hline
\multicolumn{1}{|c|}{$x_2$} & $p_{21}$ & $p_{22}$ & $p_{23}$&\multicolumn{1}{|c|}{$\sum_{2-}p_{ij}$} \\
\hline
\multicolumn{1}{|c|}{$x_3$} & $p_{31}$ & $p_{32}$ & $p_{33}$&\multicolumn{1}{|c|}{$\sum_{3-}p_{ij}$} \\
\hline
\multicolumn{1}{|c|}{$x_4$} & $p_{41}$ & $p_{42}$ & $p_{43}$&\multicolumn{1}{|c|}{$\sum_{4-}p_{ij}$} \\
\hline
& $\sum_{-4}p_{-1}$ & $\sum_{-4}p_{-2}$ & $\sum_{-4}p_{-3}$ \\
\cline{2-4}
\end{tabular}
\end{table}

在这里插入图片描述

表格放置的位置

参数说明
h放表格到这里
t放表格到这一页的顶部
b放表格到这一夜的尾部
p放表格在特殊页,仅仅用于tables
!覆盖LaTex自定义的参数
H防止表格到这个精确地位置,像h!
\[1ex]添加额外的空间到单元格

添加表格的列表:\listoftables

改变表格的外观

\setlength{\arrayrulewidth}{0.5mm}
\setlength{\tabcolsep}{18pt}
\renewcommand{\arraystretch}{1.5}
\begin{tabular}{ |m{2cm}||m{3cm}|m{3cm}|m{2cm}|  }
 \hline
 \multicolumn{4}{|c|}{融合四个单元格为一个单元格} \\
 \hline
 第二行第一列& 第二行第二列 &第二行第三列&第二行第四列\\
 \hline
 第三行第一列   & 第三行第二列&第三行第三列&第三行第四列\\
 第四行第一列   & 第四行第二列&第四行第四列&第四行第四列\\
 第五行第一列   & 第五行第二列&第五行第五列&第五行第四列\\
 \hline
\end{tabular}

这里写图片描述

\setlegth{\arrayrulewidth}{1mm}:设置边界线宽为1mm

\setlength{\tabcolsep}{18pt}:设置文本和表格的左右边界的文本到边界的距离为18pt

\renewcommand{\arraystretch}{1.5}:设置每行高度为1.5(单元格的高度)
改变表格的颜色:\usepackage[table]{xcolor}

{\rowcolors{3}{green!80!yellow!50}{green!70!yellow!40}
\begin{tabular}{ |m{2cm}||m{3cm}|m{3cm}|m{2cm}|  }
 \hline
 \multicolumn{4}{|c|}{融合四个单元格为一个单元格} \\
 \hline
 第二行第一列& 第二行第二列 &第二行第三列&第二行第四列\\
 \hline
 第三行第一列   & 第三行第二列&第三行第三列&第三行第四列\\
 第四行第一列   & 第四行第二列&第四行第四列&第四行第四列\\
 第五行第一列   & 第五行第二列&第五行第五列&第五行第四列\\
 \hline
\end{tabular}
}


这里写图片描述
\rowcolors{3}{green!80!yellow!50}{green!70!yellow!40}

  • 第一个数字3表示从第三行开始着色
  • {green!80!yellow!50}:奇数行的颜色
  • {green!70!yellow!40}:偶数行的颜色

列格式为*{3}{|l}|等于|l|l|l|

  • \arrayrulecolor[HTML]{DB5800}:设置线的颜色
  • \cellcolor:设置单元格的背景色(颜色名称或者HTML都行)
  • \rowcolor:设置行的背景色
\newcolumntype{s}{>{\columncolor[HTML]{AAACED}} p{3cm}} 
\arrayrulecolor[HTML]{DB5800}
 \begin{tabular}{ |s|m{3cm}|m{3cm}|m{2cm}|  }
 \hline
\rowcolor{lightgray} \multicolumn{4}{|c|}{融合四个单元格为一个单元格(设置背景色为灰色)} \\
 \hline
 \cellcolor[HTML]{AA0044}第二行第一列(设置该单元格的颜色为AA0044)& 第二行第二列 &第二行第三列&第二行第四列\\
 \hline
 第三行第一列(这一行颜色设置为灰色)   & 第三行第二列&第三行第三列&第三行第四列\\
 第四行第一列(这一行颜色设置为灰色)   & 第四行第二列&第四行第四列&第四行第四列\\
 第五行第一列(这一行颜色设置为灰色)   & 第五行第二列&第五行第五列&第五行第四列\\
 \hline
\end{tabular}

这里写图片描述

  • \newcolumntype{s}{>{\columncolor[HTML]{AAACED}} p{3cm}}设置列的背景色。定义列类型为s,他的对齐方式为p,列宽3cm,颜色设置为HTML AAACED,在新的列内省用在表格环境中。

关于html颜色,请查看w3c颜色代码,tex代码在这里

参考

;