61 lines
1.5 KiB
Typst
61 lines
1.5 KiB
Typst
#import "./typst-catppuccin/src/lib.typ": catppuccin, flavors, mocha, get-flavor
|
|
|
|
|
|
// 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 flavor = sys.inputs.at("flavor", default: flavors.mocha.identifier)
|
|
#let palette = get-flavor(flavor)
|
|
#let project(title: "", subtitle: "", authors: (), logo: none, body) = {
|
|
show: catppuccin.with(flavors.mocha, code-block: true, code-syntax: true)
|
|
// Set the document's basic properties.
|
|
set document(author: authors.map(a => a.name), title: title)
|
|
set page(numbering: "1", number-align: center)
|
|
set text(font: "Nunito", lang: "en")
|
|
set heading(numbering: none)
|
|
|
|
show heading: it => [
|
|
#set align(left)
|
|
#set text(18pt, fill: palette.colors.mauve.rgb)
|
|
#block(it.body)
|
|
#v(0.5em)
|
|
]
|
|
// Title page.
|
|
// The page can contain a logo if you pass one with `logo: "logo.png"`.
|
|
v(0.6fr)
|
|
if logo != none {
|
|
align(right, image(logo, width: 50%))
|
|
}
|
|
v(9.6fr)
|
|
|
|
|
|
text(2em, weight: 700, title, fill: palette.colors.red.rgb)
|
|
v(0.5fr)
|
|
text(1.2em, weight: 700, subtitle, fill: palette.colors.mauve.rgb)
|
|
|
|
// Author information.
|
|
pad(
|
|
top: 0.7em,
|
|
right: 20%,
|
|
grid(
|
|
columns: (1fr,) * calc.min(3, authors.len()),
|
|
gutter: 1em,
|
|
..authors.map(author => align(start)[
|
|
*#author.name* \
|
|
#author.affiliation \
|
|
#author.email
|
|
]),
|
|
),
|
|
)
|
|
|
|
v(2.4fr)
|
|
pagebreak()
|
|
|
|
|
|
// Main body.
|
|
set par(justify: true)
|
|
|
|
body
|
|
}
|
|
|