
做PPT这件事我大概被问过一百次“怎么不用WPS”。每次我都解释不是不用是数学公式和代码块在PowerPoint里真的太丑了。直到后来把组里的实验报告、论文答辩、组会汇报全部切到LaTeX Beamer之后这个事儿才算真正消停。Beamer做出来的幻灯片不是好看不好看的问题是它天然就带着一种“学术正确”的秩序感结构分明、公式优雅、代码高亮、图表统一版式千篇一律反倒是优点观众注意力不会被花里胡哨的动画拉走。这篇教程不聊怎么装TeXLive不背命令字典就讲一件事选对主题、调对配色再把Beamer打磨成你真正愿意长期用的PPT模板。期间会顺便补一些我自己踩过的坑比如中文乱码、主题色不生效、目录页丑到爆这类问题都会给到能直接抄的解决方案。适合刚接触LaTeX的学生、需要做技术汇报的工程师以及所有不想再为PPT排版浪费时间的效率党。1. Beamer主题体系先选骨架再定气质很多人第一次打开Beamer文档看到\usetheme{Madrid}这种命令都不知道去哪儿查更不知道主题和配色其实是两套独立控制的系统。这其实是Beamer设计得比较聪明的地方它把视觉样式拆成了主题theme、配色color theme、字体主题font theme和内部主题inner theme四层。你完全可以换配色但不动结构只改字体不影响布局调整自由度比PPT模板高不少。1.1 几个主流主题的实际观感主题名直接决定了幻灯片的框架先记住几个最常用的主题视觉特征适合场景Madrid顶部导航条底部页码标题栏中规中矩学术报告、毕业论文答辩Warsaw底部有类似标签页的导航按钮结构感最强教学课件、方案评审Frankfurt顶部只有细窄的进度条版面干净数据汇报、技术分享Copenhagen顶部和底部都有导航信息完整但稍显拥挤大型会议、长报告metropolis扁平现代化无多余装饰标题字号大设计类、极客风技术演讲以我自己的使用感受来说如果没有特殊审美需求Madrid是最稳的选择。它的顶部导航条能一直显示当前章节的位置对听众来说是清晰的进度提示对演讲者来说也方便控制节奏。我用Madrid做过三次毕业答辩的PPT没出过差错配合深蓝色配色屏幕投影效果也稳。如果你做的是偏内部的技术分享Frankfurt的干净版面会更耐看。Metropolis是这几年的新宠扁平无衬线的风格非常上镜但它依赖minted做代码高亮配置稍复杂如果是新手入门建议先玩熟Madrid再迁移。1.2 为什么换主题不等于换PPTBeamer的主题颗粒度在你改起来之后才会体会到。\usetheme{AnnArbor}这类主题还自带配套的配色主题但你完全可以混搭比如用\usetheme{Madrid}搭配\usecolortheme{whale}效果就比默认的Madrid观感更沉稳。这个组合方式对老手来说是基本操作新手很容易忽略只会整套主题一起换结果怎么换都觉得不满意——其实问题往往出在配色上而不是结构上。另外要提一句aspectratio169这个类选项。Beamer默认是4:3比例现在投影仪几乎全是16:9不设置的话两边会有大面积黑边。这个参数写在\documentclass[aspectratio169]{beamer}里很多教程都不提但你迟早会遇到。我见过有人用默认4:3做完整套PPT才发现比例不对重新排版的心情你体会一下。2. 配色才是Beamer的灵魂弄懂结构色Beamer的配色机制其实不复杂核心是理解一个概念大部分控件都从structure这个颜色派生。标题、导航条、列表符号、按钮、超链接这些东西默认都跟structure走。所以想调主题色不需要去改几十个颜色变量改掉structure这个根就够了。2.1 三种配色方式按需选方式一直接切换现成配色主题Beamer自带了一批配色主题whale深蓝、dolphin浅蓝、seahorse青灰、crane黄黑。最简单的方式就是\usetheme{Madrid} \usecolortheme{whale}这种方式适合不想折腾、只要一个正常配色的人。组合使用比默认效果确实好不少但如果你想用上自己团队的品牌色就得看下面两种。方式二用\definecolor定义自定义色\definecolor{myblue}{RGB}{28, 63, 148} \setbeamercolor{structure}{fgmyblue}这里fg是前景色RGB三个值是0到255的整数取色可以用系统取色器或者直接从品牌VI手册里抄。这种方式适合想快速换色的人几行代码颜色就全局生效了。方式三整体设计一套配色方案如果想做得更精细可以同时定义前景色、背景色、强调色然后把主要组件都覆盖一遍。我自己的毕设模板就是这么干的\definecolor{primarycolor}{RGB}{0, 73, 114} \definecolor{accentcolor}{RGB}{237, 125, 49} \definecolor{textcolor}{RGB}{42, 42, 42} \definecolor{lightbg}{RGB}{240, 244, 248} \setbeamercolor{structure}{fgprimarycolor} \setbeamercolor{frametitle}{fgwhite, bgprimarycolor} \setbeamercolor{block title}{fgwhite, bgprimarycolor} \setbeamercolor{block body}{fgtextcolor, bglightbg} \setbeamercolor{itemize item}{fgprimarycolor} \setbeamercolor{itemize subitem}{fgaccentcolor}这套配置的效果是框架标题变得非常突出顶部色条是深蓝底白字block标题也是同色系深蓝正文列表符号则用了强调橙色。整个幻灯片一眼看过去就能感觉到“这是有设计过的”而不是默认模板生硬换了个色。2.2 自定义配色最容易踩的坑调试自定义配色时90%的问题出在这几个点上第一改了structure但frametitle没跟着变。因为框架标题的颜色改到frametitle这一层之后它就不再依赖structure了。要单独再设置一遍\setbeamercolor{frametitle}{...}。很多人以为改完structure就万事大吉结果编译出来标题还是原来的颜色开始怀疑人生。第二正文文字颜色改了但公式符号没变。行内公式里的字符走的是math text颜色通常也要再设一遍。我一般建议别随便改正文文字颜色让默认的近黑色保持只调structure和block系列的颜色风格突出且不容易翻车。第三对比度不够。把文字设成浅灰色配白底看起来是高级但投影出来根本看不清。做幻灯片不是做海报对比度永远优先于美观。深色标题配白字、正文黑字配白底是最稳妥的组合。3. 从零搭一套可复用的Beamer模板光说不练没用这节直接给出一套可复用的完整模板顺便讲清楚为什么这么搭。这个模板我一直在用兼顾了学术感和效率PPT里所有东西都是可配置的不是写死的一套。3.1 模板结构拆解保底思路是这样的主文件只负责编译顺序和全局选项把主题、配色、宏包拆到单独的文件里页面的内容再用\input引进来。这样目录清晰改起来也不至于牵一发动全身。我的目录结构长这样beamer-template/ ├── main.tex ├── settings/ │ ├── theme.tex │ └── packages.tex ├── sections/ │ ├── intro.tex │ ├── method.tex │ └── conclusion.tex └── figures/ └── diagram.pngmain.tex的核心内容是这样的\documentclass[aspectratio169]{beamer} \input{settings/packages} \input{settings/theme} \title{基于XXXX的研究与实现} \author{张三} \institute{理工大学 信息工程学院} \date{\today} \begin{document} \begin{frame}[plain] \titlepage \end{frame} \input{sections/intro} \input{sections/method} \input{sections/conclusion} \end{document}3.2 页面内块元素的使用技巧Beamer里有三种非常实用的块环境比PPT的文本框好用太多因为它们自带语义配色跟整体主题一致\begin{block}{研究目标} 这是普通块适合放核心观点。 \end{block} \begin{alertblock}{风险提示} 这是警示块通常用暖色适合标注注意事项、风险。 \end{alertblock} \begin{exampleblock}{实验结果} 这是示例块通常用绿色系适合放实验结果。 \end{exampleblock}我自己的习惯是每页最多放一个alertblock用来放那个“你们必须记住的点”。因为人眼对特殊颜色很敏感整页都是强调色的话就没人记得住重点了。4. 中文字体与公式排版国内用户绕不开的坎LaTeX的中文支持是老生常谈但Beamer里的坑比普通article文档多因为Beamer本身没有处理中文字体的机制必须靠自己配置编译方式和字体。这也是很多人装完TeXLive之后用默认编译器编译Beamer文档只有英文显示中文全部消失或乱码的原因。4.1 用XeLaTeX编译解决问题现在最省心的中文方案就是用XeLaTeX编译器 xeCJK宏包。在main.tex里加上\usepackage{xeCJK} \setCJKmainfont{SimSun} \setCJKsansfont{Microsoft YaHei} \setCJKmonofont{SimHei}然后务必在编辑器里把编译方式切成XeLaTeX不是默认的pdfLaTeX。VSCodeLaTeX Workshop的话在settings.json里面把recipe改成xelatex即可{ latex-workshop.latex.recipes: [ { name: xelatex, tools: [xelatex] } ], latex-workshop.latex.tools: [ { name: xelatex, command: xelatex, args: [-synctex1, -interactionnonstopmode, -file-line-error, %DOC%] } ] }注意如果你用的是ctex宏包\usepackage[UTF8]{ctex}而不是手动配置xeCJK字体设置会自动处理一部分但遇到Beamer的sans字体时还是有概率出现顺滑度问题。用xeCJK手动指定字体最稳控制力也最强。字体选择上中文字体推荐Microsoft YaHei用于幻灯片无衬线风格和Beamer的几何感搭配正文论文模板用宋体没问题但投影出来太细了。Linux/macOS系统换成Noto Sans CJK SC或PingFang SC即可。4.2 数学公式在Beamer里的呈现Beamer最大的优势就是数学公式做技术汇报时PPT里的公式要么贴图要么用“公式编辑器”各种歪七扭八Beamer里直接用LaTeX语法字体、对齐、编号全都统一。行内公式用美元符号包裹比如$Emc^2$独立成行的公式用\[ ... \]或者equation环境。多行公式对齐更是刚需\begin{frame}{模型推导} 设损失函数为 \begin{equation} L(\theta) \frac{1}{n}\sum_{i1}^{n} \| f(x_i;\theta) - y_i \|^2 \end{equation} 其中$\theta$为网络参数$n$为样本数量。对$\theta$求梯度可得 \begin{equation} \frac{\partial L}{\partial \theta} \frac{2}{n}\sum_{i1}^{n} (f(x_i;\theta) - y_i) \cdot \nabla_\theta f(x_i;\theta) \end{equation} \end{frame}用align环境还能实现多行公式等号对齐\begin{align} a b c \\ d e f \end{align}公式的字体无须额外配置默认的Computer Modern就已经很学术了。如果嫌默认字体太细在导言区加一句\usefonttheme[onlymath]{serif}就能让数学部分改用衬线体看投影效果比默认无衬线舒服。4.3 生成目录与分节结构Beamer的目录页和PowerPoint的目录最大的区别是它能实时高亮当前进度。原理很简单先声明章节结构再用\tableofcontents生成目录\section{研究背景} \section{方法设计} \section{实验结果} \begin{frame}{目录} \tableofcontents[currentsection] \end{frame}这样每节的起始页放一个当前节的目录页当前章节会被高亮听众能随时看到你在整场报告的哪个位置。这个功能在长汇报里很加分观众不会迷路。我通常在每个\section开头循环插入目录页用\AtBeginSection[]自动完成\AtBeginSection[]{ \begin{frame}{目录} \tableofcontents[currentsection] \end{frame} }这样就不用手动在每个section前面写目录帧了省力且不易出错。5. 实操过程从环境配置到成品PDF理论讲再多还是要落实到手。这节完整走一遍从环境配置到生成成品PDF的流程按步骤抄作业就行。5.1 本地环境搭建VSCode TeXLive我推荐VSCode TeXLive的组合。TeXLive是跨平台的发行版Windows、macOS、Linux通吃装完自带xelatex、pdflatex等编译器。装的时候建议选择完整安装别为了省空间用basic版否则很多宏包缺失编译报错只给一句“file not found”排查起来很痛苦。VSCode里装好LaTeX Workshop扩展之后第一次编译建议先跑一个最小文档验证环境\documentclass{article} \begin{document} Hello, \LaTeX! \end{document}编译通过说明环境没问题再上Beamer否则分不清是环境问题还是模板问题。5.2 完整鲜明模板的编写与编译这里给一套我实际在用的模板尽量完整\documentclass[aspectratio169]{beamer} \usetheme{Madrid} \usecolortheme{whale} \usepackage{xeCJK} \setCJKmainfont{Microsoft YaHei} \setCJKsansfont{Microsoft YaHei} \definecolor{primarycolor}{RGB}{0, 73, 114} \definecolor{accentcolor}{RGB}{237, 125, 49} \setbeamercolor{structure}{fgprimarycolor} \setbeamercolor{frametitle}{fgwhite, bgprimarycolor} \title{基于XX的YY系统设计} \author{张三 \and 李四} \institute{某大学 信息工程学院} \date{\today} \begin{document} \begin{frame}[plain] \titlepage \end{frame} \section{项目背景} \begin{frame}{研究动机} \begin{itemize} \item 现有方案存在什么问题 \item 为什么需要新方法 \end{itemize} \end{frame} \section{核心方法} \begin{frame}{方法流程} \begin{enumerate} \item 数据预处理 \item 模型设计与训练 \item 效果评估 \end{enumerate} \end{frame} \section{实验验证} \begin{frame}{实验结果} \begin{exampleblock}{主要结论} 系统在测试集上达到预期效果。 \end{exampleblock} \end{frame} \begin{frame}[plain] \begin{center} \huge 谢谢 \end{center} \end{frame} \end{document}在VSCode里用xelatex编译得到PDF视觉是深蓝色系、结构是Madrid经典布局、中文正常显示。这套模板作为组会PPT、毕业答辩的基础模板完全够用。5.3 图片与表格的插入技巧Beamer插图和普通LaTeX一样用graphicx宏包但要注意不要依赖浮动体Beamer里没有浮动位置的概念直接用figure环境并且指定H或直接不用figure环境也能编译\begin{frame}{系统架构} \begin{center} \includegraphics[width0.85\textwidth]{figures/architecture.png} \end{center} \end{frame}宽度建议用\textwidth或\linewidth的相对单位不要在Beamer里写死绝对宽度。图片直接用PNG或PDF都行PDF矢量图放大会更清晰推荐绘图工具导出时优先输出PDF。表格的话常规tabular就够用但注意列宽和自动换行的问题。可以用tabularx宏包解决\usepackage{tabularx} \begin{frame}{性能对比} \begin{tabularx}{\textwidth}{|l|X|X|} \hline 方法 准确率 推理时间 \\ \hline A 96.2\% 30ms \\ B 97.8\% 28ms \\ \hline \end{tabularx} \end{frame}X列会自动分配剩余宽度文字多的时候自动换行不会把页面撑爆。6. 常见问题与排查技巧实录Beamer用的时间久了哪些问题经常出现我基本心里有数。整理一个速查表加几个典型问题的排查思路能帮你省很多折腾时间。6.1 编译报错与中文乱码速查表症状原因解决办法编译报错File xxx.sty not found宏包缺失安装完整版TeXLive或用tlmgr install xxx补装中文显示为空白或乱码编译器不是XeLaTeX切换编译器为xelatex中文乱码且是UTF-8编码源文件保存格式不对编辑器右下角把源文件存为UTF-8编译不报错但没生成PDF编译器停了在等待输入加-interactionnonstopmode参数参考文献无法编译缺少bibtex流程在recipe里加bibtex步骤主题色改了没反应组件不依赖structure单独\setbeamercolor覆盖6.2 几个折磨人的经典问题第一个是block标题文字颜色太浅。用了自定义配色之后block title如果默认白字但深色背景下正常一旦背景换成浅色就白字叠白底。办法是确保无论你怎么改都要把block title的背景色设置成深色保持白字可读。第二个是目录页每节都重复出现。这是\AtBeginSection[]的经典效果很多人嫌它烦但汇报时其实很有用。如果某个section的开始不想插图目录页可以在那个\section前面加\AtBeginSection[]{}临时关闭或者在不需要的section标题前加星号\section*{背景}跳过。第三个是Beamer编译比普通LaTeX慢很多。这是正常现象Beamer每页都在重复处理一些东西加上xeCJK字体渲染编译十几页花个几十秒是常态。节省时间的办法是用\includeonly{}只编译当前章节或者先写片段再合并。另外不要把整篇文档的内容堆在一个frame里一个frame内内容越多编译越慢。第四个是关于超链接跳转无效。Beamer默认会为目录项加超链接但要有两遍编译才能生成正确的跳转信息。第一次编译没生成.toc辅助文件第二次才稳定。所以遇到链接跳转失效别急着改代码先再编译一遍。第五个是beamer主题下的字体警靠。用默认字体渲染出来的中文在某些系统上会偏细尤其是Microsoft YaHei轻量级的时候。解决办法是替换中文字体为粗一点的版本或者给字体设置\setCJKmainfont[BoldFont{Microsoft YaHei Bold}]{Microsoft YaHei}让加粗生效。6.3 配色调试的独家心得最后分享一个我调配色时一直在用的技巧用系统取色器从优秀PPT里取色。比如在PowerPoint里打开一份设计得很专业的演示文稿用取色器吸取它的标题色、强调色、背景色记录RGB值然后填到Beamer的颜色配置里。这样能快速获得一套经过设计师验证的和谐配色比自己瞎调RGB节省大量时间。我个人常用的三套配色方案方案主色强调色使用场景学术深蓝0, 73, 114237, 125, 49论文答辩、学术会议莫兰迪绿93, 138, 120217, 158, 103工作汇报、内部评审极简灰黑64, 64, 64210, 77, 87开源项目、技术分享这套配色方法让我避开了一个很常见的误区直接在Beamer默认蓝天白云基础上改来改去怎么改都脱不了“默认模板气”。主动去借鉴优秀的平面设计配色Beamer的观感会直线上升。Beamer这套工具熟练之后是真的一劳永逸。模板搭好了后续每一份PPT就是往\section和\frame里填内容的事排版风格始终如一不用再纠结字号、对齐、配色这些细节。我自己用了两年从毕业论文到组会汇报到项目结题全部沿用一套模板改改字就上每年省下的时间够看好几本书了。