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
|
#let doc(authors: (), page_title: [], doc) = {
// style
set text(
font: "Inter",
size: 10pt,
)
set par(
leading: 1em,
//first-line-indent: (amount: 1em, all: true),
spacing: 2em,
)
set heading(numbering: "1.")
set page(
header: align(
right + horizon,
// Retrieve the document
// element's title property.
context {
emph[
#document.title - #authors.first().name
]
}
),
numbering: "1",
margin: (x: 3.5cm),
)
show heading: set par(leading: 0.75em)
show heading: set text(font: "PT Astra Serif")
show heading.where(level: 1): set block(below: 1em)
show heading.where(level: 1): set text(size: 1.25em)
show heading.where(level: 2): set block(above: 3em, below: 1em)
show heading.where(level: 2): set text(size: 1.15em)
show heading.where(level: 3): set block(above: 2em, below: 1em)
show heading.where(level: 3): set text(size: 1.1em)
show title: set text(size: 1.35em, font: "PT Astra Serif")
show title: set align(center)
show title: set block(above: 5em, below: 1em)
show title: set par(leading: 0.5em)
show outline: it => {
it
pagebreak()
}
show enum: set par(leading: 0.9em)
show list: set par(leading: 0.9em)
show raw: set text(font: "FiraCode Nerd Font Mono")
show raw.where(block: false): set text(weight: 500, size: 1.1em)
set document(title: page_title)
let ncols = calc.min(authors.len(), 3)
title()
block(below: 5em, context {
grid(
columns: (1fr,) * ncols,
gutter: 2em,
align: center,
..authors.map(author => {
par(leading: 0.75em)[
#author.name \
#author.affiliation \
#link("mailto:" + author.email)
]
})
)
})
outline(title: "Table des matières")
show heading.where(level: 1): it => {
pagebreak(weak: true)
it
}
doc
}
|