modern-ucas-thesis
基于 Typst 的中国科学院大学学位论文模板,遵循《中国科学院大学研究生学位论文撰写规范指导意见(2022年)》与《中国科学院大学本科生毕业论文(设计)撰写规范指导意见(2023年10月修订)》格式要求。
⚠️ 免责声明:本项目非官方出品,使用前请自行核对学校最新格式要求。
快速开始
1. 安装 Typst
# macOS
brew install typst
# Windows
winget install --id Typst.Typst
# 或使用官方安装脚本
curl -fsSL https://typst.community/install | sh
2. 使用项目
# 克隆仓库
git clone https://github.com/Vncntvx/modern-ucas-thesis.git
cd modern-ucas-thesis
# 编译论文
typst compile template/thesis.typ --root . --font-path fonts
# 编译开题报告(本科/研究生共用入口,见 template/proposal.typ)
typst compile template/proposal.typ --root . --font-path fonts
# 或开启实时预览
typst watch template/thesis.typ --root . --font-path fonts
3. 配置论文信息
编辑 template/thesis.typ:
#import "../lib.typ": documentclass
#let (
doc, preface, mainmatter, appendix,
cover, decl-page, abstract, abstract-en,
outline-page, list-of-figures-and-tables, notation,
bilingual-bibliography, acknowledgement, backmatter,
bifigure, bitable, continued-table, auto-table, aligned-equation,
) = documentclass(
doctype: "doctor", // "bachelor" | "master" | "doctor"
degree: "academic", // "academic" | "professional"
anonymous: false, // 盲审模式
twoside: true, // 双面打印模式
fontset: "mac", // "windows" | "mac" | "fandol" | "adobe"
info: (
title: ("论文标题", "副标题(可选)"),
title-en: "Thesis Title",
author: "张三",
author-en: "Zhang San",
// 导师:结构化字典列表 (name:, title:, affiliation:),多导师第一导师在前
supervisors: (
(name: "李四", title: "教授", affiliation: "中国科学院××研究所"),
(name: "王五", title: "研究员", affiliation: "中国科学院××研究所"),
),
supervisors-en: (
(name: "Si Li", title: "Professor", affiliation: "Institute of XXX, Chinese Academy of Sciences"),
(name: "Wu Wang", title: "Professor", affiliation: "Institute of XXX, Chinese Academy of Sciences"),
),
department: "中国科学院××研究所",
major: "管理科学与工程",
category: "管理学博士",
submit-date: datetime(year: 2024, month: 6, day: 1),
),
bibliography: bibliography.with("ref.bib"),
)
#show: doc
#cover()
#decl-page()
#show: preface
// 摘要、目录、符号表...
#show: mainmatter
// 正文...
4. 配置开题报告
编辑 template/proposal.typ(结构与论文同构,经 proposalclass 组装):
#import "../lib.typ": proposalclass
#let (
doc, cover, notice, outline-page, mainmatter, bilingual-bibliography,
bifigure, bitable, continued-table, auto-table, aligned-equation,
) = proposalclass(
doctype: "master", // "bachelor" | "master"(当前版式一致)
fontset: "mac",
info: (
title: "论文开题题目",
author: "张三",
student-id: "1234567890",
// 指导教师:填写 supervisors-full 或 supervisors-split 其一;未使用的键可省略
supervisors-full: "李四教授",
degree-category: "工学硕士",
major: "计算机科学与技术",
research-direction: "智能信息处理",
department: "中国科学院××研究所",
submit-date: datetime.today(),
),
bibliography: bibliography.with("ref.bib"),
// cfg: (outline-depth: 2),
)
#show: doc
#cover()
#notice()
#show: mainmatter
#outline-page()
// 正文用 = / == / ===,编号 1. / 1.1. / 1.1.2,段落自动首行缩进
#bilingual-bibliography(full: true)
项目结构
modern-ucas-thesis/
├── template/ # 论文与开题报告源文件(模板入口)
│ ├── thesis.typ # 学位论文主文件
│ ├── proposal.typ # 开题报告主文件
│ ├── ref.bib # 参考文献(论文与开题共用)
│ └── images/ # 图片目录
├── pages/ # 具体页面实现(封面、声明、摘要、目录、开题报告等)
├── layouts/ # 页面级布局(doc / preface / mainmatter / appendix)
├── utils/ # 可复用工具(双语图表、续表、对齐公式、字体、编号等)
├── assets/ # 静态资源(校徽等 UCAS 视觉标识)
├── fonts/ # 字体目录(用户自行放入字体文件,见 fonts/README.md)
├── docs/ # 文档(规范原文、定制指南、FAQ 等)
├── lib.typ # 主库入口(documentclass / proposalclass 闭包工厂)
├── typst.toml # Typst 包配置
└── Makefile # 格式化与检查脚本
功能特性
实现状态对照《中国科学院大学研究生学位论文撰写规范指导意见(2022年)》docs/RULES-GRAD.md 逐项核验代码现状。状态含义:✅ 已完成|🟡 部分实现/待完善|❌ 未开始|➖ 规范未强制要求。
文档配置
| 功能项 |
状态 |
规范依据 / 说明 |
| 全局信息配置(文档类型、学位类型、字体等) |
✅ |
documentclass 闭包工厂统一注入 |
| 盲审模式 |
✅ |
anonymous: true 自动隐藏作者/导师等字段 |
| 双面打印模式 |
✅ |
twoside: true 自动插入空白页使各部分从奇数页开始 |
封面与前置页
| 功能项 |
状态 |
规范依据 / 说明 |
| 研究生封面(中/英文,硕/博) |
✅ |
标题黑体小三号加粗、字段宋体四号加粗 2 倍行距、日期 Times New Roman 四号加粗 |
| 本科生封面 |
✅ |
经 bachelor-cover.typ 实现,由 doctype 分发 |
| 书脊 |
🟡 |
规范要求:黑体小四号,上=题目、中=作者、下=“中国科学院大学”,距上下边界 3cm |
| 原创性声明与授权说明 |
✅ |
研究生与本科生均已实现(含统一声明模板,样张3) |
| 中文摘要(含关键词) |
✅ |
“摘 要”二字间空一字符,黑体四号加粗居中;3~5 关键词,中文逗号分隔 |
| 英文摘要(含关键词) |
✅ |
“Key Words”加粗,首字母大写,英文逗号分隔 |
| 目录 |
✅ |
章节缩进至三级(一级顶格、二级 1 字符、三级 2 字符),页码右对齐 |
| 图表目录 |
✅ |
先列图后列表,置于目录后另页编排 |
| 符号表(术语与符号说明) |
✅ |
置于目录之后、正文之前,另页编排 |
正文排版
| 功能项 |
状态 |
规范依据 / 说明 |
| 章节标题编号 |
✅ |
阿拉伯数字三级(最多四级),章“第1章”居中,子节“1.1 / 1.1.1”顶左 |
| 页眉 |
✅ |
奇数页=当前章/部分名,偶数页=论文题目;宋体小五号居中,下加分隔线 |
| 页码制式 |
✅ |
前言大写罗马数字居中;正文默认 twoside: true,奇数页右下、偶数页左下,单面时居中 |
| 脚注 |
✅ |
五号宋体,章/部分起始重置计数 |
| 尾注 |
➖ |
规范未强制要求 |
| 交叉引用(图/表/公式/章节) |
✅ |
统一前缀:@fig: / @tbl: / @eqt: |
| 段落格式 |
✅ |
宋体小四号,1.25 倍行距,首行缩进 2 字符,两端对齐 |
| 代码块语法高亮 |
✅ |
Typst 原生 raw block 支持 |
图表处理
| 功能项 |
状态 |
规范依据 / 说明 |
| 双语图表标题 |
✅ |
图题居图下、表题居表上,宋体五号加粗居中,1.25 倍行距 |
| 图表注释(表注、图注) |
✅ |
“注:“加粗,左缩进 2 字符,续行对齐 |
| 图表按章编号 |
✅ |
形如 图1-1、表3-2,分章连续编码 |
| 自动续表(长表跨页) |
✅ |
auto-table 主动分页,自动重复表头并标注“续表”/“(continued)” |
| 手动续表 |
✅ |
continued-table 需配合源表 label 使用 |
| 附录图表编号 |
✅ |
沿用正文编号形式(1-1),与规范“附录图表参考正文编号方式”一致 |
| 三线表 |
✅ |
auto-table 默认三线表;table/bitable 可用 table.hline() 手写 |
| 卧排表(横向表格) |
✅ |
bitable/bifigure/auto-table 内置 landscape: true,逆时针旋转 90°,方位“顶左底右” |
| 地图审图号注释辅助 |
🟡 |
规范要求涉国界图件注明“审图号 GS(2021)××××号”,需用户手动添加 |
公式与数学
| 功能项 |
状态 |
规范依据 / 说明 |
| 行间公式编号 |
✅ |
编号置于括号内,右端对齐 |
| 多行公式对齐与编号 |
✅ |
aligned-equation 编号对齐到最后一行右侧 |
| 公式按章编号 |
✅ |
形如 (3-1),分章连续编码 |
| 不编号公式 |
✅ |
以 <-> 标签标识 |
| 附录公式编号 |
✅ |
形如 (1-1),沿用正文编号形式 |
| 长公式转行 |
✅ |
在 + - × ÷ < > 等运算符后转行(Typst 原生支持) |
| 定理/引理/证明环境 |
➖ |
规范未强制要求 |
参考文献
| 功能项 |
状态 |
规范依据 / 说明 |
| 双语参考文献标题 |
✅ |
中文“参考文献”,英文自动处理 |
| GB/T 7714-2015 格式(顺序编码制) |
✅ |
默认 gb-7714-2015-numeric |
| GB/T 7714-2015 格式(著者—出版年制) |
🟡 |
可经 style: "gb-7714-2015-author-date" 切换,但未提供默认配置与样式校验 |
| 中英文文献格式自动转换 |
✅ |
自动识别中英文文献并转换“等/卷/册/译/版”等术语 |
| 文献引用与交叉引用 |
✅ |
@citekey |
附录与后置
| 功能项 |
状态 |
规范依据 / 说明 |
| 附录章节 |
✅ |
一级标题无编号,子节 1.1,图表 1-1,公式 (1-1) |
| 致谢页 |
✅ |
标题二字间空一字符,末尾具日期与封面一致 |
| 作者简介与学术成果 |
✅ |
含教育/工作经历、论文清单(同参考文献格式)、专利、项目、获奖 |
| 学位类别中英文对照表 |
🟡 |
规范附件2,仅作为附录示例表格存在于 thesis.typ,未抽取为可复用组件 |
字体与排版
| 功能项 |
状态 |
规范依据 / 说明 |
| 预定义字体组 |
✅ |
windows / mac / fandol / adobe 四套,含宋/黑/楷/仿宋/等宽 |
| 自定义字体配置 |
✅ |
fonts 参数覆盖 fontset 单项 |
| 中西文字体混排 |
✅ |
中文宋体/黑体等 + 英文 Times New Roman |
| 中文伪加粗 |
✅ |
非 fandol 字体组经 @preview/cuti:0.4.0 启用 |
其他文档类型
| 功能项 |
状态 |
规范依据 / 说明 |
| 本科生开题报告 |
✅ |
template/proposal.typ,proposalclass(doctype: "bachelor");版式暂与研究生一致 |
| 研究生开题报告 |
✅ |
template/proposal.typ,proposalclass(doctype: "master");样式在 pages/proposal.typ |
| 开题报告正文编号与缩进 |
✅ |
标题 1. / 1.1. / 1.1.2,正文首行缩进 2em |
| 开题报告参考文献 |
✅ |
与学位论文共用 bilingual-bibliography 与 template/ref.bib |
文档
开发
# 格式化代码(需先安装 typstyle)
make format # 格式化所有 .typ
make format-check # 只检查不改,CI 守门
make lint-quick # 检查 typst.toml 字段与入口,不依赖外部 index
致谢
许可证
本项目代码采用 MIT 许可证开源。
关于 UCAS 标识:assets/vi/ 目录下的校徽、Logo 等视觉标识的版权归中国科学院大学所有。本项目将其纳入仅为方便用户撰写学位论文(属于个人学习/教学合理使用范畴),请勿用于其他商业或官方用途。如需商用授权,请联系学校相关部门。详见 docs/LOGO_COPYRIGHT.md。
报告问题 ·
讨论交流 ·
贡献代码