This commit is contained in:
Gaspard Jankowiak 2026-04-14 15:47:13 +02:00
commit 68495d7a47
5 changed files with 168 additions and 0 deletions

67
src/lib.typ Normal file
View file

@ -0,0 +1,67 @@
#let accent = rgb(75, 50, 200)
#let yellow = rgb(255, 243, 0, 100)
#let darkyellow = rgb(255, 213, 00, 150)
#let document(
title: [Title],
task: [Task],
university: [Universität Graz],
institute: [Uni for Life],
course: [Course name],
instructor: [Instructor],
author: [Firstname Lastname],
date: [#datetime.today().display("[day]. [month repr:long] [year]")],
fontsize: 1.269em,
logo: "logo_uniforlife.svg",
lang: "de",
body
) = {
let doublerule = [#set text(1pt, bottom-edge: "descender")
#line(length: 100%, stroke: darkyellow+2pt)#line(length: 100%, stroke: luma(150)+1pt)
]
show heading: smallcaps
show link: it => underline(stroke: yellow+0.2em, offset: 0.15em, evade: false, background: true)[#it]
let ulink(.. args) = {
[#underline(stroke: darkyellow+0.2em, offset: 0em, evade: false, background: true)[#link(.. args)]]
}
set page(
margin: (top: 8em, bottom: 5em),
header: context {
if counter(page).get().first() == 1 [
#set text(0.7em, top-edge: 1em)
#grid(inset: 0.1em, columns: (1fr, auto, 1fr), align: (left, center, right),
course,
[#emph(author)],
grid.cell(rowspan:3)[#image(logo, height: 3em)],
instructor, grid.cell(rowspan: 2)[#set text(1.3em); #align(bottom)[#task]],
date)
#doublerule
] else [
#set text(0.7em, top-edge: 1em)
#align(right)[#image(logo, height: 3em)]
#doublerule
]},
footer: context [
#doublerule
#v(0.5em)
#align(center)[#counter(page).display("1 / 1", both: true)]
],
)
let leading = 1.5em
let leading = leading - 0.75em // "Normalization"
set block(spacing: leading)
set par(spacing: leading, leading: leading, first-line-indent: 2em, justify: true)
set text(top-edge: 0.7em, fontsize, lang: lang)
v(-0.5cm)
align(center)[#text(1.1em)[#underline(stroke: darkyellow+0.5em, extent: 0.1em, offset: 0.05em, evade: false, background: true)[#smallcaps([=== *#title*])]]]
v(0.5cm)
body
}