From 0e02fd075a6188ba3c1639c825603df5afa858ee Mon Sep 17 00:00:00 2001 From: Dominik Schwaiger Date: Sat, 18 Jul 2026 12:04:53 +0200 Subject: [PATCH] ethz-cadmo-inspired-thesis:0.1.0 (#5376) --- .../ethz-cadmo-inspired-thesis/0.1.0/LICENSE | 21 ++ .../0.1.0/README.md | 261 ++++++++++++++++++ .../0.1.0/assets/eth-logo.png | Bin 0 -> 6433 bytes .../0.1.0/src/code.typ | 132 +++++++++ .../0.1.0/src/colours.typ | 6 + .../0.1.0/src/eth-colors.typ | 31 +++ .../0.1.0/src/helpers.typ | 58 ++++ .../0.1.0/src/lib.typ | 14 + .../0.1.0/src/main-structure.typ | 219 +++++++++++++++ .../0.1.0/src/theorem.typ | 29 ++ .../0.1.0/template/bib.bib | 0 .../0.1.0/template/main.typ | 34 +++ .../0.1.0/thumbnail.png | Bin 0 -> 264574 bytes .../0.1.0/typst.toml | 14 + 14 files changed, 819 insertions(+) create mode 100644 packages/preview/ethz-cadmo-inspired-thesis/0.1.0/LICENSE create mode 100644 packages/preview/ethz-cadmo-inspired-thesis/0.1.0/README.md create mode 100755 packages/preview/ethz-cadmo-inspired-thesis/0.1.0/assets/eth-logo.png create mode 100644 packages/preview/ethz-cadmo-inspired-thesis/0.1.0/src/code.typ create mode 100644 packages/preview/ethz-cadmo-inspired-thesis/0.1.0/src/colours.typ create mode 100644 packages/preview/ethz-cadmo-inspired-thesis/0.1.0/src/eth-colors.typ create mode 100644 packages/preview/ethz-cadmo-inspired-thesis/0.1.0/src/helpers.typ create mode 100644 packages/preview/ethz-cadmo-inspired-thesis/0.1.0/src/lib.typ create mode 100644 packages/preview/ethz-cadmo-inspired-thesis/0.1.0/src/main-structure.typ create mode 100644 packages/preview/ethz-cadmo-inspired-thesis/0.1.0/src/theorem.typ create mode 100644 packages/preview/ethz-cadmo-inspired-thesis/0.1.0/template/bib.bib create mode 100644 packages/preview/ethz-cadmo-inspired-thesis/0.1.0/template/main.typ create mode 100644 packages/preview/ethz-cadmo-inspired-thesis/0.1.0/thumbnail.png create mode 100644 packages/preview/ethz-cadmo-inspired-thesis/0.1.0/typst.toml diff --git a/packages/preview/ethz-cadmo-inspired-thesis/0.1.0/LICENSE b/packages/preview/ethz-cadmo-inspired-thesis/0.1.0/LICENSE new file mode 100644 index 0000000000..8130aaf4e6 --- /dev/null +++ b/packages/preview/ethz-cadmo-inspired-thesis/0.1.0/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2026 Dominik Schwaiger + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/packages/preview/ethz-cadmo-inspired-thesis/0.1.0/README.md b/packages/preview/ethz-cadmo-inspired-thesis/0.1.0/README.md new file mode 100644 index 0000000000..2adba33e55 --- /dev/null +++ b/packages/preview/ethz-cadmo-inspired-thesis/0.1.0/README.md @@ -0,0 +1,261 @@ +# ethz-cadmo-inspired-thesis + +A template for writing a (bachelor's) thesis at ETH Zürich. + +It provides general styling and some useful helper functions. + +It is an **unofficial** Typst adaptation of the [CADMO LaTeX thesis +template](https://cadmo.ethz.ch/education/thesis/template.html) which is maintained by +Kostas Lakis at CADMO (Center for Algorithms, Discrete Mathematics and +Optimization), ETH Zürich. It is not affiliated with or endorsed by CADMO or +ETH Zürich. + +## Usage + +Start a new thesis from this template with: + +```sh +typst init @preview/ethz-cadmo-inspired-thesis +``` + +or directly with: + +```typ +#show: setup.with( + "My Thesis Title", // title + "Jane Doe", // author + ("Advisor One", "Advisor Two"), // advisors + thesis-type: "Bachelor Thesis", + department: "Department of Computer Science", + bib: bibliography("bib.bib", title: none), +) +``` + +## Configuration + +The template exports `setup`, applied as a show rule at the top of your +document: + +| Parameter | Type | Default Value | Description / Note | +| :------------ | :------------------- | :--------------------------------- | :------------------------------------- | +| `title` | content \| str | _Required_ | The title of the thesis | +| `author` | str | _Required_ | The author's name | +| `advisors` | array of str | _Required_ | List of academic advisors | +| `department` | str | `"Department of Computer Science"` | The academic department | +| `thesis-type` | str | `"Bachelor Thesis"` | The degree level or type of thesis | +| `date` | datetime | `datetime.today()` | Date of publication/submission | +| `bib` | bibliography \| none | `none` | Takes a Typst `bibliography()` element | +| `dev` | bool | `false` | Force Work in Progress (WiP) mode | +| `doc` | content | _Required_ | The rest of the document content | + +Applied with `#show: setup.with(...)`, it sets up the page and general structure needed for a thesis. + +If `bib` is set, a `References` chapter with that bibliography is appended at the +very end. If you need the bibliography to appear before an appendix, leave `bib: none` and place the bibliography +yourself instead (see [Bibliography and appendix](#bibliography-and-appendix)). + +## Fonts + +The template typesets in **TeX Gyre Pagella**. Typst cannot bundle a font into a +package and load it automatically, so the font has to be available at compile +time. + +Download the OTF files from the official GUST e-foundry page and install them, or place them on your `--font-path`: + + + +The font is distributed under the GUST Font License. + +## Document structure + +| Helper | Purpose | +| --------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | +| `frontchapter(title)` | An unnumbered level-1 heading for front matter such as _Abstract_ or _Acknowledgments_. | +| `#show: mainmatter` | Starts the numbered body: resets the page and chapter counters and switches to arabic page numbers. Apply once, after the front matter. | +| `#show: appendix` | Switches heading numbering to letters (`A`, `A.1`, `A.2`, …). Apply once, at the start of the appendix. | + +Headings render as: + +- **Level 1**: a centered `Chapter N` label above the title, framed by rules + (the label is omitted for unnumbered chapters). +- **Level 2 / 3**: bold section and subsection titles. + +The running header shows `Chapter N - N.M Section Title` and is hidden on pages +that begin a new chapter. + +### Bibliography and appendix + +To keep the references and appendix out of the word count, wrap them in a +``-labelled block and set `bib: none`: + +```typ +#[ + #set page(numbering: "1") + #heading(level: 1, numbering: none)[References] + #bibliography("bib.bib", title: none) + + #include "chapters/appendix.typ" +] +``` + +An appendix file then looks like: + +```typ +#show: appendix +#frontchapter[Appendix] + +== First Appendix Section // numbered "A" +=== A Subsection // numbered "A.1" +``` + +## Theorem environments + +All environments take a body and an optional `name`, and are numbered +`chapter.n`, resetting at every chapter: + +```typ +#theorem(name: "Fermat")[ + There are no positive integers $a, b, c$ with $a^n + b^n = c^n$ for $n > 2$. +] + +#proof[ + The margin is too small. #h(1fr) // proof already appends a QED square +] +``` + +Available: `theorem`, `lemma`, `corollary`, `proposition`, `definition`, +`example`, `remark`, `claim`, and `proof`. + +## Code listings + +`code` renders a single raw block with line numbers, in a rounded gray frame: + +````typ +#code( + ```rust + fn main() { + println!("hello"); + } + ```, + filename: "main.rs", // optional file label in the header + projectname: "my-crate", // optional right-aligned label + start: 1, // first line number + breakable: false, // allow the listing to split across pages +) +```` + +`code-file` embeds code read from a file, optionally limited to a line range. +The caller reads the file so Typst tracks it as a dependency: + +```typ +#code-file( + read("../src/lib.rs"), + lang: "rust", + from: 10, to: 25, // inclusive, 1-indexed; line numbers stay aligned to the file + filename: "lib.rs", +) +``` + +To keep parts of a file out of the listing (for example a test-harness preamble +that has to stay in the file to keep it runnable), wrap them between a line +containing `` and a line containing ``. Both marker lines and +everything between them are dropped from the display, and the remaining lines +are renumbered contiguously from `start`. Because the markers live in comments, +the source file still compiles and runs unchanged: + +```rust +// +//@compile-flags: -Zmiri-tree-borrows +// +use std::io::Read; // shown as line 1 +``` + +Hiding is meant for file-only preambles and is not combined with `from`/`to`. + +`multi-code` shows several excerpts of the same listing separated by a dashed +"…" line, for skipping over irrelevant lines. It takes an array of +`(raw, start-line)` tuples: + +````typ +#multi-code(( + (```rust + fn first() {} + ```, 1), + (```rust + fn later() {} + ```, 42), +)) +```` + +Inside any listing, the token `` is replaced by a newline, which lets +you force a break within a single source line. + +## Utilities + +`breakable-id(n)` returns a string with zero-width spaces inserted after every +`-` and `_`, so long identifiers (package names, crate names, symbol paths) +can break across lines without an explicit hyphen: + +```typ +#raw(breakable-id("my-very-long-crate-name")) // breaks at each `-` +#breakable-id("some_module::long_symbol") // use in any content +``` + +`display-pr(url)` displays a GitHub or GitLab Pull Request in a shorter, more readable format. + +## Cross references + +`nameref(label)` links to a labelled heading and prints its supplement, number +and title, e.g. `#nameref()` → "Section 3.2: Method". For unnumbered +headings it falls back to the heading text alone. + +```typ +== Method +... +As shown in #nameref(), ... +``` + +## TODOs and WiP mode + +`todo(body, inline: false)` marks unfinished work: + +```typ +#todo[rewrite this paragraph] // block +Some text #todo(inline: true)[fix ref]. // inline +``` + +While any `TODO` is present (or `dev: true` is passed to `setup`), the document +is in **work in progress** mode: the title page shows a red _Work in Progress_ +banner and every running header shows `WIP · N words`. Once the last `TODO` is +removed, both disappear automatically. + +## Colours + +This template also exposes some colours. The official ETH colours can be found at `eth`. The custom colours used for some functions can be found at `custom`. + +## Exports + +`setup`, `mainmatter`, `appendix`, `frontchapter`, `display-pr`, `nameref`, `todo`, +`code`, `code-file`, `multi-code`, `breakable-id`, `theorem`, `lemma`, `corollary`, +`proposition`, `definition`, `example`, `remark`, `claim`, `proof`, `eth`, `custom`. + +## Contribution + +I'm always open to contributions / feedback. As the repo currently only tracked in typst packages, just send me an email with a diff / comment and I will integrate it: mail@dominik-schwaiger.ch + +## Full Example + +A full example how the template can be used can be found here: https://gitlab.dominik-schwaiger.ch/quio/bachelor-thesis/-/tree/main/Thesis?ref_type=heads + +## Acknowledgments + +This template is a Typst port of the [CADMO LaTeX thesis +template](https://cadmo.ethz.ch/education/thesis/template.html) by Kostas Lakis +(CADMO, ETH Zürich). + +Many thanks to [VirtCode](https://github.com/VirtCode), whose work the +code-listing helpers are based on. + +The body font is [TeX Gyre +Pagella](https://www.gust.org.pl/projects/e-foundry/tex-gyre/pagella) by the +GUST e-foundry, distributed under the GUST Font License. diff --git a/packages/preview/ethz-cadmo-inspired-thesis/0.1.0/assets/eth-logo.png b/packages/preview/ethz-cadmo-inspired-thesis/0.1.0/assets/eth-logo.png new file mode 100755 index 0000000000000000000000000000000000000000..04d16999045d4d08dc16bc24c007df40edb3baaa GIT binary patch literal 6433 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 code + .text + .split("\n") + .enumerate() + .map(((i, line)) => (start + i, rraw(line.replace("", "\n"), lang: code.lang)))) + + // width of the line numbers + let width = str(calc.max(..blocks.join().map(s => s.at(0)))).len() + + // replace numbers with padded raw + let blocks = blocks.map(lines => lines.map(((line, code)) => (rraw(padnum(line, width, padding: numpad)), code))) + + // join lines with separator of choice + let lines = blocks.join(( + (rraw("." * width), table.cell(separator, align: horizon)), + )) + + let header = if filename != none { + ( + table.header(table.cell(colspan: 2, if projectname != none { + grid( + columns: (1fr, auto), + rraw(filename), rraw(projectname), + ) + } else { + rraw(filename) + })), + ) + } else { + () + } + + block(fill: gray.lighten(70%), radius: radius, clip: not breakable, breakable: breakable)[ + #table( + columns: (auto, 1fr), + align: left, // don't inherit alignment (e.g. center inside a figure) + stroke: (x, y) => (top: if x == 0 { foreground }, right: if x == 0 { foreground }), // otherwise zathura renders ugly + fill: (x, y) => if x == 0 or (y == 0 and header.len() > 0) { foreground }, + ..header, + ..lines.flatten() + ) + ] +} + +/// formats a single block of code +#let code(code, start: 1, filename: none, projectname: none, breakable: false) = multi-code( + ((code, start),), + filename: filename, + projectname: projectname, + breakable: breakable, +) + +/// formats a single block of code read from a file +/// +/// `content` is the file's text, read by the caller, e.g. `code-file(read("snippet.rs"), ...)`. +/// +/// `from` and `to` optionally select an inclusive, 1-indexed line range; the +/// displayed line numbers keep matching the original file. +/// +/// Any line containing `` starts a hidden region and any line containing +/// `` ends it. The marker lines and everything between them are dropped +/// from the display (but stay in the file), and the remaining lines are +/// renumbered contiguously. Hiding is meant to strip file-only preambles such +/// as test harness directives and is not combined with `from`/`to`. +#let code-file(content, lang: none, from: none, to: none, filename: none, projectname: none) = { + // drop a single trailing newline so files don't render an empty last line + let lines = content.trim("\n", at: end, repeat: false).split("\n") + + // strip `` … `` regions from the display + let visible = () + let hidden = false + let did-hide = false + for line in lines { + if line.contains("") { + if hidden { + panic("code-file: nested `` (a region is already open, close it with `` first)") + } + hidden = true + did-hide = true + } else if line.contains("") { + if not hidden { + panic("code-file: stray `` without a matching ``") + } + hidden = false + } else if not hidden { + visible.push(line) + } + } + // a `` left open would silently swallow the rest of the file + if hidden { + panic("code-file: unclosed `` region (missing a line with ``)") + } + // drop blank lines a stripped preamble leaves at the top of the listing + while did-hide and visible.len() > 0 and visible.first().trim() == "" { + let _ = visible.remove(0) + } + let lines = visible + + let start = if from != none { from } else { 1 } + let end = if to != none { to } else { lines.len() } + let lines = lines.slice(start - 1, end) + + code( + raw(lines.join("\n"), lang: lang), + start: start, + filename: filename, + projectname: projectname, + ) +} diff --git a/packages/preview/ethz-cadmo-inspired-thesis/0.1.0/src/colours.typ b/packages/preview/ethz-cadmo-inspired-thesis/0.1.0/src/colours.typ new file mode 100644 index 0000000000..510452f868 --- /dev/null +++ b/packages/preview/ethz-cadmo-inspired-thesis/0.1.0/src/colours.typ @@ -0,0 +1,6 @@ +// ETH Color Palette +#import "eth-colors.typ": eth + +#let custom = ( + "light-gray": luma(220), +) diff --git a/packages/preview/ethz-cadmo-inspired-thesis/0.1.0/src/eth-colors.typ b/packages/preview/ethz-cadmo-inspired-thesis/0.1.0/src/eth-colors.typ new file mode 100644 index 0000000000..84c5457f14 --- /dev/null +++ b/packages/preview/ethz-cadmo-inspired-thesis/0.1.0/src/eth-colors.typ @@ -0,0 +1,31 @@ +// ETH Zürich corporate design colour palette. +// https://ethz.ch/staffnet/en/service/communication/corporate-design/colours.html +// +// Each corporate-design colour is a dictionary of its published shades. The key +// is the shade percentage (`s10` … `s120`); `s100` is the base colour, also +// exposed as `base`. Access e.g. `eth.blue.base` or `eth.red.s40`. + +// Build a shade palette from the seven published hex values. +#let palette(s10, s20, s40, s60, s80, base, s120) = ( + s10: rgb(s10), + s20: rgb(s20), + s40: rgb(s40), + s60: rgb(s60), + s80: rgb(s80), + s100: rgb(base), + base: rgb(base), + s120: rgb(s120), +) + +// ETH Zürich corporate-design colours, with the published shades. +#let eth = ( + blue: palette("#e9eff7", "#d3deef", "#a6bedf", "#7a9dcf", "#4d7dbf", "#215caf", "#08407e"), + petrol: palette("#e7f4f7", "#cce4ea", "#99cad5", "#66afc0", "#3395ab", "#007894", "#00596d"), + green: palette("#eef1e7", "#e0e3d0", "#c0c7a1", "#a1ab71", "#818f42", "#627313", "#365213"), + bronze: palette("#f4f0e7", "#e8e1d0", "#d2c2a1", "#bba471", "#a58542", "#8e6713", "#704f12"), + red: palette("#f8ebea", "#f1d7d5", "#e2aeab", "#d48681", "#c55d57", "#b7352d", "#96272d"), + purple: palette("#f8e8f3", "#efd0e3", "#dc9ec9", "#ca6cae", "#b73b92", "#a7117a", "#8c0a59"), + grey: palette("#f1f1f1", "#e2e2e2", "#c5c5c5", "#a9a9a9", "#8c8c8c", "#6f6f6f", "#575757"), + black: rgb("#000000"), + white: rgb("#ffffff"), +) diff --git a/packages/preview/ethz-cadmo-inspired-thesis/0.1.0/src/helpers.typ b/packages/preview/ethz-cadmo-inspired-thesis/0.1.0/src/helpers.typ new file mode 100644 index 0000000000..139ec4885e --- /dev/null +++ b/packages/preview/ethz-cadmo-inspired-thesis/0.1.0/src/helpers.typ @@ -0,0 +1,58 @@ +// Create a "TODO" box for work-in-progress notes. The `inline` option controls whether the box is inline with text or a block. +#import "colours.typ": * + +#let todo(body, inline: false) = if inline [ + #box(fill: custom.light-gray, outset: (x: 1pt, y: 2pt))[ + *TODO:* #body + ] +] else [ + #block(fill: custom.light-gray, inset: 0.6em, radius: 2pt, width: 100%)[ + *TODO:* #body + ] +] + +// Inserts sym.zws (zero-width space) after `-`, `_`, `:` so long identifiers can break across lines. +#let breakable-id(n) = ( + n.replace("-", "-" + str(sym.zws)).replace("_", "_" + str(sym.zws)).replace(":", ":" + str(sym.zws)) +) + +/// Takes a GitHub or GitLab Pull Requests and creates a compact link for displaying it. +#let display-pr(url) = { + // Regex to match GitHub PRs + // Captures: 1: owner/repo, 2: PR number + let github-pattern = regex("github\.com/([^/]+/[^/]+)/pull/(\d+)") + + // Regex to match GitLab MRs + // Captures: 1: owner/repo (can include nested subgroups), 2: MR number + let gitlab-pattern = regex("gitlab\.com/([^/]+(?:/[^/]+)+)/-/(?:merge_requests|pulls)/(\d+)") + + let gh-match = url.match(github-pattern) + let gl-match = url.match(gitlab-pattern) + + if gh-match != none { + let repo = gh-match.captures.at(0) + let pr-num = gh-match.captures.at(1) + link(url, "github:" + repo + "#" + pr-num) + } else if gl-match != none { + let repo = gl-match.captures.at(0) + let mr-num = gl-match.captures.at(1) + link(url, "gitlab:" + repo + "!" + mr-num) + } else { + // Fallback: If it doesn't match either, just render the raw link + link(url) + } +} + +// Link to a labeled heading, rendered as "Supplement N: Heading text" +// (e.g. "Section 3.2: LLVM"). Inspired by LaTeX's `\nameref` from the +// hyperref package, extended with the heading's number and supplement. +// Falls back to just the body for unnumbered headings. +#let nameref(label) = context { + let el = query(label).first() + if el.numbering == none { + link(label, el.body) + } else { + let num = numbering(el.numbering, ..counter(heading).at(el.location())) + link(label, [#el.supplement #num: #el.body]) + } +} diff --git a/packages/preview/ethz-cadmo-inspired-thesis/0.1.0/src/lib.typ b/packages/preview/ethz-cadmo-inspired-thesis/0.1.0/src/lib.typ new file mode 100644 index 0000000000..9aad2257b6 --- /dev/null +++ b/packages/preview/ethz-cadmo-inspired-thesis/0.1.0/src/lib.typ @@ -0,0 +1,14 @@ +// Colours used in the template +#import "colours.typ": * + +// Helper functions +#import "helpers.typ": breakable-id, display-pr, nameref, todo + +// Code formatting +#import "code.typ": code, code-file, multi-code + +// Theorem environment +#import "theorem.typ": claim, corollary, definition, example, lemma, proof, proposition, remark, theorem + +// Document structure helpers +#import "main-structure.typ": appendix, frontchapter, mainmatter, setup diff --git a/packages/preview/ethz-cadmo-inspired-thesis/0.1.0/src/main-structure.typ b/packages/preview/ethz-cadmo-inspired-thesis/0.1.0/src/main-structure.typ new file mode 100644 index 0000000000..9b29cbc36f --- /dev/null +++ b/packages/preview/ethz-cadmo-inspired-thesis/0.1.0/src/main-structure.typ @@ -0,0 +1,219 @@ +// Contains the code which is responsible for the main structure of the thesis, including the title page, table of contents, and chapter headings. +#import "@preview/wordometer:0.1.5": total-words, word-count +#import "theorem.typ": * + +// Unnumbered chapter-style heading for front matter (Abstract, Acknowledgments, …) +#let frontchapter(title) = heading(level: 1, numbering: none, title) + +// Apply as `#show: mainmatter` to start the main body: +// resets page and chapter counters and switches to arabic page numbers. +// The weak pagebreak ensures the counter update lands on the new page, +// not the last front-matter page (which would corrupt its roman numeral). +#let mainmatter(doc) = { + pagebreak(weak: true) + counter(page).update(1) + counter(heading).update(0) + set page(numbering: "1") + doc +} + +// Apply as `#show: appendix` to switch to lettered appendix numbering: +// level 1 → no number (use frontchapter for the title) +// level 2 → A, B, C, … +// level 3 → A.1, A.2, … +#let appendix(doc) = { + set heading( + numbering: (..nums) => { + let levels = nums.pos() + // Level 1 is the unnumbered "Appendix" title; deeper levels get letters + if levels.len() == 1 { none } else { numbering("A.1", ..levels.slice(1)) } + }, + supplement: [Appendix], + ) + counter(heading).update(0) + doc +} + +// Main setup + +#let setup( + title, + author, + advisors, + department: "Department of Computer Science", + thesis-type: "Bachelor Thesis", + date: datetime.today(), + bib: none, + dev: false, + doc, +) = { + // WiP / dev mode is active when `dev: true` is passed or any TODO is present. + // Must be called from within a `context` block. + let is-wip() = dev or query().len() > 0 + + set document(author: author, title: title, date: date) + set text(size: 11pt, lang: "en", font: "TeX Gyre Pagella") + set par(justify: true, spacing: 1em, first-line-indent: 0pt) + set heading(numbering: "1.1") + show heading.where(level: 1): set heading(supplement: [Chapter]) + set page( + paper: "a4", + margin: (x: 3.5cm, y: 3cm), + numbering: "i", + + // Running header: "Chapter N - N.M Section Title" with a rule below. + // Hidden on pages that start a new chapter. + header: context { + // Suppress on chapter-start pages + let current-page = here().page() + let chapters-on-page = query(heading.where(level: 1)).filter(h => h.location().page() == current-page) + if chapters-on-page.len() > 0 { return none } + + // Find the most recent chapter heading + let preceding-chapters = query(heading.where(level: 1).before(here())) + if preceding-chapters.len() == 0 { return none } + let current-chapter = preceding-chapters.last() + + // Build the chapter label: "Chapter N" for numbered chapters, body text for unnumbered + let chapter-label = if current-chapter.numbering != none { + let chapter-num = counter(heading).at(current-chapter.location()).first() + [Chapter #chapter-num] + } else { + current-chapter.body + } + + // If a section heading exists after the chapter start, append it + let preceding-sections = query(heading.where(level: 2).before(here())) + let header-text = if ( + preceding-sections.len() > 0 + and preceding-sections.last().location().page() >= current-chapter.location().page() + ) { + let current-section = preceding-sections.last() + let section-counter = counter(heading).at(current-section.location()) + [#chapter-label - #numbering("1.1", ..section-counter) #current-section.body] + } else { + chapter-label + } + + set text(size: 0.85em) + block(width: 100%, { + header-text + if is-wip() { place(horizon + right, text(fill: red, [WIP #sym.dot.c #total-words words])) } + }) + v(2pt) + line(length: 100%, stroke: 0.5pt) + }, + + // Footer: rule above centered page number + footer: context { + line(length: 100%, stroke: 0.5pt) + v(2pt) + align(center, text(size: 0.85em, counter(page).display())) + }, + ) + + // Chapter headings: + // "Chapter N" (large, regular weight) <- only for numbered chapters + // ------------------------------------------ + // Title (huge, bold) + // ------------------------------------------ + // + // NOTE: `align(center, { ... })` keeps us in code mode so that function + // calls like `block()` and `text()` are not treated as literal markup. + show heading.where(level: 1): it => { + pagebreak(weak: true) + v(1.5em) + align(center, { + if it.numbering != none { + text(size: 1.2em, weight: "regular", [Chapter #counter(heading).display("1")]) + v(2em) + } + // Wrap lines in block to suppress implicit spacing around them + block(above: 0pt, below: 0pt, line(length: 100%)) + v(1em) + text(size: 1.7em, weight: "bold", it.body) + v(1em) + block(above: 0pt, below: 0pt, line(length: 100%)) + }) + v(1em) + thm-counter.update(0) + } + + // Section headings (level 2) + show heading.where(level: 2): it => { + v(1em) + if it.numbering != none { + text(size: 1.15em, weight: "bold", counter(heading).display(it.numbering) + [ ] + it.body) + } else { + text(size: 1.15em, weight: "bold", it.body) + } + v(0.4em) + } + + // Subsection headings (level 3) + show heading.where(level: 3): it => { + v(0.8em) + if it.numbering != none { + // numbering can be a string or a function (e.g. in the appendix), + // so we only append ".1" when it is a plain string + let fmt = if type(it.numbering) == str { it.numbering + ".1" } else { it.numbering } + text(size: 1em, weight: "bold", counter(heading).display(fmt) + [ ] + it.body) + } else { + text(size: 1em, weight: "bold", it.body) + } + v(0.3em) + } + + show figure.caption: set text(size: 0.9em) + // Only color external URL links; keep cross-references in the default text color + show link: it => if type(it.dest) == str { + text(fill: rgb("#0645AD"), it) + } else { + it + } + + // Title page + page( + margin: (x: 3.5cm, y: 3cm), + numbering: none, + header: none, + footer: none, + { + image("../assets/eth-logo.png", width: 2in) + context { + if is-wip() { + v(1fr) + align(center, text("Work in Progress", size: 2em, weight: "bold", fill: red)) + } + } + v(1fr) + align(center, { + text(size: 2em, weight: "bold", title) + v(8em) + text(size: 1.3em, thesis-type) + v(0.8em) + text(size: 1.3em, author) + v(0.4em) + text(size: 1.3em, date.display("[month repr:long] [year]")) + }) + v(1fr) + align(right)[ + Advisors: #advisors.join(", ", last: " and ") \ + #department, ETH Zürich + ] + }, + ) + + // Count words for the header; skip non-prose and the end matter. + show: word-count.with(exclude: (raw, heading, outline, , )) + + doc + + if bib != none { + set page(numbering: "1") + heading(level: 1, numbering: none)[References] + + bib + } +} + diff --git a/packages/preview/ethz-cadmo-inspired-thesis/0.1.0/src/theorem.typ b/packages/preview/ethz-cadmo-inspired-thesis/0.1.0/src/theorem.typ new file mode 100644 index 0000000000..a0de1d111d --- /dev/null +++ b/packages/preview/ethz-cadmo-inspired-thesis/0.1.0/src/theorem.typ @@ -0,0 +1,29 @@ +// Single counter shared across all theorem-like environments, reset per chapter +#let thm-counter = counter("theorem") + +// Internal helper: renders a numbered block with a bold label +#let thm-block(supplement, body, name: none) = { + thm-counter.step() + context { + let chapter-num = counter(heading).get().first() + let thm-num = thm-counter.get().first() + let label = str(chapter-num) + "." + str(thm-num) + let header = if name != none { + [*#supplement #label* (#name)*.*] + } else { + [*#supplement #label.*] + } + block(above: 1em, below: 1em)[#header #body] + } +} + +#let theorem(body, name: none) = thm-block([Theorem], body, name: name) +#let lemma(body, name: none) = thm-block([Lemma], body, name: name) +#let corollary(body, name: none) = thm-block([Corollary], body, name: name) +#let proposition(body, name: none) = thm-block([Proposition], body, name: name) +#let definition(body, name: none) = thm-block([Definition], body, name: name) +#let example(body, name: none) = thm-block([Example], body, name: name) +#let remark(body, name: none) = thm-block([Remark], body, name: name) +#let claim(body, name: none) = thm-block([Claim], body, name: name) + +#let proof(body) = block(above: 1em, below: 1em)[_Proof._ #body #h(1fr) $square$] diff --git a/packages/preview/ethz-cadmo-inspired-thesis/0.1.0/template/bib.bib b/packages/preview/ethz-cadmo-inspired-thesis/0.1.0/template/bib.bib new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/preview/ethz-cadmo-inspired-thesis/0.1.0/template/main.typ b/packages/preview/ethz-cadmo-inspired-thesis/0.1.0/template/main.typ new file mode 100644 index 0000000000..60bd80836d --- /dev/null +++ b/packages/preview/ethz-cadmo-inspired-thesis/0.1.0/template/main.typ @@ -0,0 +1,34 @@ +#import "@preview/ethz-cadmo-inspired-thesis:0.1.0": * + +#show: setup.with( + "My Thesis Title", // title + "Jane Doe", // author + ("Advisor One", "Advisor Two"), // advisors + thesis-type: "Bachelor Thesis", + department: "Department of Computer Science", + bib: bibliography("bib.bib", title: none), +) + +// Front matter (unnumbered, roman page numbers) +#frontchapter[Abstract] + +This thesis is about ... + +#outline(depth: 3) + +// Main body (arabic page numbers, counters reset) +#show: mainmatter + += Introduction + +Some introductory text. + += Background + +Some background. + +#show: appendix + +#frontchapter[Appendix] + +== Appendix A diff --git a/packages/preview/ethz-cadmo-inspired-thesis/0.1.0/thumbnail.png b/packages/preview/ethz-cadmo-inspired-thesis/0.1.0/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..22f8c5d6ae039d34c361b6a7b66d785f187ae669 GIT binary patch literal 264574 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
    @7^iBO;OQ#K;?i9Y>$poMA9(zDZH4iSA`WYC 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

    b?PQek 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