From 09b3e38b52e1131d4e7e7de0779a7281e1b93506 Mon Sep 17 00:00:00 2001 From: Kristofers Solo Date: Thu, 9 Jan 2025 20:30:47 +0200 Subject: [PATCH] Init presentation --- presentation.typ | 255 +++++++++++++++++++++++++++++++++++++++++++++++ requirements.typ | 1 + 2 files changed, 256 insertions(+) create mode 100644 presentation.typ diff --git a/presentation.typ b/presentation.typ new file mode 100644 index 0000000..6f8f0b7 --- /dev/null +++ b/presentation.typ @@ -0,0 +1,255 @@ +#import "@preview/touying:0.5.5": * +#import themes.university: * +#import "@preview/cetz:0.3.1" +#import "@preview/fletcher:0.5.3" as fletcher: node, edge +#import "@preview/ctheorems:1.1.3": * +#import "@preview/numbly:0.1.0": numbly + + +#set text( + font: ( + "Times New Roman", + "New Computer Modern", + ), + size: 12pt, + hyphenate: auto, + lang: "lv", + region: "lv", +) +#show raw: set text( + font: ( + "JetBrainsMono NF", + "JetBrains Mono", + "Fira Code", + ), + features: (calt: 0), +) + +// cetz and fletcher bindings for touying +#let cetz-canvas = touying-reducer.with( + reduce: cetz.canvas, + cover: cetz.draw.hide.with(bounds: true), +) +#let fletcher-diagram = touying-reducer.with( + reduce: fletcher.diagram, + cover: fletcher.hide, +) + +// Theorems configuration by ctheorems +#show: thmrules.with(qed-symbol: $square$) +#let theorem = thmbox("theorem", "Theorem", fill: rgb("#eeffee")) +#let corollary = thmplain( + "corollary", + "Corollary", + base: "theorem", + titlefmt: strong, +) +#let definition = thmbox( + "definition", + "Definition", + inset: (x: 1.2em, top: 1em), +) +#let example = thmplain("example", "Example").with(numbering: none) +#let proof = thmproof("proof", "Proof") + +#show: university-theme.with( + aspect-ratio: "16-9", + config-info( + title: [Kvalifikācijas darbs], + subtitle: [Spēles izstrāde, izmantojot Bevy spēļu dzinēju], + author: [Kristiāns Francis Cagulis kc22015], + institution: [Latvijas Universitāte], + // logo: emoji.school, + ), + config-colors( + primary: rgb("#575279"), + secondary: rgb("#797593"), + tertiary: rgb("#286983"), + neutral-lightest: rgb("#faf4ed"), + neutral-darkest: rgb("#575279"), + ), +) + +#set heading(numbering: numbly("{1}.", default: "1.1")) + +#title-slide() + += Animation + +== Simple Animation + +We can use `#pause` to #pause display something later. + +#pause + +Just like this. + +#meanwhile + +Meanwhile, #pause we can also use `#meanwhile` to #pause display other content synchronously. + +#speaker-note[ + + This is a speaker note. + + You won't see it unless you use `config-common(show-notes-on-second-screen: right)` +] + + +== Complex Animation + +At subslide #touying-fn-wrapper((self: none) => str(self.subslide)), we can + +use #uncover("2-")[`#uncover` function] for reserving space, + +use #only("2-")[`#only` function] for not reserving space, + +#alternatives[call `#only` multiple times \u{2717}][use `#alternatives` function #sym.checkmark] for choosing one of the alternatives. + + +== Callback Style Animation + +#slide( + repeat: 3, + self => [ + #let (uncover, only, alternatives) = utils.methods(self) + + At subslide #self.subslide, we can + + use #uncover("2-")[`#uncover` function] for reserving space, + + use #only("2-")[`#only` function] for not reserving space, + + #alternatives[call `#only` multiple times \u{2717}][use `#alternatives` function #sym.checkmark] for choosing one of the alternatives. + ], +) + + +== Math Equation Animation + +Equation with `pause`: + +$ + f(x) &= pause x^2 + 2x + 1 \ + &= pause (x + 1)^2 \ +$ + +#meanwhile + +Here, #pause we have the expression of $f(x)$. + +#pause + +By factorizing, we can obtain this result. + + +== CeTZ Animation + +CeTZ Animation in Touying: + +#cetz-canvas({ + import cetz.draw: * + + rect((0, 0), (5, 5)) + + (pause,) + + rect((0, 0), (1, 1)) + rect((1, 1), (2, 2)) + rect((2, 2), (3, 3)) + + (pause,) + + line((0, 0), (2.5, 2.5), name: "line") +}) + + +== Fletcher Animation + +Fletcher Animation in Touying: + +#fletcher-diagram( + node-stroke: .1em, + node-fill: gradient.radial( + blue.lighten(80%), + blue, + center: (30%, 20%), + radius: 80%, + ), + spacing: 4em, + edge((-1, 0), "r", "-|>", `open(path)`, label-pos: 0, label-side: center), + node((0, 0), `reading`, radius: 2em), + edge((0, 0), (0, 0), `read()`, "--|>", bend: 130deg), + pause, + edge(`read()`, "-|>"), + node((1, 0), `eof`, radius: 2em), + pause, + edge(`close()`, "-|>"), + node((2, 0), `closed`, radius: 2em, extrude: (-2.5, 0)), + edge((0, 0), (2, 0), `close()`, "-|>", bend: -40deg), +) + + += Theorems + +== Prime numbers + +#definition[ + A natural number is called a #highlight[_prime number_] if it is greater + than 1 and cannot be written as the product of two smaller natural numbers. +] +#example[ + The numbers $2$, $3$, and $17$ are prime. + @cor_largest_prime shows that this list is not exhaustive! +] + +#theorem("Euclid")[ + There are infinitely many primes. +] +#proof[ + Suppose to the contrary that $p_1, p_2, dots, p_n$ is a finite enumeration + of all primes. Set $P = p_1 p_2 dots p_n$. Since $P + 1$ is not in our list, + it cannot be prime. Thus, some prime factor $p_j$ divides $P + 1$. Since + $p_j$ also divides $P$, it must divide the difference $(P + 1) - P = 1$, a + contradiction. +] + +#corollary[ + There is no largest prime number. +] +#corollary[ + There are infinitely many composite numbers. +] + +#theorem[ + There are arbitrarily long stretches of composite numbers. +] + +#proof[ + For any $n > 2$, consider $ + n! + 2, quad n! + 3, quad ..., quad n! + n #qedhere + $ +] + + += Others + +== Side-by-side + +#slide(composer: (1fr, 1fr))[ + First column. +][ + Second column. +] + + +== Multiple Pages + +#lorem(200) + + +#show: appendix + += Appendix + +== Appendix + +Please pay attention to the current slide number. diff --git a/requirements.typ b/requirements.typ index 365f06a..53438c5 100644 --- a/requirements.typ +++ b/requirements.typ @@ -3,4 +3,5 @@ #import "@preview/headcount:0.1.0" #import "@preview/i-figured:0.2.4" #import "@preview/tablex:0.0.9" +#import "@preview/touying:0.5.5" #import "@preview/wordometer:0.1.3"