Skip to content

Islatri/universal-jlu-thesis

Repository files navigation

吉林大学毕业设计论文模板 | Jilin University Bachelor Thesis Typst Template

Typst Package License: MIT

一个优雅、易用的吉林大学毕业设计论文 Typst 模板,遵循学校的官方格式要求。 | A elegant and easy-to-use Typst template for Jilin University (a university in China) bachelor's thesis, fully compliant with the official formatting requirements.

jlu-dev-cover.png

警告:本模板为民间开源项目,非官方出品,使用前请了解:

  • 模板可能不被学校认可
  • 正式提交时,请务必提前验证格式是否符合要求
  • 建议保持源文件备份,以便随时转换至 Word 或 LaTeX

关于本项目

Typst 是使用 Rust 语言开发的全新文档排版系统,具有 Markdown 级别的简洁语法和 LaTeX 级别的专业排版能力。与 LaTeX 相比,Typst 提供了更快的编译速度、更直观的语法和更便捷的开发体验。

universal-jlu-thesis 是一套基于 Typst 的吉林大学毕业设计论文模板,遵循学校官方的格式要求,参考了 universal-hit-thesis 的设计思路,目前支持本科毕业设计论文格式。

特点

  • 符合吉大格式要求 - 严格按照官方文档实现字号、字体、行距等格式
  • 🚀 开箱即用 - 无需复杂配置,克隆即可开始写论文
  • 📦 模块化设计 - 清晰的目录结构,易于维护和扩展
  • 🎨 美观的排版 - 专业的论文排版效果
  • 📚 拓展性好 - 除了支持本科毕业设计,如果有需要,未来将考虑支持硕士、博士等其他学位的论文格式
  • 🔄 持续维护 - 积极响应社区反馈和需求更新

快速开始

使用方式 Ⅰ:本地编辑(推荐)

这是最常见的使用方式,适合大多数用户。

前置要求

首先安装 Typst,你可以通过以下方式之一进行安装:

  • 访问 Typst GitHub 仓库 下载最新版本的安装包
  • 如果使用 Scoop 包管理器:scoop install typst
  • 如果使用 Homebrew(macOS):brew install typst

安装完成后,确保 typst 命令在你的 PATH 环境变量中。

方法 A:从 Typst Universe 初始化(最快)

typst init @preview/universal-jlu-thesis:0.1.8
cd universal-jlu-thesis
typst compile jlu-bachelor-thesis.typ

方法 B:克隆仓库(开发者推荐)

git clone https://github.com/Islatri/universal-jlu-thesis.git
cd universal-jlu-thesis
node ./template.js // 生成模板文件的js脚本
typst compile ./template/jlu-bachelor-thesis.typ --root ./

实时预览与编辑

使用以下命令进行Sample的实时预览(推荐搭配 VS Code + Tinymist Typst 插件):

typst watch ./template/jlu-bachelor-thesis.typ --root ./

你也可以使用文件夹下提供的.cmd脚本进行编译和预览:

// 编译
./compile.cmd 
// 预览
./preview.cmd

我们推荐你在项目根目录下创建一个 works 文件夹来存放你的论文文件,将 template 文件夹下的所有文件复制进去,并在其中编写你的论文内容。这样可以保持模板文件和你的论文内容的分离,方便管理和更新。

此外还请注意,refs_sample.bib 中的示例文献条目包含了必要的字段(尤其是 language 字段),以确保参考文献能够正确生成 et al. 等格式。refs.bib 由于历史遗留问题不好替换,其中的文献条目是缺少必要字段的。

你可以使用 Crtl+Shift+P 打开命令面板,输入 Typst Preview 来打开预览窗口。

使用方式 Ⅱ:在线编辑

本模板已上传至 Typst Universe,你可以直接在 Typst Web App 中使用:

  1. 访问 Typst Web App
  2. 登录后点击 Start from template
  3. 搜索并选择 universal-jlu-thesis
  4. 即可开始在线编辑

Note: Web App 的排版渲染在浏览器本地执行,实时预览体验与本地编辑相近。

Web App 默认不提供中文字体,建议手动上传以下字体文件以获得最佳排版效果:

  • SimSun.ttf(宋体)
  • SimHei.ttf(黑体)
  • Kaiti.ttf(楷体)
  • TimesNewRoman.ttf 及其变体

基本使用流程

  1. 根据上述方式之一获取模板
  2. 修改论文基本信息(标题、作者、指导教师等)
  3. 按照示例格式,在对应目录编写各章节内容
  4. refs.bib 中添加参考文献
  5. 运行编译命令生成 PDF

Tip: 推荐使用 VS Code 配合 Tinymist Typst 插件进行编辑,可获得语法高亮、实时预览、代码补全等功能。

关于Tools

tools 目录下包含了一个 Python 脚本 CalculateChineseCharacters.py,用于统计论文中中文字符的数量。你可以通过以下命令运行该脚本:

./tools/Calculate.cmd

// 或者在 Linux/macOS 上
./tools/Calculate.sh

通常来说,毕业论文的中文字符要求为 20000 字以上(不包括空格和标点符号)。你可以使用这个工具来检查你的论文是否满足这一要求。

文件结构

universal-jlu-thesis/
├── core/                          # 核心模板文件
│   ├── template.typ               # 主模板定义
│   ├── fonts.typ                  # 字体配置
│   ├── layout.typ                 # 页面布局
│   ├── headings.typ               # 标题样式
│   ├── cover.typ                  # 封面设计
│   ├── abstract.typ               # 摘要页
│   ├── toc.typ                    # 目录
│   ├── figures.typ                # 图表样式
│   ├── bibliography.typ           # 参考文献
│   ├── commitment.typ             # 承诺书
│   ├── authorization.typ          # 授权书
│   └── utils.typ                  # 工具函数
├── template/                      # 模板实例
│   ├── jlu-bachelor-thesis.typ    # 本科毕设主文件
│   ├── refs.bib                   # 参考文献数据库
│   ├── refs_sample.bib            # 参考文献格式示例
│   ├── gbt-7714-2015-numeric.csl  # 参考文献 CSL 样式
│   └── assets/                    # 模板资源文件
├── examples/                      # 示例文件
│   ├── bachelor-example.typ       # 本科毕设完整示例
│   ├── refs.bib                   # 示例参考文献
│   └── assets/                    # 示例资源文件
├── docs/                          # 文档与官方表格
│   ├── 参考文献使用说明.md
│   ├── 版权使用授权书说明.md
│   ├── 吉林大学本科生毕业论文(设计)撰写要求与书写格式.doc
│   ├── 附件Z-1:吉林大学本科毕业论文(设计)封面.doc
│   ├── 附件Z-2:吉林大学本科毕业论文(设计)撰写要求与书写格式.doc
│   ├── 附件Z-3:计院本科毕业论文(设计)撰写参考模板.doc
│   └── 21届毕设表格材料/         # 必填与选填表格模板
├── assets/                        # 项目共用资源
│   ├── images/                    # 图片资源(如 logo.png)
│   └── licenses/                  # 第三方许可证文件
├── scripts/                       # 辅助脚本
│   └── setup.sh
├── tools/                         # 工具脚本
│   ├── CalculateChineseCharacters.py
│   ├── Calculate.cmd / Calculate.sh
│   └── CalculateSample.cmd / CalculateSample.sh
├── works/                         # 用户论文工作目录(推荐)
│   └── assets/                    # 用户论文资源文件
├── lib.typ                        # 库入口文件
├── template.js                    # 模板生成脚本
├── typst.toml                     # Typst 包配置
├── justfile                       # 自动化任务配置
├── compile.cmd                    # 编译脚本(Windows)
├── watch.cmd                      # 实时预览脚本(Windows)
├── thumbnail.png                  # 包缩略图
├── CHANGELOG.md                   # 更新日志
├── LICENSE                        # MIT 许可证
└── README.md                      # 本文件

特性与路线图

支持的学位类型

  • ✓ 本科毕业设计
  • ✗ 硕士学位论文
  • ✗ 博士学位论文

已实现的功能

  • ✓ 规范的封面设计
  • ✓ 双语摘要支持
  • ✓ 自动生成目录
  • ✓ 参考文献管理
  • ✓ 图表编号和引用
  • ✓ 页脚页码设置
  • ✓ 多级标题样式

计划中的功能

  • ✗ 更多学位类型支持
  • ✗ 更多更新的官方论文格式要求文档

依赖

必选依赖

  • Typst 0.14.0 或更高版本

可选依赖

如需使用高级功能,可引入以下包:

// 用于绘制伪代码
#import "@preview/algo:0.3.6": algo, i, d, comment, code

// 或使用 lovelace
#import "@preview/lovelace:0.3.0": *

字体依赖

为获得最佳排版效果,建议安装以下字体:

  • SimSun(宋体)- 正文字体
  • SimHei(黑体)- 标题字体
  • Times New Roman - 英文字体
  • Kaiti(楷体)- 备用字体

本模板严格遵循吉林大学的格式要求。详细的格式对照表请参考下文。

字号对照表

表格一:各个部分对应的字号

论文部分 字号 字体 pt 值 其他格式要求
目录标题 三号 黑体 16pt 居中
目录内容 四号 宋体 14pt 行距 18 磅
中文摘要标题 三号 黑体 16pt 居中
中文摘要内容 小四号 宋体 12pt 1.5 倍行距
关键词 小四号 宋体 12pt
外文摘要标题 三号 Times New Roman 16pt 居中
外文摘要内容 小四号 Times New Roman 12pt 1.5 倍行距
Keywords 小四号 Times New Roman 12pt
正文章标题 三号 宋体 16pt 加粗,居中
正文节标题 四号 宋体 14pt 加粗,居左
正文 2 级标题 四号 宋体 14pt 加粗
正文 3 级标题 小四号 宋体 12pt 不加粗
正文内容 小四号 宋体 12pt
结论标题 三号 宋体 16pt 居中
结论内容 小四号 宋体 12pt 1.5 倍行距
致谢标题 三号 宋体 16pt 居中
致谢内容 小四号 宋体 12pt 1.5 倍行距
参考文献标题 小三号 黑体 15pt 居中
参考文献内容 小四号 宋体 12pt 行距 18 磅
图表 五号 宋体 10.5pt

表格二:各个字号所用于的部分

字号 pt 值 使用部分 字体要求 格式要求
三号 16pt 目录标题、中文摘要标题、外文摘要标题、正文章标题、结论标题、致谢标题 黑体/宋体/Times New Roman 根据具体部分要求
小三号 15pt 参考文献标题 黑体 居中
四号 14pt 目录内容、正文节标题、正文 2 级标题 宋体 根据具体部分要求
小四号 12pt 中文摘要内容、关键词、外文摘要内容、Keywords、正文 3 级标题、正文内容、结论内容、致谢内容、参考文献内容 宋体/Times New Roman 根据具体部分要求
五号 10.5pt 图表 宋体

这两个表格可以帮助您快速查找每个部分应该使用的字号,以及每个字号都用在哪些部分,方便您在撰写毕业论文时进行格式设置。

已知问题

排版相关

  • 尽管模板各部分的字体、字号等设置均与官方 Word 模板一致,但段落排版在视觉上可能存在细微差异
  • 这些差异与字符间距、行距、段落间距等因素有关,属于不同排版系统的正常特性
  • 如遇到严重的排版问题,请通过 GitHub Issues 报告

参考文献相关

  • 当前参考文献格式基于 GB/T 7714-2015 标准实现
  • 某些特殊类型的参考文献(如学位论文)可能存在格式问题
  • Web 版本中可能无法完美支持所有 BibTeX 字段

2026 年 4 月 23 日更新:参考文献的格式请参照 refs_sample.bib 中的示例,确保每条文献都包含必要的字段(主要是 language 字段),否则无法自动截取文献作者,生成 et al.等格式。

系统兼容性

  • 目前主要针对 Windows 系统下的中文字体进行了适配
  • macOS 和 Linux 系统下可能存在字体适配问题
  • 如有兼容性问题,欢迎提交 Issue 或 PR

贡献指南

非常欢迎各种形式的贡献!无论是报告 Bug、提出建议,还是提交代码改进,我们都很感谢。

我们接受的贡献包括

  • 🐛 Bug 报告和修复
  • ✨ 新功能建议和实现
  • 🎨 格式纠正
  • 📝 文档改进
  • 🎓 研究生论文模板(硕士、博士等)
  • 💡 代码优化和重构

如何贡献

  1. Fork 本仓库
  2. 创建新的分支 (git checkout -b feature/your-feature)
  3. 提交你的修改 (git commit -am 'Add some feature')
  4. 推送到分支 (git push origin feature/your-feature)
  5. 创建一个 Pull Request

贡献者风采

感谢所有为这个项目做出贡献的人们!

致谢

相关链接

许可证

本项目采用 MIT 许可证。详见 LICENSE 文件。

这意味着:

  • ✅ 你可以自由使用、修改和分发此模板
  • ✅ 用于商业和私人项目
  • ✅ 必须包含许可证声明

如果这个项目对你有帮助,请考虑给个 Star ⭐️ 来支持我们!

第三方资源 / Third-party assets

资源:template/assets/images/logo.png 来源:jlshen025 / JLUThesis(GitHub) 许可证:MIT License 署名:"logo.png © jlshen025 (JLUThesis), 许可证: MIT License,来源: https://github.com/jlshen025/JLUThesis/blob/87476eb1a320716c7d1c5711bba10a035868a354/figures/logo.png" 说明:MIT 许可证允许再分发和衍生作品,但请保留原始版权声明与许可证文本。如果你将本仓库用于发布/分发(例如上传到 Typst Universe),本图像已标注为 MIT,可随仓库一并分发。

Asset: template/assets/images/logo.png Source: jlshen025 / JLUThesis (GitHub) License: MIT License Attribution: "logo.png © jlshen025 (JLUThesis), License: MIT License, Source: https://github.com/jlshen025/JLUThesis/blob/87476eb1a320716c7d1c5711bba10a035868a354/figures/logo.png" Note: The MIT license permits redistribution and derivative works provided that the copyright and license text are included. If you publish/distribute this project (for example on Typst Universe), this image is licensed MIT and may be distributed with the repository;