aboutsummaryrefslogtreecommitdiff
path: root/typst/template.typ
blob: 4d7bc4cea2852b56ffd54b591dedd0aaab25f1d8 (plain)
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
#let doc(authors: (), page_title: [], doc) = {
  // style
  set text(
    font: "Inter",
    size: 11pt,
  )
  set par(
    leading: 1em,
    first-line-indent: 1em,
    spacing: 2em,
  )
  set heading(numbering: "1.")

  set page(
    header: align(
      right + horizon,
      // Retrieve the document
      // element's title property.
      context document.title,
    ),
    numbering: "1",
    margin: (x: 2.85cm),
  )

  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.2em)
  show heading.where(level: 1, numbering: "1."): it => {
    pagebreak(weak: true)
    it
  } 
  show heading.where(level: 2): set block(above: 3em, below: 1em)
  show heading.where(level: 2): set text(size: 1.1em)

  show title: set text(size: 1.25em, 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 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)

  // style
  set text(
    font: "Inter",
    size: 11pt,
  )
  set par(
    leading: 1em,
    first-line-indent: 1em,
    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: 2.85cm),
  )

  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.2em)
  show heading.where(level: 2): set block(above: 3em, below: 1em)
  show heading.where(level: 2): set text(size: 1.1em)

  show title: set text(size: 1.25em, 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
}