almost finished

This commit is contained in:
Ernesto Martinez Garcia 2025-09-06 18:29:23 +02:00
commit 912b6cce2b
8 changed files with 311 additions and 316 deletions

View file

@ -1,26 +1,59 @@
# Typst ISEC Slides Template # Typst ISEC Slides Template
An unofficial ISEC TUGraz Slides template > An opinionated version of the ISEC slides template made in Typst. Easily configurable for other institutes or organizations.
Author: Ernesto Martínez García <[ecomaikgolf.com](https://ecomaikgolf.com)> Author: Ernesto Martínez García <[ecomaikgolf.com](https://ecomaikgolf.com)>
Tested typst version: `0.13.1`.
> [!NOTE] > [!NOTE]
> If you are an ISEC or TUGraz employee and want it renamed to `isec-slides` or > If you are an ISEC or TUGraz employee and think that `isec-thesis` or
> `tugraz-slides` I would need an approval to allocate the name :) > `tugraz-thesis` fits more, I would need an approval to allocate the name :)
## Design
TODO
## Contributing ## Contributing
Contribute to the template in the [upstream repository](https://github.com/ecomaikgolf/typst-isec-slides-template) Contribute to the template in the [upstream repository](https://github.com/ecomaikgolf/typst-isec-slides-template)
Check for [open issues](https://github.com/ecomaikgolf/typst-isec-slides-template) Check for [open issues](https://github.com/ecomaikgolf/typst-isec-slides-template/issues)
## Design
---
<img width="1754" height="987" alt="title" src="https://github.com/user-attachments/assets/d29f53ff-0622-45fe-9727-7d286e8d15b1" />
---
<img width="1754" height="987" alt="list" src="https://github.com/user-attachments/assets/27dc198d-714d-4ed6-ad2e-f39babcf4fce" />
---
<img width="1754" height="987" alt="listimage" src="https://github.com/user-attachments/assets/b16cb69b-c9a1-4f50-8fd5-e7c3b0a97617" />
---
<img width="1754" height="987" alt="standout" src="https://github.com/user-attachments/assets/179960f4-e909-4856-8aba-6beb7a91e3c5" />
---
<img width="1754" height="987" alt="colors" src="https://github.com/user-attachments/assets/312a013e-fd89-4b6a-921b-bbfe9f4fa565" />
---
<img width="1754" height="987" alt="features" src="https://github.com/user-attachments/assets/1f3cd158-3860-4962-9802-7fc22d4b94a1" />
---
<img width="1754" height="987" alt="code" src="https://github.com/user-attachments/assets/508abb37-8224-4ef8-9424-2f367981b91f" />
---
<img width="1754" height="987" alt="blocks" src="https://github.com/user-attachments/assets/e4214dc0-f434-40d2-b1fa-0463ef18d9b7" />
---
<img width="1754" height="987" alt="plots" src="https://github.com/user-attachments/assets/605a3bab-c040-4932-9777-03dffabb3a9f" />
---
<img width="1754" height="987" alt="configurable" src="https://github.com/user-attachments/assets/310a25e2-981c-40b3-bbcb-fc243cbb5983" />
---
<img width="1754" height="987" alt="blank" src="https://github.com/user-attachments/assets/7533e702-bba3-4462-add2-f2fbe1e50a20" />
---
<img width="1754" height="987" alt="bibliography" src="https://github.com/user-attachments/assets/6ad78bf1-8af1-43c3-ad15-192fdfd42aff" />
## Samples
TODO
## License `src/assets/tuglogo.svg` ## License `src/assets/tuglogo.svg`

View file

@ -1,13 +0,0 @@
// You can use LaTeX's bibliography format per default
// or
// Typst's Hayagriva:
// https://github.com/typst/hayagriva/blob/main/docs/file-format.md
@software{Garcia2025Slides,
author = {Ernesto Martínez García},
year = {2025},
month = {8},
title = {{ISEC Slides Typst Template}},
url = {https://github.com/ecomaikgolf/typst-isec-slides-template},
urldate = {2025-08-31}
}

View file

@ -1 +0,0 @@
{"pdfpcFormat":2,"disableMarkdown":false,"pages":[{"idx":1,"label":"1","overlay":0,"forcedOverlay":false,"hidden":false,"note":"This is a note that only the speaker will see."},{"idx":2,"label":"2","overlay":0,"forcedOverlay":false,"hidden":false,"note":"\n This note will appear on pdfpc's presenter mode. Lets see how long it can be lol\n\n It even supports multiline!\n "},{"idx":3,"label":"3","overlay":0,"forcedOverlay":false,"hidden":false},{"idx":4,"label":"4","overlay":0,"forcedOverlay":false,"hidden":false},{"idx":5,"label":"5","overlay":0,"forcedOverlay":false,"hidden":false}]}

View file

@ -1,103 +0,0 @@
#import "../src/lib.typ": *
//#import "@local/definitely-not-isec-slides:1.0.0": *
// ----------------------------------------------------------------------------
// Configuration
// ----------------------------------------------------------------------------
#show: definitely-not-isec-theme.with(
aspect-ratio: "16-9",
progress-bar: true,
config-info(
title: [Long Paper Title \ with One to Three Lines],
subtitle: [An optional short subtitle],
authors: ([*First Author*], [Second Author], [Third Author]),
extra: [SomeConf 2025],
footer: [First Author, Second Author, Third Author],
download-qr: "",
),
config-common(
handout: false,
),
)
// -------------------------------[[ CUT HERE ]]--------------------------------
//
// #title-slide()
//
// #slide(alignment: top, title: [...])
//
// #standout-slide()
// #section-slide()
// #blank-slide()
//
// -------------------------------[[ CUT HERE ]]--------------------------------
// ----------------------------------------------------------------------------
// Slides
// ----------------------------------------------------------------------------
#show cite: set text(fill: tugcolors.main)
#title-slide()
#slide(alignment: top, title: [First Slide])[
#quote-block(spacing: 0.3em)[
#lorem(10)
]
#lorem(10)
#color-block([Symmetric])[
This looks much better
]
#lorem(10)
#columns(2)[
#icon-block([Symmetric], "ad-circle")[
This looks much better
]
#color-block([Symmetric])[
This looks much better
]
]
#pdfpc.speaker-note("This is a note that only the speaker will see.")
]
#slide(alignment: top, title: [First Slide], outlined: false)[
#quote-block[
#lorem(20)
]
Thus, by using common sense we can deduce that
#note("
This note will appear on pdfpc's presenter mode. Lets see how long it can be lol
It even supports multiline!
")
]
#section-slide(title: [Conclusions], subtitle: [Final Section])
#blank-slide[
A blank canvas for memes
]
#standout-slide(title: [But what if...?])
#slide(title: [Bibliography], alignment: top)[
#bibliography("bibliography.bib")
]
#title-slide()

View file

@ -1,7 +1,6 @@
#import "@preview/touying:0.6.1": * #import "@preview/touying:0.6.1": *
// Project // Project
#import "tugcolors.typ"
#import "helper.typ": * #import "helper.typ": *
#import "logos.typ": * #import "logos.typ": *
@ -14,29 +13,41 @@
// Styling Macro Imports // Styling Macro Imports
#import "@preview/showybox:2.0.4": showybox #import "@preview/showybox:2.0.4": showybox
// -----------------------------------------------------------------------------
// General Config
// -----------------------------------------------------------------------------
// Touying bindings for cetz // Touying bindings for cetz
#let cetz-canvas = touying-reducer.with( #let cetz-canvas = touying-reducer.with(
reduce: cetz.canvas, reduce: cetz.canvas,
cover: cetz.draw.hide.with(bounds: true), cover: cetz.draw.hide.with(bounds: true),
) )
// Touying bindings for fletcher // Touying bindings for fletcher
#let fletcher-diagram = touying-reducer.with( #let fletcher-diagram = touying-reducer.with(
reduce: fletcher.diagram, reduce: fletcher.diagram,
cover: fletcher.hide, cover: fletcher.hide,
) )
// Macro for notes
#let note(text) = [
#pdfpc.speaker-note(text)
]
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
// Slide Types // Slide Types
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
// /// Normal slide for the presentation, with title (header) and footer
// Normal Slide ///
// /// Example:
///
/// ```typst
/// #slide(title: [Slide Title])[
/// #lorem(20)
/// ]
/// ```
///
/// - title (content): Title for the slide
/// - alignment (alignment): Alignment of the contents of the slide
/// - outlined (boolean): If the slide shows on the PDF ToC
///
/// -> content
#let slide( #let slide(
title: auto, title: auto,
alignment: none, alignment: none,
@ -119,9 +130,15 @@
touying-slide(self: self, ..args) touying-slide(self: self, ..args)
}) })
// /// Title slide for the presentation
// Title Slide ///
// /// Example:
///
/// ```typst
/// #title-slide()
/// ```
///
/// -> content
#let title-slide(..args) = touying-slide-wrapper(self => { #let title-slide(..args) = touying-slide-wrapper(self => {
let info = self.info + args.named() let info = self.info + args.named()
let body = { let body = {
@ -222,19 +239,29 @@
touying-slide(self: self, body) touying-slide(self: self, body)
}) })
// /// Standout slide for the presentation
// Standout Slide ///
// /// Example:
///
/// ```typst
/// #standout-slide(title: [Text])
/// ```
///
/// - title (content): Title for the standout slide
///
/// -> content
#let standout-slide( #let standout-slide(
title: auto, title: none,
..args, ..args,
) = touying-slide-wrapper(self => { ) = touying-slide-wrapper(self => {
let body = { let body = {
set align(center + horizon) set align(center + horizon)
set text(size: 28pt) set text(size: 28pt)
move(dy: -2.08cm)[ if title != none {
#text(weight: "semibold")[#title] move(dy: -2.08cm)[
] #text(weight: "semibold")[#title]
]
}
} }
let self = utils.merge-dicts(self, config-page( let self = utils.merge-dicts(self, config-page(
@ -247,9 +274,18 @@
touying-slide(self: self, body, ..args) touying-slide(self: self, body, ..args)
}) })
// /// Section slide for the presentation
// Section Slide ///
// /// Example:
///
/// ```typst
/// #section-slide(title: [Section A], subtitle: [Subtitle])
/// ```
///
/// - title (content): Title for the section
/// - subtitle (content): Subtitle for the section
///
/// -> content
#let section-slide( #let section-slide(
title: none, title: none,
subtitle: none, subtitle: none,
@ -277,9 +313,17 @@
touying-slide(self: self, body, ..args) touying-slide(self: self, body, ..args)
}) })
// /// Blank slide for free content in the presentation
// Blank Slide ///
// /// Example:
///
/// ```typst
/// #blank-slide[
/// #align(center + horizon)[#lorem(5)]
/// ]
/// ```
///
/// -> content
#let blank-slide( #let blank-slide(
..args, ..args,
body, body,
@ -303,6 +347,43 @@
// Main Function // Main Function
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
/// Theme cofniguration
///
/// Example:
///
/// ```typst
/// #show: definitely-not-isec-theme.with(
/// aspect-ratio: "16-9",
/// slide-alignment: top,
/// config-info(
/// title: [Long Paper Title \ with One to Three Lines],
/// subtitle: [An optional short subtitle],
/// authors: ([*First Author*], [Second Author], [Third Author]),
/// extra: [SomeConf 2025],
/// footer: [First Author, Second Author, Third Author],
/// download-qr: "",
/// ),
/// config-common(
/// handout: false,
/// ),
/// config-colors(
/// ),
/// )
/// ```
///
/// - aspect-ratio (str): Aspect ratio for the page. See typst documentatin.
/// - slide-alignemnt (alignment): Default alignment for `#slide()`
/// - config-info (dict):
/// - title (content): Title for the presentation
/// - subtitle (content): Subtitle for the presentation
/// - authors (array): Arrray of authors (content)
/// - extra (content): Extra information for the presentation
/// - footer (content): Footer for each `#slide()`
/// - download-qr (str): URL to show on `#title-slide()` with a QR
/// - config-common (dict):
/// - handout (bool): Boolean for handout mode
/// - config-colors (dict): Colors for the presentation
/// - ... see definition of `#definitely-not-isec-theme`
#let definitely-not-isec-theme( #let definitely-not-isec-theme(
aspect-ratio: "16-9", aspect-ratio: "16-9",
header: utils.display-current-heading(level: 1), header: utils.display-current-heading(level: 1),
@ -351,7 +432,60 @@
) )
} }
), ),
config-colors(primary: tugcolors.tug, footer: rgb("808080")), config-colors( // Exported from official template
tug: rgb("e4154b"),
primary: rgb("e4154b"),
footer: rgb("808080"),
isec: rgb("272733"),
foot: rgb("e1e1e1"),
web: rgb("0c5a77"),
csbme: rgb("19b4e3"),
arch: rgb("0a98a2"),
bauw: rgb("d68e23"),
etec: rgb("68242c"),
mach: rgb("3066ba"),
chem: rgb("5e60a8"),
math: rgb("1e6934"),
crypto: rgb("a6c947"),
system: rgb("1171a8"),
formal: rgb("f7931e"),
applied: rgb("7d219e"),
page: rgb("e4154b"),
fore: rgb("0f0f0f"),
back: rgb("ffffff"),
dark: rgb("3b5a70"),
lite: rgb("eeece1"),
head: rgb("245b78"),
body: rgb("e2e9ed"),
urlA: rgb("0066d8"),
urlB: rgb("6c2f91"),
colA: rgb("e4154b"),
colB: rgb("5191c1"),
colC: rgb("a5a5a5"),
colD: rgb("285f82"),
colE: rgb("78b473"),
colF: rgb("e59352"),
tugred: rgb("e4154b"),
tuggreen: rgb("78b473"),
tugblue: rgb("285f82"),
tugyellow: rgb("e59352"),
tugcyan: rgb("19b4e3"),
tugpurple: rgb("7d219e"),
tugviolet: rgb("5e60a8"),
tugmagenta: rgb("7d219e"),
tugturquoise: rgb("0a98a2"),
tugbrown: rgb("68242c"),
tugblack: rgb("0f0f0f"),
tugwhite: rgb("ffffff"),
tuggray: rgb("a5a5a5"),
tuggrey: rgb("a5a5a5"),
tugdark: rgb("3b5a70"),
tugmid: rgb("5191c1"),
tuglite: rgb("eeece1"),
main: rgb("e4154b"),
emph: rgb("285f82"),
standout: rgb("245b78"),
),
config-methods( config-methods(
cover: (self: none, body) => hide(body), cover: (self: none, body) => hide(body),
init: ( init: (
@ -361,6 +495,7 @@
// TUGraz uses Source Sans Pro, but its a licensed Adobe font // TUGraz uses Source Sans Pro, but its a licensed Adobe font
set text(size: 20pt, lang: "en", region: "US", font: font) set text(size: 20pt, lang: "en", region: "US", font: font)
show emph: it => { text(self.colors.primary, it.body) } show emph: it => { text(self.colors.primary, it.body) }
show cite: it => { text(self.colors.primary, it) }
show strong: it => { text(weight: "bold", it.body) } show strong: it => { text(weight: "bold", it.body) }
// Bibliography // Bibliography
@ -394,12 +529,10 @@
body-indent: 0.6cm body-indent: 0.6cm
) )
// Code blocks // Code blocks
show: codly-init.with() show: codly-init.with()
show raw.where(block: true): set text(size: 13pt) show raw.where(block: true): set text(size: 13pt)
// Hotfixes, the messy part // Hotfixes, the messy part
// https://github.com/touying-typ/touying/issues/136 // https://github.com/touying-typ/touying/issues/136
@ -414,12 +547,42 @@
} }
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
// Styling Macros // Macros
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
/// Macro for a pdfpc note
///
/// Example:
///
/// ```typst
/// #note("This will show on pdfpc speaker notes")
/// ```
///
/// - text (str): Note for pdfpc
///
/// -> content
#let note(text) = [
#pdfpc.speaker-note(text)
]
/// Quote block for phrases. Has a color.primary rectangle in the left
///
/// Example:
///
/// ```typst
/// #quote-block[
/// #lorem(10)
/// ]
/// ```
///
/// - top-pad (length): Extra height of the quote colored block
/// - color (color): Color of the quote block
/// - spacing (length): Spacing after the `#quote-block`
///
/// -> content
#let quote-block( #let quote-block(
top-pad: 0.55cm, top-pad: 0.55cm,
color: tugcolors.tug, color: none,
spacing: 0.3cm, spacing: 0.3cm,
body, body,
) = [ ) = [
@ -432,7 +595,7 @@
row-gutter: 0cm, row-gutter: 0cm,
[ [
#rect( #rect(
fill: self.colors.primary, fill: if color == none { self.colors.primary } else { color },
height: s + top-pad, height: s + top-pad,
) )
], ],
@ -450,14 +613,31 @@
]) ])
] ]
// https://tabler.io/icons /// Block with title and content
///
/// Example:
///
/// ```typst
/// #color-block(title: [Advantages])[
/// - A
/// - B
/// - C
/// ]
/// ```
///
/// - title (content): Title for the color block
/// - icon (str): Icon to show at the left of the title (Tableau Icons) https://tabler.io/icons
/// - spacing (length): Spacing before and after the color block
/// - color (color): Color for the title block
/// - color-body (color): Color for the background of the body
///
/// -> content
#let color-block( #let color-block(
title, title: [],
icon: none, icon: none,
spacing: 0.78em, spacing: 0.78em,
color: none, color: none,
color-body: tugcolors.lite, color-body: none,
body body
) = [ ) = [
#import "@preview/tableau-icons:0.331.0": * #import "@preview/tableau-icons:0.331.0": *
@ -477,7 +657,7 @@
thickness: 0pt, thickness: 0pt,
border-color: if color == none { self.colors.primary } else { color }, border-color: if color == none { self.colors.primary } else { color },
title-color: if color == none { self.colors.primary } else { color }, title-color: if color == none { self.colors.primary } else { color },
body-color: color-body, body-color: if color-body == none { self.colors.lite } else { color-body },
inset: (x: 0.55em, y: 0.65em), inset: (x: 0.55em, y: 0.65em),
), ),
above: spacing, above: spacing,
@ -494,4 +674,41 @@
]) ])
] ]
/// Showcase the colors of the slide
///
/// Example:
///
/// ```typst
/// #showcase-colors
/// ```
///
/// -> content
#let showcase-colors = [
#touying-fn-wrapper((self: none) => [
#set rect(width: 7.4cm, height: 1.5cm)
#set text(fill: white)
#set align(center)
#grid(columns: 3, rows: 6, column-gutter: 1.8cm, row-gutter: 0.05cm, align: left,
rect(fill: self.colors.isec)[isec],
rect(fill: self.colors.tug)[tug = main],
rect(fill: self.colors.colA)[colA = tugred],
rect(fill: self.colors.csbme)[csbme = tugcyan],
rect(fill: self.colors.fore)[fore],
rect(fill: self.colors.colB)[colB = tugmid],
rect(fill: self.colors.crypto)[crypto],
rect(fill: self.colors.back)[#text(fill: black)[back]],
rect(fill: self.colors.colC)[colC = tuggray],
rect(fill: self.colors.system)[system],
rect(fill: self.colors.foot)[#text(fill: black)[foot]],
rect(fill: self.colors.colD)[colD = tugblue],
rect(fill: self.colors.formal)[formal],
rect(fill: self.colors.emph)[emph],
rect(fill: self.colors.colE)[colE = tuggreen],
rect(fill: self.colors.applied)[applied = tugpurple],
rect(fill: self.colors.lite)[#text(fill: black)[lite]],
rect(fill: self.colors.colF)[colF = tugyellow],
)
])
]
//vim:tabstop=2 softtabstop=2 shiftwidth=2 noexpandtab colorcolumn=81 //vim:tabstop=2 softtabstop=2 shiftwidth=2 noexpandtab colorcolumn=81

View file

@ -1,87 +0,0 @@
// TUGraz
#let tug = rgb("e4154b")
#let isec = rgb("272733")
#let foot = rgb("e1e1e1")
#let web = rgb("0c5a77")
// Faculties
#let csbme = rgb("19b4e3")
#let arch = rgb("0a98a2")
#let bauw = rgb("d68e23")
#let etec = rgb("68242c")
#let mach = rgb("3066ba")
#let chem = rgb("5e60a8")
#let math = rgb("1e6934")
// ISEC research areas
#let crypto = rgb("a6c947")
#let system = rgb("1171a8")
#let formal = rgb("f7931e")
#let applied = rgb("7d219e")
// Powerpoint palette
#let page = tug
#let fore = rgb("0f0f0f")
#let back = rgb("ffffff")
#let dark = rgb("3b5a70")
#let lite = rgb("eeece1")
#let head = rgb("245b78")
#let body = rgb("e2e9ed")
#let urlA = rgb("0066d8")
#let urlB = rgb("6c2f91")
#let colA = tug
#let colB = rgb("5191c1")
#let colC = rgb("a5a5a5")
#let colD = rgb("285f82")
#let colE = rgb("78b473")
#let colF = rgb("e59352")
#let tugred = colA
#let tuggreen = colE
#let tugblue = colD
#let tugyellow = colF
#let tugcyan = csbme
#let tugpurple = applied
#let tugviolet = chem
#let tugmagenta = tugpurple
#let tugturquoise = arch
#let tugbrown = etec
#let tugblack = fore
#let tugwhite = back
#let tuggray = colC
#let tuggrey = tuggray
#let tugdark = dark
#let tugmid = colB
#let tuglite = lite
#let main = tug
#let head = isec
#let emph = colD
#let standout = head
#let showcase = [
#set rect(width: 7.4cm, height: 1.5cm)
#set text(fill: white)
#set align(center)
#grid(columns: 3, rows: 6, column-gutter: 1.8cm, row-gutter: 0.05cm, align: left,
rect(fill: isec)[isec],
rect(fill: tug)[tug = main],
rect(fill: colA)[colA = tugred],
rect(fill: csbme)[csbme = tugcyan],
rect(fill: fore)[fore],
rect(fill: colB)[colB = tugmid],
rect(fill: crypto)[crypto],
rect(fill: back)[#text(fill: black)[back]],
rect(fill: colC)[colC = tuggray],
rect(fill: system)[system],
rect(fill: foot)[#text(fill: black)[foot]],
rect(fill: colD)[colD = tugblue],
rect(fill: formal)[formal],
rect(fill: emph)[emph],
rect(fill: colE)[colE = tuggreen],
rect(fill: applied)[applied = tugpurple],
rect(fill: lite)[#text(fill: black)[lite]],
rect(fill: colF)[colF = tugyellow],
)
]

View file

@ -1,5 +1,4 @@
#import "../src/lib.typ": * #import "@local/definitely-not-isec-slides:1.0.0": *
//#import "@local/definitely-not-isec-slides:1.0.0": *
#show: definitely-not-isec-theme.with( #show: definitely-not-isec-theme.with(
aspect-ratio: "16-9", aspect-ratio: "16-9",
@ -16,7 +15,6 @@
handout: false, handout: false,
), ),
config-colors( config-colors(
primary: black,
), ),
) )
@ -25,85 +23,36 @@
// === Available slides === // === Available slides ===
// //
// #title-slide() // #title-slide()
// #standout-slide() // #standout-slide(title)
// #section-slide() // #section-slide(title,subtitle)
// #blank-slide() // #blank-slide()
// #bibliography-slide() // #slide(title)
// #slide()
// //
// === Available macros === // === Available macros ===
// #intro-block[]
// #color-block[]
// #icon-block[]
// //
// === Integration with pdfpc === // #quote-block(body)
// #color-block(title, body)
// #icon-block(title, icon, body)
//
// === Presenting with pdfpc ===
// //
// Use #note("...") to add pdfpc presenter annotations on a specific slide // Use #note("...") to add pdfpc presenter annotations on a specific slide
// Before presenting, export all notes to a pdfpc file: // Before presenting, export all notes to a pdfpc file:
// $ typst query slides.typ --field value --one "<pdfpc-file>" > slides.pdfpc // $ typst query slides.typ --field value --one "<pdfpc-file>" > slides.pdfpc
// $ pdfpc slides.pdf
//
// -------------------------------[[ CUT HERE ]]-------------------------------- // -------------------------------[[ CUT HERE ]]--------------------------------
#title-slide() #title-slide()
#slide(title: [First Slide])[ #slide(title: [First Slide])[
#quote-block[ #quote-block[
Important or introductory phrase for the current slide topic. Good luck with your presentation! @emg25template
] ]
Continuatory explanation @emg25template over the introductory phrase, leading to: #note("This will show on pdfpc speaker notes ;)")
#v(0.2cm)
#grid(
columns: 2,
column-gutter: 0.6cm,
color-block([Result A])[
- Benefit
- Benefit
- Downside
],
color-block([Result B])[
- Benefit
- Downside
- Downside
],
)
#v(0.2cm)
#lorem(10)
#v(0.2cm)
```c
int main() {
void *p = malloc(0x10);
}
```
] ]
#slide(title: [First Slide])[ #slide(title: [Bibliography])[
#quote-block[
#lorem(20)
]
]
#section-slide(
title: [Section A],
subtitle: [Longer Subtitle]
)
#slide(title: [Second Slide])[
#rect(fill: gray.lighten(70%), width: 100%, height: 100%)[
#align(center + horizon)[
Usable Area
]
]
]
= This is a test
test
#slide(title: [Bibliography], alignment: top)[
#bibliography("bibliography.bib") #bibliography("bibliography.bib")
] ]

View file

@ -9,7 +9,7 @@ repository = "https://github.com/ecomaikgolf/typst-isec-slides-template"
categories = ["slides"] categories = ["slides"]
disciplines = ["computer-science", "engineering"] disciplines = ["computer-science", "engineering"]
keywords = ["ISEC", "Institute of Information Security", "IAIK", "TUGraz", "Graz University of Technology", "thesis", "template", "Master Thesis"] keywords = ["ISEC", "Institute of Information Security", "IAIK", "TUGraz", "Graz University of Technology", "thesis", "template", "Master Thesis"]
compiler = "0.13.0" compiler = "0.13.1"
[template] [template]
path = "template" path = "template"