LaTeX基础-Tables的创建
文章目录
参考博客:
latex表格手把手超详细教程(table, tabular, multirow, multicolumn)_latex tabular-CSDN博客
Tables - Overleaf, Online LaTeX Editor
474. LaTeX技巧184:精致的表格教程 - LaTeX工作室 (latexstudio.net)
基本模板
\documentclass{article}
\begin{document}
\end{document}
内容插入这里面
创建一个一个简单表格
无边框
\begin{center}
\begin{tabular}{ c c c }
cell1 & cell2 & cell3 \\
cell4 & cell5 & cell6 \\
cell7 & cell8 & cell9
\end{tabular}
\end{center}
显示效果:
内容讲解:
tabular:这个是默认LaTeX创建表格的环境,你必须指定一个环境
{c c c}:这个是告诉LaTeX,三列,并且是居中的效果
有边框的表格
\begin{center}
\begin{tabular}{ |c|c|c| }
\hline
cell1 & cell2 & cell3 \\
cell4 & cell5 & cell6 \\
cell7 & cell8 & cell9 \\
\hline
\end{tabular}
\end{center}
显示效果:
内容介绍:
{|c|c|c|}:这表示有三列,通过竖线分开,其中 c 表示居中,也可以使用 r 右对齐,l 左对齐
\hline:这将在表格的最顶部插入一个水平线,你可以无限次使用\hline
cell1 & cell2 & cell3 \\: 每个 & 都表示分隔,\\用于一行的结束
也可以这样写:
\begin{document}
\begin{center}
\begin{tabular}{ |c|c|c| }
\hline
cell1 & cell2 & cell3 \\
\hline
cell4 & cell5 & cell6 \\
\hline\hline
cell7 & cell8 & cell9 \\
\hline
\end{tabular}
\end{center}
\end{document}
显示的效果就是:
有固定宽度的表格
单独管理每个单元格的宽度
当你对每一个列或一个表进行规范的时候,你可以加入下列的包:
\usepackage{array}
使用如下的内容来进行固定列的宽度
\documentclass{article}
\usepackage{array}
\begin{document}
\begin{center}
\begin{tabular}{ | m{5em} | m{1cm}| m{1cm} | }
\hline
cell1 dummy text dummy text dummy text& cell2 & cell3 \\
\hline
cell1 dummy text dummy text dummy text & cell5 & cell6 \\
\hline
cell7 & cell8 & cell9 \\
\hline
\end{tabular}
\end{center}
\end{document}
内容介绍:
m{5em}:em是创建一个基本的弹性布局,也是一种宽度的计量单位,类似于px,m表示居中,p表示置顶,b表示置底,
使用这个参数,文本可以自动格式化以适应每个单元格
均匀分配整个单元格的宽度
如果你不需要控制每个单元格的宽度,而是控制整个单元格的宽度,然后均匀的分配其中的空间,那么可以使用tabularx包:
\usepacekage{tabularx}
如下:
\documentclass{article}
\usepackage{tabularx}
\begin{document}
\begin{tabularx}{0.8\textwidth} {
| >{\raggedright\arraybackslash}X
| >{\centering\arraybackslash}X
| >{\raggedleft\arraybackslash}X | }
\hline
item 11 & item 12 & item 13 \\
\hline
item 21 & item 22 & item 23 \\
\hline
\end{tabularx}
\end{document}
显示如下:
内容解释:
0.8\textwidth:表示占有表格的80%的空间
{\raggedright\arraybackslash}:
- raggedleft:表示向右对齐,
- raggedright:表示向左对齐,
- centering表示居中
- \arraybackslash:固定模板,必须要加的
合并行和列
合并列
想要合并行和列,需要用到包multirow
来实现
\documentclass{article}
\usepackage{multirow}
\begin{document}
\begin{tabular}{ |p{3cm}||p{3cm}|p{3cm}|p{3cm}| }
\hline
\multicolumn{4}{|c|}{Country List} \\
\hline
Country Name or Area Name& ISO ALPHA 2 Code &ISO ALPHA 3 Code&ISO numeric Code\\
\hline
Afghanistan & AF &AFG& 004\\
Aland Islands& AX & ALA &248\\
Albania &AL & ALB& 008\\
Algeria &DZ & DZA& 012\\
American Samoa& AS & ASM&016\\
Andorra& AD & AND &020\\
Angola& AO & AGO&024\\
\hline
\end{tabular}
\end{document}
显示效果:
内容解释:
\multicolumn{4}{|c|}{Country List} \\:
\multicolumn:固定模板,合并列
{4}:表示合并多少列
{|c|}:表示居中
{Country List}:显示内容
合并行
想要合并行,需要加入包:
\usepackage{multirow}
具体实现代码:
\documentclass{article}
\usepackage{multirow}
\begin{document}
\begin{center}
\begin{tabular}{ |c|c|c| }
\hline
col1 & col2 & col3 \\
\hline
\multirow{3}{4em}{Multiple row} & cell2 & cell3 \\
& cell5 & cell6 \\
& cell8 & cell9 \\
\hline
\end{tabular}
\end{center}
\end{document}
显示内容:
内容解释:
和合并列是一样的 ,这里就不解释了
实际实现的样式:
这个注意要加上
\usepackage{graphicx} % 基本包内容
\resizebox{\textwidth}{!}{} % 设置表格适应文章宽度
要不然会导致表格与页面不适应导致表格显示不全
\documentclass{article}
\usepackage{graphicx}
\usepackage{multirow}
\begin{document}
\begin{table*}[t]
\centering
\caption{MAP scores of teacher model, different student models with 4 widths and three baseline models with different length of binary codes on CIFAR-10 and SUN datasets.}
\label{table1}
\resizebox{\textwidth}{!}{
\begin{tabular}{|c|c|c|c|c|c|c|c|}
\hline
\multicolumn{2}{|c|}{\multirow{2}{*}{Model}} &\multirow{2}{*}{FLOPs}&\multirow{2}{*}{Params} & \multicolumn{4}{c|}{CIFAR-10}\\
\cline{5-8}
\multicolumn{2}{|c|}{} & & & 12bits & 24bits & 32bits & 48bits \\
\hline
\multicolumn{2}{|c|}{Teacher} &4.12G &25.56M &0.87841 &0.89512 &0.9014 &0.90601 \\
\hline
%0.25x-----------------
\multirow{4}{*}{$0.25\times$} & Stu-1 & 0.15G & 1.03M & 0.70746 & 0.73458 & 0.74909 & 0.75833 \\
\cline{2-8}
\multirow{4}{*}{} & Stu-2 &0.19G &1.08M &0.7629 &0.79111 &0.80039 &0.80519 \\
\cline{2-8}
\multirow{4}{*}{} & Stu-3 &0.26G &1.43M &0.84684 &0.86443 &0.87384 &0.88268 \\
\cline{2-8}
\multirow{4}{*}{} & Stu-4 & 0.29G &1.99M &0.85901 &0.87269 &0.8836 &0.88728 \\
\hline
\end{tabular}}
\label{table_MAP}
\end{table*}
\end{document}
最终实现效果:
内容解释:
\cline{2-8}:为了实现横线从第2列到第8列,而\hline
是不自定义横线长度,而是直接从左到右全横线
{*}:这个符号的意义是为了跨多行实现合并
-
4
表示这个单元格会跨越4行。 -
*
表示宽度自动适应内容。 -
{$0.25\times$}
是这个单元格的内容。
三线表的绘制
学术论文普遍使用三线表。三线表的特点主要是:整个表格通常只有三条横线, 首尾两条横线较粗,中间一条较细,一般不使用竖线。
主要用到的宏包是:
\usepackage{booktabs}
普通表
下面是普通三线表的代码和效果:
\documentclass{article} % 基本语法
\usepackage{booktabs} % 用于绘制三线表格
\usepackage{ctex} % 添加中文字体
\usepackage{graphicx} % 用于插入图形文件
\usepackage{multirow} % 合并多行
\usepackage{amssymb} % 包含了大量的数学符号,如✓,×,α,β之类数学符号的
\begin{document}
\begin{table}[htbp]
\centering
\caption{员工地址}
\label{aaa}
\begin{tabular}{lcl}
\toprule 姓名 & 年龄 & 地址\\
\midrule 张三 & 32 & 中华人民共和国\\
李四 & 12 & 中华人民共和国\\
王五 & 24 & 中华人民共和国\\
\bottomrule
\end{tabular}
\end{table}
\end{document}
实现效果:
扩展
\documentclass{article} % 基本语法
\usepackage{booktabs} % 用于绘制三线表格
\usepackage{ctex} % 添加中文字体
\usepackage{graphicx} % 用于插入图形文件
\usepackage{multirow} % 合并多行
\usepackage{amssymb} % 包含了大量的数学符号,如✓,×,α,β之类数学符号的
\begin{document}
\begin{table*}[t]
\centering
\caption{A comparison between UESTC, Xidian University and BUPT.}
\label{tab:univ-compa}
\resizebox{\textwidth}{!}{
\begin{tabular}{lcccrrr}
\toprule
\textbf{University} & \textbf{Double-Top (A)} & \textbf{985} & \textbf{211} & \textbf{ARWU Ranking} & \textbf{QS Ranking} & \textbf{US News Ranking} \\ \midrule
UESTC & $\checkmark$ & $\checkmark$ & $\checkmark$ & 151-200 & 591-600 & 272 \\
BUPT & & & $\checkmark$ & 601-700 & 801-1000 & 760 \\
Xidian University & & & $\checkmark$ & 401-500 & n/a & 729 \\
\bottomrule
\end{tabular}}
\end{table*}
\end{document}
实现效果:
内容解释:
-
这里面的对号是用数学符号实现的
$\checkmark$
-
注意:由于这个表太大,需要调整大小,用的就是
\resizebox{\textwidth}{!}{}
需要用到包\usepackage{graphicx}
-
\textbf{University}:用于文字加粗