/ LaTeX and ...  

LaTeX札记(八):Beamer演示文稿

LaTeX\LaTeX札记(八)——Beamer演示文稿

又是一年毕业季~ 这次把做了这么久beamer的一些心得分享一下。

首先,推荐阅读一下beamer的手册The beamer class User Guide for version 3.72.,通过命令行texdoc beamer即可获得),也有中文翻译版(但是年份比较早,针对的还是3.24版)。在手册中其实已经很详尽的说明了如何创建一个beamer演示文稿,这里我就粗略的说明一下吧~

Beamer的上手还是很简单的,有个模版往里面填论文的内容就可以啦~ 我学位论文答辩的beamer模版也已经放在Github里,如果想要改为自己学校的样式,换换logo、配色方案、主图就可以叻,都还是挺简单的~


鉴于我也学艺不精,本篇札记主要分为以下几部分:

  • 入门
    • 是什么
    • 基本结构
  • 进阶
    • 与常见的article相比,beamer独特的用法
      • 突出强调(structure & alert)
      • 块(block)
      • 列表(enumerate & itemize & description)
    • 使Beamer更“演示”的一些方式
      • 帧、叠层、动画
      • 多列并排
      • 公式的优雅注解
      • 页面脚注
    • “演讲者备注”的实现——笔记页
  • 其他应用
    • poster制作(先咕咕咕~)

如果还有什么想到了在加~


Beamer入门

引子

引子(一)

在小红书上之前有这样一个问题“PPT上面的这个是怎么做的”(图自小红书用户ID:10987385808)

图片

而我关注很久的“旁门左道PPT”在PPT最上面这个是啥?咋做的呀?中回复ppt的导航栏就可以完成这样的操作。真的是这样的吗?

注意到上面的小圆点是会跟随页面的递进而变化的,同时圆圈的透明度代表当前页面属于哪一小节。这样的操作真的能通过ppt简单的实现吗?其实是很困难的,如果只是实现简单的章节导航栏,ppt还是可以实现的,但是对于这种每页都不同的,对于ppt来说就是难上加难了,尤其当你要加减页面时,那就更加痛苦了。

很显然,这个演示文档并不是使用powerpoint制作的,而是采用beamer制作的,文字风格和主题也是非常默认的风格~而顶部这个导航栏则是通过选用相应的beamer主题自动实现的,它会根据你的章节分配自动实现这样的小圆点。

image-20250509151402512

例如上图这样,该页所属的节(section)的标题会重点突出,其他节会轻微透明;当前页面的圆圈会显示为实心,当前页面所属小节的圆圈会显示为更深的颜色。

引子(二)&是什么?

我最开始接触到beamer是在数模美赛培训期间,想要将论文用类似ppt的手段展示出来,但是把latex写的内容转化成ppt也很麻烦,于是就搜到了beamer这个东西。

当然latex公式要想在ppt中完美显示也有很多手段,我首推IguanaTex(A Free LaTeX Add-In for PowerPoint on Windows and Mac)。

如果你本地安装了texlive/mactex,那么这个工具属于是即插即用,直接把论文的公式复制过来就可以了。生成的公式是矢量格式,对每个元素都可以更换颜色等等,很方便。虽然界面是丑了点~

写着写着就歪了~

言归正传,beamer可以直接把你的论文转化为一个适合演示的pdf,放在大屏上展示你的成果~

beamer 是LATEX 的一个文档类(class), 它可用于创建用投影机(projector) 放映的演示稿(presentations),也可用于制作幻灯片(slides)。

Beamer的基本结构

Beamer和一般创建的latex文件类似,都有导言区和正文组成。

导言区

在beamer的导言区中通常包括以下部分:

  • 文件分类,即beamer或者ctexbeamer(引入中文的相关环境)。在documentclass中我们还可以加上对应的选项来采用需要的页面比例(aspectratio)、字体大小(如10pt)、输出版本(如handout会取消所有叠层,输出可供分发的版本)。例如在我提供的模版中,

    1
    \documentclass[aspectratio=169,xcolor=table,10pt]{ctexbeamer}

    其中xcolor=table是为表格颜色提供的选项。

  • 主题 🆕:beamer包含五类主题,这五个主题相互影响,与先后放置排列顺序甚至也有影响。这里不加赘述,具体每种主题能够带来什么样的效果可以参考beamer手册第III部分。在提供的模版中,我新定义了一种SEU颜色主题,其中定义了SEUcolor(东大绿), SEUyellow, SEUdarkyellow, SEUred, SEUblue五种颜色,在模版中主要采用东大绿、东大黄作为主色调,其余颜色大家可以按需选用。

    • 演示主题\usetheme
    • 颜色主题\usecolortheme
    • 字体主题\usefonttheme
    • 内部主题\useinnertheme
    • 外部主题\useoutertheme
  • 标题、作者、单位、日期——这一部分基本与article一致。我们可以采用[], {} 设置简略、完整版本的文本,用于封面和页脚。

  • 相关的字体设置、宏包应用

    • 字体相关设置可以参考“LaTeX札记(四):字体”的相关设置。在模版中,中文主字体为采用“更纱黑体”、斜体采用“霞鹜文楷”;西文主字体采用computer modern的非衬线体与cmbright的组合,以满足公式中字体同样统一;并且定义了\XWWK直接调用“霞鹜文楷”,方便霞鹜文楷与直立英文文本并排。
    • 其余相关图片、表格、画图等宏包
  • 其余常用command定义

  • 标题页面 🆕:封面页面定义、节标题页面定义、小节标题页面定义——其中,节标题、小节标题的实现方式其实就是在每个出现节、小节的开头位置,新增一个页面,显示相应的内容,大家可以按需调整。

    • 封面标题——加入了校标、院徽,四牌楼校区的楼

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      \titlegraphic { 
      \begin{tikzpicture}[overlay,remember picture]
      \node[above left] at (current page.332){
      \includegraphics[width=.6\textwidth]{seu_building.png}
      };
      \node[above=0.5cm] at (current page.220){
      % \includegraphics[width=.25\textwidth]{logo_color_green.pdf}
      \includegraphics[width=.13\textwidth]{SEUlogo.pdf}
      \includegraphics[width=.13\textwidth]{RADIOlogo.pdf}
      };
      \end{tikzpicture}
      }
    • 节标题——修改了编号样式(改为“Part I”的样式,虽然这不是真的part),增加了该节出现的小节标题。注意这里小节标题的放置比较丑陋,暂时没有想到更好的居中对齐方式。

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      \AtBeginSection[]{
      % \let\insertsectionnumber\relax
      \let\sectionname\relax
      \frame{\sectionpage}
      }
      \renewcommand{\thesection}{\Roman{section}}
      \setbeamertemplate{section page}
      {
      \begin{centering}
      {\usebeamerfont{section title} \textsc{Part} \thesection}

      \vspace{10pt}
      \begin{beamercolorbox}[sep=12pt,center,colsep=-4bp,rounded=true,shadow=true]{part title}
      \usebeamerfont{section title}\bfseries\insertsection\par
      \end{beamercolorbox}

      \vspace{20pt}\begin{minipage}
      {.35\linewidth}
      \tableofcontents[sectionstyle=hide,subsectionstyle=show/shaded/hide]
      \end{minipage}

      \end{centering}
      }
    • 小节标题(暂未启用)——表示该小节在整体结构中的位置

      1
      2
      3
      4
      5
      6
      7
      8
      9
      \AtBeginSubsection[]
      {
      \begin{frame}[shrink]

      \centering
      \tableofcontents[sectionstyle=show/shaded,subsectionstyle=show/shaded/hide]

      \end{frame}
      }

正文

正文部分可以采用\part, \section, \subsection来进行划分章节,同时也存在对应的*版本用于不编号,在目录中不进行显示。

  • 注意到论文答辩一般是一个比较简短的演示文稿,所以一般不会用到\part来区分。对于不同的part会一般分别采用新的tableofcontent目录,包括顶部或侧边的导航栏,即导航栏和目录中只显示当前part的节。

  • \section(节)的标题一般会显示在导航栏中,其样式根据主题区分。

  • \subsection(小节)的标题根据不同的主题可能会显示/不显示在导航栏或页面顶端。对于论文答辩一般也不会区分到小节,所以可用可不用~

  • 此外,类似于latex论文中,我们可以采用[], {} 设置长短标题,用于目录等不同用途,在beamer中同样有这样的操作。例如:

    1
    \section[SIP上行 -- 迭代接收机设计]{上行链路叠加导频系统的迭代接收机设计}

    那么,在导航栏中会显示[]中的短标题,减少字数,更突出重点;而在使用tableofcontent(目录)、节标题页中会显示{}的长标题。

而对于每一个页面我们可以采用frame环境进行包裹,作为一个页面。例如:

1
2
3
4
\begin{frame}
\frametitle{该页面标题}
页面正文内容
\end{frame}

或者更简单的写作

1
2
3
\begin{frame}{该页面标题}
页面正文内容
\end{frame}

如果我们把“页面标题”留空,则可以得到一个不带标题的页面。注意如果我们如果需要在页面中包含代码等环境,可能需要采用脆弱环境,即加上[fragile] 选项。

为了在标题栏放置校标、院徽,并将标题文字加粗,我在模版中定义了\frametitleb命令,只要将上述的\frametitle{该页面标题}修改为\frametitleb{该页面标题}就能够获得下面的标题文本效果。

1
\newcommand{\frametitleb}[1]{\frametitle{\makebox[\framewidth]{\bfseries #1 \hfill\raisebox{-1.5ex}{\includegraphics[height=1.1\baselineskip]{logo.pdf}}}}}

image-20250509172712132


Beamer进阶

在第一部分中,我们主要介绍了beamer的结构,但是总体看来除了frame,其余貌似和article/book类型没什么区别啊🤨~ 下面就介绍一些beamer更独有的用法,让beamer更加“演示”!

Beamer独特的用法

列表有了“新外观”(有序列表enumerate、无序列表itemize、描述description

我们再将上面出现的图搬下来,可以看到无序列表、有序列表的圆点、序号变成了一种更加立体的风格,这个主要是Warsaw主题提供的特性。我们也可以采用别的主题获得不同的效果,例如Berlin主题提供平面方块点的风格,Hannover主题提供平面圆点的风格…… 更本质其实是内部主题(inner theme)起了作用,上面三个主题分别对应于roundedrectanglescircles三种内部主题。

而描述环境则是将前面悬挂部分的问题设置为了结构色。

image-20250509151402512

通过“颜色”进行突出强调(结构色structure、警告色alert

在slides中,我们通常利用颜色进行突出强调。于是在beamer中我们有一些通过颜色来表示内容轻重缓急的方式。

  • 结构色\structure:在手册中表述为“给定的文本被标记为(marked as)结构(structure)的一部分,也就是说,它有助于观众了解演示稿的结构。” 在给出模版的效果就是把显示的文字颜色变化为东大绿(即结构色),其余常见模版中一般是默认的蓝色。使用方法:\structure{text}
  • 警告色\alert:在手册中表述为“给定的文本高亮显示,典型地显示为红色。” 使用方法:\alert{text}
  • 半透明shade:这并不是一个能够在全文使用的颜色效果,而是当采用叠层等设置时候,会将当前不在视觉重点的内容采用半透明的方式显示。一般在目录设置中会使用。此外,利用\setbeamercovered{transparent},列表项会以一定的透明度被隐藏。

此外,我们可以通过重定义\emph更加突出重点。例如,我定义了两种强调的方式:

1
2
\renewcommand{\emph}[1]{{\XWWK \structure{#1}}}
\newcommand{\emphbf}[1]{\structure{\bfseries#1}}

于是,\emph利用结构色的霞鹜文楷突出强调,而非原本的正文色斜体;\emphbf则进一步利用结构色的粗非衬线体突出强调。

“包裹起来”的块环境block

beamer中定义了用于排版文本的三种块环境,块环境包含标题(可省略)、正文。

  • 常规块:\begin{block}{标题} 正文 \end{block}——采用结构色配色
  • 举例块:\begin{exampleblock}{标题} 正文 \end{exampleblock} ——一般是黄色
  • 警告块:\begin{alertblock}{标题} 正文 \end{alertblock}——一般是红色

image-20250509171557907

当我们对标题的{}留空即可得到只包含正文的块,这可能帮我们生成一个具有整行宽度的框,放置一些需要突出的内容,例如在模版中图名即放置在不带标题的举例块中,并配合一个小图标。

image-20250509171750746

但是,我并不推荐在全文中滥用块环境,每段文本都用块包裹,这会显得非常割裂。

此外,在beamer中定理、定义、证明等其实也都是采用的块环境,只是进行了一定的预先定义。

使Beamer更“演示”的一些方式

帧、叠层、动画

在beamer中页面被按照帧(frame)进行放映,而在一帧中可以创建多个叠层(overlay)分段展示,实现类似于powerpoint中一页内容中分部分显示的效果。(ps:我觉得帧这个概念有点奇怪,甚至觉得后面那个叠层才是实际帧的意思😂)

由于论文答辩也不需要非常多的动画,这里只介绍三个主要的叠层相关操作:

  • 只是“暂停”:pause 提供了一个最简单的分段显示帧的方法。如果在帧的某处放置\pause,其后的内容会在下一slide才出现。这个\pause能够在一个帧中多处使用。此外,该命令还可以跟着一个选项表示在该帧第几个slide后才显示,即\pause[数字]

  • 列表中

    • 如果你想让列表的每一项按顺序出现可以在\begin{itemize}后面加上选项[<+->],具体含义参见手册吧。即:

      1
      2
      3
      4
      5
      \begin{itemize}[<+->]
      \item 从第1个slide开始显示直到这一帧结束。
      \item 从第2个slide开始显示直到这一帧结束。
      \item 从第3个slide开始显示直到这一帧结束。
      \end{itemize}
    • 如果你想让不同项目在不同slide上面显示。可以看下下面的案例:

      1
      2
      3
      4
      5
      6
      \begin{itemize}
      \item<1> 只在第1个slide显示。
      \item<2-> 从第2个slide开始显示直到这一帧结束。
      \item<2-4> 在第2到4个slide上显示,其余不显示。
      \item<3,5> 在第3和第5个slide上显示,其余不显示。
      \end{itemize}
    • 还有一些类似于高亮等的用法,请参考手册

  • 大段文字图片——这种情况主要出现在如下情况:“一个帧顶部的内容始终是一致的(例如一个图),下半部分对这个图的不同模块进行说明(每次的文本说明都会占足整个下半部分)”,但是如果我采用不同的帧表现顶部图像位置可能会动来动去,同时会占用三个页码。此时,采用overprint环境就是非常好的选择。
    image-20250509175325388

    • 采用overprint环境,对每个叠层的内容放置一个onslide。
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      \begin{frame}{heading}
      {不变的图片或者文字内容}
      \begin{overprint}
      \onslide<1>
      Some text for the first slide.\\
      Possibly several lines long.
      \onslide<2>
      Replacement on the second slide.
      \end{overprint}
      \end{frame}
    • 该方案有两个已知的弊端:①使用handout模式时候不好处理,毕竟只有一个页面但要放置三段文本是不可行的,只能有所取舍;②此时overprint生成的区间的高度是偏高的,采用内容左右分布时候,minipage不能采用m选项,否则对齐可能有问题。

对于动画这个问题,已经在该系列的第一辑“LaTeX札记(一):插入动画”中分享过啦~但是值得注意的是,动画对于PDF阅读器的要求很高,需要使用Adobe Acrobat获得较好的放映体验!

图文、多列并排minipage

为了能够有效利用横向空间,beamer中一般需要多列并排。我通常选用minipage环境这样能够更方便的对齐基线、调整列宽。

1
2
3
4
5
6
7
8
9
10
11
12
13
\begin{minipage}[m]{.47\linewidth}
\centering\includegraphics[width=\linewidth]{figure.pdf}
\end{minipage}\hfill
\begin{minipage}[m]{.47\linewidth}
\begin{exampleblock}{}
\raisebox{-1pt}{\structure{\faArrowCircleLeft}}\parbox{.95\textwidth}{\centering 图片说明}
\end{exampleblock}
文本说明
\begin{itemize}
\item A
\item B
\end{itemize}
\end{minipage}

image-20250509180621890在上面的例子中给出了一个左图右文的图文并排案例,两个块垂直居中对齐,可以获得类似上图的效果。大家可以自行调整minipage的宽度、对齐选项等实现符合需求的效果。

公式注解

在beamer中为了更清晰、简要地说明公式,我们可以使用annotate-equations宏包为公式添加漂亮的注释。具体地使用说明请参考“Github上的使用说明”。同样给一个例子~

1
2
3
4
5
6
\begin{equation*}
[\hat{\mathbf{d}}]_u = \tikzmarknode{nodeSum}{\sum_{a\in\mathcal{Q}}} \eqnmarkbox[SEUdarkyellow]{nodeA}{a} \cdot \eqnmarkbox[SEUcolor]{nodeProb}{\mathbb{P}\left[[\mathbf{d}]_u = a \,|\, \mathsf{L}_\text{map}^A \right]}
\end{equation*}
\annotate[yshift=.7em,xshift=1em]{below,right}{nodeSum}{\scriptsize \textit{加权求和}}
\annotate[yshift=.5em]{above}{nodeA}{\scriptsize \textit{星座点对应的复值符号}}
\annotate{below}{nodeProb}{\scriptsize \textit{根据LLR得到的先验概率}}
image-20250509181141613

参考文献使用脚注而非尾注

在beamer中一般不会把使用的参考文献放置在整个beamer的最后,这样不太方便查看,而作为页面的脚注放在帧的下方。这里也给出一个使用案例:

  • 首先,为了将beamer脚注的样式调整为“[1]”的格式,我们再导言区重定义脚注的编号方式:\renewcommand{\thefootnote}{[\arabic{footnote}]}

  • 其次,使用时为了能够更加清晰突出文献可以写作

    1
    \emph{(Chu \textit{et al}., 2022)}\footnote{\fontsize{7pt}{7pt}\selectfont  M. Chu, A. Liu, V. K. N. Lau, C. Jiang, and T. Yang, “Deep Reinforcement Learning based End-to-end Multi-user Channel Prediction and Beamforming,” \textit{IEEE Trans. Wirel. Commun.}, pp. 1–1, 2022, doi: 10.1109/TWC.2022.3183255.}

显示效果如下:

image-20250509181713987

“演讲者备注”的实现——笔记页

在beamer中,能不能像powerpoint中一样在答辩的时候偷偷看“小抄”呢?答案是肯定的,只是对于PDF放映软件的要求可能比较高,所以对于不能使用自己设备的场景可能要谨慎使用beamer的双屏放映功能

笔记页的制作和放置

  • 添加笔记:在beamer中,可以简单的利用\note命令为每个页面添加笔记(放置在frame环境内部即可),如果是section、maketitle之类的页面可以放在在后面。

    • 在笔记中可以包含公式、列表等等一系列的环境~

    • 如果页面有多个叠层,可以为不同叠层创建不同的笔记!例如:

      1
      2
      3
      \note<1->{第1个slide对应笔记页显示的内容,直到该帧的最后一个slide}
      \note<1>{只在第1个slide对应笔记页显示的内容}
      \note<2>{第2个slide对应笔记页显示的内容,直到该帧的最后一个slide}

      这一点相比在powerpoint的演讲者备注中手动标注这句“(点)”一下鼠标的方式,优雅多了~读完这部分的~~“小抄”~~(笔记),跳到下一页可以接着念,即使它属于同一个帧。

    • \note命令后面加上一个选项[item],于是添加的不同笔记会被作为一个有序列表放置在笔记页,对于上述“大段文字图片的叠层”场景非常适用。
      image-20250509190428270

  • 显示笔记&页面布局——beamer默认是不显示笔记页的内容的,需要在导言区加入相应的\setbeameroption

    • 一页正文,一页笔记:\setbeameroption{show notes}
    • 将笔记页放置在第二屏:\setbeameroption{show notes on second screen=right}。给定该选项后,会创建slides的双屏版本。可以指定在在左侧(left)、右侧(right)、底部(bottom)、顶部(top)放置第二屏幕显示笔记页。
    • 仅展示笔记:\setbeameroption{show only notes}
  • 将笔记页放置在第二屏时可能存在的问题与相应解决方式:

    • 正文页面内容显示有问题,如文本不显示、字体颜色显示为白色、图片加载有问题等
      ——【解决方案】在导言区加上对应代码:

      1
      2
      3
      4
      5
      6
      7
      \makeatletter 
      \def\beamer@framenotesbegin{% at beginning of slide
      \usebeamercolor[fg]{normal text}
      \gdef\beamer@noteitems{}%
      \gdef\beamer@notes{}%
      }
      \makeatother
    • 原本应该出现在笔记(正文)页面超链接出现在了正文(笔记)页,导致超链接位置出错,影响放映时的跳转
      ——【解决方案】使用下列patch,即在导言区引入\input{beamer-notes-patch},在文件夹目录上放置“lrtfm”提供的beamer-notes-patch.tex,重新编译两遍,即可获得正确的超链接位置。

双屏放映

我也试用了知乎和网络推荐的不少软件(比如Présentation和pdfpc尝试了,之前常用的Adobe Acrobat和Sumatra PDF没找到双屏放映的方式),最后用下来感觉还是pympress最好用。虽然刚打开beamer会有点卡卡的,但是实际播放、显示笔记页、激光等等的功能还是非常完善的。同时在Windows和Mac上都可以使用~

image-20250509183245435


其他应用

poster制作

先咕咕咕着…… 给个小案例,来自之前科技论文写作的一个作业

image-20250509183441839

本文标题:LaTeX札记(八):Beamer演示文稿

文章作者:Levitate_

发布时间:2025年05月08日 - 15:16:52

原始链接:https://levitate-qian.github.io/2025/05/08/latex-note-08/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。