LaTeX beamer 类使用教程

CSP_Sept

2022-02-08 14:01:07

科技·工程

本文不允许任何形式的转载,除非得到作者 CSP_Sept 的许可。

\Large\textbf{0 }\textsf{前言} \large\textsf{0.1 }\textbf{写作目的}

beamer 是 LaTeX 提供的一种制作演示文档的工具,目前国内似乎没有一篇比较完备的原创手册。

所以想写一篇。

\large\textsf{0.2 }\textbf{感谢}

感谢 StudyingFather(详见「参考文献 3」)让我知道了 beamer 这个类。

感谢离散小波变换°给了我诸多支持与帮助。

还有网上诸多博客的作者,这里无法一一列出他们的名字,在这里一并表示衷心的感谢。

\large\textsf{0.3 }\textbf{凡例}

2022 年 10 月 1 日更新:在 TeXLive2022 环境下除了中文标点更加美观外,对下面的展示没有区别。

本文默认在 TeXLive 2021,Windows 10 环境下生成演示文档,pdf 打开工具为 SumatraPDF。

读者请保证自己在导言区调用了如下宏包:

\usepackage{graphicx, graphics}
\usepackage{float, array, color, ctex}
\usepackage{amsmath, amssymb}
\usepackage{multicol, multirow, makecell, tabu, dcolumn}
\usepackage{fancyhdr, lastpage}
\usepackage{listings, xcolor}
\usepackage{xeCJKfntef}
\usepackage{fontspec, xunicode, xltxtra}
\usepackage{setspace}
\usepackage{geometry}

下文中「导言区」指在 document 环境外的部分。

\Large\textbf{1 }\textsf{基本使用} \large\textsf{1.1 }\textbf{基本编译方法}

我们考虑下面的导言代码:

\documentclass[table]{beamer}
\usepackage[UTF8, noindent]{ctexcap}
\usetheme{Szeged}
\usecolortheme{beaver}

第一行表示该文档是 beamer 类型,第二行保证了该文档能正常显示中文,第三四行设置了演示文档的主题。

主题可在 Beamer Theme Matrix 自由组合,你也可以自己编写主题,但这超出了我们的讨论范围。

\title{Your title}
\author{Your name}
\institute{Your team}
\date{Your date}

data 留空默认为生成文件的当天的日期。

也可以使用 \and\inst 命令,前者用于分开多位作者,后者用于分开多个组织。

在 document 环境中,加入如下代码:

\frame{\titlepage} % 生成标题页

\begin{frame} % 生成目录页
    \frametitle{目录}

    \tableofcontents

\end{frame}

\begin{frame} % 插入空白页

    \frametitle{Something} % 一页的标题

    Something

    $x^n+y^n=z^n$

\end{frame}

键入上述代码并运行,得到下面的效果:

我们看到这里的公式很丑,怎么解决呢?

考虑在导言区加入如下代码(二选一):

\usefonttheme[onlymath]{serif}

\usefonttheme[math]{serif}

有如下效果:

可以看到,onlymath 仅设置了公式字体,而 math 设置了全局字体,我们在下面的展示中默认开启 math 选项。

我们可以在每页演示文档(下称一个 frame 环境及其产物为「帧」)外加入 \section 等命令,使用方法和效果与普通文档相同。

可以利用 \alert 命令把文字调为亮红色,或使用 \emph 命令将文字调为斜体。

beamer 同样支持 theorem、lemma、proof、corollary、example 等环境,但不建议直接使用,因为在国内的演示文档中过多中英文混杂不甚美观。

\large\textsf{1.2 }\textbf{目录}

我们在上面给出了目录代码。

\begin{frame}
    \frametitle{目录}

    \tableofcontents

\end{frame}

你可以选择加入 [pausesections] 选项,这样就可以把目录进行分帧展示。

也可以在导言区加入如下代码:

\AtBeginSection[]{
  \begin{frame}
    \frametitle{Contents}
    \tableofcontents[currentsection]
  \end{frame}
}

这样会在每个部分的开头显示目录,并将会高亮当前部分标题。

\large\textsf{1.3 }\textbf{分层展示} \text{1.3.1 分层}

\pause 命令可以让内容分多次展示。

\begin{frame}

    A \pause

    B

\end{frame}

上述代码中,B 会在 A 后出现。

\text{1.3.2 分层规格}

接下来我们将在 itemizeenumerate 环境中应用分层规格,阅读下列内容之前,请读者确保自己知道该环境的基本语法。

我们考虑下面代码:

\begin{frame} 

    下面我们要证明没有最大的质数。

    \begin{itemize}
        \item<1-> 假设 $p$ 是最大的质数。
        \item<3-> 令 $q$ 表示 $2\sim p$ 中所有质数的乘积。
        \item<1-> 则 $q + 1$ 不会被这些质数中的任意一个整除。
        \item<2-> 但是 $q + 1$ 大于 $1$,因此可以被一些不在前 $p$ 个数中的素数整除。
    \end{itemize}

\end{frame}

运行后,以上内容分三张展示,\texttt{<1->} 的意义是「从第 1 张开始」。

以上只是个例子,尖括号内可以有如下四种类型:

  1. 以上 3 种混合使用,用 \texttt, 隔开。可以描述为组成各部分的并集。

\only 命令或 \uncover 命令中同样可以使用分层规格。

但需要注意的是,\only 命令会导致前后高度不同,在帧环境中,可以添加 [t] 选项。

\large\textsf{1.4 }\textbf{帧环境内的其他操作} \text{1.4.1 更改环境}

上面(1.1)中提到,不建议直接使用 theorem 等环境,但如何利用好呢?我们有个解决方案。

我们可以在以上环境的基础上进行更改,在导言区键入以下代码:

\newtheorem{euler}[theorem]{欧拉定理}

其中 [theorem] 是可选选项。

接下来我们在帧环境内输入:

\begin{euler}

如果正整数 $n$ 和整数 $a$ 互质,那么就有

\[
a^{\varphi(n)}\equiv1\pmod n
\]

\end{euler}

效果:

\text{1.4.2 页面分栏}

columns 环境中调用 column 环境,用法同普通文档。

\begin{columns}

    \begin{column}{.5\linewidth}

    \end{column}

    \begin{column}{.5\linewidth}

    \end{column}

\end{columns}

这个示例中,把整个页面分成了左右等宽的两列。

\text{1.4.3 插入参考文献}

使用如下代码:

\begin{thebibliography}{1}
    \bibitem{书籍 A}[Sept, 2022]
    CSP\_Sept.
    \newblock 一本好书。
    \newblock \emph{Hanx}, 2022.
\end{thebibliography}

注意到环境内的 \texttt{\{\}} 可以乱填,也可以不填,但不能删除。

在调用该文献时使用命令 \cite{}\texttt{\{\}} 中填书名。

我们同样可以改变参考文献前的图标种类,考虑加入如下代码:

\begin{frame}
    \begin{thebibliography}{}
        \begin{columns}
        \begin{column}{.5\linewidth}
            \beamertemplatebookbibitems\bibitem[Sept, 2022]{Sept2022}
            Sept.
            \newblock {\em beamer 教程}.
            \newblock 这是一个{\textbf{书籍}}图标.
            \beamertemplatearticlebibitems\bibitem[Sept, 2022]{Sept2022}
            Sept.
            \newblock {\em beamer 教程}.
            \newblock 这是一个{\textbf{论文}}图标.
            \beamertemplatetextbibitems\bibitem[Sept, 2022]{Sept2022}
            Sept.
            \newblock {\em beamer 教程}.
            \newblock 这是一个{\textbf{引文}}图标.
        \end{column}
        \begin{column}{.5\linewidth}
            \beamertemplatearrowbibitems\bibitem[Sept, 2022]{Sept2022}
            Sept.
            \newblock {\em beamer 教程}.
            \newblock 这是一个{\textbf{三角形}}图标.
            \beamertemplateonlinebibitems\bibitem[Sept, 2022]{Sept2022}
            Sept.
            \newblock {\em beamer 教程}.
            \newblock 这是一个{\textbf{球体}}图标.
            \end{column}
        \end{columns}
    \end{thebibliography}
\end{frame}

效果如下图:

请注意 \bibitem 前的各种命令及其作用效果,同时注意到我们应用了 14.2 中的页面分栏功能。

同时请读者注意 \beamertemplatearrowbibitems 命令前置的内容与名称的含义。

\text{1.4.4 插入代码}

在帧环境中开启 [fragile] 选项,即可使用 lstlistingverbatim 环境进行代码插入。

我们也可以使用 \alert 命令,搭配分成规格,进行多次显示并分别高亮,不过此时需要 semiverbatim 环境。

\begin{semiverbatim}

namespace Sept{
    \alert<3->{int plus(int a, int b)}\{
        return a + b;
    \}
    int a, b;
\}

\end{semiverbatim}

在上面这份示例中,plus 函数一行在第三张幻灯片时被显示为亮红色。

\text{1.4.5 更改字体}

在上面我们介绍了 \setfonttheme 命令美化公式字体,此外我们可以使用 \setbeamercolor 命令设置其他 beamer 字体。

语法如下:\backslash\texttt{setbeamerfont\{}⟨beamer\textit-font\ name⟩\texttt{\}\{}⟨\text{future}⟩\texttt\}

其中 future 有如下类型:

调用 beamer 字体语法:\backslash\texttt{usebeamerfont}\{⟨beamer\textit-font\ name⟩\texttt\}

\text{1.4.6 编辑讲义} \text{\textit{1.4.6.1 论文模式}}

有时我们需要把讲义分发给读者或自己打印,此时我们需要普通的文档。但我们又懒得重新写文档,此时可以使用如下方法:

这样我们就可以得到一份我们非常熟悉的普通文档。

\text{\textit{1.4.6.2 讲义模式}}

并不十分推荐这种方法。

我们把 \documentclass 的方括号里的内容改为 handout。由于我们需要打印,所以需要在导言区插入如下代码:

\usepackage{pgfpages}
\pgfpagesuselayout{2 on 1}[a4paper, border shrink=5mm]

这样就会在一个页面里显示 2 张幻灯片,也可以用 \texttt{4 on 1} 替换 \texttt{2 on 1},当然此时需要调整纸张类型,例如改为 letterpaper 类型。

\text{1.4.7 超链接}

我们考虑如下超链接添加方式(在 article 环境下注意调用 hyperref 宏包):

注:hyperref 宏包内的「按钮」功能同样值得研究,请读者自行查找资料学习。 ___ 以上便是 0~1 的全部内容,考虑到后面内容较为深入且前面部分已经涉及到了大部分常用内容,故不展开讲解下面的内容,完整版敬请期待。 $\large\textbf{X }\textsf{参考文献}
  1. BEAMER 用户手册 原版 ver 3.65
  2. BEAMER 用户手册 中译版 V3.24
  3. [洛谷日报#229] 用 beamer 制作精美的演示文稿 - StudyingFather