查看原文
其他

用 LaTeX 做幻灯片比用 PowerPoint 和 Keynote 做更方便、更美观吗?

Eureka LaTeX工作室 2024-03-24

现在最常用的演示用 LaTeX 文档类 beamer,最初也是供作者本人使用的一一它被编写出来用于作者 Till Tantau 在 2003 年的博士答辩,后来发布并在其他用户的反馈下改进,最后交给社区维护。所以,beamer,以及其他类似的 LaTeX 演示文档类,都是为了学术报告这个简单的目的而服务的。

做报告之前,你有研究论文,有参考文献,报告内容是定义、定理、公式、算法、代码、科学图表更重要的是,这些内容你可能已经有了 LaTeX 的版本源代码,连图表都可能是 LaTeX 做的。那么现在说,如果现在要做演示文档,问你是把原来文章中的复杂内容粘贴到 beamer 里面改一改用,还是用 PowerPoint 重新输入一遍?

所以说,在填写内容方面可能会更方便。那么控制效果和动画呢?

好在,学术报告的要求通常不高,多数人只需要\pause 就够用了。其他的东西,既然没有,只好认为也不重要。一—其实不是真的不重要,翻页特效确实是很无聊的,但具体内容中,精心设计的动画很有用,有时候如果精心做个 Flash 甚至 3D 动画效果最好,不过也真的难做。

另外, PowerPoint,在 Office2007 以前整个 Office 的数学公式功能就是渣,在 Office2010 开始新的数学公式功能才能用在 PowerPoint 里面(2007 仅限于 Word)。即使是用第三方插件,比如 MathType,也常常搞出公式和正文基线都对不齐的乌龙来。所以用这样的工具来录入学术内容,真的很痛苦。

回到问题本身,幻灯片为什么不用PowerPoint或者iSlide做,而用LaTeX 做呢?

答案或许有很多,甚至会有装 X的成分,但咱老实人会说:用什么软件,是由需求决定的

1. 需要形式丰富多彩、动画出类拔萃的——用 PowerPoint、iSlide 

2. 逻辑简单清晰、仅需文字/图片/表格呈现、动画寥寥——用 LaTeX 

可见,LaTeX 不追求动画,但追求逻辑,而这一特点正适用于学术报告(企业幻灯片就别用 LaTeX 了哈)。

下面,咱们就一起看看,LaTeX 是如何帮助你做幻灯片

2. 学习资源

  1. Beamer 入门,推荐黄旭华老师的翻译文档,对于新手很友好,也比较的系统(自己觉得的,毕竟对于 Beamer,我还是刚入门)。阅读再加上把里面的代码敲一敲,一下午就基本看得完!
  • Beamer 快速入门 - 中译本 黄旭华老师翻译 - www.latexstudio.net/archives/51706.html
  • beamer 文档类用户手册 (v3.70)- https://www.latexstudio.net/index/details/index/mid/3918.html

Texlive 自带的 Beamer 说明文档的中文翻译。

打开命令行(win + r),输入如下的命令即可打开 Texlive 自带的 Beamer 说明文档。今天的有些 bug 我就是查这个官方文档解决的。

注:要想学到东西,你必须得学会慢慢习惯看官方的英语文档

texdoc beamer



资料与代码下载

点击下方公众号名片

关注【LaTeX 工作室】公众号

复制红色关键词并发送到对话框获取:

幻灯片



 Beamer 制作过程,source 源码和上述学习资料,公众号回复:幻灯片 获取下载链接。

3.Beamer 文件源码

文件夹结构主要包含一个 main.tex 主文件和 pics 图片文件夹,关注如下的文件即可完成编译:

  1. main.tex
  2. pics 中的两个张片
  3. Slide.sty

我在 Slide.sty 中说明了怎么对 beamer 的一些基本设置进行更改,在 main.tex 中说明了对 beamer 更多的一些设置,详情请参见源码。

文件二:Slide.sty

注:我在其中说明了怎么魔改样式。

\ProvidesPackage{Slide}
%% 注意Slide是大写
%% 一:底部导航条样式设置
%  注:\useoutertheme{infolines} 在任一主题中添加底边导航条

% 1. 样式1:author, title, 日期/帧序号
\defbeamertemplate{footline}{FootlineTemplateI}{%
 \leavevmode% 离开vmode,也就是离开竖直模式,进入水平模式
 \hbox{%
  \begin{beamercolorbox}[wd=.3\paperwidth,ht=2.25ex,dp=1ex,center]{author in head/foot}
%
   \ifnum \the\value{page}>0 \usebeamerfont{author in head/foot}\insertshortauthor\fi
  \end{beamercolorbox}%
  \begin{beamercolorbox}[wd=.4\paperwidth,ht=2.25ex,dp=1ex,center]{title in head/foot}%
   \ifnum \the\value{page}>0 \usebeamerfont{title in head/foot}\insertshorttitle\fi
  \end{beamercolorbox}%
  \begin{beamercolorbox}[wd=0.3\paperwidth,ht=2.25ex,dp=1ex,center]{author in head/foot}%
   \ifnum \the\value{page}>0 \insertframenumber{} / \inserttotalframenumber\fi
 \end{beamercolorbox}}%
% \vskip0pt%
}

% 使用样例1
% \usepackage{Slide}
% \setbeamertemplate{footline}[FootlineTemplateI]



% 2. 样式2:只显示时间和帧序号
\defbeamertemplate{footline}{FootlineTemplateII}{%
 \leavevmode% 离开vmode,也就是离开竖直模式,进入水平模式
 \hbox{%
  \begin{beamercolorbox}[wd=.6\paperwidth,ht=2.25ex,dp=1ex,center]{author in head/foot}
%
   \ifnum \the\value{page}>0 \usebeamerfont{author in head/foot}{}\fi
  \end{beamercolorbox}%
  \begin{beamercolorbox}[wd=0.4\paperwidth,ht=2.25ex,dp=1ex,right]{author in head/foot}%
   \ifnum \the\value{page}>0\insertshortdate~~~\insertframenumber{}/\inserttotalframenumber~~~\fi
 \end{beamercolorbox}}%
% \vskip0pt%
}

% 使用样例2
% \usepackage{Slide}
% \setbeamertemplate{footline}[FootlineTemplateII]


%% 二:使用脚注
% Fnote 环境带有两个参数,它们指定了脚步注的位置即相对于幻灯片的左上角。
\newenvironment{Fnote}[2]{% 
  \begin{textblock*}{\textwidth}
(#1,#2) 
      \footnotesize\it\bgroup\color{black!20!black}}
      {\egroup\end{textblock*}

文件三:main.tex

主要包含 beamer 使用的以下的方面

  1. Beamer 文档结构
  2. Beamer 的主题:theme
  3. Beamer 的颜色主题: colortheme
  4. Beamer 的字体设置:Normal Text 和 Struct Text 的颜色,样式, 衬线与否等
  5. Beamer 的幻灯片效果
  6. Beamer 的警告处理
  7. Beamer 的强调环境(类似于 tcolorbox 的环境)优化
  8. Beamer 的分栏(Beamer 中的概念)
  9. Beamer 中插入图片
  10. beamer 的背景设置:纯色,渐变色, 背景图片

(10 注:这些东西我觉得不那么重要,就没怎么写,但是那么黄旭华老师的文档里边都有的)

3.1 beamer 的字体设置

其实和 article 的字体大小设置差不多,但是你需要定义的地方可能多了一点,说明如下:

%% 3.1 Beamer字体设置 %%
% normal text可以设定默认字体尺寸为 8、9、10、11、 12、14、17、20 pt
\documentclass[10pt]{beamer}

% 这样可能会与结构字体不协调,使用如下命令进行设置
\setbeamerfont{structure}{shape=\itshape}

% 使用规定好的标准大小
\setbeamerfont{frametitle}{size=\large}

% 使用自定义大小(不推荐):格式:size*={⟨size in pt⟩}{⟨baselineskip⟩}
\setbeamerfont{frametitle}{size={\fontsize{6pt}{0pt}}}

3.2 颜色设置

beamer 中的颜色设置也比较的简单,当你想要使用更多的颜色时就得发动你的 google 搜索大法了:

% 3.2 beamer 颜色设置 %%
% 多 LaTeX 分发版提供了色名集:svgnam.def, dvipsnam.def文件。
% 要在 Beamer 中使用该扩展的色名集,请按以下方式调用 Beamer
\documentclass[xcolor=dvipsnames, 7pt]{beamer}

% Xcolor 能读取来自文件 svgnam.def 10 的更大的色名集
% 要在 Beamer 中使用该扩展的色名集,请按以下方式调用 Beamer:
\documentclass[xcolor=svgnames]{beamer} 

3.3 数学符号相关

beamer 与 article 文档类很大的一个不同就是:beamer 中的数学字体默认是无衬线的,即看起来更加的朴实无华,没有什么菱角或者说没有装饰的样子。下面两图就是衬线和非衬线字体:

img

非衬线正文字体 + 衬线数学字体

img

非衬线正文字体 + 数学字体

当然,beamer 中默认的中文字体也是无衬线的,我觉得这个默认设置是挺好的,方便展示

这里仅考虑了粗体数学符号的使用方法,更多的数学字体请参看我的另一篇文章:

Eureka:LaTeX 字体配置第二章21 赞同・0 评论文章

关于数学字体的衬线于非衬线就看各人喜好了,我是比较偏向于在演示文稿中使用非衬线字体的,具体的设置方式如下:

% 衬线公式和非衬线公式的切换
% 1.只更改数学字体
\usefonttheme[onlymath]{serif} 
% 2.更改正文+数学字体
\usefonttheme{serif}

然后就是数学字体 加粗 的设置了

%% 3.3 数学符号 %%
\usepackage{amsmath,amsthm,amssymb,amsfonts}
% \usepackage{newtxtext,newtxmath}
\usepackage{bm}
\usepackage{amssymb}
\setmainfont{TeX Gyre Termes} 
% 消除字体警告
% 1. Font shape `TU/lmr/b/it' in size <5> not available (Font)
% 2. Font shape `TU/ptm/m/n‘ undefined (Font)

加粗演示如下:

% 1.数学公式粗体
  \[
    a+b\times c \ne \boldsymbol{a+b \times c}
  \]

% 2.数学公式伪粗体
  \[
    \int k =  \pmb{\int k}  
  \]

% 2.高质量粗体
  \[
    \sum \int (k\oplus j) \,{d}\ne
    \bm{\sum \int (k\oplus j) \,{d}x}
  \]

3.4 beamer 主题

肯定很多人想要打造一个属于自己的 beamer 风格,那么 beamer 的主题便是你们可以折腾的最好的点:

  1. beamer 的主题色调
  2. beamer 的页面元素布局
  3. beamer 导航图标
  4. beamer 页面比例
  5. ...

我这里只挑一些基本的内容进行说明,首先便是主题。beamer 内置了诸多的主题,大部分都是以城市命令的,什么

Berlin , Madrid 等等,具体的设置方式见下:

%% 3.4 beamer主题(以城市命名的)
% 1.入门主题
% 可以指定水平条距罗切斯特幻灯片顶部边缘的高度
\usetheme[height=7mm]{Rochester}

% 搭配方案一:仅仅只在底部显示信息
\usetheme{Madrid}

% 搭配方案二:仅仅只在顶部一行显示信息(黑色)
\usetheme{Frankfurt}

% 搭配方案三:在顶部和底部显示信息,顶部和底部为两行(蓝色)
\usetheme{Berlin}

% 其他的单独主题:顶部两行,底部两行
\usetheme{Ilmenau} 
\usetheme{Dresden}


% 2.组合方案(自定义于:Slide.sty)
% 使用自定义的样式增加原本的底部没有的一行
\usetheme{Frankfurt}
\setbeamertemplate{footline}[FootlineTemplateII]

然后再来说一下 beamer 的主题颜色设置了,一般这个是可选项,当你选定一个 beamer 主题之后,它有它自己默认的一个主题色,但是如果你不想要这个主题的主题颜色,但是想要保留剩余的元素,就可以考虑更改这个主题的主题色:

% 1 默认颜色主题
\usecolortheme{default}
% 2 支持RGB颜色指定
% \usecolortheme[RGB={205,173,0}]{structure} 
% 3 设置structure样式
% 使用如下参数需要加上参数:\documentclass[xcolor=dvipsnames]{beamer}
\usecolortheme[named=Brown]{structure} 

%% 设置前景色和背景色:幻灯片中的主体文本
\setbeamercolor{normal text}{fg=black!30}
\setbeamercolor{normal text}{bg=green!3}
%% 设置结构色:幻灯片的页眉和页脚不是普通文本
\setbeamercolor{structure}{fg=purple}

3.5 其余页面元素

beamer 的页面元素很多,但是基本上都是可以自己定制的,都有都应的命令进行设置,只需要 google 一下基本都行。下面给出常见的页面元素设置:

%% 3.5 自定义beamer的其他样式 %%
% 更改列表环境的点样式
\setbeamertemplate{items}[ball]
% 圆角加阴影
\setbeamertemplate{blocks}[rounded][shadow=true] 
% 隐藏导航图标
\setbeamertemplate{navigation symbols}{} 

% 底边导航条(footline)是幻灯片底部的狭窄长条,在这里,可以显示
% 作者姓名、演示稿的标题、幻灯片序号、其它有用的信息
% 即:\useoutertheme{infolines} 必需放在\usetheme[height=7mm]{Rochester}之前
% 如果你搞反了顺序,幻灯片的标题将被删除

% 为了自定义footline,你需要自定义一个footline的模板
\setbeamertemplate{footline}[NGEGFootlineTemplate]
% Beamer 幻灯片的尺寸是 128mm × 96mm。这个尺寸是固定的不能修改
% 然而,左右两侧的页边距(margins)却可以更改。左右两侧的页边距默认设定是 1cm
% 在下面的例子中,我们将左右两侧的页边距分别更改为 6mm 和 2mm
\setbeamersize{text margin left=6mm, text margin right=2mm}

3.6 beamer 基本环境

beamer 中是怎么划分每一页的?→ 使用 frame 环境,每一个 frame 环境就对应这一页 slide:比如第一页我想要展示这次的 slide 的目录:

%% 3.6 beamer目录页 %%
\begin{frame}{目录}
    \tableofcontents
\end{frame}

效果如下

img

很多时候可能你有需要双列排版的需求,这是你使用一个 multicols 环境就够了,使用示例如下:

%% beamer多栏排版 %%
\begin{frame}{Splitting a slide into columns}

  \lettrine{T}he line you are reading goes all the way across the slide.
  From the left margin to the right margin.  Now we are going
  the split the slide into two columns.
  \bigskip
  
  % 使用columns 环境进行多栏排版 %
  \begin{columns}
    \begin{column}{0.5\textwidth}
      Here is the first column.  We put an itemized list in it.
      \begin{itemize}
        \item This is an item
        \item This is another item
        \item Yet another item
      \end{itemize}
    \end{column}
  
    \begin{column}{0.3\textwidth}
      Here is the second column.  We will put a picture in it.
      \centerline{\includegraphics[width=0.7\textwidth]{../Pic/cover.jpg}}
    \end{column}
  \end{columns}
  \bigskip
  
  The line you are reading goes all the way across the slide.
  From the left margin to the right margin.
\end{frame}

效果如下

img

当然,也可以使用 minipage 环境,使用样例如下:

\begin{frame}{TiKZ in Beamer}
  \begin{figure}[!htb]
    \begin{minipage}[]{0.4\linewidth}
        如右图所示:
        \begin{itemize}
            \item 1. $M$就是阴影区域 $f(x, y)$的最大值
            \item 2. $y=\varphi(x)$的唯一性在 $x\in [x_0-h, x_0+h]$上能够保证
        \end{itemize}
    \end{minipage}
    \begin{minipage}[]{0.4\linewidth}
        \center
        \begin{tikzpicture}{scale=0.07}
            \draw[-stealth] (-1, 0)--(5, 0)node[below=.5em, left] {$x$};
            \draw[-stealth] (0, -1)--(0, 5)node[right=.5em, below] {$y$};
            \draw[fill = black!20] (1, 1)--(4, 1)--(4, 3)--(1, 3)--cycle;
            \draw[dashed] (2.5, 0)node[below] {$x_0$}--(2.5, 2)node[right=.5em, above=.25em] {$(x_0, y_0)$}--(0, 2)node[left] {$y_0$};
            \draw[decorate, decoration={calligraphic brace, amplitude=2mm}] (1, 3)--(4, 3)node[midway, above=.5em] {$2a$};
            \draw[decorate, decoration={calligraphic brace, mirror, amplitude=2mm}] (4, 1)--(4, 3)node[midway, right=.5em] {$2b$};
            \node[left=.5em, below] at (0, 0) {$O$};
            \draw[fill=black!60]  (2.5, 2) circle (2pt);
            \draw[dashed] (2.2, 0)--(2.2, 2);
            \draw[dashed] (2.8, 0)--(2.8, 2)--(2.5, 2);
            \draw[decorate, decoration={calligraphic brace}] (2.2, 0)--(2.8, 0)node[midway, above=.5em] {$2h$};
        \end{tikzpicture}
    \end{minipage}
\end{figure}
\end{frame} 

3.7 beamer 页面对齐

与其说这个是对齐,倒不如说这个是 beamer 中页面的文字堆叠方向,主要有以下的几种方式:

% 顶部对齐
\begin{frame}[t]{Top alignment} 
  This is the contents of the slide. 
\end{frame} 

% 居中对齐
\begin{frame}[c]{Center alignment (default)} % [c] 是默认的
  This is the contents of the slide. 
\end{frame} 

% 底部对齐
\begin{frame}[b]{Bottom alignment} 
  This is the contents of the slide. 
\end{frame} 

你也可以使用 flushleftflushright , center 等环境实现水平方向的对齐:

\begin{frame}{文字水平对齐}
\begin{flushleft}
    右对齐
\end{flushleft}

\begin{center}
    居中对齐
\end{center}
\end{frame}

3.8 beamer 放映动画

注意:由于 beamer 生成的 pdf 文件,所以想要实现动画效果的一个必要条件就是你的 pdf 阅读器的支持 javascript,这里推荐使用 Adobe Acrobat

简单的动画,比如方向键控制下一个内容的展示与消失,使用一个 pause 命令即可:

%% 3.8 pause命令展示动画 %%
\begin{frame}{Outline of the talk} 
  \begin{itemize} 
    \item Introduction 
    \pause 
    \item Statement of the main theorem 
    \pause 
    \item Technical lemmata 
    \pause 
    \item Proof of the main theorem 
    \pause 
    \item Conclusions 
  \end{itemize} 
\end{frame} 

3.9 beamer 中跨页面跳转

很多时候你可能有这种需求:当你讲到某一页之后突然想要跳转到之前的的某一页,但是不想慢慢的一页一页的划过去,想要直接点击一个地方就跳转过去。这个功能 beamer 也是具备的,使用方法如下:

\begin{frame}[label=intro]{Introduction}
  This slide is labeled ``intro''.
\end{frame}
  

%--- 帧 --------------------------------------------------%
\begin{frame}{Some other slide}
  If you click \hyperlink{intro}{here}, you will jump to the slide
  labeled ``intro''.
  
  \bigskip
  
  Clicking \hyperlink{intro}{\beamerbutton{here}} will also
  take you to the ``intro'' slide.
  \textbf{注:使用Alt + $\leftarrow$跳转回来}
\end{frame}

在这里,我们给目标跳转页打上一个标签 intro, 然后再后面的页使用 \hyperlink{intro}{here} 命令实现跳转,这里的 here 就是跳转按钮的显示文字。

3.10 beamer 脚注

可能你们在 article 文档类中就注意到有这个 footnote 的坑了,这鞋脚注有时候会显示在一个环境中,并不会显示在当前页的页底,于是这里有一个自定义命令,用于指定 footnote 的绝对坐标:

\begin{frame}{使用脚注}
  Fnote 环境带有两个参数,它们指定了脚步注的位置即相对于
  幻灯片的左上角。 一张 Beamer 幻灯片的大小是 128mm $\times$ 96mm。
  这有利于你设定这些参数。

 \begin{Fnote}{4mm}{80mm}
      V. Jikov, S. Kozlov and O. Olenik, Homogenization
      of differential operators and integral
      functionals, Springer, 1994.
  \end{Fnote} 
\end{frame}

4. Beamer 主题使用

相关的操作我已经记录在 main.tex 的源码内部了,同时我也魔改了几个自己喜欢的 Beamer 主题,使用方法我也在 main.tex 文件中写的清楚,效果图示:

4.1 单一的 theme

img

主题:Madrid, 颜色:default

img

主题:Ilmenau, 颜色:default

img

主题:Rochester, 颜色:default

4.2 多个复合的效果

img

结合了 sty 文件中的 FootlineTemplateI

img

结合了 sty 文件中的 FootlineTemplateII

4.3 自定义 Beamer 主题的参考

相关的 Beamer 主题参考网站:

https://hartwork.org/beamer-theme-matrix/hartwork.org/beamer-theme-matrix/

参考这个网站,然后再结合 Beamer 的官方文档,你就可以魔改出来很多的你喜欢的主题样式了。

latexstudio 还有很多 beamer 主题样式,这些主题都别具一格,精心制作。在这里:

https://www.latexstudio.net/index/lists/index/type/2/cate/13.html


关注我们公众号,学习 LaTeX 无烦恼!

入门资料,免费知识代码:

https://flowus.cn/latex/share/66110e84-b24a-4cd5-b8a7-2ba2afb35a30

精心制作免费视频教程:

https://space.bilibili.com/209746320

继续滑动看下一个
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存