modern-ucas-slides
基于 Typst 与 Touying (0.8.0) 构建的中国科学院大学(UCAS)现代学术幻灯片模板。
提供 academic、minimal 与 bold 三款视觉风格,支持 16:9 宽屏与 4:3 传统投影比例切换,内置结构化学术卡片、定理证明环境、规范三线表与参考文献管理功能。
功能特性
- 三种主题风格:
academic(典雅校风 · 默认):顶部包含 1.5pt 国科大蓝微装饰线与章节路径导航,右上角印记官方圆形校徽,底部呈现作者、标题、日期与页码,适用于开题汇报、中期检查与学位答辩。minimal(极简风格):纯白版面,顶部显示小号章节标签(Kicker),底部保留精简页码,适用于学术研讨与国际会议报告。bold(科技风格):顶部配置彩色阅读进度条,底部页码采用圆角徽章胶囊,配合章节转场页呈现深蓝全幅背景,适用于前沿讲座与专题技术分享。
- 页面比例支持:原生支持
aspect-ratio: "16-9"(默认宽屏)与"4-3"(传统投影),页面尺寸与边距自动自适应。 - 结构化卡片体系:提供标准区块(
tblock)、示例区块(exampleblock)、警示区块(alertblock)与注记条(callout),各卡片均具备防断页控制。 - 学术排版环境:内置定理环境(
theorem)、证明环境(proof)、无标号底端脚注(blfootnote)与规范学术三线表。 - 官方矢量校徽:内置中国科学院大学官方标准横版矢量校徽(SVG)与圆形校徽(SVG),支持用户自定义传入或隐藏。
- 参考文献集成:支持 BibTeX 格式文献库与
@key正文引用。
快速上手
1. 安装 Typst
- macOS (Homebrew):
brew install typst - Windows (winget):
winget install --id Typst.Typst - Linux / 其他平台: 参考 Typst 官方安装指引。
2. 编译与预览
可以使用项目内置的 Makefile 命令:
# 编译生成 template/main.pdf
make compile
# 开启实时监听热重载 (保存文件时自动重新渲染)
make watch
# 编译并在系统默认阅读器中打开 PDF
make preview
# 规范化代码格式
make format
亦可直接使用 Typst CLI 原生命令(注意传 --root .):
# 编译主文档
typst compile --root . template/main.typ
# 监听变化
typst watch --root . template/main.typ
# 命令行动态切换风格编译
typst compile --root . --input style=minimal template/main.typ
项目架构
modern-ucas-slides/
├── typst.toml # Typst 包元数据清单
├── lib.typ # 模板入口库文件 (统一对外导出全部主题与组件)
├── themes/ # 主题样式引擎
│ ├── colors.typ # 主题调色板
│ ├── header.typ # 顶栏布局函数
│ ├── footer.typ # 底栏布局函数
│ ├── preamble.typ # 页面标题区域渲染
│ ├── slide.typ # 幻灯片函数与备注面板
│ └── ucas.typ # 主题初始化入口
├── components/ # 页面与排版组件
│ ├── logo.typ # 校标矢量渲染函数
│ ├── cards.typ # 卡片与基础区块 (tblock, exampleblock, alertblock)
│ ├── theorems.typ # 定理与推导证明环境 (theorem, proof)
│ ├── callout.typ # 提示注记条 (callout)
│ ├── helpers.typ # 文本强调与底部脚注 (alert, blfootnote, red, green)
│ └── slides/ # 专用页面组件
│ ├── title.typ # 扉页 (title-slide)
│ ├── outline.typ # 目录页 (outline-slide)
│ ├── section.typ # 章节过渡页 (new-section-slide)
│ └── ending.typ # 结语页 (ending-slide)
├── assets/
│ └── vi/ # 官方矢量校徽 (SVG)
├── template/ # 模板示例目录
│ ├── main.typ # 完整排版示例与使用说明
│ └── ref.bib # BibTeX 参考文献库
├── Makefile # 编译、监听、预览与格式化构建脚本
├── build.sh # Shell 辅助构建脚本
├── .gitignore # Git 忽略规则
└── README.md # 项目说明文档
配置说明
在 template/main.typ 中,通过 #show: ucas-theme.with(...) 进行参数配置:
#import "../lib.typ": *
#show: ucas-theme.with(
// 1. 风格切换: "academic" (默认) | "minimal" | "bold"
style: "academic",
// 2. 比例切换: "16-9" (默认宽屏) | "4-3" (传统投影)
aspect-ratio: "16-9",
// 3. 章节过渡页: 是否为一级大标题自动生成转场页 (默认 false)
new-section-slide: false,
// 4. 校徽配置: 默认使用内置矢量校徽,可传入自定义图像或设为 none
logo: auto,
// 5. 演示文稿元信息
config-info(
title: [基于 Typst 的中国科学院大学学术幻灯片],
short-title: [modern-ucas-slides],
subtitle: [模板使用说明与排版示例],
author: [徐文杰],
short-author: [Wenjie Xu],
institution: [中国科学院大学 · 计算机科学与技术学院],
date: datetime.today(),
),
)
// --------------------------------- 页面调用 --------------------------------- //
#title-slide() // 扉页
#outline-slide() // 目录页
= 第一章 章节标题
#slide(title: [页面标题])[
页面正文内容
]
#ending-slide(title: [演示结束]) // 结束页
语法速查对照
| 排版功能 | 语法示例 | 说明 |
|---|---|---|
| 单栏幻灯片 | #slide(title: [标题])[内容] |
基础幻灯片页面 |
| 多栏并列排版 | #slide(composer: (1fr, 1.2fr))[左栏][右栏] |
使用 composer 指定各栏宽度比例 |
| 动态步进展示 | #pause |
控制元素分步显现 |
| 多级项目列表 | - 一级项目 - 二级项目 - 三级项目 |
自动匹配国科大蓝方块、圆点与破折号 |
| 多级编号列表 | + 一级编号 + 二级编号 |
自动数字递增标号 |
| 标准区块 | #tblock(title: [标题])[...] |
左侧强调条与浅灰底色 |
| 示例区块 | #exampleblock(title: [标题])[...] |
案例与数据展示 |
| 警示区块 | #alertblock(title: [标题])[...] |
边界条件与注意事项 |
| 注记条 | #callout(title: [提示])[...] |
总结观点与提示信息 |
| 定理环境 | #theorem(title: [定理名])[...] |
定理陈述环境 |
| 证明环境 | #proof[...] |
推导证明环境,自动附带证毕符号 |
| 底部脚注 | #blfootnote[...] |
锚定幻灯片底端,不破坏正文布局 |
| 参考文献引用 | @key |
关联 ref.bib 自动提取条目 |
| 参考文献列表 | #bibliography("ref.bib", title: none) |
自动生成参考文献列表 |
许可证
本项目基于 MIT License 开源发布。