Beamer学习手册
本文基于 Overleaf 的 ZJU Beamer模板 进行学习,感谢前辈的贡献!
ZJU Beamer模板解读
首先在 Overleaf 下载 ZJU Beamer模板 ,解压压缩包后,文件夹内的文件如下:
README.md
打开README文件查看文件说明。
可以看到文件内介绍了这个模板文件的提交历史、作者信息以及使用方法。
- frame文件夹下的cover.tex为标题页,toc.tex为目录页,bib.tex为参考文献页,credits.tex为末尾感谢页。
- 如果需要新增frame,只需要输入上图中灰色方框内的代码即可。section表示新增节,section内的内容会出现在目录页中,ftitle内为每一张frame的主标题。
- 通常采用Xelatex --> Xelatex 编译,当有bib文件时需要选用 xe-bib-xe-xe 编译
SampleOutput.pdf
SampleOutput.pdf为一个示例的输出文件,展示了模板自带的封面。
template.tex
template.tex为主文档,通过input指令将其他tex文件复制到主文档中并编译。
\documentclass[10pt, mathserif]{beamer}
是用来指定文档类型的。它告诉 LaTeX 编译器这个文档是一个 Beamer 演示文稿。10pt 表示文档中的字体大小为 10 点,mathserif 表示数学字体为 serif 风格。
tex的字体样式,其实是通用的。来源于西方的字母写法,大致可分为两类:serif (衬线)和sans-serif(无衬线)。所谓衬线是字体的末端加强,便于阅读。如通常见的Times New Roman, 宋体。sans-serif(sans 源自法语,表示“没有”)字体的代表如Arial,隶书,幼圆。由于衬线的强化作用,serif字体作为正文具有易读性。因此存在大段文本的情况下,常使用衬线字体。但做幻灯片的话,衬线字体会因字体粗细不同,反倒可能降低辨识度。因此建议标题用衬线字体,正文用非衬线字体。数学符号用衬线字体相对美观一些,而Beamer如果不另行设置,默认全文使用sans-serif字体。因此按上述方式设置一下即可。
- 进行大型文本撰写时,可以将文本拆分成很多部分,通过
\input{ }
指令指令将某个tex内的全部内容直接搬运到该位置。 \begin{document}
之前的为该beamer的模板文件,\begin{document}
与\end{document}
之间的为幻灯片的具体内容。本模板中每一个tex文件内都有一个section,对应于PowerPoint内的【节】这一概念。
format
format文件夹中是一些模板文件。
format.tex
format.tex为模板汇总文件,在主文档(template.tex)中插入format文件即可同时读入以下四个文件。
setbackground.tex
setbackground.tex为PPT模板,包括标题、背景和脚注的设置。
\mode<presentation>
是用来指定 Beamer 文档的模式的。Beamer 文档有五种模式:beamer、second、handout、trans 和 article。其中,beamer 是默认模式,用于创建演示文稿。second 模式用于创建一个可选的第二屏幕的幻灯片。handout 模式用于创建讲义。trans 模式用于创建透明幻灯片。article 模式用于将控制权转移到另一个类,例如 article.cls。\mode 用于指定文档处于 presentation 模式,该模式包括前四种模式,即除了 article 模式之外的所有模式\setbeamercovered{dynamic}
是用来设置 Beamer 文档中覆盖部分的透明度的。它可以让使用\pause
命令时,覆盖部分的内容显示为半透明。这样,可以在演示文稿中创建分步展示的效果,同时保留层次感。\setbeamertemplate{navigation symbols}{}
是用来设置 Beamer 模板中的导航符号(如下图)的。它可以用来删除或更改 Beamer 演示文稿底部的导航符号。\setbeamertemplate{navigation symbols}{}
表示删除所有导航符号。
\setbeamertemplate{caption}[numbered]
是用来设置 Beamer 模板中的标题编号的。可以使 Beamer 演示文稿中的图片和表格标题自动编号。注释后图片标题不含数字序号\setbeamertemplate{background}{\includegraphics[height=\paperheight]{figure/zjuback.pdf}}
设置幻灯片背景,可以将figure/zjuback.pdf替换为其他文件\setbeamercolor{lg}{fg=light-gray}
将lg
元素的前景色(fg
)设置为浅灰色(light-gray
),在后续调用lg进行配色。之后可以通过修改这句命令快速调整幻灯片颜色。\setbeamertemplate{footline}{}
内的代码是用来自定义 Beamer 模板中的页脚的。使用了三个beamercolorbox
来创建一个水平布局的页脚,每个beamercolorbox
的宽度都是纸张宽度的三分之一。第一个beamercolorbox
显示演示文稿的作者,第二个显示演示文稿的标题,第三个显示演示文稿的日期和幻灯片编号。所有这些信息都使用了lg
元素的颜色。\vskip0pt
用于在垂直方向上插入一个长度为 0 的间距。它通常用于强制 LaTeX 进入垂直模式,以便在接下来的文本中使用垂直命令。\leavevmode
用于强制 LaTeX 退出垂直模式并进入水平模式。它通常用于在垂直模式下开始一个新的段落。\hspace*{2em}
用于在水平方向上插入一个间距。2em
表示间距的长度为当前字体大小的两倍。em
是一个相对单位,它的大小取决于当前使用的字体。例如,如果当前字体大小为 10 点,那么1em
的长度就是 10 点。\setbeamertemplate{frametitle}{}
内的命令是用来自定义 Beamer 模板中的帧标题的。它使用了一个beamercolorbox
来创建一个水平布局的帧标题,宽度为纸张宽度。beamercolorbox
的颜色和字体由frametitle
元素定义。帧标题的文本通过\insertframetitle
命令插入,并使用\vspace*
和\hspace*
命令进行微调。
table.tex
table.tex为表格模板,导入了一些LaTeX宏包。下面是对每个宏包的简要说明:
longtable
:帮助创建可以跨越多页的表格。diagbox
:提供了一个命令,可以在表格的标题行中创建斜线分割的单元格。tabularx
:提供了一个新的表格环境,可以让你创建具有可变宽度的表格。multirow
:允许你在表格中创建跨越多行的单元格。colortbl
:允许你给表格添加颜色。
代码说明:
\definecolor{grey}{rgb}{0.91,0.91,0.91}
:定义一个名为grey
的颜色,其RGB值为(0.91,0.91,0.91)。
math.tex
math.tex是数学公式模板,导入了一些LaTeX宏包。下面是对每个宏包的简要说明:
amsfonts
:提供了一些额外的数学字体,例如黑板粗体(用于表示数学中的集合)和花体字母(用于表示变换)。amsthm
:提供了一些命令和环境,可以定义和格式化定理、引理、推论等数学内容。amsmath
:提供了许多命令和环境,可以创建和格式化各种复杂的数学公式。amssymb
:提供了许多额外的数学符号,例如各种箭头、关系符号和运算符号。
代码说明:
\setcounter
:设置浮动体计数器的值。\setcounter{totalnumber}{6}
设置了每页最多可以有6个浮动体\setcounter{topnumber}{3}
设置了每页顶部最多可以有3个浮动体\setcounter{bottomnumber}{3}
设置了每页底部最多可以有3个浮动体。
figure.tex
figure.tex是图片模板,导入了一些LaTeX宏包。下面是对每个宏包的简要说明:
graphicx
和graphics
:这两个宏包都提供了一些命令,可以插入图片到文档中。graphicx
宏包提供了更多的功能,例如旋转、缩放和裁剪图片。fancybox
:美化图片周围的边框。subfigure
:在一个图片或表格中插入多个子图片。epstopdf
:将EPS格式的图片转换为PDF格式。flafter
:这个宏包可以禁止图片浮动到页面顶部。pifont
:这个宏包提供了一些带圆圈的数学符号。
代码说明:
\epstopdfsetup{update}
:只有当EPS文件更新时才重新生成PDF文件。\graphicspath{{figure/}}
命令来设置图片的主要路径。\setlength{\abovecaptionskip}{0pt}
设置图片和它上方标题之间的距离为0。\setlength{\belowcaptionskip}{0pt}
设置图片和它下方标题之间的距离为0。
code.tex
code.tex是代码模板,导入了一些LaTeX宏包。下面是对每个宏包的简要说明:
ifthen
:在LaTeX文档中使用条件语句。listings
:在LaTeX文档中插入格式化的代码。可以使用\lstset
命令来设置代码的格式,例如字体、颜色、行号等。
此外,这段代码还使用了一些其他宏包和命令来美化代码周围的边框和标题。代码说明:
\usepackage{caption}
和\DeclareCaptionFormat{listing}{...}
:设置代码标题的格式\captionsetup[lstlisting]{...}
:设置代码标题的颜色和字体。basicstyle=\footnotesize\ttfamily
设置了代码的字体为等宽字体,keywordstyle=\color{blue}
设置了关键字的颜色为蓝色commentstyle=\color{green}
设置了注释的颜色为绿色。stringstyle=\color{red}
设置代码中字符串的颜色为红色。\lstloadlanguages
加载一些编程语言的语法高亮规则。在这个模板文件中,加载了C、C++、Python和Java四种语言的语法高亮规则。
figure
figure为Beamer文件中调用的文件夹路径,figure.tex中使用\graphicspath{{figure/}}
命令来设置图片的主要路径为figure文件夹
Command
packages.tex
packages.tex主要目的是设置文档属性,使用了一些 LaTeX 宏包。下面是对每个宏包的简要说明:
ctex
:提供了对中文支持的功能,可以在 LaTeX 文档中使用中文。lipsum
:可以生成随机的文本内容,用于测试文档的排版效果。times
:设置了文档的英文字体为 Times New Roman。babel
:提供了对多语言支持的功能。color
:在 LaTeX 文档中使用颜色。url
:在 LaTeX 文档中插入超链接。bm
:提供了一个命令\bm
,可以在 LaTeX 文档中创建粗体的数学公式。hyperref
:在 LaTeX 文档中创建书签和超链接。
代码说明:
\usepackage[english]{babel}
:设置文档的语言为英语。\newcommand{\ftitle}[1]{\frametitle{\textcolor{white}{#1}}}
:定义了一个新命令\ftitle
,用来设置幻灯片标题的颜色。例如,\ftitle{My Title}
会创建一个白色的标题“My Title”。
Others.tex
Others.tex定义了一些自定义命令和设置,用来格式化 LaTeX 文档中的内容。
首先,这段代码使用了 \def
命令来定义一些自定义命令,这些命令用来设置 \autoref
命令的格式。例如,\def\equationautorefname{式}
定义了一个新命令 \equationautorefname
,它的值为“式”。这意味着当你在文档中使用 \autoref
命令引用一个公式时,它会显示为“式 (n)”的形式,其中 n 是公式的编号。
此外,这段代码还定义了一个新命令 \listoffigures
,它的值为“代码”。这个命令通常用来在 LaTeX 文档中创建一个图片目录。在这个例子中,图片目录的标题被设置为“代码”。
frame
frame文件夹里主要是幻灯片的具体内容,很好理解。这里简单介绍一下
cover.tex
cover.tex内提供了beamer的作者信息,以便后续调用这些信息。
\title[这是一个Beamer文档]{这是一个Beamer文档}
:标明文档的标题。方括号中的内容是可选的,用于在页脚或其他位置显示简短标题。\author{作者}
: 标明作者,在页脚处引用\institute[ZJU]{...}
: 标明作者所属机构。方括号中的内容是可选的,用于在页脚或其他位置显示简短机构名称。\includegraphics[width=0.2\textwidth]{figure/ZJU_BLUE.pdf}
: 在标题页插入校徽图片,图片的宽度为页面宽度的0.2倍。\date{\today}
: 自动插入当前日期。
toc.tex
这段代码使用了 AtBeginSection
命令来定义一个在每个新章节开始时执行的操作。每当一个新的章节开始时,都会创建一个新的幻灯片,其中包含文档的目录。
\AtBeginSection
命令接受一个参数,这个参数是一个 LaTeX 代码块,它定义了在每个新章节开始时要执行的操作。在这个例子中,这个代码块使用了 frame
环境来创建一个新的幻灯片,并使用了 \ftitle
命令来设置幻灯片的标题为“目录”。
此外,这段代码还使用了 \tableofcontents
命令来创建文档的目录。这个命令接受一些可选参数,用来控制目录的格式。在这个例子中,使用了 currentsection
和 currentsubsection
两个参数,它们表示只显示当前章节和当前小节的目录项。
addcover.tex
代码说明:
- \titlepage:生成标题页。这个命令会根据之前定义的\title、\author、\institute和\date等信息来生成一个标题页。若是没有插入addcover.tex文件则不会生成标题页。
\begin{frame}
和\end{frame}
: 定义了一个帧的开始和结束。
mainframe.tex
mainframe.tex为该Beamer文件内的第一节。
代码说明:
\section{First 书签一}
:这一节的标题为First 书签一,将会出现在目录当中。从这一句话到下一个\section{ }
的内容都属于这一节。\ftitle{标题名}
: 定义帧的标题。\ftitle
命是setbackground.tex内用户自定义的命令。中文内容显示
: 文本内容示例。\begin{align} ... \end{align}
: 使用了align
环境来排版多行公式。在这个环境中,可以使用\\
命令来换行。\lipsum[1-1]
: 使用\lipsum
命令生成示例文本。该命令需要使用lipsum
宏包才能使用。
bib.tex
bib.tex用于创建一个Beamer文档中的参考文献部分。
\section{References 参考文献}
: 定义一个新的章节,章节的标题为“References 参考文献”。\begin{frame}[allowframebreaks] ... \end{frame}
: 这几行代码定义了一个帧,[allowframebreaks]
选项表示如果内容过多,可以自动分页。
credits.tex
credits.tex为结束语部分。