在世界一流大学上过大学物理实验的同学们相信都能体会到,写实验报告实在是一件无聊又花精力的事情,特别是还要考虑输入公式和排版效果的时候。有没有能够一劳永逸的方法呢?
本文将介绍让你在非常短的时间内用LaTeX写出精美的实验报告的方法,并给出一个作者本人也在使用的模板!
如果你没有安装LaTeX,那么请先看一下这一篇文章并安装一下。相信我,安装起来非常快,上手也只需要一两个小时,LaTeX是一个非常好用的工具!
下文将按照报告写作的时间顺序来简单介绍一下写法,并给出相对应的模板和例子。
文档整体信息设置
在我过去的文章中也已经介绍过.tex
文档中导言区的功能。为了让我们的报告省心好看,我们需要在导言区下一些心思。
我自己使用的导言区通常是这样的:
1 | \documentclass{ctexart} |
每次,我们只需要更改上面这段代码中间的这段片段中的内容:
1 | \newcommand{\experimenttable}{实验台号:X} |
就能够更改文章一开头的标题和页眉页脚的内容。怎么样,是不是非常方便呢?
列出大纲
按照实验教材的要求,一个完整的报告需要包含以下几个部分:
- 实验名称和目的
- 实验原理
- 实验仪器
- 实验步骤
- 数据处理
- 实验小结
- 原始数据表格和预习报告
简要报告则只需要:
- 实验名称和目的
- 数据处理
- 实验小结
- 原始数据表格和预习报告
相对应地,我们在.tex
文档的正文去这样输入来先建立一个整体的架构:
1 | \begin{document} |
其中由于原始数据表格一般是直接在打印后附在最后的,正文中就不列出了。
输入普通文本
正如我在以前的文章中提到过的,在LaTeX中输入普通的文本是非常直观的,没有任何上手难度,只需要在段落间多打一个换行符(和英文中习惯类似)就能起到换段的作用。例如:
1 | \section{思考题} |
如果你希望在段落开头附加一个加粗的段落标题,那么你也可以像上面那个例子一样使用\paragraph{·}
命令,并将标题放在花括号内。
生成列表
在实验原理、实验仪器、实验步骤等部分我们常常需要输入一个列表。
在LaTeX中,列表的基础环境有三种,分别是生成无序号列表的itemize
,生成有序号列表的enumerate
和能添加描述的description
环境。这些列表是可以嵌套的(虽然有时候效果不好),就像下面这个例子所展示的一样。
1 | \begin{enumerate} |
每个\item
就是一项内容,而后面的[]
中的内容则是该项的一个“小标题”。大家在具体使用时可以根据自己的需求选择不同的环境。
具体的一个例子是:
1 | \begin{enumerate}[1.] |
需要注意的是上面的例子里,\begin{enumerate}[1.]
中的[1.]
是enumerate
宏包所带来的功能,若需要使用请一定要在导言区加载该宏包。
公式的快速输入
在LaTeX中自己手动输入数学公式需要一定的学习时间,大家如果感兴趣可以参考这篇文章。下面我介绍一个偷懒却快捷好用的方法。
mathpix是一个可以识别手写和打印公式的软件。大家可以在它的官网下载这个工具。
注册完账号登录之后,我们就可以使用这个软件快速得到自己(或别人)手写的以及电子版讲义上已经有的公式。使用方法非常简单,只要用这个软件截屏含有公式的部分就可以了。
如上两张图片所示,上面的是我们输入的图片,下面的是它生成的代码的编译效果。
这个工具的限制是每个月每个账号只能免费识别50个公式,大家如果需求量比较大可以适当氪一点金。
下面是两个比较具体的例子:
1 | \begin{align} |
由于LaTeX中数学输入的语法比较复杂,大家如果想学习如何做到更好看的效果请一定要看一下《LaTeX中输入数学公式》这篇文章!
建立并处理表格
学会使用表格
记录实验数据离不开使用表格。在LaTeX中,tabular
环境能够用来绘制最基础的表格。我们可以用这样的命令来进入tabular
环境:\begin{tabular}{table spec}
。其中第二个花括号里面的table spec
定义了表格的样式。在这个环境中:\hline
命令表示横线,|
表示竖线;用&
来分列,用\\
来换行;每列可以分别采用居左、居中、居右等横向对齐方式,分别在{table spec}
里面用l、c、r来表示。
下面是一个例子:
1 | \begin{tabular}{|l|c|r|} |
上面的是表格最为基础的运用。在实际使用的时候我们一般会在tabular
环境外面套一个table
环境,并使用三线表。三线表通常只有三条线,即顶线、底线和栏目线,这三条线都是横线,表格中没有任何竖线。其中顶线和底线为粗线,栏目线为细线。
在LaTeX中实现三线表的效果非常简单。我们首先需要进入tabular
环境,随后在对应的位置加入相应的横线:顶线是\toprule
,栏目线是\midrule
,底线是\bottomrule
。下面是一个例子:
1 | \begin{table}[H] |
固定表格的位置
在一篇文章中,插图和表格通常需要占据大块空间,同时也不可被分割;所以在文字处理软件中我们经常需要调整他们的位置。figure 和 table 环境可以自动完成这样的任务;这种自动调整位置的环境称作浮动体(float)。其实,LaTeX原生支持对于浮动体位置的某种程度上的设置。在\begin{figure}
后面我们可以加上类似[htbp]
或者[tp]
这样的参数。其中每一个字母都代表不同的位置:h代表“这里”;t代表页面最上端;b代表页面最底端;p代表下一页。
当你问出“我的图片/表格怎么老是乱跑?”这个问题时,大部分情况下你是希望图片老老实实呆在你安插的文字中间。这个时候,我们可以结合float
宏包提供的[H]
(注意这里是大写的)选项来禁用浮动。下面是一个例子:
1 | 容易得到:\[n_C=xx,\ n_D=xxx,\ n_F=xxxx\] |
快速生成表格
但是手动输入LaTeX的表格实在是太累了!大家一定也曾想尽办法让自己已经写好的Microsoft Word或者Microsoft Excel内的表格变成LaTeX的表格环境。在这里我介绍两种办法让大家方便地将word和excel表格变为LaTeX命令。
在线工具
在线工具的优点在于不需要下载任何文件,打开浏览器就可以用。在这里我推荐Tables Generator这个网站。将我们已经制作好的表格黏贴进去后,立即就可以得到LaTeX命令。同时访问这个网站不需要科学上网。最令人意外的是,这个网站不仅仅支持将表格转换成LaTeX命令,也可以将表格转换成HTML表格、纯文本表格、markdown表格和MediaWiki表格。
本地插件
有很多朋友不喜欢在线工具,因为它们更新速度快,消失的速度也快,同时完全离不开网络。我们也有着可以下载到本地的插件,能够将excel表格转化成LaTeX代码。我要介绍的插件是Excel2LaTeX,这个插件是一个可以应用于Windows平台下的Microsoft Excel 2000-2019的excel插件,是一个标准的.xla
文件。
其实关于表格还有非常多高阶的技巧,大家如果感兴趣可以查看这篇文章。
插图的绘制和处理
我一般使用matlab处理数据并绘制插图。由于我的matlab还非常低下,这里就不误人子弟了。大家只需要注意在LaTeX中我们最好将图片绘制为.eps
格式的矢量图形,而不要使用.jpeg
等格式的文件。
并置多张图片是我在写植物组织培养的实验报告的时候才第一次遇到的需求。不论是在论文、简历、PPT还是实验报告中,你都会常常遇到这种需求。在LaTeX中实现多张图片并置其实也不难。我们只需要用subfigure
宏包提供的\subfigure[name-of-subfigure]{include-figure-file}
命令即可。
如果有很多张图片不仅仅需要放一行该怎么办?我们只需要像输入文本时一样,打两个换行符或者用\\
就可以了。下面是一个例子:
1 | \begin{figure} |