LaTeX Beamer 笔记
关于 Beamer 的整理笔记,假定读者有一定的 LaTeX 基础。
注意到 Beamer 虽然属于 LaTeX 的一部分,但是与标准的 LaTeX 文档有很多的不同,部分 LaTeX 宏包和命令可能无法在 Beamer 上呈现正常的效果,这也意味着 Beamer 的编译错误更难改正。
笔记主要参考 latex-beamer.com 的英文在线教程和若干博客。
笔者目前使用的模板的两种风格效果如下,对应的 Github 仓库:latexzero。
极简示例
从一个最简单的例子开始
1 | \documentclass{beamer} |
效果如下
在示例中使用了一个名为 AnnArbor 的 Beamer 主题,添加了作者和日期,并以此生成了标题页面。
标题页被包裹着 frame 环境中,frame 环境是 Beamer 的核心环境,作用相当于 PPT 中的一页。
在 frame 外的内容可能会被 LaTeX 用奇怪的方法排版到幻灯片上,影响效果,因此尽可能将所有正文分别放在不同的 frame 中。
为了避免不同主题的干扰,下面的效果图通常是基于默认主题的,此时对应的设置主题命令需要改为
\usetheme{default}或直接删除。
文档类选项
下面是几个常见的导入 Beamer 文档类时指定的选项:
10pt: 指定正文的基本字体大小为 10pt,Beamer 支持的字号包括:8pt、9pt、10pt、11pt、12pt、14pt、17pt、20pt,默认为 11pt。aspectratio=43: 指定演示文稿的纵横比,默认比例为 4:3,即传统屏幕纵横比,还可以改为 16:9 的屏幕纵横比aspectratio=169;mathserif: 在数学模式中指定使用衬线字体,保持与 article 相同,而不是采用默认的无衬线字体;table: 加载与表格相关的宏包,以增强表格的功能;compress:压缩导航栏的排版,使导航栏上的这些信息更紧凑,例如从多行压缩为单行。notes:是 Beamer 支持演讲者视图,在每一页之后添加 note,但是问题是很多 PDF 浏览器在放映时不支持。
文档结构
Beamer 使用\section{},\subsection{}(或\section*{}和\subsection*{})来划分结构,
注意:
- Beamer 不支持
\chapter; - 与 LaTeX 标准文档不同,这些命令不会在对应位置显示章节标题;
- 必须在 frame 外部使用这些章节命令,否则可能有排版错误。
标题页
标题页的设置包括填写基本信息,以及在一个 frame 中使用 \titlepage 命令
1 | \begin{frame}[plain] |
或者也可以直接使用通常的 \maketitle 命令,此时不用包裹在 frame 之中。(两者的效果大致等价,但是可能略有区别)
1 | \maketitle |
标题页会显示的基本元素包括:
\title{},主标题\subtitle{},子标题\author{},多个作者可以使用\and命令连接\date{},当前日期使用\date{\today}\institute{},机构
对于作者,可以使用 ~ 连接姓名确保姓和名不会被换行符分开
1 | \author{First~Author \and |
如果多个作者分别属于不同的机构,可以参考下面的代码
1 | \author{First~Author\inst{1} \and Second~Author\inst{2}} |
可以通过 \thanks{} 添加作者的邮箱,和其他 LaTeX 文档类一样,邮箱会在脚注中显示,例如
1 | \author{Author\thanks{\texttt{xxx@gmail.com}}} |
在某些模板中,作者和单位、演示文稿标题和日期等信息会默认显示在每一页底部的脚注中,有时信息过长无法显示,可以在添加信息时加入简称,例如
1 | \title[<short one>]{<long title>} |
也可以设置简称为空,从而取消脚注,例如 \title[]{Presentation title}。
在演示文稿中添加徽标是一个很常见的需求,可以在导言区添加如下代码
1 | \logo{ |
徽章会出现在每一页的固定位置,默认位置由主题决定,可能出现在右下角,更改徽章位置可以使用 tikz 等宏包完成。
一个更常见的需求是只在标题页中呈现标志,可以改为
1 | \titlegraphic{ |
此时标志图片只会在标题页出现,默认位置通常为正中偏下的位置。
目录页
使用下面的命令可以创建目录页
1 | \begin{frame}{Outline} % or Contents |
可以使用 \section*{References} 将章节从目录中隐藏,可以添加 hideallsubsections 选项在目录中隐藏所有的子章节
1 | \tableofcontents[hideallsubsections] |
使用下面的命令可以在进入每一个 section 和 subsection 时复现一次目录
1 | \AtBeginSection[]{ |
默认情况下,Beamer 对自动生成的目录页也会记入页码并在页脚中显示,如果希望其不计入页码和显示页码,可以加上选项 noframenumbering 和 plain,例如
1 | \AtBeginSection[] |
frame 环境
frame 的基本使用如下,可以设置主标题,副标题以及额外选项,它们都是可选的。
1 | % Frame environment |
也可以使用单独命令添加主标题和副标题
1 | \begin{frame} |
frame 环境还支持如下的用法,即使用 \frame 命令
1 | \frame{ |
frame 的选项例如 [t][c][b] 指定文本在页面中竖直方向的对齐方式:向上,居中或向下,默认是竖直居中的,可以进行如下修改
1 | \begin{frame}[b] |
可以使用 [plain] 选项来移除当前 frame 的顶部和底部细节,通常用于标题页展示纯净的页面
1 | \begin{frame}[plain] |
columns 环境
演示文稿的一个常见需求是:对单个页面进行竖向拆分得到左右两列,分别添加不同的文字或者图文进行对比,也可以用来并列两个图片,
这些需求都可以通过 columns 环境实现,在使用中需要为每一列指定宽度,通常取为 \textwidth 的一个比例长度,各列长度和不超过 \textwidth。
有两种具体用法,第一种是直接使用 \column{0.6\textwidth} 命令,第二种是使用 column 环境
1 | \begin{column}{0.6\textwidth} |
例如按照 6:4 的比例拆分,分别排版不同的文字
1 | \begin{frame}{Columns in beamer} |
效果如下
可选\centering保持在每一部分居中对齐。
或者一列排版文字,另一列放置图片
1 | \begin{frame}{Text and Image in beamer} |
效果如下
示例中使用的图片:https://latex-beamer.com/wp-content/uploads/2021/07/Neural-Network.jpg
可以通过在 columns 环境之后分别添加 [T]、[b] 或 [c] 选项进行顶部、底部和中心对齐,例如
1 | \begin{frame}{Vertical alignment} |
block/定理类环境
Beamer 预定义了很多诸如定理和证明的定理类环境,还有一般的 block 环境,这些环境的默认表现与主题非常相关,例如默认主题 default 显示的效果非常简单,默认主题 Madrid 呈现的效果具有数学风格。
这部分的示意图都采用了
Madrid主题。
下面是常见的 block 环境和定理类环境:
- block 环境
- 通用/标准 block:
\begin{block}...\end{block} - 示例 block(exampleblock):
\begin{exampleblock} ... \end{exampleblock} - 警告 block(alertblock):
\begin{alertblock}...\end{alertblock}
- 通用/标准 block:
- 定理类环境
- 定理 theorem:
\begin{theorem} ... \end{theorem} - 定义 definition:
\begin{definition} ... \end{definition} - 证明 proof:
\begin{proof} ... \end{proof},默认含有证毕符号 - 引理 lemma:
\begin{lemma} ... \end{lemma} - 推论 corollary:
\begin{corollary} ... \end{corollary} - 示例 example:
\begin{example} ... \end{example}
- 定理 theorem:
其中定理类环境有默认标题,可以使用 [] 添加可选的额外标题,例如
1 | \begin{frame} |
效果如下
block 环境的标题参数是必选参数,否则会自动将内容的第一个字母提升为标题,例如
1 | \begin{frame} |
效果如下(注意最后一个 block 因为缺少标题,第一个字母被提升为标题)
列表环境
相比于大段文字的堆砌,演示文稿中更推荐的是呈现关键信息的列表。
Beamer 直接支持 LaTeX 的有序列表,无序列表和描述列表,并且支持嵌套和列表配置的宏包等,例如
1 | \begin{frame}{Nested Lists in Beamer} |
对于演示文稿中的列表,有下面几种常见问题以及对应的处理。
有时列表的每一项之间的行间距过小,但是只有两三个项,导致排版非常不美观,下面的做法可以局部调整某个列表各项之间的竖直间距:(不建议进行全局设置,因为 Beamer 需要单独考虑每一页中列表的拥挤程度进行调整)
1 | \begin{itemize} |
也可以使用 \vspace{} 手动调整列表项之间的竖直间距,例如
1 | \begin{itemize} |
调整间距的前后效果对比如下
列表过长可能需要分页展示,此时需要考虑的是列表计数器的设置,例如
1 | % Define a counter |
这里的配置包括三部分:
- 在导言区定义了计数器;
- 前一页的列表最后设置了计数器的值;
- 在后一页的列表中使用了计数器的值。
内部排版
记录一下关于页面内部排版的几个细节需求。
默认的分段在演示文稿中是不明显的,我们可以在段尾添加 \\~\\ 产生更明显的分段效果,实质上是加了一个空行,例如
1 | \begin{frame} |
此时会在 12 和 3 之间产生明显的宽度为一个空行的分段效果,效果如下
如果需要更精细地控制竖直间距,可以使用 \vspace{} 命令(接受 cm、pt、em 等长度单位),例如 \vspace{0.5cm} 在当前位置插入 0.5cm 的竖直间距。
\vspace{}也接收负值,例如\vspace{-0.5em}可以压缩原本的竖直间距,适合少量微调,但压缩过大会导致内容重叠。
除了 \vspace{},还可以使用预定义的间距命令:
1 | \smallskip % 小空白(~3pt) |
还可以使用
\linespread{xxx}改变全局的行间距倍数。
虽然 LaTeX 本身提供了粗体斜体等排版命令,但是 Beamer 可以通过一个 ulem 宏包达到更丰富的效果(除了数学公式中,那里仍然需要 bm 宏包)。
示例如下
1 | \usepackage{ulem} |
各个命令的解释如下:
\uline{}:下划线\uuline{}:双层下划线\uwave{}:波浪下划线\dashuline{}:下划虚线\dotuline{}:点下划线\sout{}:删除横线\xout{}:删除斜线
效果如下
改变颜色仍然可以使用 xcolor 宏包,Beamer 默认已经导入这个宏包,因此可以直接使用,例如
1 | {\color{blue} This is a blue block.} |
参考文献
Beamer 对于参考文献的使用与 LaTeX 文档有很大的不同,面向对象不是读者而是观众,需要在引用位置立刻告诉观众——这里的文献是什么,而不是留在最后一页给一份参考文献列表,通常有两种方法:
- 在引用位置使用脚注展示参考文献;
- 用作者名和年份展示参考文献,因为提供作者+年份通常就足够让观众定位对应的文献,尤其是报告还会给观众提供一些额外信息,例如科研领域或关键词。
建议使用 biblatex,通常使用作者+年份样式而非编号样式
1 | \usepackage[style=authoryear,backend=biber]{biblatex} |
下面的例子都基于 biblatex 和 authoryear 样式,使用的 bib 文件为 references.bib。
文献引用
在引用位置中用脚注展示参考文献有两种方式:
\footcite{}:以脚注形式显示引用条目的作者和年份\footfullcite{}:在脚注中显示引用条目的详细信息
效果如下:
\footcite{}
\footfullcite{}
但是依赖脚注的方式有严重的问题:只适合当前页面只提到一两个参考文献的情景,而且会大幅占用本就不充裕的页面空间,影响其他内容的排版。
直接使用 \cite{} 命令引用参考文献也是可以的。
默认效果如下:
这里显示的作者+年份和其他文本的区别不明显,可读性很差。
可以通过重定义 \cite 命令的方式让引用内容的样式更加清晰:
先使用 \let 定义一个新命令保存原始的 \cite 命令,再重新封装一层作为新的 \cite 命令,这样可以保留原本的引用格式和超链接功能,只是在外侧调整细节。
例如调整字号并加上中括号
1 | \let\oldcite\cite |
也可以进一步加上颜色
1 | \let\oldcite\cite |
注意:\cite{} 命令的超链接只对年份部分的文本有效,对作者名的文本无效,因此只有年份被视作超链接,如果使用 hyperref 宏包的 citecolor 进行颜色设置,会只对年份生效。
参考文献列表
在最后可以使用单独的参考文献列表,例如
1 | \begin{frame}{References} |
这里使用 heading=none 选项是为了避免自动创建一个名为 References 的 section。
效果如下
如果有一些需要展示的文献在前面没有引用,默认不会展示,可以使用 \nocite{} 补充。
有时需要展示的文献实在太多了,Beamer 默认排版展示非常不美观,多余的内容会溢出到页面下方,而不是自动跨页,需要给 frame 环境添加 allowframebreaks 选项以允许自动将多余内容排版到下一页。
对于文献太多的情况,更好的做法是只展示其中一部分重要文献,例如
1 | \begin{frame}{Selected References} |
此时需要手动给希望展示的条目加上 keywords = {important} 字段。
效果如下
结束页
某些情景下需要有专门的结束页,通常一个谢谢即可。此时页面文字很少,需要注意排版让文字居中,例如可以使用 \centerline 或 center 环境或者其他命令。
1 | \begin{frame} |
相比于一般的汇报展示,学位答辩等重要场合可能需要更礼貌一些,例如
1 | \begin{frame} |
注意:
- 某些人喜欢抠字眼,觉得 “感谢聆听” 中的聆听是谦词而不是敬词,不够礼貌,避免使用即可。
- 在学术交流时,也可以在最后一页的谢谢旁边补上个人的主页/联系方式等。
- 还有一些情景中不推荐用单独的谢谢作为一个结束页,此时结束页的内容可以是总结和展望,也可以是列举主要参考文献,也可以在结束页顺便加上谢谢。
动态效果
在汇报用的演示文稿中加入花哨的动态效果是极其不推荐的,但是 Beamer 仍然支持一些简单的效果,就像 PowerPoint 一样,这里简单了解一下。
在很多 Beamer 环境中,允许使用<...>添加与动态效果相关的参数,这里全部略去。
下面的例子使用 \pause 暂停命令,这意味着演讲者需要手动确认一次才会继续展示列表的下一项,直至完全呈现。
1 | \begin{frame}{Creating Overlays in Beamer}{Pause command} |
\pause 也可以使用在段落中。
更常见的是下面这种做法,可以精确调控每一帧显示哪些项
1 | \begin{frame} |
除了上面在 \item 后加 <n> 的写法,Beamer 还提供了几个更灵活的 overlay 命令:
| 命令 | 效果 |
|---|---|
\only<n>{...} |
仅在指定 slide 出现,不占位(隐藏时后续内容自动上移) |
\onslide<n>{...} |
仅在指定 slide 可见,但始终占位(隐藏时保留空白) |
\uncover<n>{...} |
与 \onslide 效果相同,语义上更偏向”揭开” |
\visible<n>{...} |
仅在指定 slide 显示,其余 slide 透明但占位 |
\invisible<n>{...} |
在指定 slide 隐藏,其余 slide 正常显示 |
\alt<n>{A}{B} |
指定 slide 显示 A,其余显示 B |
这些命令可以包裹任意内容(文字、列表项、图片等),例如:
1 | \begin{frame}{Overlay commands} |
主题
整体主题
通常在导言区的第二行立刻声明使用的整体主题,例如
1 | \documentclass{beamer} |
Beamer 内置了 29 个整体主题,可以按照导航栏进行简单分类:
- Without Navigation Bars:
default,boxes,Bergen,Boadilla,Madrid,AnnArbor,CambridgeUS,EastLansing,Pittsburgh,Rochester - With a Tree-Like Navigation Bar:
Antibes,JuanLesPins,Montpellier - With a Table of Contents Sidebar:
Berkeley,PaloAlto,Goettingen,Marburg,Hannover - With a Mini Frame Navigation:
Berlin,Ilmenau,Dresden,Darmstadt,Frankfurt,Singapore,Szeged - With Section and Subsection Tables:
Copenhagen,Luebeck,Malmoe,Warsaw
效果如下
default |
boxes |
Bergen |
Boadilla |
Madrid |
AnnArbor |
CambridgeUS |
EastLansing |
Pittsburgh |
Rochester |
Antibes |
JuanLesPins |
Montpellier |
Berkeley |
PaloAlto |
Goettingen |
Marburg |
Hannover |
Berlin |
Ilmenau |
Dresden |
Darmstadt |
Frankfurt |
Singapore |
Szeged |
Copenhagen |
Luebeck |
Malmoe |
Warsaw |
|
一个整体主题实际上主要是下面四种细分主题的组合搭配(加上一些细节调整),例如 default 主题实质为
1 | \usefonttheme{default} |
Boadilla 主题实质为
1 | \usefonttheme{rose} |
如果需要定制整体主题,基于 default 主题进行修改是一个非常好的选择。
细分主题
Beamer 将主题拆分为了下面四个部分:
- 字体主题:
\usefonttheme{} - 颜色主题:
\usecolortheme{} - 内部主题:
\useinnertheme{} - 外部主题:
\useoutertheme{}
Beamer 字体主题支持全局地设置字体风格,\usefonttheme{} 命令支持如下选项:
default:(默认)各种标题和文本字体均为无衬线的等线体,数学式中的字体为等斜线体。为标题、标题和页脚等元素使用不同的字体大小,但不使用粗体或斜体进行突出显示。serif:使所有文本都使用默认衬线字体(直立罗马体)进行排版。structurebold:通常的文本是无衬线字体,但是标题、脚线和各种导航条中的标题和文本变更为粗体。structureitalicserif:与structurebold类似,但是标题、脚线和各种导航条中的标题和文本变更为斜罗马体。structuresmallcapsserif:与structurebold类似,但是标题、脚线和各种导航条中的标题和文本变更为小型大写字体。professionalfonts:(专业字体选项)这个选项抑制了 Beamer 对字体的自动修改,将其留给其它宏包进行处理。
值得注意的是,与 article 等文档不同,Beamer 需要考虑投影后的内容辨识度,默认全局采用了无衬线字体,这看起来有些奇怪,尤其是在数学公式中的符号。
颜色主题设定演示文稿的各部分各结构各元素的配色,\usecolortheme{} 命令支持如下选项:
- 基本颜色:
default、sidebartab、structure; - 完整颜色:
albatross、beaver、beetle、crane、dove、fly、seagull、wolverine; - 内部颜色:
lily、orchid、rose; - 外部颜色:
dolphin、seahorse、whale。
外部主题设定演示文稿是否有顶栏、底栏和侧栏,以及它们的结构,\useoutertheme{} 命令支持如下选项:
defaultinfolinesminiframessidebarsmoothbarssplitshadowtreesmoothtree
主要是导航条的位置和样式细节,建议采用 miniframes,加上 subsection=false 选项取消在顶边导航条中显示当前小节标题
1 | \useoutertheme[subsection=false]{miniframes} |
内部主题设定演示文稿正文内容(例如标题、列表、定理等)的样式,\useinnertheme{} 命令支持如下选项:
default:默认值,其定义了论文题名、作者姓名、各种列表、插图以及表格标题、各种模块、摘要、脚注以及参考文献等文本元素的样式;circles:将 itemize item 中的小三角改为小圆盘,排序列表 enumerate items 添加背景小圆盘,目录中每个条目前加一个小圆盘;rectangle:将 itemize item 中的小三角改为小方块,排序列表 enumerate items 添加背景小方块,目录中每个条目前加一个小方块;rounded:将 itemize item 中的小三角改为小圆,排序列表 enumerate items 添加背景小圆,目录中每个条目前加一个小圆,题名和各种模块的背景框由直角变更为圆弧,其有下列参数:shadow 给各种木块添加阴影,以满足立体感。
定制主题
Beamer 各部分的样式都可以自己定制和修改,并且不需要使用 LaTeX 较低层的命令,Beamer 已经提供了丰富的定制命令接口。
通常从下面几个角度来定制自己的主题:
- 选择基础主题,
\usetheme{},\usefonttheme{},\usecolortheme{},\useoutertheme{},\useinnertheme{} - 定制模板,
\setbeamertemplate{} - 定制颜色,
\setbeamercolor{} - 定制字体,
\setbeamerfont{}
例如选择下面的基础主题
1 | \usetheme{default} |
下面是一些涉及定制样式的常见代码。
标题页样式
代码和作用如下
1 | % Beamer 用于定义标题页样式的模板命令。 |
head/foot 样式
代码和作用如下
1 | % 设置 head/foot 的颜色,背景为 structure 颜色,文本为白色 |
修改证明环境
证明环境的默认提示词为 Proof,有时希望修改为中文,可以使用下面的代码
1 | \renewcommand{\proofname}{证明} |
在证明环境中默认以空心方框表示证明结束,可以用下面的代码删除或修改证毕符号
1 | % 删除 |
删除导航按钮
Beamer 默认在每一个页面的最底层添加了一行可以跳转到不同页面的按钮,但是通常没人会使用这些,可以用下面的代码禁用它们,使页面显得更加干净
1 | \setbeamertemplate{navigation symbols}{} |
底栏显示页码
使用下面的配置可以在底栏(底部导航栏的下面)的右下角显示页码,例如 11/22
1 | \setbeamertemplate{footline}[frame number]{} |
修改文献列表图标
默认的文献列表的图标很丑,可以修改一下,例如
1 | \usepackage{fontawesome5} |
效果如下
但是这种做法因为字体原因会产生一些无关紧要的警告。
目录样式
默认情况下,Beamer 不会给 section 和 subsection 编号,下面的代码可以开启编号:
1 | \setbeamertemplate{section in toc}[sections numbered] |
block 样式
我们可以通过 \setbeamertemplate{blocks}[Options] 修改 block 环境的形状(会影响所有 block 和定理类环境),常见预定义选项有 [rounded](圆角矩形)和 [shadow=true](添加阴影)。例如:
1 | \setbeamertemplate{blocks}[rounded][shadow=true] |
block 的颜色也可以通过 \setbeamercolor 定制,可以具体到每一种 block 环境(block、alertblock、exampleblock),分别调整 title 和 body 的前景色和背景色:
1 | % 标准 block |
也可以基于主题色进行深浅调整:
1 | \setbeamercolor{block body}{bg=structure!10} |
这里
!20表示在基础颜色上以 20% 的 RGB 数值混合白色,得到更淡的颜色。定理类环境相当于标准 block 的具体实现,样式与标准 block 一致,Beamer 不直接支持对各个定理类环境分别设置样式。
列表样式
默认主题的列表样式比较简陋(无序列表一级为三角形,有序列表默认编号也不够美观)。Beamer 提供了自己的模板接口来修改这些样式,不建议使用 enumitem 宏包(二者都有列表深度定制,容易冲突)。例如修改无序列表符号:
1 | % 无序列表符号 |
也可以使用 Beamer 预设的样式组,一次性设置所有层级的符号:
1 | \setbeamertemplate{itemize items}[circle] % 所有层级用圆点 |
对于有序列表,同样支持预设样式和自定义:
1 | % 使用预设 |
开启图表编号
默认 Beamer 不会给图表编号,下面的代码可以开启
1 | \setbeamertemplate{caption}[numbered] |
如果只想给图片添加说明文字,但不希望生成编号,可以使用 \caption*{} 替换 \caption{}。
修改字体大小
默认情况下 \institute{} 的字体很小,在机构名称很长时看不清,下面的代码可以调整为正常大小
1 | \setbeamerfont{institute}{size=\normalsize} |
下面是对脚注字体大小的设置
1 | \setbeamerfont{footnote}{size=\tiny} |
Beamer 常用宏包
Beamer 常用宏包如下,提供对数学,图表,链接,还有算法和代码环境的基础支持。
1 | % fonts |
补充
中文支持
对于 Beamer 的中文支持,有两种选择:第一种是直接使用 ctexbeamer,第二种是导入 ctex 宏包。
1 | \documentclass{beamer} |
这些与普通的 LaTeX 文档没有区别,因此不作详细讨论。
手稿模式
Beamer 提供了 handout 模式用于呈现不同的演示文稿版本。
第一个作用是在 PDF 中只呈现页面的最终效果,以含有动态效果的一个页面为例,默认 PDF 会将动态效果变化过程的每一帧呈现出来,
但是加入 handout 选项只会呈现最终结果的页面,这使得生成的 PDF 适合阅读而非放映。
第二个作用是我们可以在某些 frame 中标记 <handout:0>,则 handout 模式下不会显示。
1 | \documentclass[handout]{beamer} |
这个标记在非 handout 模式下无效,frame 会正常显示。
打印讲稿
我们可能需要在 A4 纸中提前打印讲稿的内容,并且为了节约纸张,需要将多张幻灯片排布在单面 A4 纸中,可以使用 pgfpages 宏包以及下面的配置
1 | \usepackage{pgfpages} |
这里 2 on 1 代表一面有两个幻灯片,4 on 1 代表一面有四个幻灯片,landscape 代表横向排列。
block 中嵌入表格
一个可能的需求是如何在 block 环境中嵌入表格,与通常的 table 环境包裹 tabular 环境不同,在 block 中应该直接使用 tabular 环境。
1 | \begin{frame}{Tables in Beamer Blocks} |
效果如下(基于 Madrid 主题)
使用算法环境
如果需要在 frame 中加入算法,例如使用 algorithm2e 宏包,必须在算法环境中加上 H 选项否则会编译报错。
1 | \usepackage{algorithm2e} |
使用抄录环境
在 Beamer 的 frame 中使用 \verb 命令可能需要给 frame 加上额外的选项,否则会编译错误。
1 | \begin{frame}[fragile] |
这个选项将导致 Beamer 将该 frame 环境的全部内容先写在一个名为 filename.vrb 的临时文件里再处理。
对于
listings宏包的使用,也需要对 frame 加上[fragile]选项。
长度单位
为了进行尺寸的微调,有必要了解 LaTeX 中的长度单位,分为绝对单位和相对单位两种,后者随字体和字号变化。
绝对单位如下:
| 单位 | 含义 | 换算关系 |
|---|---|---|
pt |
TeX point | 1 pt = 1/72.27 in |
bp |
big point,常用于 PDF 图形尺寸 | 1 bp = 1/72 in |
in |
英寸 | 1 in = 72.27 pt = 72 bp |
cm |
厘米 | 1 cm = 28.45 pt |
mm |
毫米 | 1 mm = 2.845 pt |
pc |
pica | 1 pc = 12 pt |
相对单位如下:
| 单位 | 含义 | 换算关系 |
|---|---|---|
em |
当前字体中一个 M 的宽度,常近似为当前字号 |
随字体和字号变化 |
ex |
当前字体中小写 x 的高度 |
随字体和字号变化,通常约为 0.5em |
\baselineskip |
当前行基线之间的距离 | 随字号和行距设置变化,通常略大于当前字号 |
其中 pt、cm、mm 等适合指定固定尺寸,em、ex、\baselineskip 等会随当前字体环境变化,更适合局部排版微调。
演讲者备注
Beamer 的 note 功能用于添加演讲者备注,方便演讲时查看但不显示给观众,例如
1 | \documentclass{beamer} |
默认情况下不会显示备注,但是可以通过如下命令开启,也可以在 Beamer 文档类选项中加入 notes 选项。
1 | \setbeameroption{show notes} |
此时会在 frame 后面创建一个单独的 frame 展示备注,效果如下
演讲者可以用不带备注的版本展示,带备注的版本则用于参考。
编写进度标记
在编写 Beamer 的过程中,可以先搭建好整体框架:
- 包括几个部分
- 每个部分有几个 frame
- 每一个 frame 的标题
然后完成 frame 的内容,可以在每一个 frame 的标题中添加特殊标记表示当前 frame 的编写进度,便于查看,例如
1 | \newcommand{\todo}{\textcolor{white}{\colorbox{red}{\textbf{TODO}}}} |