Latex论文表格画法

  • 1 基本表格画法
  • 2 合并表格画法
  • 3 灵活实现表格

最近画了很多计算机会议和论文的表格,因此特意在这里做一个记录,以满足未来画基本表格的需要,节省时间。

1 基本表格画法

  • \begin{table}[htbp] 表示表格的开始。中括号中的 htbp 表示的是表格的浮动格式。当然这个基本参数不仅仅只是对表格有用。需要注意的是,一般使用 [htb] 这样的组合,这样组合的意思就是Latex会尽量满足排在前面的浮动格式,就是 h-t-b 这个顺序,让排版的效果尽量好。

    • [h] 表示将表格放在当前位置。
    • [t] 表示将表格放置在页面的顶部。
    • [b] 表示将表格放置在页面的底部。
    • [p] 将表格放置在一只允许有浮动对象的页面上。
  • \caption{my table} 表示表格的标题,该设置可以放在 \begin{tabular} \end{tabular} 环境的前后,使得表格的标题显示在表格的上面或下面。\label{table1} 表示表格名字,用于正文中引用表格。
  • 若要插入跨栏图表, 可以用浮动环境 table*\begin{table}[htbp] 变成 \begin{table*}[htbp]\end{table} 变成 \end{table*}
  • \begin{tabular}[位置]{列}\begin{tabular*}{宽度}[位置]{列} 设置表格环境参数格式。
    • \begin{tabular}{|c|c|c|} 。一个 c 表示有一列,格式为居中显示,这是列必选参数。通过添加 | 来表示是否需要绘制竖线。|| 表示画二条紧相邻的竖直线。

      • l 表示该列左对齐。
      • c 表示该列居中对齐。
      • r 表示该列右对齐。
    • 如果只需要某几列的宽度发生改变,可以使用 p{宽度} (以 cm 为单位或以 pt 为单位或 0.2\textwidth)来代替 c 参数,但是表格中的文字是默认左对齐的。因此此时可以添加 p{宽度}<{\centering} 来改变文本对齐方式,但此时需要添加包 \usepackage{array} 。在这里 \centering 参数可以被 \raggedleft\raggedright 替换,分别表示为左对齐和右对齐。
    • 也可以使用 tabular*\begin{tabular*}{宽度}[位置]{列})环境参数,如上的 {宽度} 可以设置为 {10cm},表示整个表格的宽度为 10cm。但由于设置了表格的整体宽度,为了使表格对齐,需要使用表达式 @{\extracolsep{\fill}} ,但画正式表格一般 不推荐 使用这种表格方式(比较复杂,感觉一般用于画类似三线表格的图表中),可以通过命令调整整个表格的缩放。
    • \begin{tabular}[位置]{cc}[位置] 中的参数是位置可选参数,该参数表示表格相对于外部文本行基线的位置,又称为垂直定位参数。一般为默认不设置,表示表格按照外部文本行的基线垂直居中。t表示表格顶部与当前外部文本行的基线重合。b 表示表格底部与当前外部文本行的基线重合。
  • 可用 \setlength{\tabcolsep}{1pt} 来调整表格的列间距离 (十分推荐)
  • 可用 \renewcommand\arraystretch{1.5} 来调整表格行间距,意思是将每一行的高度变为原来的1.5倍 (十分推荐)
  • 如果表格太大,可以使用 \scalebox{1.5} 来对表格进行缩放,意思是将表格的大小变为原来的1.5倍 (十分推荐),使用的时候需要添加包 \usepackage{graphicx}

基本表格画法如下:

\documentclass{article}\begin{document}
\begin{table}[htbp]
\caption{my table}
\label{table1}  %表格名字,用于正文中引用表格
\centering
\begin{tabular}{|c|c|c|}
\hline
(1,1) & (1,2) & (1,3) \\
\hline
(2,1) & (2,2) & (2,3) \\
\hline
(3,1) & (3,2) & (3,3) \\
\hline
(4,1) & (4,2) & (4,3) \\
\hline
\end{tabular}
\end{table}
\end{document}

其实现效果如下:

使用 **\setlength{\tabcolsep}{1pt}{表格}**来调整表格的列间距离,如下所示:

\documentclass{article}\begin{document} \begin{table}[htbp]
\caption{my table}
\centering
\setlength{\tabcolsep}{5mm}{
\begin{tabular}{|c|c|c|}
\hline
(1,1) & (1,2) & (1,3) \\
\hline
(2,1) & (2,2) & (2,3) \\
\hline
(3,1) & (3,2) & (3,3) \\
\hline
(4,1) & (4,2) & (4,3) \\
\hline
\end{tabular}}
\end{table}\end{document}

其实现效果如下:

使用 \renewcommand\arraystretch{1.5} 来调整表格行间距,如下所示:

\documentclass{article}\begin{document} \begin{table}[htbp]
\caption{my table}
\centering
\renewcommand\arraystretch{1.5}{
\setlength{\tabcolsep}{5mm}{
\begin{tabular}{|c|c|c|}
\hline
(1,1) & (1,2) & (1,3) \\
\hline
(2,1) & (2,2) & (2,3) \\
\hline
(3,1) & (3,2) & (3,3) \\
\hline
(4,1) & (4,2) & (4,3) \\
\hline
\end{tabular}}}
\end{table}\end{document}

其实现效果如下:

使用 \scalebox{1.5} 来对表格进行缩放,如下所示:

\documentclass{article}
\usepackage{graphicx} %需要添加的包\begin{document} \begin{table}[htbp]
\caption{my table}
\centering
\scalebox{1.5}{
\renewcommand\arraystretch{1.5}{
\setlength{\tabcolsep}{5mm}{
\begin{tabular}{|c|c|c|}
\hline
(1,1) & (1,2) & (1,3) \\
\hline
(2,1) & (2,2) & (2,3) \\
\hline
(3,1) & (3,2) & (3,3) \\
\hline
(4,1) & (4,2) & (4,3) \\
\hline
\end{tabular}}}}
\end{table}\end{document}

其实现效果如下:

使用 p{宽度}<{\centering} 情况如下所示:

\documentclass{article}
\usepackage{array} %需要添加的包\begin{document} \begin{table}[htbp]
\caption{my table}
\centering
\begin{tabular}{|p{1cm}<{\centering}|p{2cm}<{\centering}|p{3cm}<{\centering}|}
\hline
(1,1) & (1,2) & (1,3) \\
\hline
(2,1) & (2,2) & (2,3) \\
\hline
(3,1) & (3,2) & (3,3) \\
\hline
(4,1) & (4,2) & (4,3) \\
\hline
\end{tabular}
\end{table}\end{document}

其实现效果如下:

使用 \begin{tabular*}{宽度}[位置]{列} 情况如下所示:

\documentclass{article}
\usepackage{array} %需要添加的包\begin{document} \begin{table}[htbp]
\caption{my table}
\centering
\def\temptablewidth{0.6\textwidth}
{\rule{\temptablewidth}{1pt}}  %根据使用情况灵活设置,线的粗细
\begin{tabular*}{\temptablewidth}{@{\extracolsep{\fill}}ccccc}
\hline
&(1,1)&(1,2)&(1,3)&\\
\hline
&(2,1)&(2,2)&(2,3)&\\
\hline
&(3,1)&(3,2)&(3,3)&\\
\hline
&(4,1)&(4,2)&(4,3)&\\
\hline
\end{tabular*}
{\rule{\temptablewidth}{1pt}}
\end{table}\end{document}

其实现效果如下:

2 合并表格画法

如下是表格中一些横线的画法(Tips: 如下表格中的(1,1)代表该格子在整个表格中的位置,有助于我们画表格):

  • \hline:这条命令只能位于第一行前面或紧接在行结束命令\的后面,表示在刚结束的那一行画一根水平的直线,横线的宽度与表格的宽度相同,放在一起的两条水平\hline命令就会画出两条间隔很小的水平线。
  • \cline{n-m}:这条命令在一行中可以出现多次。该命令从第n列的左边开始,画一条到第m列右边结束的水平线,对应前面的列数。
\documentclass{article}
\begin{document} \begin{table}[htbp]
\caption{my table}
\centering
\renewcommand\arraystretch{1.5}{
\setlength{\tabcolsep}{5mm}{
\begin{tabular}{|c|c|c|}
\hline
(1,1) & (1,2) & (1,3) \\
\hline
(2,1) & (2,2) & (2,3) \\
\cline{2-3}
(3,1) & (3,2) & (3,3) \\
\cline{1-1} \cline{3-3}
(4,1) & (4,2) & (4,3) \\
\hline
\end{tabular}}}
\end{table}\end{document}

其实现效果如下所示:

为了得到合并的格子,可以通过命令 \multicolumn\multirow 进行合并单元格。需要引入包 \usepackage{multirow} 。其一般的参数使用方法如下。更详细可以参考LaTex表格绘制的小技巧。

  • \multicolumn{参数1}{参数2}{参数3}

    • 参数1 表示要将整个单元格分成多少列
    • 参数2 表示对齐方式
    • 参数3 表示这个单元格的内容
  • \multirow{参数1}{参数2}{参数3}
    • 参数1 表示要将整个单元格分成多少行
    • 参数2 表示对齐方式
    • 参数3 表示这个单元格的内容

\multicolumn{2}{|c|}{multi col} 指的是这个单元格占两列,表格中的内容居中表示,填充内容为multi col,并在该单元格左右画俩条竖线(原始的 tabular 中设置的 |c| 的两边的竖线会消失)。
\multirow{2}*{multi row} 指的是这个单元格占两行,填充内容为multi row,参数2 是文本所在列的宽度。它可以用*取代,表示用文本的自然宽度作为列的宽度,当使用*的时候不需要打括号。
\multicolumn{2}{c|}{\multirow{2}{*}{multi col row}} 指的是这个单元格占两行,同时也占两列。如果 \multirow 前面没有 \multicolumn 的话,默认就是只占一列。注意:对应未填入的格子需要进行填充。若为多行单列,只需要把该位置空出来即可。当为多行多列的时候,下一行需要使用类似 \multicolumn{2}{c}{} 的语句对多列进行填充。

\documentclass{article}
\usepackage{multirow}
\begin{document} \begin{table}[htbp]
\caption{my table}
\centering
\renewcommand\arraystretch{1.5}{
\setlength{\tabcolsep}{5mm}{
\begin{tabular}{|c|c|c|c|c|c|}
\hline
\multicolumn{2}{|c|}{\multirow{2}*{multi col row}} &\multicolumn{3}{|c|}{multi col} & \multirow{2}{*}{multi row}\\
\cline{3-5}
\multicolumn{2}{|c|}{} & (2,3) & (2,4) & (2,5) & \\
\hline
\multirow{3}{*}{multi row} & (3,2) & (3,3) & (3,4) & (3,5) & (3,6)\\
\cline{2-6}& (4,2) & (4,3) & (4,4) & (4,5) & (4,6)\\
\cline{2-6}& (5,2) & (5,3) & (5,4) & (5,5) & (5,6)\\
\hline
\end{tabular}}}
\end{table}\end{document}

其实现效果如下:

若要使用斜线表头,需要使用 \diagbox 命令,需要添加包 \usepackage{diagbox}\diagbox[innerwidth=3.3cm]{A}{B}} 中的 [innerwidth=3.3cm] 取决于列宽度的大小。

\documentclass{article}
\usepackage{multirow}
\usepackage{diagbox}
\begin{document} \begin{table}[htbp]
\caption{my table}
\centering
\renewcommand\arraystretch{1.5}{
\setlength{\tabcolsep}{5mm}{
\begin{tabular}{|c|c|c|c|c|c|}
\hline
\multicolumn{2}{|c|}{\multirow{2}*{\diagbox[innerwidth=3.3cm]{A}{B}}} &\multicolumn{3}{c|}{multi col} & \multirow{2}{*}{multi row}\\
\cline{3-5}
\multicolumn{2}{|c|}{} & (2,3) & (2,4) & (2,5) & \\
\hline
\multirow{3}{*}{multi row} & (3,2) & (3,3) & (3,4) & (3,5) & (3,6)\\
\cline{2-6}& (4,2) & (4,3) & (4,4) & (4,5) & (4,6)\\
\cline{2-6}& (5,2) & (5,3) & (5,4) & (5,5) & (5,6)\\
\hline
\end{tabular}}}
\end{table}\end{document}

其实现效果如下所示:

3 灵活实现表格

因为有些需求,需要在论文模板中灵活实现一个表格,但能实现就行。~~~ / / / ( ^ v ^ ) \ \ \~~~。

\documentclass{article}
\usepackage{multirow}
\usepackage{diagbox}
\usepackage{graphicx}
\usepackage{booktabs}
\begin{table*}[t]\setlength{\abovecaptionskip}{0.cm}\setlength{\belowcaptionskip}{-0.cm}\caption{Average search time (s)}\label{TAB1}\centering\scalebox{0.85}{\begin{tabular}{c|c|c|c|c|c|c|c|c|c|c|c|c|c}\cline{2-13}\multirow{2}*{}&\multicolumn{2}{c|}{\multirow{2}*{\# of people}}& \multicolumn{10}{c|}{Date}& \\\cline{4-13}&\multicolumn{2}{c|}{}&2016/2/8&2016/2/16&2016/3/10&2016/3/18&2016/4/6&2016/4/22&2016/5/11&2016/5/15&2016/6/2&2016/6/25\\\cline{2-13}&\multirow{2}*{5000}&Random&0&0&0&0&0&0&0&0&0&0\\\cline{3-13}&\multicolumn{1}{c|}{}&Our&0&0&0&0&0&0&0&0&0&0\\\cline{2-13}&\multirow{2}*{6000}&Random&0&0&0&0&0&0&0&0&0&0\\\cline{3-13}&\multicolumn{1}{c|}{}&Our&0&0&0&0&0&0&0&0&0&0\\\cline{2-13}&\multirow{2}*{7000}&Random&0&0&0&0&0&0&0&0&0&0\\\cline{3-13}&\multicolumn{1}{c|}{}&Our&0&0&0&0&0&0&0&0&0&0\\\cline{2-13}\specialrule{0em}{1pt}{2pt}\hline\specialrule{0em}{1pt}{1pt}\cline{2-13}&\multirow{2}*{8000}&Random&0&0&0&0&0&0&0&0&0&0\\\cline{3-13}&\multicolumn{1}{c|}{}&Our&0&0&0&0&0&0&0&0&0&0\\\cline{2-13}&\multirow{2}*{9000}&Random&0&0&0&0&0&0&0&0&0&0\\\cline{3-13}&\multicolumn{1}{c|}{}&Our&0&0&0&0&0&0&0&0&0&0\\\cline{2-13}&\multirow{2}*{10000}&Random&0&0&0&0&0&0&0&0&0&0\\\cline{3-13}&\multicolumn{1}{c|}{}&Our&0&0&0&0&0&0&0&0&0&0\\\cline{2-13}\end{tabular}}
\end{table*}

其实现效果如下:

Latex论文表格画法及相关技巧相关推荐

  1. Latex论文表格画法

    参考 Latex论文表格画法 - 云+社区 - 腾讯云 1.基本表格画法 \begin{table}[htbp] 表示表格的开始.中括号中的 htbp 表示的是表格的浮动格式.当然这个基本参数不仅仅只 ...

  2. latex论文排版个人向相关问题记录

    很久没更新了,小论文基本都见刊了,记录下之前写论文碰上的latex一些排版问题吧,比较琐碎. 伪代码跨页问题 最开始使用algorithms包来写的伪代码,左边会有大方括号,蛮好看的. 不过使用alg ...

  3. Latex三线表画法合集

    Latex常用表格画法合集 前言 当我们使用Latex写论文的时候,三线表是展示实验结果的常用方法,但网上的方法杂七杂八,找到自己想要的表格需要花费一番功夫.本篇文章旨在记录论文常用表格的画法,方便论 ...

  4. Latex小技巧:将Excel表格转换为Latex格式表格

    参考: https://blog.csdn.net/LF21011501/article/details/89684798  Latex小技巧:将Excel表格转换为Latex格式表格 Latex作为 ...

  5. axure 8 表格合并_搞定LaTeX论文中的表格

    论文中的表格制作一直是令人头疼的事情,直到我遇见了这个Excel插件. 在此之前,我用过一些其他的小工具,例如在线的latex表格生成器 以及离线的LaTable软件 .他们虽然部分解决了手动写lat ...

  6. latex 分行 表格标题过长_使用latex撰写Elsevier论文,遇到的表格标题caption换行以及左对齐问题的解决办法...

    使用latex撰写Elsevier论文,遇到的表格标题caption换行以及左对齐问题的解决办法 . 最近用latex书写elsevier的论文,生成表格时遇到了一个问题.一般elsevier的论文表 ...

  7. overleaf表格_搞定LaTeX论文中的表格

    论文中的表格制作一直是令人头疼的事情,直到我遇见了这个Excel插件. 在此之前,我用过一些其他的小工具,例如在线的latex表格生成器 以及离线的LaTable软件 .他们虽然部分解决了手动写lat ...

  8. latex中表格怎么加标题_在LateX中输入公式、表格技巧

    文章目录 公式编辑器表格编辑器Latex设置表格字体大小LateX给表格加标题和标签LateX插入三线表LateX安装指南 如果在LateX中直接输入.编辑公式或表格,不是不可以,但是不能直接可视化编 ...

  9. 【githubboy】数学建模学习资源,包含数学建模相关的算法、LaTeX 论文模板、算法思维导图

    在 GitHub 开源了数学建模学习资源,主要包含数学建模相关的竞赛优秀论文.算法.LaTeX 论文模板.算法思维导图.书籍.Matlab 教程等内容. GitHub:github.com/zhanw ...

最新文章

  1. hdu1754(树状数组求最值问题)
  2. 关于方程求根的解决方案
  3. 2018年哪项AI研究最紧迫?DeepMind联合创始人说是AI伦理
  4. Cannot attach the file as database 'membership'.
  5. 【免费毕设】基于Web的subversion用户管理系统(系统+论文)
  6. 如何计算像素当量_「轴承知识」如何通过静承载能力选择轴承
  7. shellcode执行盒_简单shellcode学习
  8. SpringSecurity入门到入土教程_2 Oauth教程
  9. 探讨一种 Java 实现分组的方法
  10. 饿了么分布式KV架构与实践
  11. jQuery EasyUI/TopJUI实现数据表格的增删改查功能(不写js,纯HTML实现!!!)
  12. c语言编译器不支持c99,Visual Studio2013的C语言编译器对C99标准的支持情况
  13. [原创]网站文章页面添加分享按钮,百度按钮代码复制使用时不显示问题解决!
  14. 置信区间 置信水平 边际误差
  15. vscode 开发 Java web 急速教程
  16. 2015年第六届蓝桥杯C/C++程序设计本科B组决赛第二题
  17. h5 HTML5 浏览器 录制视频
  18. sql server数据库添加 mdf数据库文件,遇到的报错
  19. python作业火车票订购系统_Python脚本实现12306火车票查询系统
  20. 大数据开发需要数学好吗?

热门文章

  1. 如何快速打开北京健康宝小程序?
  2. 软件测试之微软学术搜索(Microsoft Academic Search)
  3. 电商那些年,我摸爬打滚出的高并发架构实战精髓(2017-03-27 YYQ DBAplus社群)
  4. (四)基于区块链的自动抽奖系统从0到1实现
  5. c# datatable数据合并方法
  6. C++之一些事一些情--变量值的溢出问题
  7. org.apache.shiro.session.ExpiredSessionException: Session with id异常排查
  8. python求最小公倍数_Python实现的求解最小公倍数算法示例
  9. 有衬线字体 无衬线字体_衬线或不衬线
  10. 兰道定理 HDU-5873