forked from Shuenhoy/modern-zju-thesis
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathheader.typ
77 lines (75 loc) · 1.68 KB
/
header.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
#import "./fonts.typ": 字号, 字体
#let header(
stroke: 0.5pt,
spacing: 0.5em,
font: 字体.宋体,
size: 字号.小五,
left: none,
right: none,
center: none,
) = {
context {
if query(<mzt:no-header-footer>).filter(el => el.location().page() == here().page()) == () {
set text(font: font, size: size)
stack(
spacing: spacing,
grid(
columns: (
1fr,
if center == none {
0.01fr
} else {
1fr
},
1fr,
),
align: (alignment.left, alignment.center, alignment.right),
left, center, right,
),
line(length: 100%, stroke: stroke),
)
}
}
}
#let footer(
left: none,
right: none,
center: none,
) = context {
if query(<mzt:no-header-footer>).filter(el => el.location().page() == here().page()) == () {
let fleft(numbering) = {
if type(left) == function {
left(numbering)
} else {
left
}
}
let fcenter(numbering) = {
if type(center) == function {
center(numbering)
} else {
center
}
}
let fright(numbering) = {
if type(right) == function {
right(numbering)
} else {
right
}
}
context [
#set text(字号.小五)
#let page-numbering = page.numbering
#if page-numbering == none {
page-numbering = "1"
}
#let numbering = counter(page).display(page-numbering)
#grid(
columns: (1fr, 1fr, 1fr),
align: (alignment.left, alignment.center, alignment.right),
fleft(numbering), fcenter(numbering), fright(numbering),
)
]
}
}