笔者使用单栏template,之前paper里写的双栏表格迁移过来的时候发生了一些问题,随后使用adjustbox调整许久之后问题才得以解决,至此深觉adjustbox乃好家伙也,作笔记记录一下table的常用排版格式。

demo:

先上个demo看看效果:

最基本的类三线表的样式,代码如下:

\begin{table}[!t]\centering\tiny\adjustbox{max width=0.85\linewidth,width=0.8\linewidth,center=\linewidth}{\begin{tabular}{l|cc|cc}\Xhline{0.5pt}\multirow{3}{*}{\textbf{Partition}} & \multicolumn{2}{c|}{\textbf{Rel}} &\multicolumn{2}{c}{\textbf{up}}\\& type & instance & type & instance\\    \Xhline{0.3pt}train & 2 & 2 & 12 & 3\\dev & 6 & 960 & 7 & 80\\test & 1 & 100 & 2 & 83\\\Xhline{0.5pt}\end{tabular}}\caption{The demo}\label{demo}
\end{table}

接下来一步步分解代码:

tabular

首先是最基础的tabular表格,也就是填数据的那个对象:

\begin{tabular}{l|cc|cc}  % 竖排格式,| 表示表格列之间有竖线;l表示居左,c表示居中\Xhline{0.5pt}  % 粗横线,{}中为粗细参数\multirow{3}{*}{\textbf{Partition}} & \multicolumn{2}{c|}{\textbf{Rel}} &\multicolumn{2}{c}{\textbf{up}}\\ % 这两行会有点难理解。大致就是分了三子行,并了两列为母列。听起来有点奇怪,之后会解释。& type & instance & type & instance\\    \Xhline{0.3pt}train & 2 & 2 & 12 & 3\\  % 这几行容易理解dev & 6 & 960 & 7 & 80\\test & 1 & 100 & 2 & 83\\\Xhline{0.5pt}\end{tabular}

上面最难理解的就是multirow和multicolumn的部分。首先\begin{tabular}{l|cc|cc}表格其实是有5列的,这点请先记住!后面会用到。

然后,我们先看一眼表格对应的部分:

直觉上也就看得出来,这行其实是不止一行的,这也就是multirrow的作用。\multirow{3}{*}{\textbf{Partition}}其实就是把Partition分给了三个子行(为什么是三个?后面会解释),multirow的参数:

\multirow{子行数}{对齐格式}{显示内容}

随后是立即又用&(列分隔符)拼接了两个multicolumn,注意 \multicolumn{2}{c|}{\textbf{Rel}}就是把两列并在了一起,然后放进去了一个Rel.还记得之前说过,这个表其实是有5列的,所以后面又紧跟了一个\multicolumn{2}{c}{\textbf{up}},又并掉两列,放了一个Up。至此第一个子行结束,接下来用\\换到下一个子行。然后注意,这里& type & instance & type & instance把第一个子列空了出来,所以这就使得上一个子行的Partition掉了下来。接下来就是常规的东西了。
如果我当时设置的是\multirow{2}{*}{\textbf{Partition}}也就是事先只设置2个子行呢?会变成下面:

可以看到,由于"高度不够",Partition“掉不下来了”,所以就很难看。
有人也会注意到,为什么我会用\multicolumn{2}{c|}{\textbf{Rel}},中间的对齐格式用的是c|?如果用c会这样:

这主要是因为multicolumn的关系,导致事先设置的{l|cc|cc}在multicolumn这个封装处无法正常显示。需要主动在对其中指定。

上述过程极具动态性,最好是自己实地操演一下,然后对着表格来理解公式!

table

这个简单,用table环境把tabular封装成一个浮动体。

adjustbox

这个东西好用,先看一下adjustbox的参数:

\adjustbox{自动调节区间}{tabular对象}

它其实就是给原先tabular封装了一层,然后加上灵活的调节范围,latex在编译的时候对这个tabular的排版放缩也会依据你事先设定的区间灵活调整。比如我用的是:

\adjustbox{max width=0.85\linewidth,width=0.8\linewidth,center=\linewidth}{}

[0.8,0.85]单栏行宽区间调节,并居中于单栏。

总结:

还是一句话,理解latex的复杂表格是很比较有难度的,一定要自己实地打,边看表格的结构,边理解代码每一个cmd每一个参数作用是啥。猜不出来的,要么直接查,最好就去掉或者改变这个参数,看看这个表格会变成啥样(这样才能记忆深刻)。总之耐心点,这本来就是一个动态的理解过程。

latex复杂表格排版相关推荐

  1. 【LaTeX】 案例分析 (9) - MCM 2021 - 目录 / 伪代码 / 分栏 / 文字框 / 组合图 / 表格排版 / 公式编号

    小组选择题目为 MCM 2021 - A题 Fungi (真菌) Final Result: Honorable Mention 注: 其中很多环境运用到的环境所需宏包(package)可能不太清楚了 ...

  2. LATEX关于表格的一些处理

    文章目录 1.表格初步 1.1 导言区1 1.2 导言区2 1.3 其他指令 2.单元格的合并 2.1 按照列合并 2.2 按照行合并 2.3 多行列合并 3 列的设置技巧 3.1 固定列宽设置(水平 ...

  3. LaTex中表格常用设置

    推荐一个在线生成各种表格命令的工具:https://tablesgenerator.com/. 1.表格参数 table 后面加*表示双栏表格,如\begin{table*}...\end{table ...

  4. LaTex(论文排版)的使用心得及入门教程

    前言 最早接触到LaTex,就是要发论文的时候,之前只知道这是别人推荐的论文编译软件,不同于富文本语言,类似于Markdown格式,是一种文本标记语言,排版真的非常方便.美观,完爆Word,瞬间感觉使 ...

  5. Latex论文写作排版遇到的问题

    字体缩放 \resizebox{0.8\width}{!}{$\displaystyle\int_a^b f(x)dx$}   %宽度一定,高度默认 \resizebox{0.8\width}{0.8 ...

  6. Latex论文表格画法及相关技巧

    Latex论文表格画法 1 基本表格画法 2 合并表格画法 3 灵活实现表格 最近画了很多计算机会议和论文的表格,因此特意在这里做一个记录,以满足未来画基本表格的需要,节省时间. 1 基本表格画法 \ ...

  7. LaTeX 文档排版教程

    很全的教程:LaTeX 文档排版教程 by 吕荐瑞 暨南大学数学系 目录 第一部分:从零开始 第一节:开始使用 第二节:快速入门 第三节:撰写文本 第四节:撰写公式 第五节:错误处理 第六节:命令速查 ...

  8. 完美解决在Latex的表格里的单元格内的文本紧贴着上边框线条的问题

    完美解决在Latex的表格里的单元格内的文本紧贴着上边框线条的问题 问题 一.通常出现表1的情况的代码如下 二.解决办法,也就是表2的代码 三.其它解决方案 四.引用 问题 通常做表格的时候可能会遇到 ...

  9. 【LaTeX 教程】06. LaTeX 插入表格

    [LaTeX 教程]06. LaTeX 插入表格 在这里推荐一个在线表格生成器 https://tablesgenerator.com/ 先上一个范例 了解基本表格结构 \begin{table}[h ...

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

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

最新文章

  1. WAV文件C++分析与显示
  2. android 摇一摇监听,Android摇一摇功能实现(摇一摇监听)
  3. Eclipse下Tomcat常用设置
  4. Python+Flask.0010.FLASK即插视图之自定义视图类及修饰器
  5. RabbitMq学习笔记004---在CentOS7上安装RabbitMQ
  6. ASimpleCache使用感受
  7. python入门视频教程-Python入门视频全套教程
  8. 网络互撕是群体极化的典型症状
  9. [转]Java杂谈(七)--接口amp; 组件、容器
  10. 软件工程需求分析-需求规格说明书
  11. speedoffice如何根据身份证号码提取出性别
  12. 守望先锋中的netcode_如何跟踪守望先锋中的化妆品和事件物品
  13. STM32单片机学习总结之------位操作
  14. 荣耀笔记本linux版硬盘分区,荣耀MagicBook硬盘分区详细教程
  15. 手机邮箱怎么发送电子邮件?163邮箱登陆界面好看么?
  16. 我的世界Faithful Java_我的世界:原来我们都被骗了,这才Minecraft真实的样貌
  17. Zabbix 4.4 web前端界面操作流程:创建主机>创建触发器>报警媒介>动作>邮件 发送/接收 预警信息 等详细操作
  18. 俞敏洪大学经典励志演讲:像树一样活着
  19. Android+webService的连接
  20. 小白的模拟电路初步学习20日打卡(14)

热门文章

  1. 模式分解的无损性判断
  2. iOS开发常用三方库、插件、知名博客等等
  3. 计算机连接网络显示有限访问权限,电脑WiFi连接总是提示有限的访问权限是什么意思...
  4. Hibernate——缓存
  5. 产品读书《自控力:斯坦福大学最受欢迎的心理学课程》
  6. cesium 旋转图片
  7. Android应用 中英文切换
  8. 视频网站程序 linux,观看主流视频平台视频的Windows、Mac、Linux客户端:ivideo
  9. Excel最强玩法!用Excel做“动态日历表”,让你的好记性更牢固!
  10. soul群聊派对显示服务器异常,soul群聊派对在哪?功能、查找步骤有这些