Beamer-LaTeX学习(教程批注版)【1】
该文档总体由beamer-latex的教程而来,由耳东小白以自身学习路径整理。因其中要点基本按照教程的顺序和结构整理,故而不能称之为完全原创,但也不是翻译,更不是抄袭,是个人自学笔记和批注,其中添加了小白个人的理解和整合,较之原英文教程多出些适用中文编辑的内容。CSDN只有原创和翻译的投稿选项,这里不是翻译,因此投稿投了原创。如果读者对此特别介意,请省流绕行,自行查看英文原版教程,特此说明。
1 中文环境、标题页和最小ppt
首先我们需要指定编译器为xeLaTeX,这是通过头部的注释来完成的。
% !TEX program = xelatex
然后导入beamer类,即为
\documentclass[aspectratio=169]{beamer}
注意中间参数设置aspectratio为169,表示页面比例是16比9。
设置页面主题和颜色主题:
\usetheme{AnnArbor}
\usecolortheme{crane}
接下来需要设置中文环境,否则输入中文时可能会导致编译不通过。
\usepackage{fontspec}
\usepackage{xeCJK}\setmainfont{AlibabaPuHuiTi-3-55-Regular.ttf}
\setCJKmainfont{AlibabaPuHuiTi-3-55-Regular.ttf}
\setsansfont{Arial}
\setmonofont{Consolas}
\usepackage{fontspec}引入的宏包为字体控制,\usepackage{xeCJK}引入的xeCJK宏包支持中文输入。
下面是一些第三方字体设置:
\setmainfont设置的是主字体,注意,在C:\Windows\Fonts\下可以查到可用的第三方字体。例如本小白就在这里设置了AlibabaPuHuiTi-3-55-Regular.ttf即为阿里巴巴普惠体的常规粗度。(关于第三方字体的设置,请参看小白的另一篇博客)
下面设置标题、作者和时间
\title{耳东小白的beamer学习测试}
\author{耳东小白}
\date{\today}\begin{document}\begin{frame}\titlepage
\end{frame}\begin{frame}This is your first presentation!
\end{frame}\end{document}
其中,\title设置标题,\author设置作者,\date设置当前日期,注意\date不要拼写成\data。
总体,上述成为一个支持中文的最小ppt结构,我们把整体文件整理一下:
% !TEX program = xelatex\documentclass[aspectratio=169]{beamer}
\usetheme{AnnArbor}
\usecolortheme{crane}
\usepackage{fontspec}
\usepackage{xeCJK}\setmainfont{AlibabaPuHuiTi-3-55-Regular.ttf}
\setCJKmainfont{AlibabaPuHuiTi-3-55-Regular.ttf}
\setsansfont{Arial}
\setmonofont{Consolas}\title{耳东小白的beamer学习测试}
\author{耳东小白}
\date{\today}\begin{document}\begin{frame}\titlepage
\end{frame}\begin{frame}This is your first presentation!
\end{frame}\end{document}
效果图如下所示:

2 副标题、多作者、机构名
$$刚刚这个基础版的ppt肯定看上去还很简陋,那么我们来丰富一下它。首先来看一下副标题。
\title{耳东小白的beamer学习测试}
\subtitle{哆哆嗦嗦的历险之旅}
\author{耳东小白}
\date{\today}
即在主标题下,添加\subtitle{}来填写副标题。
假如有多个作者怎么办呢?
\title{耳东小白的beamer学习测试}
\subtitle{哆哆嗦嗦的历险之旅}
\author{耳东小白 \and 耳东大白}
\date{\today}
那就在\author中用\and来区分不同的作者。
如何插入作者的单位名称呢?
\title{耳东小白的beamer学习测试}
\subtitle{哆哆嗦嗦的历险之旅}
\author{耳东小白\inst{1} \and 耳东大白\inst{2}}
\institute{\inst{1} 耳东小白工作室 \and \inst{2} 耳东大白工作室}
\date{\today}
使用\institute来编辑作者的机构名称,如果有多个单位,则使用\inst{#}来指定,在\author中相应的人名后同样以\inst{#}来指定对应的单位名称。
以上这段修改的效果如下:

3 底部脚注设置
注意到页面底部分左、中、右三个部分。这些脚注可以进行设置。
\title[中间脚注]{耳东小白的beamer学习测试}
\subtitle{哆哆嗦嗦的历险之旅}
\author[左侧脚注]{耳东小白\inst{1} \and 耳东大白\inst{2}}
\institute[]{\inst{1} 耳东小白工作室 \and \inst{2} 耳东大白工作室}
\date[右侧脚注]{\today}
\title[]{}中间框中可以填写出底部中央的脚注,\author[]{}中间框内可以填写出底部左侧的脚注,date[]{}中间框内可以填写出底部右侧的脚注。
注意到\institute[]{}中间框留空,否则左侧底框还是会把机构名填进去。
同理,如果希望对应位置的脚注为空,只需要在\title、\author、\date对应的中框留空即可。
上述代码的效果如下图所示:

4 Logo添加到所有页面
这里的Logo有点像是powerpoint中的母版了,可以做到“一次插入,页页见效”。
\logo{\includegraphics[width=1cm]{./pics/logo.png}
}
注意插入这段代码的位置,是在\date命令之后。宽度设置为1cm,大括号中引用的是logo图像的地址。
插入的位置都在页面的右下角。

5 Logo只添加到封面页
那么如何只添加logo到封面页?只需要把上面的\logo命令替换成\titlegraphic即可:
\titlegraphic{\includegraphics[width=2cm]{./pics/logo.png}
}
这样只有封面页有添加logo图像,且logo会出现在封面正中。

6 封面插入多个logo
还是刚刚的\titlegraphic命令,利用\hspace命令对多个\includegraphics进行等距离排列(以页面底部正中为中心向两边排列)。
\titlegraphic{\includegraphics[width=2cm]{./pics/logo.png}\hspace{2cm}\includegraphics[width=2cm]{./pics/logo.png}\hspace{2cm}\includegraphics[width=2cm]{./pics/logo.png}
}
这样的结果就会变成:

7 指定位置放置logo
如何在页面中指定的位置放置logo图像呢?这个地方要用到一个图像绘制库tikz。
% !TEX program = xelatex\documentclass[aspectratio=169]{beamer}
\usetheme{AnnArbor}
\usecolortheme{crane}
\usepackage{fontspec}
\usepackage{xeCJK}
\usepackage{tikz}
\setmainfont{AlibabaPuHuiTi-3-55-Regular.ttf}
\setCJKmainfont{AlibabaPuHuiTi-3-55-Regular.ttf}
\setsansfont{Arial}
\setmonofont{Consolas}\title[中间脚注]{耳东小白的beamer学习测试}
\subtitle{哆哆嗦嗦的历险之旅}
\author[左侧脚注]{耳东小白\inst{1} \and 耳东大白\inst{2}}
\institute[]{\inst{1} 耳东小白工作室 \and \inst{2} 耳东大白工作室}
\date[右侧脚注]{\today}
\titlegraphic{\begin{tikzpicture}[overlay, remember picture]\node[left=0.2cm] at (current page.15){\includegraphics[width = 1cm]{./pics/Logo.png}};\end{tikzpicture}
}\begin{document}\begin{frame}\titlepage
\end{frame}\begin{frame}This is your first presentation!
\end{frame}\end{document}

这里需要加载tikz宏包即\usepackage{tikz}。
然后在页面上指定一个位置即:
\node[left=0.2cm] at (current page.15)
根据tikz库的使用方法,该\node的位置如下图指定:

即基准点为页面的中心点,将水平方向轴以基准点为中心,逆时针旋转15度所得到的位置,再向左偏移0.2cm作为所插入logo图像的起始位置。
关于tikz库的使用,小白发现这是一个比beamer更大的坑,所以这里不作展开。
8 插入目录/要点页
下面我们来看看如何插入目录页。
这个地方要使用到的命令是\tableofcontents。
与office一样,首先你得设置“大纲”,才能有自动生成的目录页。
\section{现存方法}\subsection{方法1}\subsection{方法2}\subsection{方法3}
\section{对比研究}
\section*{参考文献}
小白设置的大纲如上所示。
注意,我们可以使用\section或\subsection来写一级标题和二级标题。
当你希望它不在目录中显示时,则使用\section*或\subsection*命令,也即在命令后加一个星号。
然后,需要插入一个目录页:
\begin{frame}{目录}\tableofcontents
\end{frame}
这样就是一个平平无奇固定格式的目录页了

注意这个目录页里面没有刚刚大纲里的最后一项,“参考文献”。因为它被星号隐藏了。
那么如果我们希望只列出一级标题怎么办?方法是使用hideallsubsections参数:
\begin{frame}{目录2}\tableofcontents[hideallsubsections]
\end{frame}

如果我们希望在每一个章节前都设置一个目录,并且强调当前目录所在的位置,则可以使用currentsection参数选项。
\AtBeginSection[]
{
\begin{frame}{目录3}\tableofcontents[currentsection]
\end{frame}
}
AtBeginSection命令则指定在每一个章节前显示当前的目录。



如果想要形成和powerpoint类似的逐条显示的效果,可以使用pausesections选项。
\begin{frame}{目录4}\tableofcontents[pausesections]
\end{frame}



实际上它就是把三页的效果分别保存下来,逐个播放的时候就形成了动画效果。
目录页这部分的总代码归纳如下:
% !TEX program = xelatex\documentclass[aspectratio=169]{beamer}
\usetheme{AnnArbor}
\usecolortheme{crane}
\usepackage{fontspec}
\usepackage{xeCJK}
\usepackage{tikz}
\setmainfont{AlibabaPuHuiTi-3-55-Regular.ttf}
\setCJKmainfont{AlibabaPuHuiTi-3-55-Regular.ttf}
\setsansfont{Arial}
\setmonofont{Consolas}\title[中间脚注]{耳东小白的beamer学习测试}
\subtitle{哆哆嗦嗦的历险之旅}
\author[左侧脚注]{耳东小白\inst{1} \and 耳东大白\inst{2}}
\institute[]{\inst{1} 耳东小白工作室 \and \inst{2} 耳东大白工作室}
\date[右侧脚注]{\today}
\titlegraphic{\begin{tikzpicture}[overlay, remember picture]\node[left=0.2cm] at (current page.15){\includegraphics[width = 1cm]{./pics/Logo.png}};\end{tikzpicture}
}\begin{document}\begin{frame}\titlepage
\end{frame}\begin{frame}{目录}\tableofcontents
\end{frame}\begin{frame}{目录2}\tableofcontents[hideallsubsections]
\end{frame}
\AtBeginSection[]
{
\begin{frame}{目录3}\tableofcontents[currentsection]
\end{frame}
}
\section{问题描述}
\begin{frame}这是一个问题!
\end{frame}
\section{现存方法}\subsection{方法1}\subsection{方法2}\subsection{方法3}
\section{对比研究}
\section*{参考文献}\begin{frame}{目录4}\tableofcontents[pausesections]
\end{frame}\end{document}
小结
这是教程的初学部分,包括如何添加封面、标题、作者、logo、如何添加目录等内容。
干货还是不少的,上手也较容易。
教程的接下来部分将会讲到更深入的内容,值得期待。
相关文章:
Beamer-LaTeX学习(教程批注版)【1】
该文档总体由beamer-latex的教程而来,由耳东小白以自身学习路径整理。因其中要点基本按照教程的顺序和结构整理,故而不能称之为完全原创,但也不是翻译,更不是抄袭,是个人自学笔记和批注,其中添加了小白个人…...
IIS设置IP+端口号外网无法访问的解决方案
在IIS将站点设置为IP端口访问,假设端口为8080,设好后,服务器上可以访问,外网无法访问。 通常是端口8080没有加入【入站规则】的缘故,将8080端口加入【入站规则】即可,操作如下: 一、ctrlr 输入 …...
Markdown段落的空行缩进用法
Markdown段落的空行缩进用法。 前言语法详解●正文●段落●不分段换行●缩进 使用场景及实例小结其他文章快来试试吧🥰 Markdown段落,分割线的用法 👈点击这里也可查看 前言 段落由一句或多句连续的文本组成,通过一个或多个空行…...
[paddle] 非线性拟合问题的训练
利用paddlepaddle建立神经网络,模拟有限个数据的非线性拟合 本文仍然考虑 f ( x ) sin ( x ) x f(x)\frac{\sin(x)}{x} f(x)xsin(x) 函数在区间 [-10,10] 上固定数据的拟合。 import paddle import paddle.nn as nn import numpy as np import matplotlib.…...
每日一学——监控工具(Grafana)
2.2 Grafana 2.2.1 数据源配置 嘿,各位小伙伴们!既然我们已经有了Prometheus这位超级英雄来帮我们收集数据,那么接下来我们就需要一位艺术家来把这些枯燥的数据变成美丽的图画。这就是Grafana出场的时候了!Grafana是一款非常流行…...
FreshTomato 路由器固件常见配置以及踩坑记录
本文首发于只抄博客,欢迎点击原文链接了解更多内容。 前言 在上一篇文章《网件 R6400 梅林固件恢复官方固件后刷入 FreshTomato》中,我将网件 R6400 刷入了 FreshTomato 固件,目前已经使用了大半个月了,稳定性比起 380.70_0-X7.9…...
ubuntu 使用samba与windows共享文件[注意权限配置]
在Ubuntu上使用Samba服务与Windows系统共享文件,需要正确配置Samba服务以及相应的权限。以下是详细的步骤: 安装Samba 首先,确保你的Ubuntu系统上安装了Samba服务。 sudo apt update sudo apt install samba配置Samba 安装完成后,…...
使用 httputils + chronicle-bytes 实现金融级 java rpc
1、认识 chronicle-bytes Chronicle-Bytes 是一个类似于 Java NIO 的 ByteBuffer 的高效字节操作库,但它提供了许多扩展功能。这个项目由 OpenHFT 开发并维护,旨在提供高性能、低延迟的数据处理解决方案。Chronicle-Bytes 设计用于高频率交易和其他对性…...
软件工程期末复习(一)
题目复习 单选题 软件产品的核心特性是什么? A. 物质性 B. 逻辑性 C. 可复制性 D. 消耗性 正确答案:B 单选题 在软件开发过程中,哪个环节最接近于传统制造业中的“生产”过程? A. 需求分析 B. 编码 C. 测试 D. 研制(…...
element ui 组件 时间选择器出现转换问题的解决办法
在使用时间选择器添加数据是会出现转换失败问题 vue中代码为: 解决办法: 在el-date-picker中添加 format 和 value-format...
报错:websocket注入为null,已解决!
错误截图 原因分析: WebSocket 在 Spring 框架中的注入问题是由其生命周期与 Spring 容器的作用域不一致引起的。spring管理的都是单例(singleton),和 websocket (多对象)相冲突。如果你的WebSocket 处理类…...
.e01, ..., .e0n的分卷压缩包怎么解压
用BandiZip,这些分卷压缩中还有一个.exe的文件,这个不是可执行文件,是一个解压缩的开头。 安装好bandiZip后,右键这个.exe文件 点击打开就是开始解压了: 最后解压后是这些。然后一个个再次解压....
四年前的计划,青涩但坚韧
回看四年前写的目标,做的计划,特别感慨,当时的我无法想到现在正在做的事情。 一个契机,群里有个朋友说在写五年规划,让我想到五年前刚毕业不久也写过类似的东西,当时写的是三年学习计划,那是202…...
【人工智能】人工智能与大模型
人工智能与大模型的结合正在深刻改变多个行业和领域的格局。 1. 人工智能 (AI) 人工智能指的是使计算机或机器具备模拟人类智能的能力,包括学习、推理、问题解决、自然语言处理、视觉感知等。AI的发展可以分为几个阶段: 弱人工智能 (Narrow AI)&#…...
小波与傅里叶变换在去噪效果上的对比分析-附Matlab源程序
👨🎓 博主简介:博士研究生 🔬 超级学长:超级学长实验室(提供各种程序开发、实验复现与论文指导) 📧 个人邮箱:easy_optics126.com 🕮 目 录 摘要一、…...
Luma AI 简单几步生成视频
简单几步生成视频 登录我们的 AceDataPlatform 网站,按照下图所示即可生成高质量的视频,同时,我们也提供了简单易用的 API 方便集成调用,可以查看 Luma API了解详情 技术介绍 我们使用了 Luma 的技术,实现了上面的图…...
AfuseKt1.4.4 | 刮削视频播放器,支持阿里云盘和自动海报墙
AfuseKt是一款功能强大的安卓端在线视频播放器,广泛兼容多种平台如阿里云盘、Alist、WebDAV、Emby、Jellyfin等,同时也支持本地存储视频文件的播放。其特色功能包括自动抓取影片信息生成海报墙展示,充分利用设备硬件进行高清视频流畅播放&…...
深入理解计算机中的补码、反码、原码
问题: 我们每天用的钟表,其实只有1~12这12个数字,但我们日常会说13点、17点之类的。 问:13点在钟表上哪个位置? 答:很简单嘛,1点的位置。 你不觉得奇怪吗,为啥13点会和1点在同一个位…...
Scratch教学作品 | 白水急流——急流勇进,挑战反应极限! ♂️
今天为大家推荐一款刺激又好玩的Scratch冒险作品——《白水急流》!由AgentFransidium制作,这款作品将带你体验惊险的急流救援任务,帮助那位“睡着的疯狂人”安全穿越湍急水域!想要挑战自己的反应极限?快来试试吧&#…...
Px4 V2.4.8飞控Mavlink命令控制说明
首先,可以使用两种方法连接飞控,使用虚拟机(LINUX)或使用地面站(QGC)连接。 在px4的代码文件位置打开命令终端,输入连接命令: ./Tools/mavlink_shell.py 在控制台使用help来获取所有…...
基于大模型的 UI 自动化系统
基于大模型的 UI 自动化系统 下面是一个完整的 Python 系统,利用大模型实现智能 UI 自动化,结合计算机视觉和自然语言处理技术,实现"看屏操作"的能力。 系统架构设计 #mermaid-svg-2gn2GRvh5WCP2ktF {font-family:"trebuchet ms",verdana,arial,sans-…...
使用分级同态加密防御梯度泄漏
抽象 联邦学习 (FL) 支持跨分布式客户端进行协作模型训练,而无需共享原始数据,这使其成为在互联和自动驾驶汽车 (CAV) 等领域保护隐私的机器学习的一种很有前途的方法。然而,最近的研究表明&…...
JVM垃圾回收机制全解析
Java虚拟机(JVM)中的垃圾收集器(Garbage Collector,简称GC)是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象,从而释放内存空间,避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...
测试markdown--肇兴
day1: 1、去程:7:04 --11:32高铁 高铁右转上售票大厅2楼,穿过候车厅下一楼,上大巴车 ¥10/人 **2、到达:**12点多到达寨子,买门票,美团/抖音:¥78人 3、中饭&a…...
c++ 面试题(1)-----深度优先搜索(DFS)实现
操作系统:ubuntu22.04 IDE:Visual Studio Code 编程语言:C11 题目描述 地上有一个 m 行 n 列的方格,从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子,但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...
视频字幕质量评估的大规模细粒度基准
大家读完觉得有帮助记得关注和点赞!!! 摘要 视频字幕在文本到视频生成任务中起着至关重要的作用,因为它们的质量直接影响所生成视频的语义连贯性和视觉保真度。尽管大型视觉-语言模型(VLMs)在字幕生成方面…...
零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)
本期内容并不是很难,相信大家会学的很愉快,当然对于有后端基础的朋友来说,本期内容更加容易了解,当然没有基础的也别担心,本期内容会详细解释有关内容 本期用到的软件:yakit(因为经过之前好多期…...
Docker 本地安装 mysql 数据库
Docker: Accelerated Container Application Development 下载对应操作系统版本的 docker ;并安装。 基础操作不再赘述。 打开 macOS 终端,开始 docker 安装mysql之旅 第一步 docker search mysql 》〉docker search mysql NAME DE…...
【Android】Android 开发 ADB 常用指令
查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...
关于uniapp展示PDF的解决方案
在 UniApp 的 H5 环境中使用 pdf-vue3 组件可以实现完整的 PDF 预览功能。以下是详细实现步骤和注意事项: 一、安装依赖 安装 pdf-vue3 和 PDF.js 核心库: npm install pdf-vue3 pdfjs-dist二、基本使用示例 <template><view class"con…...
