thesis
This commit is contained in:
132
template.typ
Normal file
132
template.typ
Normal file
@@ -0,0 +1,132 @@
|
||||
// The project function defines how your document looks.
|
||||
// It takes your content and some metadata and formats it.
|
||||
// Go ahead and customize it to your liking!
|
||||
#let project(
|
||||
title: "",
|
||||
acknowledgement: [],
|
||||
abstract: [],
|
||||
authors: (),
|
||||
examiner: (),
|
||||
group: none,
|
||||
date: none,
|
||||
logo: none,
|
||||
body,
|
||||
) = {
|
||||
// Set the document's basic properties.
|
||||
set document(author: authors.map(a => a.name), title: title)
|
||||
set page(
|
||||
numbering: "1",
|
||||
number-align: end,
|
||||
margin: (
|
||||
x: 3.5cm,
|
||||
),
|
||||
)
|
||||
set text(font: "Linux Libertine", size: 10pt, lang: "en")
|
||||
|
||||
// Set paragraph spacing.
|
||||
show par: set block(above: 1.2em, below: 1.2em)
|
||||
|
||||
set heading(numbering: "1.1.")
|
||||
|
||||
set figure(gap: 1em)
|
||||
show figure.caption: emph
|
||||
|
||||
set table(align: left)
|
||||
|
||||
// Set run-in subheadings, starting at level 4.
|
||||
show heading: it => {
|
||||
if it.level > 3 {
|
||||
parbreak()
|
||||
text(11pt, style: "italic", weight: "regular", it.body + ".")
|
||||
} else if it.level == 1 {
|
||||
text(size: 20pt, it)
|
||||
} else {
|
||||
it
|
||||
}
|
||||
}
|
||||
|
||||
set par(leading: 0.75em)
|
||||
|
||||
// Title page.
|
||||
// The page can contain a logo if you pass one with `logo: "logo.png"`.
|
||||
v(0.6fr)
|
||||
if logo != none {
|
||||
align(left, image(logo, width: 26%))
|
||||
}
|
||||
v(9.6fr)
|
||||
|
||||
align(center)[
|
||||
#text(1.1em, date)
|
||||
#v(1.8em, weak: true)
|
||||
#text(2em, weight: 700, title)
|
||||
#v(1.8em, weak: true)
|
||||
#text(1.1em, "Master Thesis")
|
||||
|
||||
// Author information.
|
||||
#pad(
|
||||
top: 6em,
|
||||
grid(
|
||||
columns: (1fr,) * calc.min(3, authors.len()),
|
||||
gutter: 1em,
|
||||
..authors.map(author => [
|
||||
*#author.name* \
|
||||
#author.email
|
||||
]),
|
||||
),
|
||||
)
|
||||
]
|
||||
|
||||
// Faculty information.
|
||||
align(right, pad(
|
||||
top: 20em,
|
||||
bottom: 4em,
|
||||
[
|
||||
#examiner.role \
|
||||
*#examiner.name* \
|
||||
#v(1.6em, weak: true)
|
||||
#group.faculty \
|
||||
#group.department \
|
||||
#group.name \
|
||||
#link(group.url)
|
||||
],
|
||||
))
|
||||
|
||||
// v(2.4fr)
|
||||
pagebreak()
|
||||
|
||||
// Acknowledgement page.
|
||||
v(1fr)
|
||||
align(center)[
|
||||
#heading(
|
||||
outlined: false,
|
||||
numbering: none,
|
||||
text(0.85em, smallcaps[Acknowledgements]),
|
||||
)
|
||||
#acknowledgement
|
||||
]
|
||||
v(1.618fr)
|
||||
pagebreak()
|
||||
|
||||
// Abstract page.
|
||||
v(1fr)
|
||||
align(center)[
|
||||
#heading(
|
||||
outlined: false,
|
||||
numbering: none,
|
||||
text(0.85em, smallcaps[Abstract]),
|
||||
)
|
||||
#abstract
|
||||
]
|
||||
v(1.618fr)
|
||||
pagebreak()
|
||||
|
||||
// Table of contents.
|
||||
show outline.entry.where(level: 1): it => text(weight: "bold", it)
|
||||
outline(depth: 3, indent: true, fill: text(weight: "regular", repeat[.]))
|
||||
pagebreak()
|
||||
|
||||
// Main body.
|
||||
set par(justify: true)
|
||||
|
||||
body
|
||||
}
|
||||
Reference in New Issue
Block a user