Latex 制作表格

  • 前言
  • 一、Latex三线表
    • 1、普通三线表
    • 2、跨页三线表
  • 二、简单表
    • 1、基本需求表
    • 2、表格整体相关设置【表名及位置、表宽、注解、字号】
      • 1. 表格标题及位置
      • 2. 表宽设置
      • 3. 表格注解
      • 4. 字号设置
  • 三、复杂表
    • 1、合并单元格
    • 2、斜线表头
  • 五、常用表格模板代码
  • 总结

前言

Latex 表格代码汇总,包括三线表[跨页]、简单表[表格基本配置(表名、表宽、注解、字号)]、单元格合并、斜线表头、


一、Latex三线表

1、普通三线表

三线表需要一个专门的宏包booktabs。通过该宏包,可以使用以下代码画不同粗细的表线。

代码 含义
\toprule 顶部粗线
\midrule 中间细线
\bottomrule 底部粗线

示例代码:

\documentclass{article}
\usepackage{booktabs} % 导入三线表需要的宏包\begin{document}\begin{tabular}{ccc}% 其中,tabular是表格内容的环境;c表示centering,即文本格式居中;c的个数代表列的个数
\toprule %[2pt]设置线宽
a & b  &  c \\ %换行
\midrule %[2pt]
1 & 2 & 3 \\
4 & 5 & 6 \\
7 & 8 & 9 \\
\bottomrule %[2pt]
\end{tabular}\end{document}

代码结果图片:

2、跨页三线表

跨页表格需要导入宏包 longtable,并将原来的表格内容环境tabular改成longtable即可。

示例代码:

\documentclass{article}
\usepackage{booktabs} % 导入三线表需要的宏包
\usepackage{longtable}% 导入跨页表格所需宏包
\begin{document}\begin{longtable}{ccc}% 其中,tabular是表格内容的环境;c表示centering,即文本格式居中;c的个数代表列的个数
\toprule %[2pt]设置线宽
a & b  &  c \\ %换行
\midrule %[2pt]
1 & 2 & 3 \\
4 & 5 & 6 \\
7 & 8 & 9 \\
\bottomrule %[2pt]
\end{longtable}\end{document}

代码结果图片:

二、简单表

1、基本需求表

表格,简而言之就是被 横竖表线 框起来文本。

1.横线:

代码 含义
\hline 表格所有列的一整条表线
\cline{a-b} 指定列数的表线,a-b表示从第a列到第b列

2.竖线:| |
3.文本位置:

参数 含义
c centering,表示文本居中
l left,表示文本靠左
r rigth,表示文本靠右

参考代码:

\begin{document}\begin{tabular}{|c|c|c|c|r|l|} \hline % 其中,|c|表示文本居中,文本两边有竖直表线。
aaaaa & bbbbb & ccccc & ddddd & eeeee & fffff  \\ \hline
1 & 2 & 3 & 4 & 5 & 6  \\ \hline
7 & 8 & 9 & 10 & 11 & 12\\ \hline
13 & 14 & 15 & 16 & 17 & 18\\ \hline
\end{tabular}\end{document}

代码结果图片:

2、表格整体相关设置【表名及位置、表宽、注解、字号】

很多时候,我们都是对表格整体进行相关设置,来达到自己的相关需求。而对表格整体的相关设置其实与表格内容并无太大关系。

因此我们需要在表格内容环境【如上文中的 \begin{tabular}、\begin{longtable} 】外面进行相关环境设置。

\begin{table}%表格环境...表格整体相关设置
\begin{tabular}% 表格内容环境
\end{tabular}
...表格整体相关设置\end{table}

1. 表格标题及位置

1.标题
导入宏包 caption,使用代码:\caption{表格标题}(位置上下均可)

2.位置
\begin{table}[!ht],中的参数 !ht 就是对表格位置的相关设置。

[!ht] 这个参数组合是我比较喜欢用的,含义:尽量放在代码当前位置,实在放不下,将放在下一页的顶部。

其他参数及含义如下:

参数 含义
h (here)代码当前位置
t (top)页面顶部
b (bottom) 页面底部
p 单独一个页面,只含浮动对象
忽略系统排版美学因素,尽可能按照你的代码参数放置表格位置
H 需导入宏包 float ,放在当前代码位置,放不下则不显示(错误)

位置参数参考

参考代码:

\begin{table}[!ht] % [!ht]表格在文本中放置的位置参数(努力放在当前位置,实在放不下,将放在下一页的顶部)
\centering % 表格整体居中
\caption{表格标题}
\begin{tabular}{|c|c|c|c|r|l|} \hline % 其中,|c|表示文本居中,文本两边有竖直表线。
aaaaa & bbbbb & ccccc & ddddd & eeeee & fffff  \\ \hline
1 & 2 & 3 & 4 & 5 & 6  \\ \hline
7 & 8 & 9 & 10 & 11 & 12\\ \hline
13 & 14 & 15 & 16 & 17 & 18\\ \hline
\end{tabular}
\end{table}

代码结果图片:

2. 表宽设置

由于latex的表格长宽都是通过表格中文本的最大长度来设定的,这就可能造成表格过窄或过宽导致的不美观现象。
因此,如果你对表格的美观程度要求较高的话,就还需要设定一些参数。

1.自定义表格整体大小
首先需要导入graphics、graphicx、pdfpages 这三个宏包中的任意一个,然后在表格内部环境外面进行相关设置。
resizebox{表宽}{表长}{…表格内部环境…}
其中,表宽和表长可以自己定义多少厘米,也可以采用页面的相关长度来进行设置。
以下是相关参数及含义:

参数 含义
\linewidth 当前环境宽度,即上下文宽度
\textwidth 文本宽度
(高度或宽度)随着另一个参数的改变而改变

宽度参数参考

存在的缺陷:改变了表格的大小,同时也会自动改变表格中文本字体的大小,如果你对表格中的字体还有要求的话,那么这个代码并不适用。

参考代码:

\usepackage{graphics}
\begin{document}\begin{table}[!ht]\resizebox{\textwidth}{!}{ % 表格环境外部设置(头)
\begin{tabular}{|c|c|c|c|r|l|} \hline % 其中,|c|表示文本居中,文本两边有竖直表线。
aaaaa & bbbbb & ccccc & ddddd & eeeee & fffff  \\ \hline
1 & 2 & 3 & 4 & 5 & 6  \\ \hline
7 & 8 & 9 & 10 & 11 & 12\\ \hline
13 & 14 & 15 & 16 & 17 & 18\\ \hline
\end{tabular}
}% 外部环境设置(尾)\end{table}\end{document}

代码结果图片:

2. 设置每列文本宽度

① \setlength{\tabcolsep}{宽度}{…表格内部环境…},设置表格中每列的宽度(每个单元格都是一样的)。

② 导入宏包array,使用 \begin{tabular}{宽度设置} 进行设置

宽度设置相关参数:

参数 含义
p{宽度} 指定单元格宽度,汉字内容超出宽度自动换行,文本在单元格中的位置为垂直靠上
m{宽度} 指定单元格宽度,汉字内容超出宽度自动换行,文本在单元格中的位置为垂直居中
b{宽度} 指定单元格宽度,汉字内容超出宽度自动换行,文本在单元格中的位置为垂直靠下
<{\raggedright} 单元格内容左对齐
<{\raggedleft} 单元格内容右对齐
<{\centering} 单元格内容居中

参考代码:

\begin{tabular}{|p{6cm}<{\raggedleft}|p{4cm}<{\raggedright}|p{4cm}<{\centering}|} \hline汉字文本文本文本文本&汉字文本文本文本文本汉字文本文本文本文本&汉字文本文本文本文本汉字文本文本文本文本汉字文本文本文本文本\\ \hline
汉字文本&汉字文本&汉字文本\\ \hline
aaaaaaaaa&aaaaaaaaa&aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\\ \hline
111111111&111111111&111111111111111111111111111111111111\\ \hline\end{tabular}

代码结果图片:

文本对齐参数参考

3.更多方法
当然,如果你实在不想管这些东西,你还可以利用空格来增加文本的宽度,快速的得到你想要的表格。
空格的相关设置参数如下:

参数 含义
a\ b ab之间1个m的宽度
a\quad b ab之间2个m的宽度

空格参数参考

3. 表格注解

导入宏包 threeparttable,使用 \begin{threeparttable} 进行设置。

参考代码:

\centering
\begin{threeparttable}
\begin{tabular}{|c|c|c|c|c|c|} \hline班级层次&平均值   &个案数    &标准偏差   &最小值&最大值\\ \hline
1&  53.74&  77  &29.819&    4   &96\\ \hline
2   &57.60  &119&   28.971& 4   &100\\ \hline
3   &58.94& 119&    29.930  &0& 100\\ \hline
总计  &57.16  &315    &29.520&    0&  100\\ \hline
\end{tabular}
注: 1代表学习成绩低的同学;2代表学习层次居中的同学;3代表学习层次较好的同学。
\end{threeparttable}

代码结果图片:

4. 字号设置

由前文对表格整体的设置可知,当对表格整体进行设置的时候,只需在表格内容环境的外面进行相关设置,就可以改变表格的整体。
同样的,字号也是一样,字号设置的位置决定了你的作用域在哪里。
下面给出字体设置的相关参数:

参数 含义
\small 小五
\large 小四

字体字号参数参考

三、复杂表

1、合并单元格

导入宏包 multirow
对行合并:使用 \multirow{合并行数}{*}{文本内容}
对列合并:使用 \multicolumn{合并列数}{c|}{文本内容}
对行列进行合并:使用 \multicolumn{合并列数}{|c|}{\multirow{合并行数}{*}{内容}}

参考代码:

\begin{table}[!ht]\center
\begin{tabular}{|c|c|c|c|}\hline
\multicolumn{1}{|c|}{\multirow{2}{*}{aaaa}} & \multicolumn{3}{c|}{bbbb}\\ \cline{2-4}& cccc  & dddd & eeee \\ \hline
\multirow{2}{*}{aaaa}& 50 & 86 & 122  \\ \cline{2-4}
\multirow{2}{*}{ }& 5 & 78  & 107   \\ \hline3& 25 & 48  & 101  \\ \hline4& 28 & 60 & 106  \\ \hline
\end{tabular}\end{table}

代码结果图片:

2、斜线表头

导入宏包diagbox
利用 \diagbox{A}{B}{C} 来写某个单元格的分块内容

代码参考:

\centering
\begin{threeparttable}
\begin{tabular}{|c|c|c|c|c|c|} \hline\diagbox{班级层次}{班级层次}&平均值   &个案数    &标准偏差   &最小值&最大值\\ \hline
1&  53.74&  77  &29.819&    4   &96\\ \hline
2   &57.60  &119&   28.971& 4   &100\\ \hline
3   &58.94& 119&    29.930  &0& 100\\ \hline
总计  &57.16  &315    &29.520&    0&  100\\ \hline
\end{tabular}
注: 1代表学习成绩低的同学;2代表学习层次居中的同学;3代表学习层次较好的同学。
\end{threeparttable}

代码结果图片:

斜线表头参考

五、常用表格模板代码

1.代码1:

\begin{table*}[!ht]
%\usepackage{multirow}
\center
\caption{不同层次学生显著性分析}
\begin{threeparttable}
\resizebox{\linewidth}{!}{
\begin{tabular}{|c|c|c|c|c|c|c|c|} \hline\multirow{2}{*}{} &\multirow{2}{*}{(I) 班级层次} &\multirow{2}{*}{(J) 班级层次} &\multirow{2}{*}{平均值差值 (I-J)} &\multirow{2}{*}{标准 错误} &\multirow{2}{*}{显著性} &\multicolumn{2}{c|}{95\% 置信区间}\\ \cline{7-8}\multirow{2}{*}{}&\multirow{2}{*}{} &\multirow{2}{*}{} &\multirow{2}{*}{} &\multirow{2}{*}{} &\multirow{2}{*}{} &上限&下限   \\ \hline\multirow{6}{*}{塔姆黑尼}&\multirow{2}{*}{1} &2&    -3.856  &4.313  &.753&  -14.26& 6.55  \\ \cline{3-8}
\multirow{6}{*}{}&\multirow{2}{*}{} & 3 &-5.201&4.368&  .553&   -15.74& 5.34 \\ \cline{2-8}\multirow{6}{*}{}&\multirow{2}{*}{2} &1& 3.856&  4.313&  .753&   -6.55&  14.26  \\ \cline{3-8}
\multirow{6}{*}{}&\multirow{2}{*}{} &  3&   -1.345  &3.819& .979    &-10.53&    7.84\\ \cline{2-8}\multirow{6}{*}{}&\multirow{2}{*}{3} &1&  5.201&  4.368&  .553    &-5.34& 15.74  \\ \cline{3-8}
\multirow{6}{*}{}&\multirow{2}{*}{} & 2 &1.345& 3.819&  .979&   -7.84   &10.53 \\ \hline\multirow{2}{*}{邓尼特 t(双侧)} & 1&   3   &-5.201&4.321   &.384&  -14.83  &4.43 \\ \cline{2-8}
\multirow{2}{*}{} & 2&  3&  -1.345  &3.830  &.917   &-9.88  &7.19\\ \hline\end{tabular}
}
\begin{tablenotes}
\item[1] 1代表学习成绩低的同学;2代表学习层次居中的同学;3代表学习层次较好的同学。
\end{tablenotes}
\end{threeparttable}
\end{table*}

代码1结果图:

总结

Latex 制作表格相关推荐

  1. Latex 制作表格出现以下错误 Extra alignment tab has been changed to \cr

    Latex 制作表格出现以下错误: Extra alignment tab has been changed to \cr. \endtemplate 是由于列数没有对齐 查看一共有几列,如果是五列, ...

  2. 如何使用LaTeX制作表格

    LaTeX制作表格 今天真的是学到了!先看代码~ 我们先在导言区引入宏包: \documentclass{ctexart} \usepackage{amsmath} \usepackage{amssy ...

  3. LaTex制作表格之合并单元格

      在制作LaTex表格的时候,常常需要合并行和列,本文介绍的是使用 multirow 包里面的命令完成合并行列的方法. 代码 \begin{table*} %\usepackage{multirow ...

  4. 推荐一款制作表格工具|Latex|Markdown|HTML|Text|Mediawiki

    推荐一款制作表格工具|Latex|Markdown|HTML|Text|Mediawiki   我们在使用latex的时候,偶尔会用到latex画表格,我们可以使用代码模版去制作表格,只不过在添加元素 ...

  5. Latex 制作斜线表头、合并行列单元格

    这篇文章主要给出一些 Latex 制作斜线表头.合并行单元格与合并列单元格的 demo 演示 latex:制作斜线表头 \begin{tabular}{|l|ccc|} \hline \diagbox ...

  6. Latex 设置表格字体垂直居中且水平居中,字体放在表格最中央之简单好用的方法

    我相信许多人在使用Latex制作表格的时候,都遇到过表格中的文字不能垂直居中的问题. 本例子是在表格中插入图片作为例子的: \begin{figure}\centering\begin{tabular ...

  7. Latex:表格制作全攻略

    给出一个制作复杂表格的例子,制作表格主要用到multicolumn,multirow和cline,其中,要使用multirow,必须usepackage{multirow} 如果要制作出如下图所示的表 ...

  8. LaTeX 制作(跨页)长表格

    文章目录 前言 如何制作长表格(超过一页) 遇到的问题 arydshln包和longtable包的冲突 longtable 小问题 小结 参考 前言 这两天学习不是很连贯,一些生活琐事拖慢了学习的节奏 ...

  9. [Latex]TeXStudio轻松制作表格

    TeXStudio制作表格真的是一件比较复杂的事,尤其是对于一些学术实验论文,一般会有很多的实验数据需要统计表格,那么往往表格是很复杂的.只用TeXStudio语法来制作对于Letex小白来说还是很困 ...

  10. Latex制作三线表 Latex制作复杂表格 加彩色边框高亮显示

    Latex制作三线表,可对数据进行加彩色边框和背景色高亮显示.通过在导言区调用相应的宏包,在代码区定义一个新的彩色盒子的命令块\newtcbox,自行设定相应的参数(arc:盒子圆角半径:colbac ...

最新文章

  1. 20151102adonet2
  2. IPsec在企业网中的应用
  3. Android Studio 配置
  4. python从零开始的学习-python学习过程之从零开始
  5. 非对称加密算法 - Java加密与安全
  6. redis key存在则删除_Redis加锁的几种实现
  7. 子集和数问题——回溯法(C++)
  8. python ant_('python,-ANT--编程字典',)
  9. 使用“管道”与“应用程序生命周期”重构:可插拔模块
  10. 给大家推荐一本书啊啊~
  11. 如何去掉桌面图标上的小箭头
  12. HTML三种对密码加密的方法
  13. NAS设备之NFS文件配置
  14. 国内首届 Flutter Festival 为热爱开启!
  15. 使用Telerik的登陆模板实现DoubanFm的登陆(WP7)
  16. TI Davinci 五年七宗罪
  17. 学习记录664@项目管理之项目进度管理
  18. 华为鸿蒙系统问世微信红包,一个巨头的诞生 华为鸿蒙车机系统问世
  19. 当一个c语言表达式中同时含有,如果在一个C语言表达式中有多个运算符,则运算时应该( )...
  20. 吴恩达加入医疗机器人公司Woebot,AlphaGo Zero问世,高性能完胜旧版 | 大数据24小时

热门文章

  1. ES2022 有什么新功能?一起来瞧瞧
  2. 7-2 整数的因子 (10 分)
  3. npm : command not found 问题
  4. labwindows计时器
  5. java五子棋人机代码_Java五子棋AI实现代码
  6. 欧阳青C语言,[转载]恨君爱 作者 欧阳青
  7. PIXHAWK飞行模式
  8. javascript中对this的理解
  9. 英语学习详细笔记(九)分词
  10. tm影像辐射定标_ENVI中TM的辐射定标和大气校正