-
Notifications
You must be signed in to change notification settings - Fork 63
参与开发
本模板的开发维护主要在 TeX Live 2021 下进行,内部代码主要由 LaTeX3 语法实现。
从0.9.0版以后,本模板从以 DocStrip(.dtx
) 格式进行维护。DocStrip 格式是一种“文学编程”,在单个文件中合并了 LaTeX 源代码和说明文档,更有利于宏包的维护与发布。
如果你希望瞅瞅这个模板最初长什么样,可以切换到
legacy
分支。相信我,回过头来看真的惨不忍睹。
由于文档类格式文件 .cls
的内容包含于 .dtx
,可以通过简单命令直接释放,所以前者实际上没必要在仓库中保留,仅通过 Releases 页面提供下载。
要使用 .dtx
文件,请在 source
文件夹下打开终端,使用以下命令:
xetex njuthesis.dtxl3build ctan # 释放文档类格式文件
latexmk njuthesis.dtx # 生成并查看内置的文档
模板的构建测试是通过 l3build
宏包实现的。该工具的配置信息存储在仓库根目录下的 build.lua
文件中。
常用命令包括:
l3build ctan # 生成上传 CTAN 所需的压缩包
l3build doc # 编译说明手册
l3build install # 使用仓库中的源代码安装宏包
l3build
会将相关文件拷贝到仓库根目录下的 build
文件夹中进行操作。成功生成的说明手册和压缩包会被拷贝至仓库根目录下。
通过 GitHub Action 实现了对模板的自动检查。所有被推送到主分支的 commit
都会接受构建检查,检查脚本位于 .github/workflows/
文件夹下。不同推送方式会触发不同的构建脚本。普通推送触发的是 build.yml
,含有标签的推送触发的是 release.yml
。后者会生成用于发布的说明手册和两种压缩包。
-
当你想要将某次
commit
作为Release
版本发布时,需要对该commit
打tag
,例如:git tag "v0.14.0"
-
将该tag推送到主分支,版本
v0.14.0
的源代码就会被成功发布git push origin "v0.14.0"
以上方式生成的压缩包可从 njuthesis 的 CTAN 页面上传更新。
Copyright © 2021 - 2022 NJU-LUG