本模板基于 SCU Beamer Theme 开发,保留了其成熟的页眉页脚设计,并适配北京理工大学的视觉识别系统。
同时感谢 USTC Beamer Theme 和 THU Beamer Theme 提供的设计参考。
本模板需要以下 LaTeX 宏包(通常已包含在 TeX Live 完整版中):
- 基础依赖:
beamer,tikz,tcolorbox,fontspec,ctex - 参考文献:
biblatex,biber,biblatex-gb7714-2015(GB/T 7714-2015 国标) - 其他:
xstring,fontawesome5,tabularx
如果使用 TeX Live Basic 或 MiKTeX,可能需要手动安装 biblatex-gb7714-2015:
tlmgr install biblatex-gb7714-2015Git 克隆:
git clone https://github.com/GtJerry111/bit_theme_beamer.git从 Release 下载:
前往 GitHub Releases 下载。
「以下假设主文件命名为 exp.tex」创建方式有两种:
- 基于 MWE 修改: 展开下方 MWE (最小工作示例), 保存为
exp.tex即可编译; - 参考示例: 直接参考仓库中的
main.tex或main-en.tex示例文件创建exp.tex.
MWE (exp.tex)
% !TeX encoding = UTF-8
% !TeX TS-program = latexmk
% UTF-8 格式 + latexmk 编译
% ---------------- %
% 导言区 %
% ---------------- %
\PassOptionsToPackage{cmyk}{xcolor}% 解决设置 CMYK 颜色时生成 PDF 的色彩偏移
\documentclass[
% draft, % 草稿模式
% handout, % 讲义模式
aspectratio=169, % 演示比例(推荐) 16:9
hyperref, UTF8, CJK%
]{beamer}
% -------- BIT Beamer Theme Config --------
\usetheme[
% ColorDisplay=, % BITA ⚙️ | BITB | Custom → 主题色显示设置
% BlockDisplay=, % colorful ⚙️ | followtheme | allgrey → 区块颜色显示设置
% CodeTheme=, % listing ⚙️ | minted | minted2 → 代码高亮显示设置
% MintedStyle=, % lightmode ⚙️ | darkmode | ⟨custom⟩ → minted 样式设置 (需优先设置 CodeTheme = minted | minted2)
% LanguageMode=, % cn ⚙️ | en → 语言模式设置
% Miniframes=, % follow ⚙️ | separate | none → 页眉小节迷你帧设置
% NavigationTool=, % 1-2-3 ⚙️ | ⟨参考 Manual 设置⟩ | none → 页脚导航工具栏设置
% FontTheme=, % Auto ⚙️ | Ubuntu | Win | Mac | Fandol | Source-Han | ... | Custom → 字体主题设置
% MathFont=, % LM ⚙️ | XITS | ⟨custom⟩ → 数学字体设置
% BIBMode=, % biber ⚙️ | none → 参考文献引擎设置
% BIBStyle=, % biber-gb7714 ⚙️ → 参考文献样式设置 (设置 BIBMode=none 时无效)
% ContentMuticols=, % true ⚙️ | false → 目录帧双栏显示设置
% ShadedIntensity=, % 60 ⚙️ → TOC 灰色强度 (0-100)
% SubsectionTOC=, % on ⚙️ | off | first-only → 小节目录显示控制
% Background=, % BIT-Full ⚙️ | BIT-Lite | Custom | none → 背景显示设置
% SectionNavStyle=, % full ⚙️ | current | none → 页眉章节导航样式
% SecBarWidth=, % 0.4\paperwidth ⚙️ | <dimen> → 章节栏宽度
% overflowguard=, % off ⚙️ | on → 溢出保护 (paper2beamer 集成)
]{bit}
% -------- Packages --------
% \usepackage[xx]{xx}
\usepackage{multicol, multirow}
% -------- TitlePage Config --------
% [<in footline>] → 方括号内容, 缩写, 显示在页脚
% {<in title page>} → 花括号内容, 全称, 显示在封面
% ----------------
\title[Short 标题]{Full 标题}
\subtitle{副标题}% subtitle 未设置页脚显示项, 请在 title 中设置.
\author[页脚作者]{作者一\inst{1}\inst{a} \and 作者二\inst{2}\inst{b}}
\institute{%
\inst{1} 北京理工大学
\vspace*{-6pt} \and
\inst{2} ~Institution Two
\vspace*{-6pt} \and
\inst{a} \mailbit{author1@example.com} ~\inst{b} \mailbit{author2@example.com}
}
\date{\today}
% ---------------- %
% 正文区 %
% ---------------- %
\begin{document}
\section{第一节}
\subsection{第一小节}
\begin{frame}{帧标题}
\begin{itemize}
\item 示例内容一
\item 示例内容二
\end{itemize}
\end{frame}
\begin{frame}{帧标题}{帧小标题}
\begin{columns}
\begin{column}{.5\textwidth}
\structure{栏一标题}
示例内容一
示例内容二
\end{column}
\begin{column}{.5\textwidth}
\structure{栏二标题}
示例内容三
示例内容四
\end{column}
\end{columns}
\end{frame}
\subsection{第二小节}
\begin{frame}{公式示例}
质能方程
\begin{equation}
E = mc^2
\end{equation}
\end{frame}
\section{第二节}
\subsection{动画示例}
\begin{frame}{动画演示}
\begin{itemize}
\item<1-> 第一步: 准备工作
\item<2-> 第二步: 编写内容
\item<3-> 第三步: 编译生成
\item<4-> 第四步: 完成!
\end{itemize}
\only<4>{\structure{动画演示结束.}}
\end{frame}
% -------- Appendix --------
\appendix
\section{附录}
\subsection{附录}
\begin{frame}{附录}
附录内容.
\end{frame}
\end{document}建议将演示内容按章节拆分到单独的 .tex 文件中, 方便管理大型演示文稿.
在 include-sec/ 目录下创建各章节文件, 例如:
include-sec/
├── sec-introduction.tex
├── sec-method.tex
└── sec-conclusion.tex
include-sec/是 BIT Beamer Theme 预设的章节.tex文件存放目录. 本模板通过 latexmk 将编译中间文件 (aux 文件等) 输出至tmp/build/, 而由于 latexmk 迁移 aux 输出目录时出于安全考虑不会自动创建子目录, 本模板已提前在tmp/build/下创建好对应的子目录.
每个章节文件只需包含帧内容 (无需 \documentclass 和 \begin{document}), 例如:
% include-sec/sec-introduction.tex
\section{引言}
\subsection{背景}
\begin{frame}{研究背景}
此处填写内容.
\end{frame}然后在主文件 exp.tex 中通过 \include 或 \input 导入:
% 在 \begin{document} 之后
\include{include-sec/sec-introduction}
\include{include-sec/sec-method}
\include{include-sec/sec-conclusion}
\include与\input的区别:
\include会自动在前后插入\clearpage, 适合章节级别, 支持\includeonly选择性编译;\input直接嵌入内容, 不分页, 适合小片段.
latexmk exp.tex当出现编译异常 (如交叉引用错误、缓存污染) 或需要重新完整编译时, 可清理中间文件:
latexmk -c # 清除中间文件
latexmk -c exp.tex # 清除指定文件的中间文件
latexmk -C # 清除全部生成文件
latexmk -C exp.tex # 清除指定文件的全部生成文件
-c仅清除.aux,.log,.toc等中间文件, 保留 PDF;-C连同 PDF 一并清除.
!! 注意事项:
- 在线平台 (如 TeXPage, Overleaf) 编译时, 请上传整个工作文件夹, 否则可能出现因文件缺失导致的编译异常;
- 模板已内置丰富的配置选项; 如确需修改
.sty文件, 请先了解模板结构, 保留备份后参照文件内注释进行实验性修改;- 推荐使用
latexmk编译; 若无法使用 latexmk, 可在编辑器中配置编译引擎为 XeLaTeX, 参考文献引擎为 Biber, 并按 XeLaTeX → Biber → XeLaTeX → XeLaTeX 的顺序编译四轮.
本模板提供了 Claude Code 专用的 Skill (位于 skill 分支), 可辅助编写与修改 Beamer 演示文稿.
- 将论文/报告转写为 Beamer Slides
- 从零创建 Slides
- 修改已有 Slides (配色、动画等)
- 辅助配置主题参数
- 排查编译问题
- 安装 Claude Code CLI:
npm install -g @anthropic-ai/claude-code
- 安装 CC Switch, 在 Skills 面板中安装本模板的 Skill:
- URL:
https://github.com/GtJerry111/bit_theme_beamer - 分支:
skill
- URL:
- 在项目目录下启动 Claude Code, 输入
/beamer-bit或用自然语言描述需求即可触发 Skill (如 "帮我用 BIT beamer 做一个答辩 Slides")
本模板已适配 paper2beamer 工具,可将学术论文 PDF 自动转换为 BIT 风格的 Beamer 幻灯片。
- paper2beamer skill:需要在 Codex 中安装 paper2beamer skill。参考 PaperTalk-IR-Skills 仓库。
- 编译工具链:
xelatex、latexmk、uv需在 PATH 中可用。 - BIT 主题:本仓库即为 BIT 主题源码。
在 bit_beamer_theme 仓库根目录下运行安装脚本:
./docs/setup-paper2beamer.sh脚本做了什么:
- 检测 paper2beamer 的 ISA 目录(默认
~/.cc-switch/skills/paper2beamer/isa/) - 将本仓库的
isa/BIT.yaml通过符号链接(symlink)链接到该目录 - 如果目标已存在旧文件,先删除再创建链接
效果: paper2beamer 在生成 slides 时会读取本仓库的 isa/BIT.yaml,获取 BIT 主题的完整配置信息。由于使用符号链接,本仓库的 ISA 更新后 paper2beamer 自动生效,无需手动同步。
- 在 Codex 中启动对话,输入类似指令:
使用 paper2beamer 将 paper.pdf 转换为 BIT 主题的 slides。
15 分钟的 talk,中文。
-
paper2beamer pipeline 自动执行:
- Intent 阶段:根据你的描述确定页数预算(考虑 overlay 膨胀)
- Ingest 阶段:Docling 提取论文内容和图片
- Narrative IR → Slide IR → Emission → Compile
-
验证生成的 slides:
# 检查生成的 main.tex 是否包含必需的宏包
grep -c "\\\\usepackage" slides/<slug>/build/preamble.tex
# 检查是否设置了推荐选项
grep "NavigationTool" slides/<slug>/build/preamble.tex
# 编译并检查页数
cd slides/<slug> && latexmk main.tex
grep "Output written" main.logisa/BIT.yaml 的 prose 字段包含以下关键指导:
| Section | 作用 |
|---|---|
| 自动封面 | BIT 通过 \AtBeginDocument 自动生成封面,pipeline 不应生成 S00 title frame |
| 必需的宏包 | 列出 13 个必需 \usepackage,确保 preamble 完整 |
| 推荐的 \usetheme 选项 | 推荐 NavigationTool=1-2-3、BIBMode=none 等 |
| 帧密度与页数预算 | 说明 overlay 膨胀因子,页数按 PDF 物理页计算 |
| 图片命名 | 建议将 Docling 哈希文件名重命名为 figure-NNN.png |
如果 paper2beamer 安装在非默认位置,可以通过环境变量指定:
PAPER2BEAMER_ISA=/path/to/paper2beamer/isa ./docs/setup-paper2beamer.shQ: 运行脚本提示 "Operation not permitted" A: 检查 paper2beamer ISA 目录的写权限。如果是 Codex skill 目录,可能需要在终端中手动运行。
Q: 生成的 slides 封面是白底
A: 确认 isa/BIT.yaml 已正确链接。运行 ls -l ~/.cc-switch/skills/paper2beamer/isa/BIT.yaml 检查符号链接是否指向本仓库。
Q: 编译报错 \beamer@bit@authorbox already defined
A: 确认使用的是最新版本的 beamerinnerthemebit.sty(已修复此 bug)。
Q: 页数远超预期(如 15 分钟 talk 生成了 46 页)
A: 检查 frame 中是否使用了大量 overlay(\item<1-> 等)。每个 overlay 产生一个独立 PDF 页。ISA 已包含 overlay 膨胀说明,agent 应在 Intent 阶段考虑此因素。
封面与正文板块采用不同背景, 正文背景采用低透明度淡色, 增强正文文本等辨识性; verify 仅用于封面页, 不参与小节目录背景或页脚装饰.
采用双行设计;
首行为节标题导航栏, 显示幻灯整体思路, 还附带北京理工大学校名;
次行为标题栏, 左侧显示小节标题与迷你帧(圆点)形式的当前小节帧进度, 右侧显示当前幻灯标题. (编者认为小节迷你帧能在较清晰呈现进度的同时, 节约大量空间, 也能避免某节中幻灯页数过多, 导致标题导航挤压溢出)
采用双行设计;
首行为导航栏, 左侧显示报告标题, 右侧为导航模块; 次行为信息行, 左中右分别为作者、机构、日期与页码.
模板定义了丰富的环境支持:
- 14 个定理环境:theorem, lemma, corollary, proposition, definition, property, example, remark, algorithm, proof, axiom, condition, conclusion, assumption
- 代码高亮:支持 listing(默认)和 minted(需安装 Pygments)两种高亮引擎
- 多种字体方案:Auto(自动检测)、Ubuntu、Win、Mac、Fandol、Source-Han、ZhongYi 等
- 双栏目录:支持
\tableofcontents双栏显示 - Overlay 动画:支持
\pause、\only、\onslide等逐步展示效果
BIT Beamer 主题需要 resources/ 和 image/ 目录中的图片资源来渲染封面页、背景和视觉识别元素。
问题: \pgfdeclareimage 不遵循 \graphicspath。从子目录编译时,硬编码的 ./resources/... 路径会解析到错误位置。
三种解决方案:
-
复制资源到项目目录(最简单)
cp -r /path/to/bit_beamer_theme/resources ./ cp -r /path/to/bit_beamer_theme/image ./
-
使用 TEXINPUTS 环境变量
export TEXINPUTS="/path/to/bit_beamer_theme//:./" latexmk main.tex
//后缀告诉 TeX 递归搜索子目录。主题的\bit@def@resource宏首先检查./resources/(本地),然后回退到裸文件名,TeX 会通过TEXINPUTS找到它。 -
安装到 TeX 树(适合重复使用)
./scripts/install-resources.sh sudo mktexlsr # 更新 TeX 文件数据库这将资源安装到
$TEXMF_HOME/tex/latex/bit-beamer-theme/resources/,使所有项目无需逐项目复制即可使用。
故障排除: 如果出现 "I can't find image file" 错误,请验证 resources/ 和 image/ 目录存在于项目根目录,或设置 TEXINPUTS,或运行 scripts/install-resources.sh。
SectionNavStyle 选项控制页眉中章节导航的显示方式。它独立于 LanguageMode,后者现在仅控制文本本地化(日期格式、目录标题等)。
用法:
\usetheme[SectionNavStyle=full]{bit} % 默认
\usetheme[SectionNavStyle=current]{bit}
\usetheme[SectionNavStyle=none]{bit}| 模式 | 行为 |
|---|---|
full |
在页眉中显示所有章节名称,用 PrimaryC 背景高亮当前章节 |
current |
仅显示当前章节名称 |
none |
完全隐藏章节导航 |
默认值: SectionNavStyle=full — 匹配之前的 LanguageMode=cn 行为。
向后兼容性: 之前,LanguageMode=cn 显示完整章节导航,LanguageMode=en 仅显示当前章节。现在:
LanguageMode仅控制文本本地化(中文字符串 vs 英文字符串)SectionNavStyle控制导航渲染
默认 SectionNavStyle=full 保留之前的中文模式行为。偏好英文模式导航样式的用户可以设置 SectionNavStyle=current。
章节栏宽度可以独立配置:
\usetheme[SecBarWidth=0.4\paperwidth]{bit} % 默认
\usetheme[SecBarWidth=0.3\paperwidth]{bit} % 更窄默认值为 0.4\paperwidth。当有多个章节且名称较长时使用更宽的值。
控制目录是否双栏显示。
\usetheme[ContentMuticols=true]{bit} % 双栏(默认)
\usetheme[ContentMuticols=false]{bit} % 单栏默认值: ContentMuticols=true — 启用双栏目录显示。
ShadedIntensity 选项控制目录中未选中章节的灰色强度(0-100)。
\usetheme[ShadedIntensity=60]{bit} % 60% 灰色(默认)
\usetheme[ShadedIntensity=80]{bit} % 80% 灰色(更明显)默认值: ShadedIntensity=60 — 比 Beamer 默认的 30% 更清晰可读。
SubsectionTOC 选项控制小节目录的显示行为。
\usetheme[SubsectionTOC=on]{bit} % 每个小节显示 TOC(默认)
\usetheme[SubsectionTOC=off]{bit} % 不显示小节 TOC
\usetheme[SubsectionTOC=first-only]{bit} % 只在第一个小节显示 TOC| 模式 | 行为 |
|---|---|
on |
每个小节开始都显示目录(默认行为) |
off |
不显示小节目录 |
first-only |
只在第一个小节显示目录 |
默认值: SubsectionTOC=on — 保持原有行为。
overflowguard 选项用于 paper2beamer 集成和密集幻灯片:
\usetheme[overflowguard=on]{bit}启用时,主题会对帧内容应用溢出保护,防止内容超出帧边界。这对于自动生成的幻灯片特别有用,因为内容密度可能不可预测。
更多示例见 docs/examples/ 目录:
- multi-column-toc.tex - 双栏目录
- custom-shaded.tex - 自定义灰色强度
- subsection-toc-control.tex - 小节目录控制
若有修改意见欢迎邮件联系编者: zirui.chen1214@qq.com
若本校的 LaTeX 大佬百忙之中能对本模板提出批评指正, 鄙人在此万分感谢各位的支持.
感谢模板中所使用部分代码的原作者, 也感谢模板所调用宏包的诸位作者前辈.
欢迎友校的朋友们对此模板进行修改, 不过这个模板可能有点点难改, 希望能看懂我的注释, 但愿吧.
- 新增
ShadedIntensity选项:控制 TOC 中未选中项的灰色强度(默认 60,比 Beamer 默认的 30% 更清晰) - 新增
SubsectionTOC选项:控制小节目录显示行为(on/off/first-only) - 添加示例文件:
docs/examples/目录包含双栏目录、灰色强度、小节目录控制示例
- 修复当前章节在页眉中未高亮的问题:添加
section in head/foot highlighted颜色定义 - 修复资源路径解析问题:使用
\bit@def@resource在定义时解析路径,支持从子目录编译 - 解耦
LanguageMode与章节导航样式:新增SectionNavStyle选项(full/current/none) - 新增
SecBarWidth选项:可配置章节栏宽度 - 添加
scripts/install-resources.sh:将资源安装到 TeX 树 - 完善文档:添加资源部署指南、SectionNavStyle 说明、overflowguard 说明
- 重新设计封面底栏图形与标题布局
- 添加
overflowguard选项用于 paper2beamer 集成 - 修复封面元素间距和视觉对齐
- 修复 draft 模式下文件名下划线导致的编译错误
- 统一选项命名规范
- 字体主题独立为
beamerfontthemebit.sty - 使用曲线函数重绘页眉页脚图形
- 支持自定义 VI(视觉识别系统)
- 添加多种字体方案(Ubuntu/Win/Mac/Fandol/Source-Han)
- 优化页眉页脚间距
- 使用 picture 环境替代 tikz 环境定位
- 迷你帧布局移至外部主题
- 改进 cleveref 中文支持
- 改进 minted 代码高亮支持
- 内部主题独立为
beamerinnerthemebit.sty - 页眉页脚与 TikZ 绘图合并
- 初始版本,基于 SCU Beamer Theme 派生

