Shuimu-touying-zen: 清华简约主题 Touying 模板
English | 简体中文
根据 THU-PPT-Theme 简约主题 PPT 重建。原稿为 16:9、960 × 540 pt,采用清华紫 #660874 (见色彩规范)、灰色封面标题框、目录竖线及正文页上下横条。
文件
theme.typ:可复用的主题和页面函数。assets/:各院系标识、校园剪影。tools/binarize.py:可选的二值化脚本,用于把位图转成纯黑白素材。gallery/:示例页面和生成 SVG 的 inkscape 源图。
开始使用
直接编辑 main.typ。VS Code 中可用现有的 Tinymist 预览和导出 PDF;也可在本目录运行:
typst compile main.typ main.pdf
typst watch main.typ main.pdf
本次使用本机 Tinymist 0.15.6 编译验证,依赖固定为 @preview/touying:0.7.4。第一次在新设备编译需要下载 Touying 及其依赖。主题默认的中文字体为黑体(SimHei),英文为 Arial,公式独立使用 New Computer Modern Math;页脚副标题的中文使用华文新魏(STXinwei),英文仍使用 Arial。随包的 main.typ 把 font 覆盖为 ("Arial", "Noto Sans SC"),未覆盖 subtitle-font。换设备时请确保这些字体可用,或通过对应参数指定替代字体。
最小示例:
#import "@preview/touying:0.7.4": *
#import "@preview/shuimu-touying-zen:0.1.0": *
#show: group-meeting-theme.with(
config-info(
title: [报告标题],
subtitle: [博士生论坛],
author: [姓名],
institution: [清华大学物理系],
date: datetime.today(),
),
)
#title-slide()
#outline-slide()
= 研究背景
== 研究问题
- 第一个问题
- 第二个问题
= 本周进展
== 主要结果
这里填写正文。
#closing-slide()
= 一级标题定义章节,== 二级标题开始新的一页。左上角的 Part 01、Part 02 自动随章节更新。每个章节开始前自动显示一次目录,当前章节行(含方块)为清华紫,其余行为灰色。封面、目录参与逻辑页码计数,但不显示页码。动画的多个步骤显示同一页码。
主题设置
下面这些参数都写在 group-meeting-theme.with(...) 中:
| 参数 | 默认值 | 用途 |
|---|---|---|
primary |
tsinghua-purple |
横条、竖线、标题与强调文字的颜色,同时决定预设 SVG 标识的重着色 |
font |
("Arial", "SimHei") |
英文与中文字体 |
math-font |
"New Computer Modern Math" |
公式字体,独立于全局字体 |
subtitle-font |
("Arial", "STXinwei") |
页脚副标题的英文与中文字体 |
body-size |
22pt |
正文字号 |
title-size |
28pt |
正文页顶部标题字号,长标题会适当缩小 |
section-slides |
true |
自动插入当前章节的高亮目录,false 可关闭 |
outline-v-spacing |
auto |
所有目录的条目间距,默认均匀分布,可设为 32pt 等长度 |
show-contents |
true |
是否显示目录,false 可隐藏 |
part-prefix |
"Part" |
左上角章节编号的前缀 |
footer |
auto |
默认显示日期和副标题;自定义内容可覆盖,none 可隐藏 |
show-page-number |
true |
是否显示正文页页码 |
cover-logo-name |
"university-logo.svg" |
封面/目录标识使用的 assets/ 预设文件名 |
header-logo-name |
"university-logo.svg" |
正文页右上角标识使用的 assets/ 预设文件名 |
cover-logo |
none |
直接指定封面/目录标识,优先于 cover-logo-name |
header-logo |
none |
直接指定正文页右上角标识,优先于 header-logo-name |
campus |
none |
直接指定封面/目录右下角剪影;未指定(none)时自动读取预设 campus.svg |
例如,更改横条背景色并更换封面标识:
#show: group-meeting-theme.with(
primary: rgb("194f6b"),
cover-logo-name: "phys-logo.svg",
config-info(title: [报告标题]),
)
标识与剪影
标识有两套来源,-name 参数决定预设,cover-logo / header-logo / campus 决定自定义内容:
- 仓库预设:
cover-logo-name、header-logo-name接受assets/下的文件名,默认都是"university-logo.svg";campus未指定时使用assets/campus.svg。 - 自定义内容:
cover-logo、header-logo、campus接受image(...)、路径字符串,或任意 Typst 内容;只要不是none,就覆盖对应的预设。
主题读取预设 SVG 时会把其中的清华紫 #660874 替换为主色:
| 位置 | 替换规则 |
|---|---|
cover-logo-name |
仅替换 #660874 → primary,标识随主色变色 |
header-logo-name |
替换所有填充色 → 白色(正文页顶部是彩色横条,需反白) |
campus(预设) |
仅替换 #660874 → primary |
实测 primary: blue 时封面标识输出 #005795,primary: red 时输出 #D62728。
直接传入的图片不做任何重着色,保持原文件颜色。因此:
- 想让标识跟随主色 → 用
-name预设(或传一个本身就是主色的 SVG)。 - 想让标识保持原始配色 → 用
cover-logo: image("assets/university-logo.svg")直接传入。
可用预设:
| 预设 | 说明 |
|---|---|
university-logo.svg |
清华大学标识(默认) |
phys-logo.svg |
物理系标识 |
EE-logo.svg |
电子工程系标识 |
energy-power-logo.svg |
能源与动力工程系标识 |
arts-logo.svg |
美术学院标识 |
journalism-logo.svg |
新闻与传播学院标识 |
campus.svg |
校园剪影(默认剪影) |
字符串路径会被自动当作图片打开:cover-logo: "assets/my-logo.png" 等价于 cover-logo: image("assets/my-logo.png")。
关于隐藏:这三个参数传 none 表示"沿用预设/默认",不是隐藏。要真正隐藏,请传入一张全透明图片(如 1×1 透明 PNG);注意不要传空内容 [],scale-to-fit 会因除零报错。
除主色 tsinghua-purple(清华紫 #660874,即 primary 默认值)外,主题另导出以下颜色变量,可直接用于 text、线条或图表:
#text(tsinghua-magenta)[品红] // #D93379,可作替代主色
#text(red)[红色] // #D62728
#text(blue)[蓝色] // #005795
#text(green)[绿色] // #1A5F1A
#text(orange)[橙色] // #C45C00
页面与内容
封面
// 标题、作者、单位居中,日期和副标题放在左下角。
#title-slide()
// 或单独指定这一页的标题、标识和补充内容。
// logo 直接传入图片,不做重着色(区别于 group-meeting-theme 的 cover-logo-name)。
#title-slide(title: [标题], subtitle: [博士生论坛报告],
logo: image("assets/phys-logo.svg"), extra: [课题组名称])
封面标题建议控制在两行内;标题框尺寸固定,长标题需要主动换行或精简。
config-info.subtitle 默认仅出现在页脚日期后面,例如 2026-09-07 博士生论坛报告。日期和副标题(包括中英文)均为 18pt,中间间隔 18pt。封面页脚使用清华紫,左端与标题框左端(47.18pt)对齐,文字下缘与右下角校园图下缘(515.25pt)对齐;结束页沿用这一位置。正文页脚使用白色,并在底部横条内与页码共用基线、垂直居中。总目录和章节高亮目录均不显示页脚。若需要保留原稿的并排标题形式,仍可显式使用 #title-slide(inline-subtitle: true)。
目录
#outline-slide() 自动收集一级标题并生成可点击的目录。目录文本框以整张 slide 的垂直中线(270pt)为中心,上下留白相等,避开顶部标题、标识和底部校园剪影。未指定间距时,多行条目均匀铺满整个可用文本区(120–420pt);只有一个章节时,该行居于 slide 正中。也可手动指定条目和垂直间距:
#outline-slide(title: [目录], v-spacing: 32pt, items: (
[研究背景],
[本周进展],
[后续计划],
))
默认目录适合约 3–5 个章节;条目过长或过多时,应拆成多页并分别传入 items。
单页的 v-spacing 覆盖全局 outline-v-spacing;两者均为 auto 时自动分配空白。手动间距表示相邻条目之间的净空白,此时将所有条目组成的整个文本组垂直居中,而非从顶部开始排列。active: 2 可手动高亮第 2 行,active: auto 高亮当前章节,active: none 为不高亮的总目录。自动章节目录无需手动调用。
普通页和双栏
// 二级标题方式,自动读取章节编号。
== 实验结果
这里填写正文。
// 显式创建页面并指定顶部文字。
#slide(title: [实验结果], part: [Part 02])[
这里填写正文。
]
// 双栏比例可修改。
#slide(title: [理论模型], composer: (1fr, 1fr))[
左栏内容。
][
$ E = m c^2 $
]
正文可直接使用 Typst 的列表、数学公式、image、table、figure 等。为了保留一页对应一张幻灯片的关系,主题关闭自动溢出分页,并启用 Touying 的正文溢出警告。出现警告时请减少内容或手动拆页。
动画与讲义
== 逐步显示
第一步。
#pause
第二步。
导出讲义时,在主题参数中加入 config-common(handout: true),每张幻灯片只保留最终步骤。#meanwhile、演讲者备注等继续使用 Touying 提供的接口。
结束页
#closing-slide(body: [谢谢!], subtitle: [欢迎讨论])
素材说明
assets/ 中的标识以清华紫 #660874 作为占位色,主题据此重着色(见上文"标识与剪影")。封面框、目录竖线和正文横条均由 Typst 原生图形构成,文字、表格和公式可直接编辑。
各标识取自清华大学形象识别规范及各院系公开资料;campus 剪影来自原稿渲染结果。为兼容 Typst,部分 SVG 移除了背景矩形、将裁剪组的变换移到路径上并收紧了画布留白。标识与图片的权利归原权利人,不因模板转换而改变。
字体渲染、段落间距和 SVG 标识与 PPT 原稿存在细微差异,本模板保留原稿的主要几何尺寸和设计。
Touying 的接口可参考 官方文档 和 0.7.4 包页面。
预览
