56 lines
1.3 KiB
Typst
56 lines
1.3 KiB
Typst
#let conf(
|
|
title: "Titel der Facharbeit",
|
|
authors: ("Vorname Nachname",),
|
|
teacher: none,
|
|
due_date: none,
|
|
abstract: none,
|
|
doc,
|
|
) = [
|
|
#set text(
|
|
font: "New Computer Modern",
|
|
lang: "de",
|
|
size: 10pt
|
|
)
|
|
#set par(justify: true, leading: 0.65em)
|
|
#set heading(numbering: "1.")
|
|
|
|
// Title + author block (arXiv-like)
|
|
#set align(center)
|
|
#v(1.2cm)
|
|
#block(width: 70%)[
|
|
#set align(center)
|
|
#text(17pt, weight: "bold", [#title])
|
|
#v(0.2cm)
|
|
#text(12pt, [#authors.join(", ")])
|
|
#if teacher != none or due_date != none {
|
|
v(0.3cm)
|
|
set text(size: 9pt)
|
|
let meta = (
|
|
if teacher != none { [Betreuung: #teacher] } else { none },
|
|
if due_date != none { [Abgabetermin: #due_date] } else { none },
|
|
).filter(x => x != none)
|
|
text(meta.join(" · "))
|
|
set text(size: 10pt)
|
|
}
|
|
#v(0.3cm)
|
|
|
|
#if abstract != none and abstract != "" {
|
|
set align(center)
|
|
text(11pt, weight: "bold", [Abstract])
|
|
v(0cm)
|
|
set align(center)
|
|
set text(size: 9.5pt)
|
|
abstract
|
|
set text(size: 10pt)
|
|
}
|
|
]
|
|
|
|
// Inhaltsverzeichnis on a new page, then continue without page break
|
|
#pagebreak()
|
|
#set align(left)
|
|
#outline(title: [Inhaltsverzeichnis])
|
|
|
|
// Document body
|
|
#pagebreak()
|
|
#doc
|
|
]
|