generated from marius/TUM_Slides
228 lines
4.6 KiB
Typst
228 lines
4.6 KiB
Typst
#import "@preview/touying:0.6.1": *
|
|
|
|
#let slide(title: auto, ..args) = touying-slide-wrapper(self => {
|
|
let info = self.info + args.named()
|
|
if title != auto {
|
|
self.store.title = title
|
|
}
|
|
let header(self) = {
|
|
set align(top)
|
|
set text(fill: rgb("0065BD"), size: 25pt, weight: "bold")
|
|
place(top + right,
|
|
dx: -1em,
|
|
dy: 1em,
|
|
image("./resources/TUM_Logo_blau.svg", width: 7%)
|
|
)
|
|
v(1.5em)
|
|
h(1em)
|
|
utils.display-current-heading(level: 1)
|
|
v(-1.6em)
|
|
linebreak()
|
|
h(1em)
|
|
set text(fill: rgb("005293"), size: 20pt)
|
|
if self.store.title != none {
|
|
utils.call-or-display(self, self.store.title)
|
|
} else {
|
|
utils.display-current-heading(level: 2)
|
|
}
|
|
}
|
|
let footer(self) = {
|
|
set align(bottom)
|
|
show: pad.with(.4em)
|
|
set text(size: 14pt)
|
|
h(1em)
|
|
h(1fr)
|
|
grid(
|
|
columns: (1fr, 4fr, 1fr, 1fr),
|
|
align: center,
|
|
grid.cell(align: left)[
|
|
#h(1em)
|
|
#info.footer-author],
|
|
info.title,
|
|
utils.display-info-date(self),
|
|
grid.cell(align: right)[
|
|
#context [#utils.slide-counter.display()/#utils.last-slide-number] #h(1em)]
|
|
)
|
|
}
|
|
self = utils.merge-dicts(
|
|
self,
|
|
config-page(
|
|
header: header,
|
|
footer: footer,
|
|
),
|
|
)
|
|
touying-slide(self: self, ..args)
|
|
})
|
|
|
|
#let title-slide(..args) = touying-slide-wrapper(self => {
|
|
let info = self.info + args.named()
|
|
let header = {
|
|
set text(fill: rgb("0065BD"), size: 25pt, weight: "bold")
|
|
place(top + right,
|
|
dx: -1em,
|
|
dy: 1em,
|
|
image("./resources/TUM_Logo_blau.svg", width: 7%)
|
|
)
|
|
place(top + left,
|
|
dy: 3em,
|
|
dx: 0.9em,
|
|
grid(
|
|
columns: (3fr, 1fr),
|
|
[
|
|
#set text(fill: rgb("0065BD"), size: 32pt, weight: "bold")
|
|
#info.title
|
|
]
|
|
)
|
|
)
|
|
}
|
|
let body = {
|
|
set text(weight: "bold")
|
|
v(5em)
|
|
info.author
|
|
|
|
v(2em)
|
|
set text(weight: "regular")
|
|
utils.display-info-date(self)
|
|
|
|
place(bottom + right,
|
|
dx: 2em,
|
|
dy: 2em,
|
|
image("./resources/TUM_Tower.png", width: 50%)
|
|
)
|
|
}
|
|
self = utils.merge-dicts(
|
|
self,
|
|
config-page(
|
|
header: header,
|
|
),
|
|
)
|
|
touying-slide(self: self, body)
|
|
})
|
|
|
|
#let outline-slide(..args) = touying-slide-wrapper(self => {
|
|
let header = {
|
|
set text(fill: rgb("0065BD"), size: 25pt, weight: "bold")
|
|
place(top + right,
|
|
dx: -1em,
|
|
dy: 1em,
|
|
image("./resources/TUM_Logo_blau.svg", width: 7%)
|
|
)
|
|
place(top + left,
|
|
dy: 3em,
|
|
dx: 0.9em,
|
|
grid(
|
|
columns: (3fr, 1fr),
|
|
[
|
|
#set text(fill: rgb("0065BD"), size: 25pt, weight: "bold")
|
|
Outline
|
|
]
|
|
)
|
|
)
|
|
}
|
|
let body = {
|
|
|
|
show outline.entry: it => link(
|
|
it.element.location(),
|
|
[
|
|
#it.body() #linebreak() #v(1em)
|
|
]
|
|
)
|
|
align(horizon)[
|
|
#outline(title: none, depth: 1)
|
|
//#utils.slide-counter.update(0)
|
|
]
|
|
}
|
|
self = utils.merge-dicts(
|
|
self,
|
|
config-page(
|
|
header: header,
|
|
),
|
|
)
|
|
touying-slide(self: self, body)
|
|
})
|
|
|
|
#let ending-slide(..args) = touying-slide-wrapper(self => {
|
|
let info = self.info + args.named()
|
|
let header = {
|
|
set text(fill: rgb("0065BD"), size: 25pt, weight: "bold")
|
|
place(top + right,
|
|
dx: -1em,
|
|
dy: 1em,
|
|
image("./resources/TUM_Logo_blau.svg", width: 7%)
|
|
)
|
|
}
|
|
let footer(self) = {
|
|
set align(bottom)
|
|
show: pad.with(.4em)
|
|
set text(size: 14pt)
|
|
h(1em)
|
|
h(1fr)
|
|
grid(
|
|
columns: (1fr, 4fr, 1fr, 1fr),
|
|
align: center,
|
|
grid.cell(align: left)[
|
|
#h(1em)
|
|
#info.footer-author],
|
|
info.title,
|
|
utils.display-info-date(self),
|
|
grid.cell(align: right)[
|
|
#context [#utils.slide-counter.display()/#utils.last-slide-number] #h(1em)]
|
|
)
|
|
}
|
|
let body = {
|
|
align(center)[
|
|
#v(3em)
|
|
Questions, Comments?
|
|
#v(3em)
|
|
*Thanks for your attention!*
|
|
]
|
|
}
|
|
self = utils.merge-dicts(
|
|
self,
|
|
config-page(
|
|
header: header,
|
|
footer: footer,
|
|
),
|
|
)
|
|
touying-slide(self: self, body)
|
|
})
|
|
|
|
|
|
|
|
#let tum-slides(
|
|
aspect-ratio: "16-9",
|
|
footer: none,
|
|
..args,
|
|
language: "en",
|
|
body,
|
|
) = {
|
|
set text(size: 20pt, font: "TUM Neue Helvetica", lang: language)
|
|
set par(spacing: 0.6em)
|
|
|
|
show: touying-slides.with(
|
|
config-page(
|
|
paper: "presentation-" + aspect-ratio,
|
|
margin: (top: 5.5em, left: 1.2em),
|
|
),
|
|
config-common(
|
|
slide-fn: slide,
|
|
datetime-format: "[day].[month].[year]"
|
|
),
|
|
config-store(
|
|
title: none,
|
|
footer: footer,
|
|
),
|
|
..args,
|
|
)
|
|
|
|
|
|
|
|
title-slide()
|
|
|
|
outline-slide()
|
|
|
|
body
|
|
|
|
ending-slide()
|
|
}
|
|
|