当前位置: 首页 > news >正文

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 安装完成后&#xff0c…...

使用 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. 研制&#xff08…...

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来获取所有…...

pam_env.so模块配置解析

在PAM(Pluggable Authentication Modules)配置中, /etc/pam.d/su 文件相关配置含义如下: 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块,负责验证用户身份&am…...

质量体系的重要

质量体系是为确保产品、服务或过程质量满足规定要求,由相互关联的要素构成的有机整体。其核心内容可归纳为以下五个方面: 🏛️ 一、组织架构与职责 质量体系明确组织内各部门、岗位的职责与权限,形成层级清晰的管理网络&#xf…...

对WWDC 2025 Keynote 内容的预测

借助我们以往对苹果公司发展路径的深入研究经验,以及大语言模型的分析能力,我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际,我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测,聊作存档。等到明…...

【决胜公务员考试】求职OMG——见面课测验1

2025最新版!!!6.8截至答题,大家注意呀! 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:( B ) A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...

全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比

目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...

关键领域软件测试的突围之路:如何破解安全与效率的平衡难题

在数字化浪潮席卷全球的今天,软件系统已成为国家关键领域的核心战斗力。不同于普通商业软件,这些承载着国家安全使命的软件系统面临着前所未有的质量挑战——如何在确保绝对安全的前提下,实现高效测试与快速迭代?这一命题正考验着…...

Redis的发布订阅模式与专业的 MQ(如 Kafka, RabbitMQ)相比,优缺点是什么?适用于哪些场景?

Redis 的发布订阅(Pub/Sub)模式与专业的 MQ(Message Queue)如 Kafka、RabbitMQ 进行比较,核心的权衡点在于:简单与速度 vs. 可靠与功能。 下面我们详细展开对比。 Redis Pub/Sub 的核心特点 它是一个发后…...

MySQL 8.0 事务全面讲解

以下是一个结合两次回答的 MySQL 8.0 事务全面讲解,涵盖了事务的核心概念、操作示例、失败回滚、隔离级别、事务性 DDL 和 XA 事务等内容,并修正了查看隔离级别的命令。 MySQL 8.0 事务全面讲解 一、事务的核心概念(ACID) 事务是…...

Git 3天2K星标:Datawhale 的 Happy-LLM 项目介绍(附教程)

引言 在人工智能飞速发展的今天,大语言模型(Large Language Models, LLMs)已成为技术领域的焦点。从智能写作到代码生成,LLM 的应用场景不断扩展,深刻改变了我们的工作和生活方式。然而,理解这些模型的内部…...

Golang——7、包与接口详解

包与接口详解 1、Golang包详解1.1、Golang中包的定义和介绍1.2、Golang包管理工具go mod1.3、Golang中自定义包1.4、Golang中使用第三包1.5、init函数 2、接口详解2.1、接口的定义2.2、空接口2.3、类型断言2.4、结构体值接收者和指针接收者实现接口的区别2.5、一个结构体实现多…...