#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.