本文同时发布于微信公众号:两个少年的奇幻漂流(ID:Amazing_Adventure)

本期的主题是图表的排版,主要内容有:普通表格与矩阵

长表格与三线表

图片的插入与大小控制

浮动体与图表标题的制作

前段时间期末季实在太忙啦,于是这期就拖到了现在,大家见谅!

---

普通表格与矩阵

在 LaTeX 中,排版表格是一个非常重要的事情。在广义上,表格不仅包括我们日常所说的表格,也包含矩阵,因为表格的核心其实是对齐。在前面数学公式排版中,我们提到过矩阵的排版,其中就使用“&”符号作为对齐的标志。在表格中也是如此。

首先要介绍的是 tabular 和 array 环境,它们的功能几乎没有差别,也包含了排版表格的核心技术。其主要用法是这样的:

\begin{tabular}[]{}

A & B & C \\

D & E & F \\

\end{tabular}

我们先解释列格式说明。列格式说明的基本元素有 l c r 三种,分别表示这一列是靠左、居中还是靠右对齐。在左右两端或基本元素之间可以加上竖线,表示这里是不是需要用线来分隔。举例如下:

在列格式中还有一些其他的说明符,在此也列举如下:p{},表示本列具有固定的宽度,表格内容在其中可以自动换行(但不能手动用 \\ 进行换行),并可以用 \raggedleft,\centering 等命令进行对齐。

@{},添加任意内容,不占表项计数,同时取消表列间的距离。例如我们需要某一列的数据按小数点对齐,就可以用 r@{.}l 这样定义两列,分别输入整数部分和小数部分,实现这个效果。

*{}{},将部分列格式说明重复多次。

我们也可以在其中视需要加入横线进行分隔(\hline)。举例如下:

如果我希望某一行的横线不贯穿整个表格,则可以使用 \cline 命令。\cline{x-y} 可以获得一段从第 x 格到第 y 格的横线,举例如下:

垂直对齐选项表示在行内使用时,表格的哪一部分与文字对齐,其参数可以是 t 或者 b,默认条件是居中对齐。举例如下:

与底部对齐:

居中对齐:

这样的行内表格并不常见,因此大多数情况下我们不需要用到垂直对齐选项。

有的时候我们需要将表格单元进行合并,我们就可以使用 \multicolumn 命令。这一命令的使用方式如下:

\multicolumn{}{}{}

设项数为 n,那么这一命令表示,将此行连着 n 个格子合并,并填入相应的内容。对被合并的 n 个格子,它们之间的对齐符号全部省略不写,但前后的对齐符号不可省略。

如果要合并列,则需要用 multirow 宏包提供的 \multirow 命令,其使用方式如下:

\multirow{}{}{}

\multirow{}*{}

使用后一种用法就可以不指定宽度,最终其宽度会以内容的宽度为准。将上述两个命令相互嵌套,即可实现多行多列表格的合并。这样的操作其实是非常麻烦的,因此在这里为大家推荐 excel2latex 这个网站,还有同名的 Excel 插件,可以用 Excel 做好表格之后导出成 LaTeX 源码。

---

长表格与三线表

有的时候我们需要制作的表格,用一整张纸都装不下。这样的话我们在新的一页上需要重新排版一个表头,同时在页面接续处需要有一些文字来说明这个表格是跨页排版的。这个时候我们就需要 longtable 宏包中提供的 longtable 环境。其使用方式如下:

\begin{longtable}[]{}

\endfirsthead

\endhead

\endfoot

\endlastfoot

\end{longtable}

具体的使用细节可以参考 longtable 的宏包文档。

在科学论文中,更多使用的是三线表。这样的表格只在顶部、底部和表头下方有三条分隔线,其中顶部和底部的线较粗,表头下方的线较细。这样的线条可以用 booktabs 宏包提供的如下四种命令来实现:\toprule:画顶部的线

\midrule:画表头下方的线

\bottomrule:画底部的线

\cmidrule:与 \cline 命令类似,可以画出一段短线,它比 \midrule 更细;配合 \morecmidrules 命令可以画出多条分隔线,并且其间有合适的间距

简明的使用方法如下:

\begin{tabular}[]{}

\toprule

\midrule

\\

\bottomrule

booktabs 宏包没有提供单独的表格环境,只需要在普通的表格中插入新定义的线条即可。详细的使用说明可以看看 booktabs 的文档。下面用一个比较复杂的三线表来回顾一下我们到现在为止讲到的全部内容吧(自己动手之前别忘了需要的宏包噢)。

---

图片的插入与大小控制

说完了表,我们来说图。插入一张图片的核心命令是

\includegraphics[]{}

同时我们在插图时一般都需要调用 graphicx 宏包。下面默认全部调用。在使用 XeLaTeX 进行编译时,被插入的图片支持 EPS,PDF,PNG,JPEG,BMP 等五种格式。一般使用较多的是 PDF、PNG。PDF 图片是矢量图形的标准格式,也是最推荐使用的(一般的作图软件都支持输出 PDF 格式的图片);PNG 则是无损压缩的像素图模式,显示计算机制作的非自然图形。

图形文件一般和 .tex 源文件在同一目录下,因此可以直接写文件名插入。但有的时候图片会被合并到一个文件夹中进行管理,此时就可以使用 graphicx 宏包提供的 \graphicspath 命令来指定这个文件夹。指定后,所有图片的搜索都将在这个文件夹中进行。

\graphicspath{{figures/}}

例如上面这个命令就可以指定根目录下的 figures 文件夹为图片文件夹。

插入的图片可以指定大小,只要在 \includegraphics 命令中的选项中指定即可。例如

\includegraphics[width=\textwidth]{pic}

就可以将 pic 这张图片伸展成与版心等宽,恰好充满版面的宽度。类似的指标还有 height(表示图片的高度)和 scale(表示图片的比例)。

---

浮动体与图表标题的制作

一般情况下,图表都会占据页面中大块的位置,造成分页的困难。放在前面一页位置不够,放在后面一页又会造成前面一页底部有大量空白,非常不美观。于是 LaTeX 使用浮动体来解决这个问题。也就是说在排版的时候,如果当前位置放不下图表,那就先排版后面的内容,再在后面找合适的地方来放图表。针对图片和表格,LaTeX 提供了 figure 和 table 两种环境,不仅可以实现浮动,还可以分别编号并生成目录。下面我来举例为大家说明浮动体环境的使用方式。

\begin{figure}[]

\includegraphics[]{}

\caption{}

\label{}

\end{figure}

\begin{table}[]

\caption{}

\label{}

\begin{tabular}{}

...

\end{tabular}

\end{table}

浮动位置有如下四种:h:here,表示放置在当前位置

t:top,表示放置在某页顶部

b:bottom,表示放置在某页底部

p:page,表示独占一页

这四种说明符可以组合使用,自左向右优先级递降。至于最后这个图表出现在哪里,我们就不需要关心了。但是可能出现的一种情况是,如果你的浮动体太多而其他内容太少,它们可能会被堆到整个文档的最后一起出现。这个时候你可能就需要使用 minipage 等方法手动安排一下它们的位置了。

图表的标题用 \caption 命令来指定。需要注意的是,表的标题应该在表的上方,而图的标题应该在图的下方。这个是排版中的一个默认的规则。图表标题格式的控制可以使用 caption 宏包来实现,细节较多,大家可以阅读 caption 宏包的文档来了解。图表同样也可以进行交叉引用,只需要加个一个标签,就可以用 \ref 命令进行引用了。

另外有的时候,我们希望某个浮动体就在我们书写源码的地方。这时我们可以调用 float 宏包,并将浮动位置指定为 H,就可以实现了。

---

以上介绍的是最简单的图表排版技巧,下期我们将介绍参考文献的制作,敬请期待!

欢迎关注我们⬇️

三线表里加小短线_LaTeX 第六课:图表的排版相关推荐

  1. 三线表里加小短线_APA格式报告.doc

    APA格式报告 APA格式之表格和图表的呈现 表格的格式 1三线表 三线表是表格的一种,科技书刊中普遍采用三线表.三线表通常只有3条线,即顶线.底线和栏目线(见图1,注意:没有竖线).其中顶线和底线为 ...

  2. latex 三线表_LaTeX学习记录(3):使用图表

    学习记录(3):使用图表 每次跟朋友安利 的时候我都会讲这么一个故事: ❝ 当时设计天琴一号加速度计的控制器参数,出于数字控制参数切换的便利性,疯狂设计了十几套参数.然而写报告的时候傻了:老板要求每套 ...

  3. 【科研小技巧】Word(2016)绘制三线表样式

    问题描述: 写论文时经常需要用到绘制三线表,而每次都先画好表格后慢慢修改,很是麻烦,所以这里介绍一种制作表格样式的方式,以后使用三线表时只需选择样式就OK了 1. 首先,随便绘制一个表格,像下面这样 ...

  4. latex制作三线表

    在LaTeX中,插入三线表需要使用到booktabs宏包,因为三线表通常会使用到粗细不同的表格线. \usepackage{booktabs} %导言区 关于booktabs宏包常用的几个表线命令: ...

  5. Word排版之段落样式+如何创建一个三线表外观的表格样式

      通过建立正文.标题.表格等的段落样式可以方便的统一调整文章各部分样式类型.点击样式栏右下角的小三角可以弹出样式对话框,执行新建.管理.删除样式等操作. 首先建立"论文正文"样式 ...

  6. LaTeX调整三线表行间距

    由于论文中表格提倡三线表,在把表格中的内容实现换行后, 发现表格的两行单元格之间距离太小,就跟行间距一样小,如图示 然后各种搜,首先试了试在表格的\begin{table}下面加上这样一句话:\ren ...

  7. word简单三线表制作(分列、分行)

    文章目录 一.简单三线表 二.三线表添加到模板 三.三线表分列.分行 3.1按列分割 3.2按行分割 一.简单三线表 1.准备好要制作的表格数据 2.我们先制作上下边线,要选中整个表格,右键点击表格属 ...

  8. Latex中调整三线表行间距

    由于论文中表格提倡三线表,在把表格中的内容实现换行后, 发现表格的两行单元格之间距离太小,就跟行间距一样小,如图示 查看全文 http://www.taodudu.cc/news/show-47232 ...

  9. ZZULI2483: 小新三连(三):小新在求助

    2483: 小新三连(三):小新在求助 时间限制: 1 Sec  内存限制: 128 MB 提交: 184  解决: 84 [提交] [状态] [讨论版] [命题人:541723030106] 题目描 ...

最新文章

  1. 项目管理协作软件,打造超强执行力团队!
  2. 使用sublime text 执行 tcl 出错
  3. 转用特征码秒杀各程序语言按钮事件
  4. MYSQL数据同步到ES7
  5. 服务发现 - consul 的介绍、部署和使用
  6. Request load debugging - CRM side
  7. linux扩充单个路径下的内存,超详尽!Linux云服务器存储扩容实操
  8. webstrom使用方法
  9. Dapr + .NET 实战(七)Secrets
  10. jQ效果:简单的手风琴效果
  11. MySql 5.7 json数据格式 增删改查 操作 (不定时更新)
  12. 关于java.lang.reflect.InvocationTargetException。
  13. 我的世界java种子 要塞,《我的世界》你绝对没见过的稀奇种子,恐龙骨架出现在要塞...
  14. 微擎支付返回商户单号_ThinkPHP6对接实现微信H5支付
  15. 74HC595驱动数码管显示模块使用说明
  16. Chapter3:Gradle依赖管理
  17. 前端面试题之浏览器原理篇
  18. 使用 Python 将 PDF 文件按页进行拆分
  19. 单片机中动态数码管闪烁问题
  20. VLC编译错误难解 3 fatal error: features.h: 没有那个文件或目录

热门文章

  1. MYSQL优化汇总——学习入口
  2. Leetcode 1628. Design an Expression Tree With Evaluate Function [Python]
  3. QuickCam Gev 2.0 开发
  4. 原始套接字编程——Teardrop
  5. 机器人学关于SE(3)、se(3)、SO(3)、so(3)的理解
  6. Bootstrap 4网格系统
  7. 服务器挂起文件怎么删除,挂起的更改
  8. SpringBoot整合Drools
  9. PHP获取月份第一天最后一天
  10. OSAL多任务资源分配机制