beamer简易入门
前言
beamer
是LaTeX
的一个宏包,其功能为使用LaTeX进行演示文稿,也就是PPT的制作。其格式简洁,可以让使用者不用过多关注PPT的格式与排版,而专注在内容的输出上,因此在各种学术报告中常常会见到使用beamer
制作的演示文稿。
本文并非系统的LaTeX
或beamer
的教程,而是旨在快速上手,使用beamer
默认的格式做出一个PPT来。文中代码的运行环境为MiKTeX
,编译器为XeLaTeX
。
模板简介
一个beamer
可以被划分为以下几个结构,首先是第一行的\documentclass{beamer}
,其作用为声明这是一个beamer
。然后是预定义区,例如设定字体,导入第三方库,以及最重要的设定标题等信息都是在这个区内完成,当然,这个区不需要特别声明,只要写在声明之后与下一个区之前即可。最后是PPT区,其以\begin{document}
开始,以\end{document}
结束,这里就是用来写PPT的,其中每一页普通的PPT都是以\begin{frame}
开始,以\end{frame}
结束,每一页PPT的具体内容就是写在这两行代码中间。至于特殊页,后面会单独提到。
1 | % 声明beamer |
预定义区
导入第三方库
首先是第三方库的导入,其使用\usepackage{库名}
的命令来导入。下面介绍一些常用的库,例如最重要的中文字体库,LaTeX
本身并不支持中文,想要在LaTeX
写中文就需要借助第三方库,这里我使用的是xeCJK
库,其使用\setCJKsansfont{字体}
命令来设定字体。再例如三线表库booktabs
,可以让我们方便的绘制三线表。现在将导入第三方库的代码加入我们的模板中
1 | % 声明beamer |
主题
然后就是主题的设定,也就是你的PPT长什么样子,其使用\usetheme{主题名}
进行设定,我们这里使用Madrid
主题,这个主题长下面这样
有没有很熟悉,尤其是数学专业的同学,对这个PPT封面应该不会陌生。长成这种样子的PPT,基本上都是用beamer
做的。
基本信息
接着是基本信息,例如标题,作者,时间等,这类似于我们写代码的时候定义的变量,在PPT需要显示这些信息的时候就会调用这些基本信息中的内容。例如上面展示的封面页,就是调用的我们填入的基本信息生成的。下面我们来看一些常用的基本信息
1 | \title[标题]{标题} % 标题 |
需要注意的是,其中的中括号的部分是指PPT最下面显示的内容,一般可以填一样的内容,当然想组织名称这种,中括号里可以填简称。
上面列举的是最常用的写法,还有一些特殊的写法,例如
1 | % 两个作者的写法 |
overleaf
上的用例run出来长这样,大家可以参考一下
再比如我们答辩经常会在作者栏写上指导老师的名字,我们就可以这么写
1 | \author[芙莉莲] |
其中\\
代表换行,这在LaTeX
环境中基本通用,效果大概是这样的
完整代码为
1 | % 声明beamer |
PPT区
最后就到了PPT区,也就是正式开始写内容了。下面介绍的内容都需要写在\begin{document}
与\end{document}
之间。在这个区种中,每一个页面可能是一行或者几行代码,我们只需要按顺序将每一个页面写上即可。
封面页
首先是封面页,也就是我们上面介绍基本信息时看到的页面。这是一种特殊页,只需要写一行代码\frame{\titlepage}
,就可以自动生成。
目录页
然后是目录页,这也是一种特殊页面,用下面的代码块生成
1 | \begin{frame} |
大致效果如下
现在还有一个问题,就是其生成的依据是什么。目录页借助特殊语句\section{部分名称}
进行生成,该语句写在两个页面之间,表示到下一个\section
为止,下面的页面都属于该部分,例如
1 | \frame{\titlepage} % 封面 |
上述代码中,封面页与目录页不属于任何部分,而页面1与页面2属于部分1,页面3属于部分2。
当然,目录页还可以在不同部分的页面之间插入如下面的页面
只需要在预定义区加入下面的代码块
1 | \AtBeginSection[] |
将封面页与目录页加入代码,现在完整代码如下
1 | % 声明beamer |
普通页
介绍完特殊页,现在来到了普通页部分,也是内容的主要呈现部分。每一个普通页以\begin{frame}
开始,以\end{frame}
结束,该页面的标题由\frametitle{页面标题}
定义。而一般的页面内容直接写即可,LaTeX
会帮我们自动排版,需要注意的是,回车依旧是使用\\
符号代表。例如下面的代码块
1 | \begin{frame} % 定义演示文稿 |
运行效果大致如下
这里还需要补充一点,对于用惯了word
刚接触LaTeX
的同学来说,可能会出现想要在两行文字之间多加一个回车,但是不知道怎么加的情况。这里提供一个小偏方,就是之间在两行文字之间加入\indent\par
,例如将上述代码块改为
1 | \begin{frame} % 定义演示文稿 |
效果大概是这样
块
接下来介绍一个beamer
中使用频率极高的功能,那就是块。我们先来看看效果
上述页面中的两个方框就是块。其类似于一个页中页,与页面一样具有标题与内容两个部分,用\begin{block}{块标题}
与\begin{end}
定义,块内容写在定义代码之间,例如上述页面的完整代码如下
1 | \begin{frame} % 定义演示文稿 |
列表
在上面的意义部分我们已经见过列表了,熟悉markdown
的同学应该对列表也不会陌生,列表分为有序列表与无序列表两种。其中,有序列表使用enumerate
环境,即写在\begin{enumerate}
与\end{enumerate}
之间,例如将上述部分代码修改为
1 | \begin{block}{意义} |
则页面变为
而无序列表使用itemize
环境,也就是
1 | \begin{block}{意义} |
上文已做过展示
图片
下面我们来介绍图片的插入,图片的插入并不止一种方式,这里我们介绍使用figure
环境插入图片的方式,先来看示例代码段
1 | \begin{frame} |
效果如下
首先来看\begin{figure}
与\end{figure}
之间的部分,这是插入图片的主体部分。首先,\centering
表示图片居中,而下面的\includegraphics[width=0.5\textwidth]{弑魔魔法.png}
表示插入图片,其中{}
中填入图片文件名称,图片与.tex
文件在同一目录下即可。而width=
后的数字填入图片宽度,其实就是图片大小,使用的时候自己调到合适的大小即可。最后是\caption{弑魔魔法使用效果}\label{fig1}
,其中\caption{}
中填入图片名称,也就是展示在图题中的名称,而\label{}
中填入引用代称,其用于在整个文档中任意地方使用\ref{引用代称}
对图片进行引用,而不用因为图片编号的改变而手动修改。
还需要注意的是,直接使用figure
环境是不会显示图片编号的,我们需要在预定义区加入以下代码,才可以达到跟上述一样的展示效果
1 | \setbeamertemplate{caption}[numbered] % 图表序号 |
表格
现在我们再来看看如何插入表格,这里我们使用table
环境,并介绍三线表的实现,首先来看下列示例代码
1 | \begin{frame} |
效果如下
插入表格的主体代码为\begin{table}
与\end{table}
之间的部分,其中\centering
表示居中,\caption{}
中填入表题,\label{}
中填入引用代称,可以在整个文档中任意地方使用\ref{引用代称}
对图片进行引用。
而在\begin{tabular}
与\end{tabular}
之间的,是表格的内容,首先{cccc}
代表该表格有四列,并且四列均居中。而下面的就是表格内容,如果你对markdown
比较熟悉的话吗,应该可以看出来,这个表格的写法跟markdown
是一样的,列之间以&
划分,行之间以\\
划分。
不过,每次都手打表格未免太不优雅了,这里推荐一个表格转换为LaTeX的网站,将表格放入该网站中即可生成表格的LaTeX
代码。当然,如果你把上述表格内容放入网站中,会得到这样的一段代码
1 | \begin{tabular}{cccc} |
这跟我们上面的代码还是有差别的,因为多出来的代码是用于实现三线表的。当然,在此之前需要导入booktabs
库。代码\toprule
,\midrule
与\bottomrule
分别代表三线表的三条线,只要将其写在表格代码中,其就会在对应位置生成线,也就实现了三线表的效果。
公式
最后就是公式了,谈到LaTeX
自然会说到其对数学公式的优秀支持,并且,我个人主观认为LaTeX
渲染出的公式是最好看的,其次是Axmath
。对于数学公式,这里要说的不多,首先是字体问题,由于我们在前文设置的字体会影响到数学公式的渲染,因此,需要将beamer
最开始的代码改为
1 | \documentclass[mathserif]{beamer} |
然后就是公式的插入,行内插入使用两个$
包裹,行间插入使用两个$$
包裹。
最后,关于LaTeX
公式的语法,只需要找一个比较全的表,用到的时候查一下,写多了自然就会了。顺带着,这里在推荐两个将公式图片转化为LaTeX
代码的网站,分别为在线LaTeX公式编辑器-编辑器 (latexlive.com)与公式识别 (simpletex.cn)。