diff --git a/packages/preview/tgm-hit-protocol/0.2.0/.gitignore b/packages/preview/tgm-hit-protocol/0.2.0/.gitignore new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/preview/tgm-hit-protocol/0.2.0/CHANGELOG.md b/packages/preview/tgm-hit-protocol/0.2.0/CHANGELOG.md new file mode 100644 index 0000000000..2041eca39d --- /dev/null +++ b/packages/preview/tgm-hit-protocol/0.2.0/CHANGELOG.md @@ -0,0 +1,49 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [Unreleased] + +
+Migration guide from v0.1.x + + + +
+ +### Added + +### Changed + +### Deprecated + +### Removed + +### Fixed + +### Security + +## [0.2.0] - 2025-11-25 + +### Changed +- BREAKING: the minimum supported Typst version is now 0.13.1 +- Several packages were updated to their most recent versions, among them glossarium: + - for glossary entries, having only a `long` form is now permitted + - BREAKING: glossarium no longer supports keys containing `:` colons + - BREAKING: in `glossary-entry()`, the `desc` parameter is now named `description` + - BREAKING: glossary entries are now defined differently, see [the diff of the template](https://github.com/TGM-HIT/typst-protocol/commit/a9ce50817370262b33c583c7e84ab450e5516b93#diff-7c3fcb5c97b51160af4b4a26981b152d6995f8ec0077281456d3f51f4b0e9d84) for an example + +### Fixed +- The template is now Typst 0.14 compatible + +## [0.1.0] - 2024-10-09 + +- Initial version + + +[Unreleased]: https://github.com/TGM-HIT/typst-protocol/compare/v0.2.0...HEAD +[0.2.0]: https://github.com/TGM-HIT/typst-protocol/releases/tag/v0.2.0 +[0.1.0]: https://github.com/TGM-HIT/typst-protocol/releases/tag/v0.1.0 diff --git a/packages/preview/tgm-hit-protocol/0.2.0/LICENSE b/packages/preview/tgm-hit-protocol/0.2.0/LICENSE new file mode 100644 index 0000000000..eae6c389cf --- /dev/null +++ b/packages/preview/tgm-hit-protocol/0.2.0/LICENSE @@ -0,0 +1,22 @@ +(The MIT License) + +Copyright (c) 2024 Simon Gao, Clemens Koza + +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. \ No newline at end of file diff --git a/packages/preview/tgm-hit-protocol/0.2.0/README.md b/packages/preview/tgm-hit-protocol/0.2.0/README.md new file mode 100644 index 0000000000..86113cdacb --- /dev/null +++ b/packages/preview/tgm-hit-protocol/0.2.0/README.md @@ -0,0 +1,17 @@ +# TGM HIT protocol template + +This is a port of the [LaTeX protocol template](https://github.com/TGM-HIT/latex-protocol/) available for students of the information technology department at the TGM technical secondary school in Vienna. + +## Getting Started + +Using the Typst web app, you can create a project by e.g. using this link: https://typst.app/?template=tgm-hit-protocol&version=latest. + +To work locally, use the following command: + +```bash +typst init @preview/tgm-hit-protocol +``` + +## Usage + +The template ([rendered PDF](main.pdf)) contains thesis writing advice (in German) as example content. If you are looking for the details of this template package's function, take a look at the [manual](docs/manual.pdf). diff --git a/packages/preview/tgm-hit-protocol/0.2.0/docs/manual.pdf b/packages/preview/tgm-hit-protocol/0.2.0/docs/manual.pdf new file mode 100644 index 0000000000..36934b0203 Binary files /dev/null and b/packages/preview/tgm-hit-protocol/0.2.0/docs/manual.pdf differ diff --git a/packages/preview/tgm-hit-protocol/0.2.0/example.pdf b/packages/preview/tgm-hit-protocol/0.2.0/example.pdf new file mode 100644 index 0000000000..3a34587242 Binary files /dev/null and b/packages/preview/tgm-hit-protocol/0.2.0/example.pdf differ diff --git a/packages/preview/tgm-hit-protocol/0.2.0/src/assets/logo-left.png b/packages/preview/tgm-hit-protocol/0.2.0/src/assets/logo-left.png new file mode 100644 index 0000000000..b55699f535 Binary files /dev/null and b/packages/preview/tgm-hit-protocol/0.2.0/src/assets/logo-left.png differ diff --git a/packages/preview/tgm-hit-protocol/0.2.0/src/assets/logo-right.png b/packages/preview/tgm-hit-protocol/0.2.0/src/assets/logo-right.png new file mode 100644 index 0000000000..da84dd252b Binary files /dev/null and b/packages/preview/tgm-hit-protocol/0.2.0/src/assets/logo-right.png differ diff --git a/packages/preview/tgm-hit-protocol/0.2.0/src/assets/mod.typ b/packages/preview/tgm-hit-protocol/0.2.0/src/assets/mod.typ new file mode 100644 index 0000000000..273243c7c0 --- /dev/null +++ b/packages/preview/tgm-hit-protocol/0.2.0/src/assets/mod.typ @@ -0,0 +1,7 @@ +/// The TGM logo. This is a partially applied function and thus can accept most of the parameters +/// that ```typc image()``` can. +#let tgm-logo = image.with("logo-left.png") + +/// The HTL logo. This is a partially applied function and thus can accept most of the parameters +/// that ```typc image()``` can. +#let just-do-it-logo = image.with("logo-right.png") diff --git a/packages/preview/tgm-hit-protocol/0.2.0/src/glossary.typ b/packages/preview/tgm-hit-protocol/0.2.0/src/glossary.typ new file mode 100644 index 0000000000..0851c9774e --- /dev/null +++ b/packages/preview/tgm-hit-protocol/0.2.0/src/glossary.typ @@ -0,0 +1,85 @@ +#import "libs.typ": glossarium +#import glossarium: make-glossary, gls, agls, glspl + +#let _glossary_entries = state("thesis-glossary-entries") + +/// Registers the passed entries with Glossarium. +/// +/// -> content +#let register-glossary( + /// The positional-only entries for the glossary + /// -> arguments + ..entries, +) = { + assert.eq(entries.named(), (:), message: "no named arguments allowed") + let entries = entries.pos() + glossarium.register-glossary(entries) + _glossary_entries.update(entries) +} + +/// Stores a glossary entry for this thesis. One call to this function is equivalent to one array +/// entry in Glossarium's ```typc print-glossary()```'s main parameter. +/// +/// -> dictionary +#let glossary-entry( + /// The key with which the glossary entry can be referenced; must be unique. + /// -> string + key, + /// Mandatory; the short form of the entry shown after the term has been first defined. + /// -> string + short: none, + /// The long form of the term, displayed in the glossary and on the first citation of the term. + /// -> string | content + long: none, + /// The description of the term. + /// -> string | content + description: none, + /// The pluralized short form of the term. + /// -> string | content + plural: none, + /// The pluralized long form of the term. + /// -> string | content + longplural: none, + /// The group the term belongs to. The terms are displayed by groups in the glossary. + /// -> string + group: none, +) = { + assert(short != none or long != none, message: "short or long form of glossary-entry is mandatory") + + let entry = ( + key: key, + short: short, + long: long, + description: description, + plural: plural, + longplural: longplural, + group: group, + ) + let entry = for (k, v) in entry { + if v != none { + ((k): v) + } + } + + entry +} + +/// Displays a glossary of the entries added via @@glossary-entry(). +/// +/// -> content +#let print-glossary( + /// A (level 1) heading that titles this glossary. If the glossary is empty, the title is not shown. + /// -> content + title: none, + /// Any extra parameters to the glossarium function of the same name. + /// -> arguments + ..args, +) = context { + let entries = _glossary_entries.get() + + if glossarium.there-are-refs() or args.named().at("show-all", default: false) { + title + } + + glossarium.print-glossary(entries, ..args) +} diff --git a/packages/preview/tgm-hit-protocol/0.2.0/src/l10n.toml b/packages/preview/tgm-hit-protocol/0.2.0/src/l10n.toml new file mode 100644 index 0000000000..323f3ae9bc --- /dev/null +++ b/packages/preview/tgm-hit-protocol/0.2.0/src/l10n.toml @@ -0,0 +1,38 @@ +[conf] +default-lang = "en" + +[lang.en] +supervisor = "Supervisor" +grade = "Grade" +version = "Version" +started = "Started" +finished = "Finished" + +figure = "Figure" +table = "Table" +listing = "Listing" + +contents = "Contents" +bibliography = "Bibliography" +list-of-figures = "List of Figures" +list-of-tables = "List of Tables" +list-of-listings = "List of Listings" +glossary = "Glossary" + +[lang.de] +supervisor = "Betreuer" +grade = "Bewertung" +version = "Version" +started = "Begonnen" +finished = "Beendet" + +figure = "Abbildung" +table = "Tabelle" +listing = "Auflistung" + +contents = "Inhaltsverzeichnis" +bibliography = "Literaturverzeichnis" +list-of-figures = "Abbildungsverzeichnis" +list-of-tables = "Tabellenverzeichnis" +list-of-listings = "Auflistungsverzeichnis" +glossary = "Glossar" diff --git a/packages/preview/tgm-hit-protocol/0.2.0/src/l10n.typ b/packages/preview/tgm-hit-protocol/0.2.0/src/l10n.typ new file mode 100644 index 0000000000..34e7303cd6 --- /dev/null +++ b/packages/preview/tgm-hit-protocol/0.2.0/src/l10n.typ @@ -0,0 +1,24 @@ +#import "libs.typ": linguify +#import linguify: set-database as _set_database, linguify + +/// *Internal function.* Initializes Linguify with the template's translation file. +/// +/// -> content +#let set-database() = _set_database(toml("l10n.toml")) + +#let supervisor = linguify("supervisor") +#let grade = linguify("grade") +#let version = linguify("version") +#let started = linguify("started") +#let finished = linguify("finished") + +#let figure = linguify("figure") +#let table = linguify("table") +#let listing = linguify("listing") + +#let contents = linguify("contents") +#let bibliography = linguify("bibliography") +#let list-of-figures = linguify("list-of-figures") +#let list-of-tables = linguify("list-of-tables") +#let list-of-listings = linguify("list-of-listings") +#let glossary = linguify("glossary") diff --git a/packages/preview/tgm-hit-protocol/0.2.0/src/lib.typ b/packages/preview/tgm-hit-protocol/0.2.0/src/lib.typ new file mode 100644 index 0000000000..893546c0eb --- /dev/null +++ b/packages/preview/tgm-hit-protocol/0.2.0/src/lib.typ @@ -0,0 +1,234 @@ +#import "libs.typ": ccicons, datify, outrageous + +#import "assets/mod.typ" as assets +#import "glossary.typ": * +#import "l10n.typ" + +#let parse-date(d) = { + toml(bytes("date = " + d)).date +} + +#let display-date(d) = { + let date-formats = ( + "en": "Month DD, YYYY", + "de": "DD. Month YYYY", + ) + context if text.lang in date-formats { + datify.custom-date-format(d, pattern: date-formats.at(text.lang), lang: text.lang) + } else { + date.display() + } +} + +#let start-page( + subject: none, + course: none, + title: none, + subtitle: none, + author: none, + teacher: none, + version: none, + begin: none, + finish: none, + date: none, +) = [ + // header images + #grid( + columns: (1fr, 1fr), + align: (left, right), + assets.tgm-logo(width: 3.2cm), + assets.just-do-it-logo(width: 3.2cm), + ) + + #v(1fr) + + // middle part + #[ + #set align(center) + + #text(1.1em)[#subject] + + #course + + #text(2.5em, weight: "bold")[#title] + + #text(1.4em)[#subtitle] + + #author + + #if date != none { display-date(date) } + ] + + #v(1fr) + + // footer table + #table( + columns: (1fr, 4fr, 1fr, 2fr), + align: (left, left, left, right), + stroke: none, + rows: 3, + + [#l10n.grade:], + [], + [#l10n.version:], + version, + + [#l10n.supervisor:], + teacher, + [#l10n.started:], + if begin != none { display-date(begin) }, + + [], + [], + [#l10n.finished:], + if finish != none { display-date(finish) }, + ) + + #v(2cm) +] + +/// The main template function. Your document will generally start with ```typ #show: template(...)```, +/// which it already does after initializing the template. Although all parameters are named, most +/// of them are really mandatory. Parameters that are not given may result in missing content in +/// places where it is not actually optional. +/// +/// -> function +#let template( + /// The subject, displayed on the title page, above the course. + /// -> content | string + subject: none, + /// The course, displayed on the title page, above the title. + /// -> content | string + course: none, + /// The title, displayed on the title page. + /// -> content | string + title: none, + /// The subtitle, displayed on the title, under the title. + /// -> content | string + subtitle: none, + /// The author, displayed under the subtitle and in the footer. + /// -> content | string + author: none, + /// The name of the teacher, displayed on the title page. + /// -> content | string + teacher: none, + /// The version, displayed on the title page. + /// -> content | string + version: none, + /// The begin date of the protocol. + /// -> datetime + begin: none, + /// The finish date of the protocol. + /// -> datetime + finish: none, + /// The current date, displayed on the title page and in the header. + /// -> datetime + date: datetime.today(), + /// The bibliography (```typc bibliography()```) to use for the thesis. + /// -> content + bibliography: none, +) = body => [ + #set document( + ..if author != none { + (author: author) + }, + title: title, + date: date, + ) + + #set heading(numbering: "1.1") + #show link: set text(fill: blue) + + // setup linguify + #l10n.set-database() + + #start-page( + subject: subject, + course: course, + title: title, + subtitle: subtitle, + author: author, + teacher: teacher, + version: version, + begin: begin, + finish: finish, + date: date, + ) + + // header and footer + #set page( + header: { + grid( + columns: (1fr, 1fr, 1fr), + align: (left, center, right), + inset: (bottom: 0.3em), + title, + subject, + if date != none { display-date(date) }, + grid.hline(), + ) + }, + footer: { + grid( + columns: (1fr, 1fr, 1fr), + align: (left, center, right), + inset: (top: 0.3em), + grid.hline(), + [#author #ccicons.cc-by], + course, + context counter(page).display("1 / 1", both: true), + ) + }, + numbering: "1/1", + ) + + #show: make-glossary + + #show outline.entry: outrageous.show-entry.with( + font: (auto,), + ) + + #outline() + + #pagebreak() + + #body + + #pagebreak(weak: true) + + #show outline.entry: outrageous.show-entry.with( + font: (auto,), + fill: (align(right, outrageous.repeat(gap: 6pt)[.]),), + ) + + #[ + #set heading(outlined: true, numbering: none) + #print-glossary(title: [= #l10n.glossary]) + ] + + #[ + #set std.bibliography(title: none) + #set heading(numbering: none) + + = #l10n.bibliography + + #bibliography + ] + + #show outline: set heading(outlined: true) + + #outline( + target: figure.where(kind: image), + title: l10n.list-of-figures, + ) + + #outline( + target: figure.where(kind: table), + title: l10n.list-of-tables, + ) + + #outline( + target: figure.where(kind: raw), + title: l10n.list-of-listings, + ) +] diff --git a/packages/preview/tgm-hit-protocol/0.2.0/src/libs.typ b/packages/preview/tgm-hit-protocol/0.2.0/src/libs.typ new file mode 100644 index 0000000000..3fc79c6da1 --- /dev/null +++ b/packages/preview/tgm-hit-protocol/0.2.0/src/libs.typ @@ -0,0 +1,6 @@ +// import external packages here, so that package versions do not diverge +#import "@preview/ccicons:1.0.1" +#import "@preview/datify:1.0.0" +#import "@preview/glossarium:0.5.9" +#import "@preview/linguify:0.4.2" +#import "@preview/outrageous:0.4.1" diff --git a/packages/preview/tgm-hit-protocol/0.2.0/template/assets.typ b/packages/preview/tgm-hit-protocol/0.2.0/template/assets.typ new file mode 100644 index 0000000000..f8c28b1f05 --- /dev/null +++ b/packages/preview/tgm-hit-protocol/0.2.0/template/assets.typ @@ -0,0 +1 @@ +#import "assets/mod.typ": * diff --git a/packages/preview/tgm-hit-protocol/0.2.0/template/assets/just-do-it.png b/packages/preview/tgm-hit-protocol/0.2.0/template/assets/just-do-it.png new file mode 100644 index 0000000000..da84dd252b Binary files /dev/null and b/packages/preview/tgm-hit-protocol/0.2.0/template/assets/just-do-it.png differ diff --git a/packages/preview/tgm-hit-protocol/0.2.0/template/assets/mod.typ b/packages/preview/tgm-hit-protocol/0.2.0/template/assets/mod.typ new file mode 100644 index 0000000000..c3e9950ab6 --- /dev/null +++ b/packages/preview/tgm-hit-protocol/0.2.0/template/assets/mod.typ @@ -0,0 +1 @@ +#let just-do-it-logo = image.with("just-do-it.png") diff --git a/packages/preview/tgm-hit-protocol/0.2.0/template/bibliography.bib b/packages/preview/tgm-hit-protocol/0.2.0/template/bibliography.bib new file mode 100644 index 0000000000..ef4fa08344 --- /dev/null +++ b/packages/preview/tgm-hit-protocol/0.2.0/template/bibliography.bib @@ -0,0 +1,7 @@ +@online{ wiki:syt, + title = {Systemtechnik}, + author = {Wikipedia Autoren}, + url = {https://de.wikipedia.org/wiki/Systemtechnik}, + organization = {Wikipedia}, + note = {07.03.2018} +} diff --git a/packages/preview/tgm-hit-protocol/0.2.0/template/glossaries.typ b/packages/preview/tgm-hit-protocol/0.2.0/template/glossaries.typ new file mode 100644 index 0000000000..4f758d93cd --- /dev/null +++ b/packages/preview/tgm-hit-protocol/0.2.0/template/glossaries.typ @@ -0,0 +1,16 @@ +#import "lib.typ": * + +#register-glossary( + glossary-entry( + "tgm", + short: "TGM", + long: "Technologisches Gewerbemuseum", + // group: "Accronyms", + ), + glossary-entry( + "syt", + short: "SYT", + long: "Systemtechnik", + description: ["Als Systemtechnik bezeichnet man verschiedene Aufbau- und Verbindungstechniken, aber auch eine Fachrichtung der Ingenieurwissenschaften. Er bedeutet in der Unterscheidung zu den Mikrotechnologien die Verbindung verschiedener einzelner Module eines Systems und deren Konzeption." @wiki:syt] + ), +) diff --git a/packages/preview/tgm-hit-protocol/0.2.0/template/lib.typ b/packages/preview/tgm-hit-protocol/0.2.0/template/lib.typ new file mode 100644 index 0000000000..e6efdda5e1 --- /dev/null +++ b/packages/preview/tgm-hit-protocol/0.2.0/template/lib.typ @@ -0,0 +1,3 @@ +#import "@preview/tgm-hit-protocol:0.2.0": * + +#import "assets.typ" diff --git a/packages/preview/tgm-hit-protocol/0.2.0/template/main.typ b/packages/preview/tgm-hit-protocol/0.2.0/template/main.typ new file mode 100644 index 0000000000..e1426f5363 --- /dev/null +++ b/packages/preview/tgm-hit-protocol/0.2.0/template/main.typ @@ -0,0 +1,145 @@ +#import "lib.typ": * + +#set text(lang: "de") +#show: template( + title: [Protokolle in Typst], + course: [5xHIT 20yy/yy], + subtitle: [Laborprotokoll], + subject: [Systemtechnik Labor], + author: "Arthur Dent", + teacher: [Michael Borko], + version: [1.0], + begin: parse-date("2024-10-07"), + finish: parse-date("2024-10-07"), + date: parse-date("2024-10-09"), + bibliography: bibliography("bibliography.bib"), +) + +#include "glossaries.typ" + += Einführung +Diese Protokollvorlage soll helfen den Laborübungsteil entsprechend +dokumentieren zu können. Diese Vorlage ist in Typst verfasst. + +== Ziele +Hier werden die zu erwerbenden Kompetenzen und deren Deskriptoren beschrieben. +Diese werden von den unterweisenden Lehrkräften vorgestellt. + +Dies kann natürlich auch durch eine Aufzählung erfolgen: +- Dokumentiere wichtige Funktionen +- Gib eine Einführung zur Verwendung von Typst + +== Voraussetzungen +Welche Informationen sind notwendig um die Laborübung reibungslos durchführen zu +können? Hier werden alle Anforderungen der Lehrkraft detailliert beschrieben und +mit Quellen untermauert. + +== Aufgabenstellung +Hier wird dann die konkrete Aufgabenstellung der Laborübung definiert. + +== Bewertung +Hier wird die Bewertung für das Beispiel auf die jeweiligen Kompetenzen +aufgeteilt. Diese soll zur leichteren Abnahme auch nicht entfernt werden. + +Nun kommt ein Seitenumbruch, um eine klare Trennung der Schülerarbeit zu +bestimmen. + +#pagebreak() + += Anwendung + +Hier sollen die Schritte der Laborübung erläutert werden. Hier sind alle +Fragestellungen der Lehrkraft zu beantworten. Etwaige Probleme bzw. +Schwierigkeiten sollten ebenfalls hier angeführt werden. + +In diesem Fall werden einige Typst-Elemente dokumentiert, welche bei der +Kreation von Protokollen behilflich sein könnten. + +== Figures + +Wenn man etwas in ein figure packt, dann kann es in einem Abbildungsverzeichnis +(oder ähnliches) später aufgelistet werden. + +#figure( + "Auch Text ist möglich!", + caption: [Figure mit Text], +) + +Man kann ihnen Labels (\) geben, und referenzieren (@text-figure). + +Die folgenden Features können auch ohne figures verwendet werden. + +== Abbildungen + +#figure( + assets.just-do-it-logo(width: 50%), + caption: [Mit Beschreibung und Label], +) + +== Mathe :) + +=== Inline +Die coole Formel: $e^(i*pi)+1=0$ + +=== Zentriert +$ e^(i*pi)+1=0 $ + +=== Figure +#figure( + $ e^(i*pi)+1=0 $, + caption: [Eulersche Identität], +) + +== Tabellen + +#figure( + table( + columns: (1fr, 9fr), + table.header([*Header*], [*Kopf*]), + [#lorem(2)], [#lorem(10)], + [#lorem(2)], [uwu], + ), + caption: [Tabellen], +) + +== Aufzählung + +- Element einer Aufzählung + - Erstes eingerücktes Element einer Aufzählung + - Zweites eingerücktes Element einer Aufzählung + ++ Element einer Aufzählung + + Erstes eingerücktes Element einer Aufzählung + + Zweites eingerücktes Element einer Aufzählung + +== Glossar + +Das Glossar enthält Erklärungen von Begriffen und Abkürzen, die im Fließtext keinen Platz haben. In der Datei `glossaries.typ` werden Begriffe -- oder in diesem Fall eine Abkürzung -- in der folgenden Form definiert: + +#figure( + ```typ + #glossary-entry( + "tgm", + short: "TGM", + long: "Technologisches Gewerbemuseum", + ) + ```, + caption: [Eintrag einer Abkürzung in `glossaries.typ`], +) + +Verwendet werden kann dieser Glossareintrag ähnlich einer Quellenangabe durch ```typ @tgm```. Bei der ersten Verwendung wird die Langform automatisch auch dargestellt: @tgm. Bei weiteren Verwendungen wird dagegen nur die Kurzform angezeigt: @tgm. + +Mit der Funktion ```typc gls()``` kann auch die Langform erzwungen werden: #gls("syt") ist beim ersten mal auch ausgeschrieben, aber hier wird es manuell erwirkt: #gls("syt", long: true). + +== Quelltext + +#figure( + ```cpp + #include + int main() { + // Ich bin ein Kommentar! + std::cout << "Hello World! :3\n"; + } + ```, + caption: [C++ Code], +) diff --git a/packages/preview/tgm-hit-protocol/0.2.0/thumbnail.png b/packages/preview/tgm-hit-protocol/0.2.0/thumbnail.png new file mode 100644 index 0000000000..3244cc0e10 Binary files /dev/null and b/packages/preview/tgm-hit-protocol/0.2.0/thumbnail.png differ diff --git a/packages/preview/tgm-hit-protocol/0.2.0/typst.toml b/packages/preview/tgm-hit-protocol/0.2.0/typst.toml new file mode 100644 index 0000000000..2650862a65 --- /dev/null +++ b/packages/preview/tgm-hit-protocol/0.2.0/typst.toml @@ -0,0 +1,36 @@ +# for a description of available keys, see https://github.com/typst/packages/?tab=readme-ov-file#package-format + +[package] +name = "tgm-hit-protocol" +version = "0.2.0" +entrypoint = "src/lib.typ" +authors = [ + "Simon Gao ", + "Clemens Koza ", +] +license = "MIT" +description = "Protocol template for students of the HIT department at TGM Wien" +# homepage = "" +repository = "https://github.com/TGM-HIT/typst-protocol" +keywords = ["TGM", "HIT", "protocol", "HTL", "SYT"] +categories = ["report"] +disciplines = ["computer-science"] +compiler = "0.13.1" +exclude = [ + ".github", + "docs", + "gallery", + "scripts", + "tests", + ".typstignore", + "Justfile", + "example.pdf", +] + +[template] +path = "template" +entrypoint = "main.typ" +thumbnail = "thumbnail.png" + +# [tool.mytool] +# foo = "bar"