ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Beamer主题与配色完全指南:从入门到自定义模板

Beamer主题与配色完全指南:从入门到自定义模板 做PPT这件事我算是经历了好几个阶段。最早用PowerPoint后来因为论文排版转战LaTeX顺手发现LaTeX里其实藏着一套完整的演示文稿方案——Beamer。用它做出来的幻灯片公式、代码、参考文献、页眉页脚全部自动排版风格统一得像印刷品一样特别适合数学课、技术分享、毕业论文答辩这类场景。今天这篇就把Beamer的主题和配色系统彻底讲透从内置主题怎么选到怎么改颜色、定制自己的模板一条龙梳理清楚。这套内容适合谁如果你是刚接触LaTeX的新手想用Beamer替代PPT做第一份学术幻灯片或者你已经会用Beamer但一直觉得默认主题丑得没眼看想研究怎么换个配色、调个版式再或者你打算给自己整一套固定的答辩模板那这篇文章应该都能帮到你。我尽量按实际操作顺序来写从环境准备讲到主题原理再给到可以抄作业的代码最后汇总常见报错。1. 项目概述Beamer主题到底解决什么问题1.1 一句话认识BeamerBeamer本质上是LaTeX的一个文档类你写\documentclass{beamer}然后用类似写论文的方式组织每一页内容最终编译出来的是一份PDF幻灯片。它能帮你处理的事情包括但不限于公式排版、代码高亮、目录导航、页眉页脚自动生成、章节标题页自动生成、参考文献引用以及今天要讲的主题和配色。我当年第一次用Beamer做组会汇报感受最深的一点是不会再出现“这块内容放不下、那行字跑到页面外”的情况。Beamer的每页叫一个frame内容区域是固定的放不下要么缩小字号、要么自动换页不会像PPT那样随性乱跑。加上它是纯文本源文件版式改动就是一个参数的事比如把主题从Madrid换成Berlin整套PPT的风格瞬间全变不用像PPT那样一页一页调。这个特性正是“模板集”这个概念在LaTeX世界里存在的根基——主题就是一套现成的设计方案而你手里握着的是能随时换衣服的底稿。1.2 为什么说配色是Beamer的灵魂Beamer内置主题数量不少但默认主题看起来都不算惊艳甚至可以说朴素。可一旦你把颜色主题换成合适的配色整份幻灯片的观感提升会非常明显。原因在于Beamer的架构把“主题”拆成了四个维度外框主题outer theme、内框主题inner theme、颜色主题color theme和字体主题font theme。这意味着你完全可以在不改变版式结构的前提下只替换颜色主题让同一套版式呈现出完全不同的气质。所以这里先建立一个观念Beamer的“主题”不是一个不可拆分的黑盒而是一套组合式的组件。你不需要理解每一个细节但知道这个结构以后定制模板会轻松非常多。咱们后面第三章会详细拆这个体系。2. 环境准备与工具链的坑2.1 选哪个发行版学Beamer之前得先把LaTeX环境跑起来。我也知道网上关于LaTeX安装的教程一抓一大把但真正自己装的时候还是会踩坑这里快速说几点实测有用的经验。Windows用户优先推荐TeX Live这是一个相对完整的发行版装一次基本把所有宏包都带上之后很少遇到“缺包”的问题。macOS用户装MacTeX本质就是TeX Live的mac版本。如果电脑配置一般或者不想装几GB的东西MiKTeX按需安装宏包也可以但初次编译速度会慢一些而且网络不好时容易卡在自动装包那一步。提示新手装TeX Live时ISO文件解压后一定要以管理员身份运行安装脚本否则写入系统目录会失败。装的过程会持续几十分钟不要中途关掉。2.2 编辑器选型TeXstudio、VSCode还是Overleaf编辑器这块我个人的建议是如果完全没经验直接用Overleaf在线版不用装环境、不用管编译器配置打开浏览器就能写还有实时预览。很多期刊和高校的模板它都内置了适合快速跑通流程。但如果你更习惯本地编辑或者需要大量处理本地文件那就选TeXstudio或VSCode加LaTeX Workshop插件。TeXstudio开箱即用对新手很友好VSCode更轻盈配合LaTeX Workshop插件后体验也不错还能顺便管理其他代码项目。这里给个VSCode环境的参考配置实测用起来比较省心{ latex-workshop.latex.recipes: [ { name: xelatex, tools: [xelatex] }, { name: xelatex-bibtex-xelatex, tools: [xelatex, bibtex, xelatex] } ], latex-workshop.latex.tools: [ { name: xelatex, command: xelatex, args: [ -synctex1, -interactionnonstopmode, -file-line-error, %DOC% ] } ], latex-workshop.view.pdf.viewer: tab }这段配置的意思是默认用xelatex编译如果需要参考文献则走一遍xelatex - bibtex - xelatex的流程。为什么特意用xelatex因为后面写中文幻灯片、用特殊字体的时候默认的pdflatex处理中文字体非常麻烦而xelatex配合ctex宏包能直接编译中文省掉一大堆编码问题。热词里频繁出现的“vscode latex”和“latex workshop”对应的就是这套方案。2.3 编译方式决定中文是否乱码这是新手最容易踩的坑。Beamer写英文没问题但一旦标题或正文里有中文直接按默认方式编译很可能变成乱码或者直接报错。解决思路很简单文档开头引入ctex宏包或直接用ctexart这类中文文档类并把编译器设置为xelatex或lualatex。在Beamer里的写法是这样\documentclass{beamer} \usepackage[UTF8]{ctex}然后编译器切到XeLaTeX。如果是在TeXstudio里菜单栏“选项”里选择“XeLaTeX”如果在VSCode里换成前面配置里的xelatex即可。这步操作不处理好后面所有关于主题和配色的代码都跑不出理想效果所以放在第一步先解决。3. Beamer主题体系深度拆解3.1 内置主题一览哪些值得直接用Beamer自带几十套主题基本语法就是\usetheme{主题名}常用的几个我实际体验过简单汇总如下主题名整体风格适用场景备注default极简白色背景无底栏内容为主、不想被版式干扰的场合最朴素配色靠自定Madrid顶部标题栏底部作者页码中规中矩课堂演示、技术分享适用范围最广Berlin左侧目录导航顶部栏目信息密度高多章节的长报告导航强但内容区会被压缩Copenhagen顶部栏目底部导航比Berlin紧凑些日常会议、答辩新手友好AnnArbor顶部彩色条带风格偏稳重学术报告对配色要求较高默认配色偏老气Metropolis非官方主题风格现代、极简高对比设计感强的路演、技术分享需要手动安装见3.2我的建议是先从Madrid或Copenhagen上手因为它们的结构最标准、不会出错。等对Beamer的结构熟悉了再去折腾Metropolis这类更有个性的第三方主题。3.2 第三方主题Metropolis的安装与字体坑Metropolis可以说是近几年最流行的Beamer主题之一风格类似“全屏色块细标题”很像很多现代演示工具的效果。但它是第三方主题不随TeX Live内置需要安装。手动安装也不复杂去GitHub仓库matze/mtheme下载源码把metropolis.sty和对应目录放到texmf/tex/latex/metropolis下然后刷新文件数据库在命令行执行texhash或mktexlsr就行。用的时候\documentclass{beamer} \usetheme{metropolis}不过Metropolis依赖Fira Sans和Fira Math这两套字体如果系统里没装编译出来的效果会退化成普通字体观感打很多折扣。这也是很多博主推荐它但新手用了之后觉得“也没多好看”的主要原因。想省事的话可以改成\usefonttheme[onlymath]{serif}让数学公式沿用LaTeX的衬线字体标题字体还是Fira整体会协调不少。3.3 主题的四组件结构outer、inner、color与font前面提到Beamer主题其实由四套子主题组合而成。解释一下各自管什么outer theme管页眉、页脚、导航条、标题栏就是幻灯片“外框”的部分。inner theme管标题页、目录页、块元素block、定理环境、列表图标这些“内容内部”的排版。color theme管颜色。定义不同元素的颜色比如标题栏背景、正文文字、块背景等。font theme管字体。设置不同层级文字的字体、字号、粗细。你可以用\useoutertheme{...}、\useinnertheme{...}、\usecolortheme{...}、\usefonttheme{...}分别设置也可以直接用\usetheme{...}一把梭。理解这个结构后就会发现定制模板的套路其实很清晰从某个主题出发然后针对某个组件做微调。比如我喜欢Madrid的版式但不喜欢它的底栏颜色和字体那我完全可以\usetheme{Madrid} \usecolortheme{beaver} \usefonttheme{professionalfonts}这样版式还是Madrid但颜色换成了更淡雅的beaver字体用系统自带的专业字体组合效果立刻不太一样。4. 配色方案实战从内置色到自定义色4.1 内置颜色主题有哪些选择Beamer内置了一套颜色主题语法是\usecolortheme{颜色主题名}常见的有default、albatross、beaver、crane、dolphin、dove、fly、lily、seagull、seahorse、spruce、whale等。我实测下来给一个快速筛选指南学术报告、答辩想正式一点选dove黑白色调、whale蓝白、seahorse低饱和度蓝。课堂演示、教学活动想要活泼一点选crane红橙暖色、spruce绿色自然调。深色背景衬托内容或做晚场演讲选albatross蓝黑底但文字多时慎用看久了累。举个例子如果你希望PPT整体是蓝色稳重风可以这样组合\usetheme{Madrid} \usecolortheme{whale}这个组合会让标题栏变成深蓝色正文区域保持白底整体效果很像许多学术会议的幻灯片。这也是我最常推荐给毕业答辩的学生党的方案。4.2 自定义配色definecolor与setbeamercolor内置配色方案再多也架不住想调成自己的专属颜色。Beamer的自定义配色核心是两件事定义颜色、把颜色赋给元素。第一步定义颜色。用LaTeX自带机制即可\definecolor{maincolor}{RGB}{0, 73, 144} \definecolor{accentcolor}{RGB}{230, 100, 0}RGB三个数字是0到255的整数可以直接用取色器从图里取。这里定义了一个深蓝作为主色、一个橙红作为点缀色。第二步把颜色交给Beamer的各个元素。这里要理解Beamer的颜色结构每个界面元素都有一个“配色结构”通常用两个字段表示fg是前景色文字颜色bg是背景色。写法是\setbeamercolor{元素名}{fg颜色, bg颜色}常见的元素名包括structure所有结构性元素的基础颜色改这一个往往就影响标题、列表图标等一大片。frametitle每一页顶部的标题栏。title标题页的大标题。author作者信息。block title区块block的标题。block body区块的内容区域。palette primary/secondary/tertiary页眉页脚等各区域的颜色组。比如我想把标题页背景换成主色、标题文字白色帧标题栏用主色填充、白色文字区块标题也用主色就可以这样写\setbeamercolor{title}{fgwhite, bgmaincolor} \setbeamercolor{frametitle}{fgwhite, bgmaincolor} \setbeamercolor{block title}{fgwhite, bgmaincolor}这里有个小陷阱title的背景是否生效依赖于你用的inner theme。某些朴素主题里标题页背景默认透明需要配合\setbeamertemplate{title page}之类的设置才能铺满色块。这时候建议用一个相对完整的主题起步比如Madrid它的标题页是有背景块的直接改色就能看到效果。4.3 配色搭配的一点实际经验以前我也硬调过各种“高级配色”后来发现好看的关键不是颜色多而是对比度够、主色用得克制。给Beamer配色时优先级是正文文字和背景的对比度最高标题颜色次之装饰性元素如导航小方块不能抢戏。具体来说正文区域保持白底、深色文字这种组合适合长时间阅读标题栏可以用主色深蓝、深绿这类饱和度不要太高的颜色点缀色只用在需要强调的地方比如定理框、代码块边框面积越小越好。另外要注意投影仪和打印的区别。打印时以白底为主避免大面积深色背景不然墨量吓人。投影时要避免纯白和浅黄、浅绿这类低对比搭配后排根本看不清。我一般会准备两套配色需要打印的场合切到浅色主题投屏路演时用深色标题加白底。5. 模板定制实操与完整示例5.1 构建一个可复用的Beamer模板骨架理论讲再多不如直接给一份能跑通的代码。下面这份模板是我平常用的基础骨架包含了主题选择、配色、中文支持、常见宏包和页面的基本结构你可以直接复制去编译试试\documentclass[aspectratio169]{beamer} \usepackage[UTF8]{ctex} \usepackage{graphicx} \usepackage{booktabs} \usepackage{listings} \usepackage{hyperref} \usetheme{Madrid} \usecolortheme{whale} \definecolor{maincolor}{RGB}{0,73,144} \definecolor{accentcolor}{RGB}{200,80,0} \setbeamercolor{frametitle}{fgwhite, bgmaincolor} \setbeamercolor{block title}{fgwhite, bgmaincolor} \setbeamercolor{title}{fgwhite, bgmaincolor} \setbeamercolor{itemize item}{fgmaincolor} \setbeamercolor{itemize subitem}{fgmaincolor} \setbeamercolor{description item}{fgmaincolor} \title{Beamer主题与配色使用教程} \author{你的名字} \institute{你的单位} \date{\today} \begin{document} \begin{frame} \titlepage \end{frame} \begin{frame}{目录} \tableofcontents \end{frame} \section{引言} \begin{frame}{这一页有什么} \begin{itemize} \item 这是无序列表 \item 公式$E mc^2$ \end{itemize} \begin{block}{一个提示块} 这里放块内容背景是主色系的浅色块。 \end{block} \end{frame} \section{结论} \begin{frame}{结论} \begin{enumerate} \item 第一点 \item 第二点 \end{enumerate} \end{frame} \end{document}编译方式xelatex。如果你在VSCode里直接按LaTeX Workshop的默认键位或者用前面配置的xelatexrecipe跑一遍就能在预览面板看到成品。这里面有几个细节值得说明。aspectratio169是宽屏比例现在投影仪基本16:9加上这个参数能充分利用屏幕宽度也避免上下黑边。ctex宏包解决中文显示graphicx用来插图booktabs排版三线表listings做代码高亮hyperref让目录和引用可点击跳转。这些宏包不一定每次全用但都留着方便。5.2 页面元素和区块美化Beamer的区块block是组织内容的一个好工具。默认格式是标题一条色带、内容一个色块。常见的三种环境\begin{block}{普通块} 内容 \end{block} \begin{alertblock}{警告块} 内容 \end{alertblock} \begin{exampleblock}{示例块} 内容 \end{exampleblock}普通块默认蓝色系警告块红色系示例块绿色系。如果想统一改成自己的主色需要分别设置\setbeamercolor{block title}{fgwhite, bgmaincolor} \setbeamercolor{block body}{fgblack, bgmaincolor!10} \setbeamercolor{alertblock title}{fgwhite, bgaccentcolor} \setbeamercolor{exampleblock title}{fgwhite, bggreen!60!black}这里maincolor!10表示把maincolor以10%的浓度和白色混合得到一个很浅的蓝色背景页面看起来不会太厚重。这个“颜色百分比混合”的语法是LaTeX xcolor宏包提供的在Beamer里也很好用用它调浅色背景比手动再去取一个浅色RGB要方便得多。我自己做模板时最常用的一个小技巧就是页面所有需要强调的部分都用主色但不同元素用不同浓度的主色。标题栏用100%浓度块标题用100%块背景用10%-20%浓度列表圆点用100%。这样整页颜色统一但不显乱。5.3 帧选项解决内容溢出的关键Beamer的每一页叫frame写的时候可以用一些可选项来控制行为。最常见的几个我列一下[fragile]帧里面有代码块lstlisting或verbatim时必须加上否则编译报错。[t]内容顶部对齐。如果一页内容不满默认是垂直居中的看起来会偏中间学术场合我一般用顶部对齐更自然。[allowframebreaks]内容太多时自动拆分多页适合参考文献这种无法预估长度的内容。[plain]去掉页眉页脚和导航适合放全屏图片或过渡页。比如参考文献页面我通常这样写\begin{frame}[allowframebreaks]{参考文献} \bibliographystyle{plain} \bibliography{ref} \end{frame}内容多时会自动续到下一页并在右上角显示连续页码不需要手动分页。这个功能是Beamer相对于PPT特别省心的一个点。另外fragile这个选项的坑比较隐蔽。很多新手在帧里放了代码编译报错百思不得其解其实就是少了这个参数。这里先记着后面常见问题会再提到。6. 常见问题与排查技巧实录6.1 编译报错速查表写Beamer踩过的坑几乎都能归结为几类。我整理了一个速查表遇到问题直接对号入座问题现象常见原因解决方法编译后中文乱码或空白编译器没用XeLaTeX或缺少ctex宏包加\usepackage[UTF8]{ctex}编辑器设置为XeLaTeX一页里放代码就报错帧里用了verbatim/listings但没加[fragile]写成\begin{frame}[fragile]{标题}标题页背景色不生效主题的标题页模板本身就是透明背景换用Madrid/Copenhagen等有背景块的主题或自定义title page模板参考文献不显示编译流程没走bibtex按xelatex - bibtex - xelatex - xelatex顺序编译目录页没有章节导航没写\section或目录帧在section之前保证\tableofcontents所在的frame位于所有section之后修改颜色没变化写错元素名或命令位置不对检查元素名看是否误用了\usecolortheme覆盖把\setbeamercolor放在主题命令之后编译时提示缺少某宏包发行版不全或网络问题导致自动安装失败用TeX Live完整安装或手动安装缺失宏包6.2 表格和图片排版的几个细节热词里出现了“latex表格自动换行”这里多说一句。Beamer里的表格默认不会自动换行如果某一列文字太长需要手动指定列宽比如p{3cm}或者用tabularx宏包的X列让表格自动分配宽度。示例\begin{tabularx}{\textwidth}{lX} 项目 描述 \\ A 这是会换行的长文本列宽度自动填满剩余空间。 \end{tabularx}图片方面最常见的写法是\begin{figure} \centering \includegraphics[width0.8\textwidth]{figures/示意图.png} \caption{示意图} \end{figure}注意图片路径最好不要包含中文否则编译器有时会找不到文件。另外图片宽度用0.8\textwidth这种相对宽度比较好换成其他主题或者改页面比例时图片能自动适配不会超出版心。6.3 用ensuremath和onlymath解决数学字体不一致数学公式在Beamer里的字体有时会和主题字体不搭。比如用Metropolis主题标题是Fira Sans公式却是默认Computer Modern风格有割裂感。解决方法有两个一种是在导言区加\usefonttheme[onlymath]{serif}这样公式会显示为传统的衬线字体和很多学术风格一致。另一种是在文档内单独写公式时如果需要行内公式加ensuremath环境更稳妥这样公式在任意上下文里都能编译\ensuremath{a^2 b^2 c^2}6.4 提高编译效率和预览体验的小技巧Beamer默认编译速度比普通文档慢因为每一页都要排版。如果幻灯片页数很多单次编译可能要等几十秒。这里有个实用技巧把不重要的帧先注释掉比如%掉后面的帧先看前几页效果确认满意后再取消注释。页数多了以后编译会慢VSCode的LaTeX Workshop可以在每次保存时自动编译并刷新PDF预览配置里加一行latex-workshop.latex.autoBuild.run: onSave保存即编译预览窗口自动更新。这个体验几乎接近在线编辑器本地磁盘够大的话完全可以替代Overleaf。另外如果编译中途报错只看日志文件很难定位。建议在配置里加上-file-line-error参数报错信息会直接定位到源文件的行号。前面给的VSCode配置里已经带上了如果你是命令行编译也可以手动加xelatex -file-line-error -interactionnonstopmode main.texinteractionnonstopmode的意思是遇到错误不暂停、尽量继续往下编译最后一次性列出所有问题。这样能一次看到多个报错而不是卡在第一个错误上反复等。6.5 常见的中文环境与目录问题中文用户还有一个容易踩的坑目录页\tableofcontents输出的内容如果是中文章节标题英文下排版没问题但如果是中文长标题目录里可能换行不自然。解决方法是设置一下目录缩进和字体。我这里给一个简单配置\setbeamertemplate{section in toc}{ \leavevmode\leftskip2em\llap{\inserttocsectionnumber.\ }% \inserttocsection\par }这个模板的意思是目录条目左缩进2个字符宽度章节编号靠左显示章节标题之后另起一行。对中文章节名很长的情况会好看不少。如果你需要每章开始前加一个过渡页可以用\AtBeginSection[]{ \begin{frame}{目录} \tableofcontents[currentsection] \end{frame} }[currentsection]参数会高亮当前章节听众能很清楚知道自己讲到哪一部分了。这个过渡页对多章节的学术报告很实用是我做长报告必加的东西。最后分享一点个人经验经常看到有人问“Beamer做PPT值不值得学”我的回答是如果你是理工科、需要常做带公式或代码的演示那Beamer值得而且越用越顺手。它最大的优势不是某个漂亮主题而是内容与表现分离——同一份内容换个主题就是另一种气质这点在修改配色和版式时特别省力。我实际做模板时通常不会着急选主题而是先想清楚这份幻灯片的核心场景是论文答辩、组会分享还是课程教学。确定场景后再决定配色主色和版式复杂度。答辩场合我会偏向白色背景、深蓝标题把公式和图表突出组会分享则可以用浅色底、彩色块整体更轻松一些。最后再分享一个小技巧做模板时先定义好主色和点缀色两个颜色变量后续所有颜色设置都从这两个变量派生比如maincolor、maincolor!20、accentcolor。这样以后想改整套配色只需要改两个definecolor的一行代码即可全文档同步更新。我就是靠这个办法一份Beamer模板能从课程作业一直用到毕业答辩每次换主题色不超过一分钟。
返回列表