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

学习记录(3):使用图表

每次跟朋友安利 的时候我都会讲这么一个故事:

当时设计天琴一号加速度计的控制器参数,出于数字控制参数切换的便利性,疯狂设计了十几套参数。然而写报告的时候傻了:老板要求每套参数六个自由度的详细参数、指标都汇总到表格里。要是手动录入,恐怕得折腾一天,于是我想到了一个骚操作:MATLAB设计完参数后以 表格代码的形式格式化输出到 tex 文件,编译生成 PDF 后用 Acrobat 转成 Word,就可以复制了。就这样,10分钟不到的时间就把整个表格做完了。

每每想到这里都会想到 miHoYo 里的 「Tech Otakus Save the World」。然而更高技术的朋友会问:“你为什么不直接用MATLAB输出到EXCEL呢?你不会不知道 writetable 这一系列命令吧?不会吧不会吧?” 唔……爱琴海警告。

废话不多说,赶紧进入正题,はじめましょう开始吧。

认识浮动体

有很多“环境”的概念,在代码里就体现为采用 \begin{}\end{} 括起来的部分。环境一般用于局部的格式设置或者功能扩展,比如正常写作时采用的是两端对齐,如果想临时居中某内容时,可以使用 center 环境,如

如果采用 $\rm \LaTeX$ 进行编译后,生成的文档中,这里是正常的两端对齐文字。

\begin{center}
    这里是居中的文字。
\end{center}

环境是可以嵌套的,例如上面的内容在正文区,而正文区开始于 \begin{document} ,说明正文是处于 document 环境下的。

可以想象,一般的图表都采用居中的格式,应当分别处于独立的环境中, 为此提供了 tablefigure 环境。对于上例这样一般的环境,它仅提供局部的格式变动,不会影响上下文之间的位置关系。而 tablefigure 却与之不同,它们被称作浮动体,意思是源码之间的相对位置与编译后生成文档中的相对位置可能是不同的。比如源码中的顺序是先写“如图 3 所示”,然后再插入图片,生成的文档可能会先插入图片,再出现“如图 3 所示”。

图表采用这种浮动体的原因有

  • 一般文档会以交叉引用的方式指明图表(比如“如图 3 所示”,而不是“如下图所示”),因此图表与正文的相对位置没有过于严格的要求;
  • 当前页面内的剩余版面可能无法完整插入图片或者表格,如果留空白会导致排版不好看,因此可以将图表移位,用后文填充页面;
  • 默认的排版美学:同一页内连续使用图表或出现过多图表会使页面显得比较空洞而不好看。

使用浮动体(tablefigure环境)时可以用中括号添加可选参数,表示可以浮动的位置,可选以下几个参数或其组合:

  • h:允许在当前位置(here),即源码中插图与正文的相对位置保持一致;
  • t:允许在当前页面的最顶端(top);
  • b:允许在当前页面的最低端(bottom);
  • p:允许将图片放在单独一页(page)。

有时候 默认的排版美学会让人感到困惑,因此浮动体还支持采用 ! 选项突破默认的限制,例如我自己插图的时候经常会采用 \begin{figure}[!htb] 的设置。

使用插图

为了在文档中插入图片,需要对 的功能进行“扩展”,在导言区使用 \usepackage{graphicx} 宏包即可。这个宏包提供的 \includegraphics 命令可以方便地插入 pdfepsjpgpng 等常见格式的图片,使用方法和示例如下。

% 导言区添加 \usepackage{graphicx}
% \includegraphics[]{}

\begin{figure}[!htb]    % 还记得刚说的图片放在浮动体内吗?
    \centering          % 设置图片居中
    % 插入图片,图片宽度为 0.7 倍正文宽度,图片文件为 misaka.png
    \includegraphics[width=0.7\textwidth]{misaka.png}
    \caption{御坂美琴}   % 正文中的图名
    \label{fig:misaka}  % 交叉引用的标签,以后再说哈
\end{figure}

以这种方法插图时,图片放置的位置必须在搜索路径中,或者使用绝对路径。一般情况下,我们会把正文图片收集在 figures 文件夹内,并在导入宏包后立即将该文件夹添加到图片的搜索路径,如下

\usepackage{graphicx}
\graphicspath{    % 添加搜索路径,多个路径时用花括号区分
    {./figure/}
    {./figures/}
}

如此就可以实现正文的插图了。实际上, 是支持直接绘图的,有兴趣的小伙伴可以在命令行使用 texdoc pgfmanual 查看具体方法。

1300 多页的说明文档直接给我劝退了……有学会的小伙伴教教我哈。通常我还是使用其他软件绘图,导出 pdf 后在 中插图。不过,Inkscape 确实是一款很好用的矢量绘图开源软件。

绘制表格

绘制表格所需要的基本环境不需要额外的宏包进行扩展,但是依然推荐两个宏包:tabularxbooktabs,前者提供了定宽表格的格式,后者则提供了标准的三线表样式。下面我们先来看一个例子

\begin{table}[hbp]
 \centering
 \caption{页码数字格式}
 \label{tab:pagenum}
 \begin{tabular}{ll}
  \toprule
  格式 & 说明 \\
  \midrule
  arabic & 阿拉伯数字 \\
  roman & 小写的罗马数字 \\
  Roman & 大写的罗马数字 \\
  alph & 小写的字符形式 \\
  Alph & 大写的字符形式 \\
  \bottomrule
 \end{tabular}
\end{table}

生成文档的效果如下图所示。

d334d86ad1262d3e92a81c2a6cd888a3.png
表格示例

我们来分析表格的代码:我们在最外围申明了表格所处的 table 环境,这是将表格整体作为浮动体;然后设置该环境下内容居中显示;由于表格的标题一般在表格上方,所以先生成标题并打上标签;剩下的一大块便是由 tabular 环境构造的表格。

tabular 环境是用来构造表格本体的,该环境有一个参数用来指明列格式,常用的列格式包括:

  • l:本列左对齐;
  • c:本列居中;
  • r:本列右对齐;
  • p{}:指定列宽并允许自动换行;
  • |:画一条竖线,不占据表项计数;
  • @{}:任意添加内容,不占表项计数;
  • *{}{}:将给定列格式按计数重复多次。

诸位如果记不住这么多格式,只记住 l、c、r 就够基本使用了,有多少列就写多少个 l、c、r。

在表内,采用符号 & 指明对齐位置, 并使用 \\ 进行换行。表格中可以使用 \hline 绘制横线,或使用\cline{-} 指定横线的范围。booktabs 宏包提供了标准三线表的横线,可使用命令 \toprule\midrule\bottomrule分别绘制顶部横线、中间横线和底部横线。为了像 \cline 那样绘制指定位置的横线,该宏包还提供了 \cmidrule 命令。表格中绘制与单元格等高的竖线可用 \vline 命令。

如上面的例子所示,在不单独指定列宽的情况下,tabular 环境可以根据内容自动改变表格宽度,这在绝大多数情况下是非常好用的。然而有时候我们希望指定表格的总宽度,这就需要tabularx宏包提供的tabularx 环境。该环境在指定列格式之前必须指定表格的总宽度。同时,该宏包提供了一个特殊的列格式 X,它能够根据总宽度和表的内容自动改变列宽,也可以和其他列格式一起使用。

写了不少了,更详细的使用帮助可使用 texdoc 查看。不过,现在有很多 在线制作 表格[1] 的工具,大家都可以尝试。

Reference

[1]

在线制作 表格: https://tableconvert.com/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/504996.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

kubernetes怎么读_每个 Kubernetes 应聘者应该知道的 5 个面试题 | Linux 中国

如果你是要面试 Kubernetes 相关职位的应聘者,这里给出了要提问的问题以及这些问题的重要性。-- Jessica Repka面试对面试官及候选人来说都很不容易。最近,我发现面试 Kubernetes 相关工作的候选人似乎尤其困难。为什么呢?一方面,…

英语作文谈谈你对计算机的看法,英语作文:谈谈你对网络语言的看法

英语作文:谈谈你对网络语言的看法在学习、工作、生活中,大家或多或少都会接触过作文吧,作文要求篇章结构完整,一定要避免无结尾作文的.出现。一篇什么样的作文才能称之为优秀作文呢?以下是小编帮大家整理的英语作文&am…

华为云域名注册_华为云域名专场钜惠,助推中小企业云速建站

域名不仅是一个简单的网址,更是企业在市场竞争中获得持久优势的有力工具。所以对于中小企业而言,拥有一个优质的域名对企业发展而言是很重要的。为了帮助中小企业轻松注册域名,快速搭建好网站,让用户在最短的时间内,最…

html button跳转页面_HTML跳转到页面指定位置的几种方法

前言有时候,我们想阅读页面中某段精彩的内容,但由于页面太长,用户需要自己滚动页面,查找起来非常麻烦 ,很容易让人失去继续往下阅读的兴趣。这样体验非常不好,所以我们可以想办法 实现点击某段文字或者图片…

用计算机新字库打出的文字,为什么用五笔打字有很多字打不出来(GBK和GB2312字库的区别)...

五笔输入法有很多版本,有的版本只能输入GB2312字库中的字(6763个字),大部分版本的五笔输入法能输入GBK字库中的字(21003个字)。所以只要你选用支持GBK字库的五笔输入法,一般的繁体字和偏僻字就能输入了。简单一点的说:两个原因&am…

c语言exit_看了这几个C语言例子,你一定会说5个哇塞,声音一次比一次大

曾经我一直以为自己C语言学的还挺好的,直到看到这几个例子。例1首先来看一下,大师是如何求圆周率的,一口君实在词穷,first哇塞。#include long a10000,b0,c10000,d,e,f[10001],g; void main() { for(;b ! c; f[b] a…

html整合vue elementui,vue2.0结合Element-ui实战案例

前言我们将会选择使用一些 vue 周边的库vue-cli, vue-router,axios,moment,Element-ui搭建一个前端项目案例,后端数据接口,会使用json-server快速搭建一个本地的服务,方便对数据的增删改查,利用以上技术我们会搭建一个vue案例&…

计算机二级考试模拟表单答题,2016年计算机二级考试《VFP》模拟简答试题

1[简答题]1.建立一个表单文件myform,将employee表添加到表单的数据环境中,然后在表单中添加表格控件gridl,指定其记录源类型为“别名”、记录源为employee表文件,最后添加一个“退出”命令按钮控件Commandl,程序运行时…

中兴新支点操作系统_中兴新支点国产操作系统体验报告:使用流畅,性能稳定!...

笔者早就有听闻中兴新支点国产操作系统挺好用的,对配置要求不高,软件不少又没广告,一直想安装尝尝鲜,看看国产操作系统现在发展得怎样了。但是我又怕用不习惯要重装系统太麻烦,最后在朋友的建议下,我在虚拟…

tensorflowgpu利用率为0_直流电压利用率的提高方法-梯形波调制法

接上篇(直流(母线)电压利用率的提高方式-三次谐波注入法):Payton Sun:直流电压利用率的提高方法-三次谐波注入法​zhuanlan.zhihu.com,本篇介绍下另一种经典的提高方式-梯形波调制法 &#xff0…

python开发信息系统权限设置_利用Python实现权限设置的详细教程

一、私有化的实现 在Python中想定义一个类是比较简单的,比如要定义一个Person类,如下代码即可:当然我们也可以给类添加相应的属性,比如Person的姓名,年龄,性别等,并且在new一个Person对象后可以…

ifamre 大小随页面变_SEO优化中如何让你的页面访问速度更快

页面访问速度对于SEO优化来说是极为关键的一环。我们试想一下,如果某个访客花了几十秒才能打开你网站的首页,先不说这个访客抱着什么访问目的和什么渠道来的,一般正常的访客大概率都会放弃访问这个页面。由此可见,页面的访问速度是…

计算机三级数据库上机怎么考,最新计算机三级数据库上机考试试题

最新计算机三级数据库上机考试试题数据库指的是以一定方式储存在一起、能为多个用户共享、具有尽可能小的冗余度的特点、是与应用程序彼此独立的数据集合。下文为大家搜集整理的是计算机三级数据库技术考试题,希望能帮助大家好好复习,早日通过考试!第一题…

用户表如何区分普通用户和管理员_Gate.io 比特百科:什么是ETH 2.0及普通用户如何参与ETH 2.0质押挖矿...

ETH 2.0是什么ETH 2.0是ETH发展四阶段(1、前沿Frontier 2、家园Homestead 3、大都会Homestead 4、宁静Serenity)中的最后一个阶段。前三个阶段是ETH 1.0时期,而第四阶段ETH1.0正式升级为ETH 2.0,将从PoW工作量证明共识机制升级为P…

南充一中计算机机房被盗,成都理工大学与南充市第一中学共建优质生源基地

春秋代序立冬过,西河欢歌扬碧波;魅力一中呈诗韵,银杏绽黄迎嘉客。2019年11月14日上午10时,成都理工大学与南充市第一中学共建优质生涯基地的签约授牌仪式在南充一中新区隆重举行。南充一中副校长王洪秀在致辞中对关注南充一中发展…

list循环赋值_Python基础 | 0xd 条件判断与循环

条件判断所谓的条件判断就是根据一条或多条语句的执行结果(True/False)来决定执行那一块的代码。// 条件判断的三个关键字 //Python 使用if、else、elif 三个关键字的搭配来实现判断语句,使用示例如下:# 单分支(只有一个if),如果代码块只有一…

matlab 等高线_MATLAB作图实例:39:更改等高线图的填充颜色

本示例说明如何更改在填充等高线图中使用的颜色。更改颜色模板通过更改颜色图设置填充等高线图的颜色。将预定义的颜色图名称hot传递给colormap函数。[X,Y,Z] peaks;figurecontourf(X,Y,Z,20)colormap(hot)title(Hot Colormap)控制数据值到颜色模板的映射仅使用hot模板中心的颜…

git保存账号密码_Altium Designer 通过Git实现版本控制

为了解决每次对PCB工程进行修改时不能回溯的问题,以及为日后团队协作完成某项工程提供方便,所以我研究了一下如何在AD中实现版本控制。所幸的是,AD本身自带VCS功能(Version Control System),并支持SVN和Git两种VCS方式前提条件&am…

计算机字体原理,字体图标生成原理(1)

浏览器根据font-family解析渲染为不同图形的过程:1:读取文字内容转换成对应的 unicode码()计算机操作系统里面每个字符都有一个unicode编码,比如我们在web上输入\u6211跟输入“我”是一样的,因为「我」的unicode是\u6211(16进制)&#xff0…

asp 取菜单的名字_这样的奶茶店菜单设计,店面营业额能提高30%!

菜单是顾客了解奶茶店饮品品类、满足期待的一个载体,起着向顾客传递产品信息结构、激起购买欲望的重要作用。那么到底该怎么设计菜单才能吸引顾客呢?一、菜单风格要与品牌相符奶茶店的菜单设计风格一定要与品牌定位保持一致,着重突出店铺的风…