forked from werifu/HUST-typst-template
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsample.typ
244 lines (160 loc) · 8.4 KB
/
sample.typ
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
#import "template.typ": *
#show: project.with(
title: "基于 ChatGPT 的狗屁通文章生成器",
author: "作者",
abstract_zh: [
先帝创业未半而中道崩殂,今天下三分,益州疲弊,此诚危急存亡之秋也。然侍卫之臣不懈于内,忠志之士忘身于外者,盖追先帝之殊遇,欲报之于陛下也。诚宜开张圣听,以光先帝遗德,恢弘志士之气,不宜妄自菲薄,引喻失义,以塞忠谏之路也。
宫中府中,俱为一体;陟罚臧否,不宜异同。若有作奸犯科及为忠善者,宜付有司论其刑赏,以昭陛下平明之理,不宜偏私,使内外异法也。
],
abstract_en: [
The founding emperor passed away before his endeavor was half completed, and now the empire is divided into three parts. Yizhou is exhausted and in decline, and this is truly a critical moment of survival or destruction. However, the palace guards are tirelessly serving within, and loyal subjects are sacrificing themselves outside, all in order to repay the late emperor's kindness and show loyalty to the current emperor. It is appropriate to listen to wise advice, to honor the late emperor's virtues, to inspire the courage of loyal subjects, and not to belittle oneself or distort the truth, in order to keep the path of loyal counsel open.
The palace and government are one entity, and punishments should be consistent. If there are those who commit crimes or show loyalty and virtue, they should be judged by the legal system to demonstrate your fairness as emperor, rather than showing partiality that would create different laws for those inside and outside the palace.
],
keywords_zh: ("关键词1", "关键词2", "关键词3"),
keywords_en: ("Keyword 1", "Keyword 2", "Keyword 3"),
school: "复制粘贴写报告学院",
id: "U000114514",
mentor: "你的老板",
class: "XXXX 专业 0000 班",
date: (1926, 8, 17)
)
= 绪论
== typst 介绍
#indent_par()[
typst 是最新最热的标记文本语言,定位与 LaTeX 类似,具有极强的排版能力,通过一定的语法写文档,然后生成 pdf 文件。与 LaTeX 相比有以下的优势:
]
1. 编译巨快:因为提供增量编译的功能所以在修改后基本能在一秒内编译出 pdf 文件,typst 提供了监听修改自动编译的功能,可以像 Markdown 一样边写边看效果。
2. 环境搭建简单:原生支持中日韩等非拉丁语言,不用再大量折腾字符兼容问题以及下载好几个 G 的环境。只需要下载命令行程序就能开始编译生成 pdf。
3. 语法友好:对于普通的排版需求,上手难度跟 Markdown 相当,同时文本源码阅读性高:不会再充斥一堆反斜杠跟花括号
个人观点:跟 Markdown 一样好用,跟 LaTeX 一样强大
== 基本语法
=== 代码执行
#indent_par()[
正文可以像前面那样直接写出来,隔行相当于分段。
]
你可能发现了前面第一段带有一个 \#indent_par 的调用,这个就是函数的调用方式,在表示 content 的内容当中,以\#开头表示要执行代码,()内表示传入的参数,[]表示文本内容(相当于一个特殊的参数,这是一个语法糖)如果没有内容,可以省略[]。
这个函数的作用是为那一段增加两个中文字符的缩进,这个是由于 typst 的设计问题导致的,在洋文的规范里,第一段不会加上缩进……因此见到没缩进但是需要的时候就包上那样的函数即可,表示 indent paragraph。
=== 标题
#indent_par()[
类似 Markdown 里用 \# 表示标题,typst 里用 = 表示标题,一级标题用一个 =,二级标题用两个 =,以此类推。
]
间距、字体等我都排版好了。
\#pagebreak() 函数相当于分页符,在华科的要求里,第一集标题应当分页,请手动。
#pagebreak()
= 本模板相关封装
== 图片
#indent_par()[
除了排版,这个模板主要改进了图片、表格、公式的引用,编号以第x章来计算。
]
图用下面的方式来引用,img 是对 image 的包装,caption 是图片的标题。
#img(
image("assets/avatar.jpeg", height: 20%),
caption: "我的 image 实例 1",
)
引用的话就在 img 后加上标签<label>,使用 at 来引用即可,比如@img2 就是这么引用的。
#img(
image("assets/avatar.jpeg", height: 20%),
caption: "我的 image 实例 2",
) <img2>
== 表格
#indent_par()[
表格跟图片差不多,但是表格的输入要复杂一点,建议去 typst 官网学习一下,自由度特别高,定制化很强。
]
看看@tbl1,tbl 也是接收两个参数,一个是 table 本身,一个是标题,table 里的参数,没有字段的一律是单元格里的内容(每一个被[])包起来的内容,在 align 为水平时横向排列,排完换行。
#tbl(
table(
columns: (100pt, 100pt, 100pt),
inset: 10pt,
stroke: 0.7pt,
align: horizon,
[], [*Area*], [*Parameters*],
image("assets/avatar.jpeg", height: 10%),
$ pi h (D^2 - d^2) / 4 $,
[
$h$: height \
$D$: outer radius \
$d$: inner radius
],
image("assets/avatar.jpeg", height: 10%),
$ sqrt(2) / 12 a^3 $,
[$a$: 边长]
),
caption: "芝士样表"
) <tbl1>
== 公式
#indent_par()[
公式用两个\$包裹,但是语法跟 LaTeX 并不一样,如果有大量公式需求那先建议看官网教程,不过typst还比较早期,不排除以后会加入兼容语法的可能。
]
为了给公式编号,也依然有包装,使用 equation 里包公式的方式实现,比如:
#equation(
$ A = pi r^2 $,
) <eq1>
根据@eq1 ,推断出@eq2
#equation(
$ x < y => x gt.eq.not y $,
) <eq2>
然后也有多行的如@eq3,标签名字可以自定义
#equation(
$ sum_(k=0)^n k
&< 1 + ... + n \
&= (n(n+1)) / 2 $,
) <eq3>
#indent_par()[
如果不想编号就直接用\$即可
]
$ x < y => x gt.eq.not y $
#pagebreak()
= 其他说明
== 文献引用
#indent_par()[
typst 的引用已经足够好用了,不需要再修改#cite("harry"),引用支持 LaTeX Bib 的格式,也支持更简单好看的 yml 来配置,在引用时只需要#cite("harry", "某本参考书")即可。
]
记得在最后加入\#references("xxxref.yml")函数的调用来生成参考文献。
== 致谢部分
#indent_par()[
致谢部分在最后加入\#acknowledgement()函数的调用来生成。
]
== 模板相关
#indent_par()[
这个模板应该还不是完全版,可能不能覆盖到华科论文的所有case要求,如果遇到特殊 case 请提交 issue 说明,或者也可以直接提 pull request
]
同时,由于 typst 太新了,2023年4月初刚发布0.1.0版本,可能会有大的break change发生,模板会做相应修改。
=== 数据相关
#indent_par()[
所有拉丁字母均为 Times New Roman,大小与汉字相同
]
正文为宋体12pt,即小四
图表标题为黑体12pt
表格单元格内容宋体10.5pt,即五号
一级标题黑体18pt加粗,即小二
二级标题14pt加粗,即四号
正文行间距1.5em
a4纸,上下空2.5cm,左右空3cm
#pagebreak()
= 这是一章占位的
== 占位的二级标题 1
== 占位的二级标题 2
== 占位的二级标题 3
== 占位的二级标题 4
=== 占位的三级标题 1
=== 占位的三级标题 2
==== 占位的四级标题 1
==== 占位的四级标题 2
== 占位的二级标题 5
== 占位的二级标题 6
#pagebreak()
#acknowledgement()[
#indent_par()[
在完成本篇论文之际,我要向许多人表达我的感激之情。
]
首先,我要感谢我的指导教师,他/她对本文提供的宝贵建议和指导。所有这些支持和指导都是无私的,而且让我受益匪浅。
其次,我还要感谢我的家人和朋友们,他们一直以来都是我的支持和鼓励者。他们从未停止鼓舞我,勉励我继续前行,感谢你们一直在我身边,给我幸福和力量。
此外,我还要感谢我的同学们,大家一起度过了很长时间的学习时光,互相支持和鼓励,共同进步。因为有你们的支持,我才能不断地成长、进步。
最后,我想感谢笔者各位,你们的阅读和评价对我非常重要,这也让我意识到了自己写作方面的不足,同时更加明白了自己的研究方向。谢谢大家!
再次向所有支持和鼓励我的人表达我的谢意和感激之情。
本致谢生成自 ChatGPT。
]
#pagebreak()
#references("./ref.yml")
// 想用 TeX Bib 可以按下面这样引用
// #references("./ref.bib")