···11+22+#import "@preview/great-theorems:0.1.2": *
33+#import "@preview/rich-counters:0.2.2": *
44+55+// A show rule for the template.
66+#let mol-thesis(body) = [
77+ /*
88+ LaTeX-like look from https://typst.app/docs/guides/guide-for-latex-users,
99+ tweaked to look like https://codeberg.org/m4lvin/illc-mol-thesis-template
1010+ (page margins cannot quite be the same, as Typst and LaTeX
1111+ handle margins/paddings somewhat differently).
1212+1313+ Of course, we still comply with article A, comma 2 of the "Rules and
1414+ Guidelines of the Examinations Board Logic"
1515+ (https://msclogic.illc.uva.nl/current-students/regulations/oer/).
1616+ */
1717+ #set page(margin: (bottom: 2.8cm, rest: 2.1cm), footer-descent: 40%)
1818+ #set par(leading: .85em, first-line-indent: 1.8em, justify: true)
1919+ #set text(font: "New Computer Modern", size: 11pt)
2020+ // New computer Moderno Mono is not shipped with Typst, and it would be
2121+ // excessive to only ship it with the package for raw text, as it requires its
2222+ // own CLi flag
2323+ // #show raw: set text(font: "New Computer Modern Mono")
2424+ #show heading: set block(above: 1.4em, below: 1em)
2525+2626+ // MoL thesis look from https://codeberg.org/m4lvin/illc-mol-thesis-template
2727+ #set page(numbering: "1")
2828+ #set heading(numbering: "1.1.1.1")
2929+ #set outline.entry(fill: repeat(". "))
3030+ #show outline.entry.where(
3131+ level: 1
3232+ ): set block(above: 1.5em)
3333+ #show outline.entry.where(level: 1): it => [
3434+ #set block(above: 1.5em)
3535+ *#link(it.element.location(), it.indented(it.prefix(), it.inner()))*
3636+ ]
3737+3838+ #set cite(style: "alphanumeric")
3939+ #set bibliography(style: "elsevier-vancouver")
4040+ #show: great-theorems-init
4141+4242+ #body
4343+]
4444+4545+// A parametric, non-numbered thesis titlepage that follows the
4646+// recommendations of the Master of Logic.
4747+#let mol-titlepage(
4848+ title: "Title of the Thesis",
4949+ author: "John Q. Public",
5050+ birth-date: "April 1st, 1980",
5151+ birth-place: "Alice Springs, Australia",
5252+ defence-date: "August 28, 2005",
5353+ supervisors: ("Dr Jack Smith", "Prof Dr Jane Williams"),
5454+ committee: (
5555+ "Dr Jack Smith",
5656+ "Prof Dr Jane Williams",
5757+ "Dr Jill Jones",
5858+ "Dr Albert Heijn"),
5959+ degree: "MSc in Logic"
6060+) = align(alignment.center)[
6161+ // Size of the thesis's title
6262+ #let title-size = 17pt
6363+ // Size of frontpage elements that should be smaller of the thesis's title
6464+ // alone
6565+ #let subtitle-size = 12pt
6666+6767+ #set page(numbering: none, margin: (bottom: 3.5cm))
6868+ #set par(spacing: 1.45em)
6969+7070+ #v(30pt)
7171+7272+ #text(smallcaps(title), size: title-size, weight: 100)
7373+7474+ #v(40pt)
7575+7676+ #text([*MSc Thesis* _(Afstudeerscriptie)_], size: subtitle-size)
7777+7878+ written by
7979+8080+ *#author*
8181+8282+ under the supervision of #supervisors.map(x => [*#x*]).join(", ", last:
8383+ " and "), and submitted to the
8484+8585+ Examinations Board in partial fulfilment of the requirements for the
8686+ degree of
8787+8888+ #text([*#degree*], size: subtitle-size)
8989+9090+ at the _Universiteit van Amsterdam_.
9191+9292+ #v(50pt)
9393+9494+ #box(width: 75%,
9595+ columns(2, gutter: -10%,
9696+ align(alignment.left, [
9797+ #set par(first-line-indent: 0em)
9898+9999+ *Date of the public defence:*
100100+101101+ _#defence-date _
102102+103103+ #colbreak()
104104+105105+ *Members of the Thesis Committee:*
106106+107107+ #committee.join("\n")
108108+ ])
109109+ )
110110+ )
111111+112112+ // #align(bottom, image("../img/illclogo.svg", alt: "ILLC Logo. A 3-by-3 jigsaw puzzle. The
113113+ // center piece is white, while the surrounding pieces are black. The text
114114+ // below the puzzle reads 'Institute for Logic, Language, and Computation'",
115115+ // width: 60%))
116116+117117+ #pagebreak()
118118+]
119119+120120+// A non-numbered page dedicated to the thesis abstract.
121121+#let mol-abstract(body) = [
122122+ #set page(numbering: none)
123123+ #align(center+horizon, heading("Abstract", numbering: none, outlined: false))
124124+ #body
125125+ #pagebreak()
126126+ #counter(page).update(1)
127127+]
128128+129129+// A first-level heading dedicated to thesis chapters.
130130+#let mol-chapter(body) = [
131131+ #pagebreak()
132132+ #hide(
133133+ heading(body,
134134+ hanging-indent: 0pt,
135135+ level: 1,
136136+ supplement: [Chapter])
137137+ )
138138+ #text(size: 28pt, weight: "bold")[
139139+ #set par(first-line-indent: 0pt)
140140+ #text(size: 24pt, [Chapter #context counter(heading).display()])
141141+142142+ #body]
143143+]
144144+145145+// A counter for mathematical blocks
146146+#let mathcounter = rich-counter(
147147+ identifier: "mathblocks",
148148+ inherited_levels: 1
149149+)
150150+151151+// A block for mathematical definitions
152152+#let definition = mathblock(
153153+ blocktitle: "Definition",
154154+ counter: mathcounter
155155+)
156156+157157+// A block for mathematical theorems
158158+#let theorem = mathblock(
159159+ blocktitle: "Theorem",
160160+ counter: mathcounter
161161+)
162162+163163+// A block for mathematical examples
164164+#let example = mathblock(
165165+ blocktitle: "Example",
166166+ counter: mathcounter
167167+)
168168+169169+// A block for mathematical propositions
170170+#let proposition = mathblock(
171171+ blocktitle: "Proposition",
172172+ counter: mathcounter
173173+)
174174+175175+// A block for mathematical lemmas
176176+#let lemma = mathblock(
177177+ blocktitle: "Lemma",
178178+ counter: mathcounter
179179+)
180180+181181+// A block for mathematical corollaries
182182+#let corollary = mathblock(
183183+ blocktitle: "Corollary",
184184+ counter: mathcounter
185185+)
186186+187187+// A block for mathematical remarks
188188+#let remark = mathblock(
189189+ blocktitle: "Remark",
190190+ prefix: [_Remark._]
191191+)
192192+193193+// A block for mathematical proofs
194194+#let proof = proofblock()
195195+196196+// Bibliography function that does not throw an error if called multiple times.
197197+// This allows you to invoke it once per file in your thesis. This is important,
198198+// because Typst would otherwise raise an error if you were to cite a source in
199199+// a file with no bibliography.
200200+//
201201+// https://forum.typst.app/t/how-to-share-bibliography-in-a-multi-file-setup/1605/9
202202+//
203203+// If invoked with "true", it actually displays the bibliography.
204204+//
205205+// ```typst
206206+// // main.typ
207207+// #include "chapter-1.typ"
208208+// #load-bib(read("works.bib"), main: true)
209209+// ```
210210+//
211211+// Otherwise, it still makes the sources citable in the current file. Should be
212212+// invoked with "true" at most once.
213213+//
214214+// ```typst
215215+// // chapter-1.typ
216216+// We build on the work of @Author_2025.
217217+// #load-bib(read("works.bib"))
218218+// ```
219219+#let load-bib(sources, main: false) = {
220220+ counter("illc-mol-thesis-bibs").step()
221221+ context if main {
222222+ [#bibliography(bytes(sources)) <main-bib>]
223223+ } else if (counter("illc-mol-thesis-bibs").get().first() == 1 and
224224+ query(<main-bib>) == ()) {
225225+ // This is the first bibliography, and there is no main bibliography
226226+ bibliography(bytes(sources))
227227+ }
228228+}
thesis.pdf
This is a binary file and will not be displayed.
+13-4
thesis.typ
···11-#import "@preview/illc-mol-thesis:0.2.0": *
11+#import "template.typ": *
2233#show: mol-thesis
4455+66+// what am i even supposed to write about maneeee
77+//
88+// what have i even done
99+//
1010+// am i a fraud
1111+//
1212+//
1313+514#mol-titlepage(
615 title: "Title of the Thesis",
77- author: "John Q. Public",
1616+ author: "Surendra Jammishetti",
817 birth-date: "April 1st, 1980",
918 birth-place: "Alice Springs, Australia",
1019 defence-date: "August 28, 2005",
1120 /* Only one supervisor? The singleton array ("Dr Jack Smith",) needs the
1221 trailing comma. */
1313- supervisors: ("Dr Jack Smith", "Prof Dr Jane Williams"),
2222+ supervisors: ("Owen B. Arden",),
1423 committee: (
1524 "Dr Jack Smith",
1625 "Prof Dr Jane Williams",
1726 "Dr Jill Jones",
1827 "Dr Albert Heijn"),
1919- degree: "MSc in Logic"
2828+ degree: "Undergraduate Thesis"
2029)
21302231#mol-abstract[