SAST weekly 是由电子工程系学生科协推出的科技系列推送,内容涵盖信息领域技术科普、研究前沿热点介绍、科技新闻跟进探索等多个方面,帮助同学们增长姿势,开拓眼界,每周更新,欢迎关注!欢迎愿意分享知识的同学投稿至 eesast@mail.tsinghua.edu.cn , 期待你的作品!

1、引言

本篇教程面向有志拯救自己实验报告\英语论文但排版能力有所欠缺的LaTeX小白,致力于用最短的时间教会大家制作高端大气上档次的三线表。

(按照惯例,如果您是排版大佬,本篇推送到此结束)

2、准备工作

小编使用的是LaTeX + VS Code + Sumatra PDF,具体的配置过程可以参照https://blog.csdn.net/yuehenmiss/article/details/102915332 ,编译方案是xelatex。

3、LaTeX表格的基本操作

首先介绍tex语言最基本的写法。上图中的document class指的是文档类型,我们选的是article,即文章(论文)类型。usepackage相当于C语言里的include,我们调用了xecjk宏包,就可以支持输出中文字符。begin和end之间是代码块,相当于C语言里的大括号。我们之后只讨论table代码块里的内容。

之后在table代码块里添加三线表内容。这时候要调用一个booktabs宏包,即\usepackage{booktabs}。三线表,顾名思义有三根横线,上下两部分内容(见上图注释)。列样式部分必不可少,有几列就有几个参数,上图中三个c代表共有三列。参数可以是l、c或r,分别代表每一列的内容居左,居中和居右。

接下来我们在三线表中写入内容。对于一般的三线表,上半部分(toprule和midrule之间)写名称,下半部分(midrule和bottomrule之间)写数据。每一项之间用&隔开,一行数据写完之后别忘了用\\表示换行。

编译效果如下图所示:

这里有一个关于LaTeX的“冷知识”介绍给大家:对于英文,LaTeX只识别一个空格。换句话说,即使在代码中两个单词之间有好几个空格,LaTeX也当作一个处理。请看下面的代码和编译结果:

对于中文字符,LaTeX会无视任何空格(上图中的“学号”之间);英文字符只识别一个空格。

回想小编当初刚开始用LaTeX时竟然会多敲几个空格来表示缩进,然后感觉越敲越不对劲……各位看官千万别像小编一样naive啊

好了,经过上面的学习,想必你已经熟练掌握了LaTex中三线表的使用。那么……

试试看!?

根据tex程序运行结果(表格符合SCI标准),写出对应的代码orz

4、进阶:表格的合并

在LaTeX中我们常常需要用到一些表格的合并和拆分,其实在LaTeX中是没有表格的拆分这个概念的,我们只有合并这个概念。所以我们在设计表格的时候必须自己要考虑清楚问题,如何划分,怎么做出合并。

记住“只能合并表格”这个原则,我们开始分析上面的三线表。我们首先要考虑最多有几列,上表最多处有10列,因此我们的列样式应该是{cccccccccc}别数了10个c。

之后我们从上往下分析,对于第一行,(我们暂时把opening angle看作是第一行),共有四个部分,所以我们先这样写:

注:\centering表格表示居中,两个$之间是插入数学公式,数学公式的具体写法比较简单,可以自行百度。

然而这样肯定是不对的,因为一开始定好了10列,现在只有4列,显然不符(然而编译竟然能过),这里就涉及到列合并的问题,我们用\multicolumn{合并的列数}{表格单元格的格式}{内容}。同时这里要加一个multirow宏包。对于三线表中表格单元格的格式,参数是c、r或l,和列样式相似。最后别忘了\\换行。

效果如下图所示:

然后我们把目光移到第二行,这里出现一个问题,opening angle究竟算是第一行还是第二行呢?其实它两行都占,与之前的列合并相对应,这里就涉及行合并的问题,在这里我们用到的就是\multirow{合并的单元格也就是行数}{*}{内容}。我们要回到第一行,将原来的opening angle用multirow写法替换,第二行就不用再写它了,可以直接用一个空格代替。把第二行的其他内容输入,代码和运行结果如下图所示:

注:当表格过长时,我们用到了\resizebox{\textwidth}{!}{代码块}来自动调整表格大小,防止溢出。同时要加一个graphicx宏包

之后我们在第一行和第二行添加短横线,用到\cmidrule(lr){m-n},m-n指从短横线从第m列延伸到第n列,lr是参数,意思是这条短横线的左边和右边都是切断的。如果不填这个参数的话,就会把几条分立的短横线连起来(大家可以动手试一试)。

这条语句放在上下两行要分开的内容之间,具体为下图所示:

最后就是三线表第二部分的数据内容了。由于没有要合并的,按部就班地输入就行了,用某长聘副教授的话来说,“没有本质困难”orz。

对了,表的标题好像忘记写了,使用的是\caption{标题内容},具体位置放在tabular之前,begin table之后。

最终的代码以及运行结果如下图所示:

大功告成!(自己替自己捏了一把汗)

下面进入答疑环节!

6、Q&A

Q:小编你的代码为什么我这里过不去,是不是你的代码有问题?小编你好坏QAQ

A:原谅小编不厚道地笑了。对于三线表而言,如果您编译过不去的话,请先检查以下问题:

1、如果出现“undefined xxx”的话,请检查宏包是否齐全。我们这次一共至少用了4个宏包。

2、begin和end是否配对?如果您经常ctrlC+ctrlV的话,这个问题可能会常常出现。

3、换行符是否用了\\?初学者很容易之间习惯性地敲一个回车当作换行。回车只会让代码看着舒服,并不会在编译过程中产生任何作用。

如果以上问题都不存在的话,上面的代码都是没有问题的,毕竟小编都亲测过小编内心实际慌得一批。

Q:我自己写LaTeX代码的过程中总是遇到各种各样的bug,小编你有什么建议吗?

A:故作镇定,内心慌得一批×2。虽然小编对LaTeX有一定的研究刚学了没两天,但个人认为LaTeX的错误提示对于初学者而言不甚友好。至于编译方案,个人建议一开始选择xelatex,支持中文而且编译相对快一些。如果后期在写论文的过程中用到了参考文献,建议使用xe-bib-xe-xe编译链编译。

至于学习与调试方法,应该多参考网上的优秀代码,尽量去理解每个语句的意义,试着去总结一些模板或者是套路,而不是直接copy。如果在调试中发现了实在无法解决的bug,可以先一通Ctrl+Y,直到最近能通过编译的那一次,看看究竟改动了哪些,之后尽量去避免这种改动。

Q:小编你的这些方法不都是从网上找来的嘛?

A:小编表示不服气上面的方法主要是小编对于典型的LaTeX结构进行个人总结而成。的确LaTeX在网上有充足的学习资料,但是良莠不齐,教程的套路大多是直接一大段代码+少量注释+排版结果,详细的讲解少之又少,而且当初小编把网上的代码copy到自己的tex文件中,编译经常过不了(当时感觉很玄学,之后了解了主要的LaTeX语句后才渐渐发现问题所在)。总之,LaTeX对萌新非常不友好,具有很强的劝退性,但是之后会越写越简单。写这篇推送的目的是,向低年级人群推广LaTeX的使用,鼓励大家在日常作业中应用专业的排版工具,同时希望大家能对tex的运行逻辑有一个大致的了解,掌握几个常用的语句和典型的结构(比如论文必备之三线表),为之后进一步的学习打下基础。如果操作熟练的话,确实能起到比Word更好的效果,至少能提高一下实验报告和英语大论文的颜值^_^

当然,由于本推送大多是个人总结,难免有疏忽之处,请大家多多包涵,也请大佬不吝赐教。对于本文的内容有任何疑问,也欢迎和小编交流。

撰稿人:袁健皓

审稿人:刘圣禹

latex三线表_SAST Weekly | 什么?在实验报告中制作SCI级别的三线表?相关推荐

  1. LaTeX写一份完整的物理实验报告

    直流非平衡电桥 用LaTeX写一份完整的物理实验报告.主要复习一下LaTeX的文本编辑,和学习LaTeX的最新编译环境和系统. 本物理实验报告的编辑软件和环境分别是:Texlive2022 + Tex ...

  2. 20155220 实验三 敏捷开发与XP实践 实验报告

    20155220 实验三 敏捷开发与XP实践 实验报告 实验内容 XP基础 XP核心实践 相关工具 实验要求 没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim ...

  3. 20165301陈潭飞2017-2018-2 20165301 实验三《Java面向对象程序设计》实验报告

    2017-2018-2 20165301 实验三<Java面向对象程序设计>实验报告 一.敏捷开发与XP实践-1 实验要求: 在IDEA中使用工具(Code->Reformate C ...

  4. 20155226 实验三 敏捷开发与XP实践 实验报告

    20155226 实验三 敏捷开发与XP实践 实验报告 实验内容 XP基础 XP核心实践 相关工具 实验要求 没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim ...

  5. 20175212童皓桢 实验三敏捷开发与XP实践实验报告

    20175212童皓桢 实验三敏捷开发与XP实践实验报告 实验内容 XP基础 XP核心实践 相关工具 实验步骤 一.Code菜单功能的研究 Move Line/statement Down/Up:将某 ...

  6. led数码显示控制plc实验_实验三LED数码显示控制PLC实验报告.doc

    实验三LED数码显示控制PLC实验报告 广州大学学生实验报告 开课学院及实验室:工程北529 2015年 5 月28 日 学院机械与电气工程年级.专业.班姓名学号实验课程名称 电气控制与可编程控制器成 ...

  7. 20175312 2018-2019-2 实验三 敏捷开发与XP实践 实验报告

    20175312 2018-2019-2 实验三 敏捷开发与XP实践 实验报告 码云博客链接 https://gitee.com/dky20175312/dky_20175312_warehouse_ ...

  8. 20155201 实验三《Java面向对象程序设计》实验报告

    20155201 实验三<Java面向对象程序设计>实验报告 一.实验内容 XP基础 XP核心实践 相关工具 二.实验要求 1.没有Linux基础的同学建议先学习<Linux基础入门 ...

  9. 分割蛋糕c语言实验报告,蛋糕制作实验报告.doc

    蛋糕制作实验报告 蛋糕制作实验报告 蛋糕实验 浙江农林大学 食品专业模块实验课程 实验指导书 适用班级:(食品09 农业与食品科学学院 2011年 11 月 18 日 ) 实验一 糕点类食品中菌落总数 ...

最新文章

  1. LL1分析构造法_数学建模算法--最优赋权法(含代码)
  2. Visual Studio原生开发的20条调试技巧(下)
  3. org.apache.ibatis.binding.BindingException原因总结
  4. UA MATH565C 随机微分方程II Wiener过程简介
  5. 为什么说云原生会成为未来企业技术变迁的趋势
  6. Windows和VMware下ubuntu切换界面的快捷键
  7. [转帖]备忘:CentOS-7 使用systemctl 管理的服务,文件打开数上限1024要改
  8. 敏捷开发一千零一问系列之五:怎样让队员主动要活?
  9. margin-top/bottom(padding-top/bottom)百分比以祖级宽度计算
  10. 大数据学习总结(5)参考elk技术架构
  11. 华为数据存储用户精英论坛,信心与合作的故事
  12. VMware虚拟机中Windows11无法连接网络
  13. 今年的第几天?(p16)模拟
  14. 由Table_locks_waited想到的mysql 表锁问题
  15. 泾阳县副县长崔巍领导一行莅临秦储指导交流
  16. 虚拟机MAC地址冲突,如何生成新的mac地址
  17. 红木整装——成为现代装修行业中的新宠
  18. linux如何更改mac地址
  19. 【DSP学习笔记】定点DSP小数乘加计算
  20. 思科光交MDS9710绑定WWN并激活新的wwn

热门文章

  1. 金仓数据库 KingbaseES SQL 语言参考手册 (16. SQL语句: CREATE SEQUENCE 到 DELETE)
  2. JavaScript开发工具WebStorm入门教程:如何安装WebStorm
  3. 见什么使什么的成语(见什么使什么四字成语大全)
  4. 解决Mac下无法识别Android手机的问题
  5. 当Python邂逅Javascript擦出一款蠢萌蠢萌的可视化工具
  6. 学习笔记——Python类中的self到底是干啥的
  7. php时间擢,PHP时间戳函数详解
  8. word论文常用格式设定技巧【公式对齐、制表符公式编号等】
  9. Pr:同步音频和视频
  10. 阿哔,你飘了呀~ 大胆! 阿哔也是你叫的? 叫哔哥!