这里是华东师范大学研究生 / 本科学位论文的 Typst 模板。
本项目 fork 自 OrangeX4 开发的 modern-nju-thesis。本项目除适配了华东师范大学本科及硕士学位论文的格式要求之外,还做了以下优化:
- 优化图片与表格的排版
- 优化页眉排版和页码显示,支持奇偶页
- 优化目录的缩进与对齐
- 优化引用格式
- 优化段落缩进
- 优化对多行标题 / 院系的处理逻辑
- 优化开启
twoside
参数后的页码逻辑 - 修复中文文字断行的问题
- 增加字数统计功能
对于研究生,我们参考华东师范大研究生院于 2023 年发布的华东师范大学博士、硕士学位论文基本格式要求;对于本科生,我们参考华东师范大学教务处于 2021 年更新的华东师范大学本科生毕业论文(设计)格式要求。格式适配于 2025 年初,后续使用的同学请留意参考校方的最新通知。
示例文档:
- 本科学位论文 modern-ecnu-thesis-bachelor.pdf
- 硕士学位论文,学术学位 modern-ecnu-thesis-master-academic.pdf
- 硕士学位论文,专业学位 modern-ecnu-thesis-master-professional.pdf
- 博士学位论文,学术学位 modern-ecnu-thesis-doctor-academic.pdf
- 博士学位论文,专业学位 modern-ecnu-thesis-doctor-professional.pdf
Why Typst
天下苦 LaTeX 久矣。
Typst 是一个基于 Rust 的现代化的排版引擎。它具备类似 Markdown 的简洁语法、清晰的错误提示、实时预览级的编译性能,又同时具备和 LaTeX 一样精准的排版控制和图灵完备的脚本能力。自 2023 年 4 月开源发布以来,已获得 。现代化的 Typst 可以让你更加专注于论文内容本身,而不被 LaTeX 漫长的编译时间与难以阅读的输出日志困扰。当然,Typst 作为一个年轻的工具还在快速发展,生态远没有 LaTeX 丰富,也有大量的 issue 正在解决的路上。欢迎加入这个社区来共建现代排版生态。
Usage
在 VSCode 中本地编辑(推荐)
请确保本地安装的 typst 版本 >= 0.12.0。
从 Typst Universe 获取模板
- 在 VSCode 中安装 Tinymist Typst 插件。
- 按下
Cmd / Ctrl + Shift + P
打开命令界面,输入Typst: Show available Typst templates (gallery) for picking up a template
打开 Tinymist 提供的 Template Gallery。在列表中搜索modern-ecnu-thesis
,点击❤
按钮收藏,点击+
来创建论文模板。 - 用 VS Code 打开生成的目录,打开
thesis.typ
文件,按下Ctrl / Cmd + K V
或者是点击文档顶部的 Preview 来实时预览。
从 git 获取模板
由于 Typst Universe 上的文件更新可能有延迟,你可以 clone 本仓库来保证使用最新的模板文件。入口文件为 template/thesis.typ
。为了使用本地的模板,你可以将 thesis.typ
首行的:
#import "@preview/modern-ecnu-thesis:0.x.x"
改为:
#import "../lib.typ"
随后,在 template 目录下使用 make
命令编译或 make watch
持续监听文件更新。由于需获取上一级目录的文件,请留意在 typst compile 命令中加入 --root ..
参数。
或者,你也可以参考该文档,将本地仓库 ln
到 typst local package 的目录。例如:
# macOS
export DATA_DIR="~/Library/Application Support"
# Linux
export DATA_DIR="~/.local/share"
ln -s $DATA_DIR/typst/packages/preview/modern-ecnu-thesis/0.x.x
这种方式不需要修改 thesis.typ
文件,直接使用 #import "@preview/modern-ecnu-thesis:0.x.x"
即可。Typst 会优先使用本地文件。
在线编辑
在 Typst Web App 中选择 Start from template
,随后搜索 modern-ecnu-thesis
即可开始使用。
为了在 Web 编辑器中正确显示字体,你需要将这里的字体文件上传到 Typst Web App。
Tips
默认模板有一些示例代码,清空前请留意。
字数统计
模板内置了字数统计功能。统计时会除去标题与标点符号,默认包括了正文与附录的所有内容。一个英语单词或一个 CJK 汉字将会被统计为一个 word,一个任意字符会被统计为一个 char。默认的统计范围为正文 + 附录,这取决于文中 #show: word-count-cjk
的位置。如果希望包括摘要、目录等能容,将这一行移动到 #show: preface
的下一行即可。
如需统计字数,可以使用 make count
命令,你会得到类似如下的输出:
#word: 100
#char: 200
具体而言,该命令使用 typst query
命令来查询嵌入在 mainmatter.typ
里的包含字数信息的 metadata
。你也可以在正文中使用 total-words-cjk
、total-characters
或使用以下代码来显示总字数 / 字符数:
context state("total-words-cjk").final()
context state("total-characters").final()
从 LaTeX 到 Typst
-
Typst 支持的图片格式包括 png, jpeg, gif 与 svg,不支持 pdf 与 eps。你可以使用 InkSpace 或 pdf2svg 等工具将 pdf 转换为 svg 格式:
pdf2svg input.pdf output.svg
-
Typst 现在已经支持图片的浮动排版了。你可以使用
figure
的placement
属性来控制图片位置,可以实现类似 LaTeX 的[htbp]
功能:figure { placement: "top"; caption: "image caption"; ... }[#image("...)] <label>
-
Typst 有一套自己的公式语法,与 LaTeX 大同小异且更加简洁。如果你已经十分熟悉 LaTeX 的语法并希望继续使用,可以引入 MiTeX,它将允许你在 Typst 中使用 LaTeX 数学语法。
-
Typst 原生兼容了 biblatex 引用格式,直接修改 ref.bib 即可。
更多 Typst 的介绍、学习资料与项目背景可参考上游项目的 README。
Contribution
与华东师范大学学位论文相关的请求欢迎在这里发起 issue 或 PR。高校无关的优化与建议请前往上游项目参与讨论,这样可以帮助到更多该项目的未来用户。
因个人精力有限,以下功能暂未完成,欢迎有兴趣的同学贡献代码:)
- 本科
- [ ] 中英双语图片标题
- [ ] 本科学位论文的诚信承诺页
- 研究生
- 暂无
References
- modern-nju-thesis by OrangeX4
- ECNU-Undergraduate-LaTeX by YijunYuan
- 华东师范大学硕士论文模板-2023 by ivyee17
- ECNU_graduation_thesis_template by ECNU-ICA
- ECNU-Dissertations-Latex-Template by Karl Xing
- 关于2023-2024学年第二学期学术型学位硕士研究生论文答辩及学位申请工作的通知 by 华东师范大学研究生院
- 毕业论文常用下载材料 by 华东师范大学教务处
- 学校标识 by 华东师范大学
License
This project is licensed under the MIT License.