LaTeX入门学习(5)(表格)_bleedingfight的博客-程序员秘密_latex newcolumntype

技术标签: LaTex基础  表格  tabular  长表  latex  

表格的使用

常用参数

通常表格的环境可以通过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代码在这里

参考

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/bleedingfight/article/details/80169003

智能推荐

Linux CentOS7安装zookeeper3.4.10集群_刘李404not found的博客-程序员秘密

一、准备三台服务器搭建集群之前需要配置免秘钥与修改主机名:https://blog.csdn.net/qq_39680564/article/details/89498678需要安装JDK:https://blog.csdn.net/qq_39680564/article/details/82768938IP主机名192.168.1.159server1192...

Andriod RecyclerView单选一个条目,其他条目恢复默认_leisure-ZL的博客-程序员秘密_recyclerview重置选中条目

需求:在RecyclerView中单选一个条目,一个条目字体改变,其他条目字体恢复。思路:每一个item中添加一个flag成员,0代表未被选中,1代表当前被点击item;在Adapter中添加以下代码:@Overridepublic void onBindViewHolder(@NonNull ViewHolder holder, int position) { ContactClassifyItem item = mItemList.get(position); if(ite

记录一下安装pytorch 时,安装anaconda 之后影响 runtime library path 的问题_晚餐男孩的博客-程序员秘密

因为学习需要,安装了pytorch,官方强烈推荐anaconda,所以就安装了。谁知道刚开始并不是很熟悉,导致了一些错误,影响正常编程使用。当我正常打开clion时候准备愉快的编程时,不愉快的事情发生了。程序猿总会遇到一些屁事,不是么?好,搞定它!错误如下:CMake Warning at src/CMakeLists.txt:255 (add_executable): Cannot generate a safe runtime search path for target bedrough_t

DDR3详解(以Micron MT41J128M8 1Gb DDR3 SDRAM为例)_yundanfengqing_nuc的博客-程序员秘密

转自:https://blog.csdn.net/njuitjf/article/details/18360741 首先,我们先了解一下内存的大体结构工作流程,这样会比较容量理解这些参数在其中所起到的作用。这部分的讲述运用DDR3的简化时序图。 DDR3的内部是一个存储阵列,将数据“填”进去,你可以它想象成一张表格。和表格的检索原理一样,先指定一个行(Row),再指定...

iOS- NSThread/NSOperation/GCD 三种多线程技术的对比及实现_weixin_34363171的博客-程序员秘密

转:http://www.cnblogs.com/qingche/p/3496190.html(清澈Saup)1.iOS的三种多线程技术                    1.NSThread每个NSThread对象对应一个线程,量级较轻(真正的多线程)2.以下两点是苹果专门开发的“并发”技术,使得程序员可以不再去关心线程的具体使用问题ØNSOperation/NSOpera...

SpringBoot过滤器_舌尖上的蛋炒饭的博客-程序员秘密_springboot 过滤器

SpringBoot过滤器客服端与web资源之间的请求和响应都通过过滤器进行过滤。比如web前端和服务端进行交互,但端口号又不一样,这样就存在了跨域问题,可以通过配置过滤器解决声明:Filter有很多种,我们就用WebFilter来入门老规矩,先看源码,发现Filter接口有三个方法需要我们实现//// Source code recreated from a .class file by IntelliJ IDEA// (powered by FernFlower decompiler)/

随便推点

linux内核使用pinctrl子系统实现操作gpio输出高低电平的实现_酸菜鱼的鱼的博客-程序员秘密_reset pin dts

硬件平台:rv1108参考博客:https://blog.csdn.net/chenliang0224/article/details/78777995在内核中实现使用pinctrl子系统控制gpio主要实在两个方面:dts文件的节点的添加和驱动代码的编写。1.dts文件的修改dts的文件添加相应的dts节点信息主要是参考dts pinctrl的相关例子。毕竟每个平台的dts的具体...

22. 如何决定使用 HashMap 还是 TreeMap?_无痕YF的博客-程序员秘密

HashMap基于散列桶(数组和链表)实现;TreeMap基于红黑树实现。HashMap不支持排序;TreeMap默认是按照Key值升序排序的,可指定排序的比较器,主要用于存入元素时对元素进行自动排序。HashMap大多数情况下有更好的性能,尤其是读数据。在没有排序要求的情况下,使用HashMap。两个都是非线程安全...

JVM - 方法静态分派和动态分派_奔三的coder的博客-程序员秘密_jvm静态分配和动态分配

一、静态分派:指JVM在方法重载时如何找到正确方法的过程二、重载方法public class StaticPatch { public void sayHello(Human human) { System.out.println("hello,Human"); } public void sayHello(Man man) { System.out.print...

datepicker unity 下载_Unity调用IOS时间日期控件UIDatePicker_罗恋的博客-程序员秘密

没什么好解析的上代码://***************************************日历、时间UIDatePicker* datePicker;-(void)DP_ShowPicker{if (datePicker!=nil) {[self DP_removeViews:nil];}UIViewController *vc = UnityGetGLViewController...

计算机网络编程6,计算机网络网络编程课件 计算机网络II(6).pdf_weixin_39603476的博客-程序员秘密

计算机网络II张淼计算机学院It is time to write simple C/S program-server2Cont.3Cont.4Cont.5Client6Cont.7Result8fgetsstdin writen readTCP TCPs...

EL 表达式和 JSTL 标签(1)_ EL_EL 概述_魏宇轩的博客-程序员秘密

JSPEL概述useBean、setProperty、getProperty 动态标签

推荐文章

热门文章

相关标签