Skip to content

Commit

Permalink
chore: bump version to 0.3.0
Browse files Browse the repository at this point in the history
  • Loading branch information
OrangeX4 committed Apr 7, 2024
1 parent e185d93 commit aee420f
Show file tree
Hide file tree
Showing 4 changed files with 23 additions and 11 deletions.
22 changes: 13 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,17 +12,14 @@ Typst 非官方中文交流群:793548390

- Typst 是一门新生的排版标记语言,还做不到像 Word 或 LaTeX 一样成熟稳定。
- 该模板并非官方模板,而是民间模板,**存在不被认可的风险**
- 仍有部分未能解决的问题(需要等到 Typst 官方支持,可能还需要几个月)
- 没有伪粗体,无法给部分字体加粗,例如「楷体」和「仿宋」。
- <del>无法自定义参考文献格式。</del> 现已支持 [自定义 CSL 样式](https://typst.app/docs/reference/meta/bibliography/)


## 优势

Typst 是可用于出版的可编程标记语言,拥有变量、函数与包管理等现代编程语言的特性,注重于科学写作 (science writing),定位与 LaTeX 相似。可以阅读我的 [一篇知乎文章](https://zhuanlan.zhihu.com/p/669097092) 进一步了解 Typst 的优势。

- **语法简洁**:上手难度跟 Markdown 相当,文本源码阅读性高,不会像 LaTeX 一样充斥着反斜杠与花括号。
- **编译速度快**:Typst 使用 Rust 语言编写,即 typ(e+ru)st,目标运行平台是WASM,即浏览器本地离线运行;也可以编译成命令行工具,采用一种 **增量编译** 算法和一种有约束的版面缓存方案,**文档长度基本不会影响编译速度,且编译速度与常见 Markdown 渲染引擎渲染速度相当**
- **编译速度快**:Typst 使用 Rust 语言编写,即 typ(esetting+ru)st,目标运行平台是WASM,即浏览器本地离线运行;也可以编译成命令行工具,采用一种 **增量编译** 算法和一种有约束的版面缓存方案,**文档长度基本不会影响编译速度,且编译速度与常见 Markdown 渲染引擎渲染速度相当**
- **环境搭建简单**:不需要像 LaTeX 一样折腾几个 G 的开发环境,原生支持中日韩等非拉丁语言,无论是官方 Web App 在线编辑,还是使用 VS Code 安装插件本地开发,都是 **即开即用**
- **现代编程语言**:Typst 是可用于出版的可编程标记语言,拥有 **变量、函数、包管理与错误检查** 等现代编程语言的特性,同时也提供了 **闭包** 等特性,便于进行 **函数式编程**。以及包括了 `[标记模式]``{脚本模式}``$数学模式$` 等多种模式的作用域,并且它们可以不限深度地、交互地嵌套。并且通过 **包管理**,你不再需要像 TexLive 一样在本地安装一大堆并不必要的宏包,而是 **按需自动从云端下载**

Expand All @@ -33,10 +30,18 @@ Typst 是可用于出版的可编程标记语言,拥有变量、函数与包

快速浏览效果: 查看 [thesis.pdf](https://github.com/nju-lug/modern-nju-thesis/releases/latest/download/thesis.pdf),样例论文源码:查看 [thesis.typ](https://github.com/nju-lug/modern-nju-thesis/blob/main/template/thesis.typ)

**你只需要修改根目录下的 `thesis.typ` 文件即可,基本可以满足你的所有需求`nju-thesis` 目录下的代码可以用于参数查阅,但是理论上你不应该对其进行更改**
**你只需要修改根目录下的 `thesis.typ` 文件即可,基本可以满足你的所有需求。**

如果你认为不能满足你的需求,可以先查阅后面的 [Q&A](#Q%26A) 部分。

使用起来只需要导入

```typst
#import "@preview/modern-nju-thesis:0.3.0": documentclass
```

即可。

### 在线编辑

Typst 提供了官方的 Web App,支持像 Overleaf 一样在线编辑:https://typst.app/project/rgiwHIjdPOnXr9HJb8H0oa
Expand Down Expand Up @@ -239,11 +244,10 @@ PS: 虽然与 Overleaf 看起来相似,但是它们底层原理并不相同。

## 开发者指南

### 外部目录
### template 目录

- `thesis.typ` 文件: 你的论文源文件,可以随意更改这个文件的名字,甚至你可以将这个文件在同级目录下复制多份,维持多个版本。
- `bibs` 目录: 放置参考文献的目录。
- `nju-thesis` 目录: 模板目录,放置模板的所有内容,**这个目录可以作为一个 Local Package 安装到本地包目录**,因此理论上你不应该修改这个目录下的任何东西。
- `ref.bib` 文件: 放置参考文献的文件。


### 内部目录
Expand All @@ -253,7 +257,7 @@ PS: 虽然与 Overleaf 看起来相似,但是它们底层原理并不相同。
- `pages` 目录: 包含了模板用到的各个 **独立页面**,例如封面页、声明页、摘要等,即 **会渲染出不影响其他页面的独立页面的函数**
- `layouts` 目录: 布局目录,存放着用于排篇布局的、应用于 `show` 指令的、**横跨多个页面的函数**,例如为了给页脚进行罗马数字编码的前言 `preface` 函数。
- 主要分成了 `doc` 文稿、`preface` 前言、`mainmatter` 正文与 `appendix` 附录/后记。
- `template.typ`:
- `lib.typ`:
- **职责一**: 作为一个统一的对外接口,暴露出内部的 utils 函数,例如三线表 `tlt` 函数。
- **职责二**: 使用 **函数闭包** 特性,通过 `documentclass` 函数类进行全局信息配置,然后暴露出拥有了全局配置的、具体的 `layouts``pages` 内部函数。

Expand Down
3 changes: 1 addition & 2 deletions template/thesis.typ
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
#import "../lib.typ": documentclass
// #import "@preview/modern-nju-thesis:0.3.0": documentclass
#import "@preview/modern-nju-thesis:0.3.0": documentclass

#let (
// 布局函数
Expand Down
Binary file added thumbnail.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
9 changes: 9 additions & 0 deletions typst.toml
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,12 @@ entrypoint = "lib.typ"
authors = ["OrangeX4"]
license = "MIT"
description = "南京大学学位论文模板。Modern Nanjing University Thesis."
repository = "https://github.com/touying-typ/touying"
keywords = ["Nanjing University", "thesis"]
categories = ["thesis"]
exclude = ["images"]

[template]
path = "template"
entrypoint = "thesis.typ"
thumbnail = "thumbnail.png"

0 comments on commit aee420f

Please sign in to comment.