use jku master template
All checks were successful
Build Typst document / build_typst_documents (push) Successful in 20s

This commit is contained in:
lukas-heiligenbrunner 2024-11-04 13:20:41 +01:00
parent 38f22f96c8
commit de688e4a1e
4 changed files with 183 additions and 37 deletions

17
typstalt/glossary.typ Normal file
View File

@ -0,0 +1,17 @@
// this is an example. Check https://typst.app/universe/package/glossarium
#let glossary = (
// minimal term
(key: "jku", short: "Johannes Kepler University"),
// a term with a long form
(key: "goat", short: "GOAT", long: "greatest of all time"),
// no long form here
(key: "kdecom", short: "KDE Community", desc:"An international team developing and distributing Open Source software."),
// a full term with description containing markup
(
key: "oidc",
short: "OIDC",
long: "OpenID Connect",
desc: [OpenID is an open standard and decentralized authentication protocol promoted by the non-profit
#link("https://en.wikipedia.org/wiki/OpenID#OpenID_Foundation")[OpenID Foundation].]),
)

View File

@ -1,5 +1,103 @@
#import "@preview/springer-spaniel:0.1.0"
#import springer-spaniel.ctheorems: * // provides "proof", "theorem", "lemma"
#import "@preview/not-jku-thesis:0.1.0": jku-thesis
#import "utils.typ": inwriting, draft, todo, flex-caption, flex-caption-styles
#import "glossary.typ": glossary
#import "@preview/glossarium:0.2.6": make-glossary, print-glossary, gls, glspl
#show: make-glossary
#show: flex-caption-styles
/** Drafting
Set the boolean variables `inwriting` and `draft` inside utils.typ.
The "draft" variable is used to show DRAFT in the header and the title. This should be true until the final version is handed-in.
The "inwriting" is used to change the appearance of the document for easier writing. Set to true for yourself but false for handing in a draft or so.
**/
// global text settings
#set text(lang: "en", weight: "regular", font: "Arial", size: 11pt)
#set text(ligatures: false)
#set par(leading: 1em, first-line-indent: 0em, justify: true)
#show par: set block(spacing: 1.5em) // spacing after a paragraph
#show raw: set text( size: 9pt) // set text for code-blocks (``)
#set page(margin: (left: 2.5cm+1cm, // binding correction of 1cm for single sided printing
right: 2.5cm,
y: 2.9cm),
// margin: (inside: 2.5cm+1cm, // binding correction of 1cm for double sided printing
// outside: 2.5cm,
// y:2.5cm),
// binding: left
)
#let date = datetime.today() // not today: datetime(year: 1969, month: 9, day: 6,)
#let k-number = "k12104785"
#show: jku-thesis.with(
thesis-type: "Bachelor",
degree: "Bachelor of Science",
program: "Artifical Intelligence Studies",
supervisor: "Professor Scharinger Josef",
advisors: (), // singular advisor like this: ("Dr. Felix Pawsworth",) and no supervisor: ""
department: "Department of Image processing",
author: "Lukas Heiligenbrunner",
date: date,
place-of-submission: "Linz",
title: "Few shot learning for anomaly detection",
abstract-en: [//max. 250 words
#lorem(200) ],
abstract-de: none,// or specify the abbstract_de in a container []
acknowledgements: [
// TODO
I would like to extend a huge thank you to Dr. Felina Whiskers, my primary advisor, for her pawsitive support and expert guidance. Without her wisdom and occasional catnip breaks, this thesis might have turned into a hairball of confusion.
A special shoutout to Dr. Felix Pawsworth, my co-advisor, for his keen insights and for keeping me from chasing my own tail during this research. Your input was invaluable and much appreciated.
To the cat owners, survey respondents, and interviewees—thank you for sharing your feline escapades. Your stories made this research more entertaining than a laser pointer.
Lastly, to my family and friends, thank you for tolerating the endless cat puns and my obsession with feline behavior. Your patience and encouragement kept me from becoming a full-time cat herder.
To everyone who contributed to this thesis, directly or indirectly, I offer my heartfelt gratitude. You've all made this journey a little less ruff!
],//acknowledgements: none // if you are self-made
show-title-in-header: false,
draft: draft,
)
// set equation and heading numbering
#set math.equation(numbering: "(1)")
#set heading(numbering: "1.1")
// Set font size
#show heading.where(level: 3): set text(size: 1.05em)
#show heading.where(level: 4): set text(size: 1.0em)
#show figure: set text(size: 0.9em)
// Set spacings
#set table(inset: 6.5pt)
#show table: set par(justify: false)
#show figure: it => [#v(1em) #it #v(1em)]
#show heading.where(level: 1): set block(above: 1.95em, below: 1em)
#show heading.where(level: 2): set block(above: 1.85em, below: 1em)
#show heading.where(level: 3): set block(above: 1.75em, below: 1em)
#show heading.where(level: 4): set block(above: 1.55em, below: 1em)
// Pagebreak after level 1 headings
#show heading.where(level: 1): it => [
#pagebreak(weak: true)
#it
]
// Set citation style
#set cite(style: "iso-690-author-date") // page info visible
@ -8,37 +106,9 @@
//#set cite(style: "alphanumeric")// page info not visible
#show: springer-spaniel.template(
title: [Few shot learning for anomaly detection Bachelor Thesis for AI],
authors: (
(
name: "Lukas Heiligenbrunner",
institute: "Johannes Kepler University",
address: "Linz, Austria",
email: "lukas.heiligenbrunner@gmail.com"
),
// ... and so on
),
abstract: lorem(75),
// Table stroke
#set table(stroke: 0.5pt + black)
// debug: true, // Highlights structural elements and links
// frame: 1pt, // A border around the page for white on white display
// printer-test: true, // Suitably placed CMYK printer tests
)
#let date = datetime.today() // not today: datetime(year: 1969, month: 9, day: 6,)
#let k-number = "k12345678"
// set equation and heading numbering
#set math.equation(numbering: "(1)")
#set heading(numbering: "1.1")
// Pagebreak after level 1 headings
#show heading.where(level: 1): it => [
#pagebreak(weak: true)
#it
]
// show reference targets in brackets
#show ref: it => {
@ -49,6 +119,11 @@
} else [#it]
}
// color links and references for the final document
// #show link: set text(fill: blue)
// #show ref: set text(fill: color.olive)
// style table-of-contents
#show outline.entry.where(
level: 1
@ -57,6 +132,30 @@
strong(it)
}
// Draft Settings //
#show cite: set text(fill: purple) if inwriting // highlight citations
#show footnote: set text(fill: purple) if inwriting
#show ref: set text(fill: purple) if inwriting
// Custom Footer //
#set page(footer: context [
#text(size:9pt)[
#table(
stroke: none,
columns: (1fr, auto, 1fr),
align: (left, center, right),
inset: 5pt,
[#date.display("[month repr:long] [day], [year]")],[#k-number],[#counter(page).display(
"1",
)],
)
]
])
// ------ Content ------
// Table of contents.
#outline(
title: {

View File

@ -131,8 +131,3 @@ Equation~$cal(L)(p,q)$~\eqref{eq:crelbinarybatch}\cite{handsonaiI} is the Binary
== Alternative Methods
There are several alternative methods to few-shot learning which are not used in this bachelor thesis.
#figure(
image("rsc/diagrams/resnet.svg", width: 80%),
caption: [Testdiagram],
) <testdiagram>

35
typstalt/utils.typ Normal file
View File

@ -0,0 +1,35 @@
#let inwriting = false
#let draft = false
#assert(not(inwriting and not(draft)), message: "If inwriting is true, draft should be true as well.")
#let todo(it) = [
#if inwriting [
#text(size: 0.8em)[#emoji.pencil] #text(it, fill: red, weight: 600)
]
]
#let silentheading(level, body) = [
#heading(outlined: false, level: level, numbering: none, bookmarked: true)[#body]
]
#let in-outline = state("in-outline", false)
#let flex-caption-styles = rest => {
show outline: it => {
in-outline.update(true)
it
in-outline.update(false)
}
rest
}
#let flex-caption(long, short) = (
context (
if in-outline.get() {
short
} else {
long
}
)
)