Skip to content

Commit 78149f4

Browse files
authored
tgm-hit-thesis:0.3.0 (#1998)
1 parent e011545 commit 78149f4

34 files changed

+1281
-0
lines changed

packages/preview/tgm-hit-thesis/0.3.0/.gitignore

Whitespace-only changes.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
# Changelog
2+
3+
All notable changes to this project will be documented in this file.
4+
5+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7+
8+
## [Unreleased]
9+
10+
<details>
11+
<summary>Migration guide from v0.1.x</summary>
12+
13+
<!-- Write migration guide here -->
14+
15+
</details>
16+
17+
### Added
18+
19+
### Changed
20+
21+
### Deprecated
22+
23+
### Removed
24+
25+
### Fixed
26+
27+
### Security
28+
29+
## [0.3.0] - 2025-03-13
30+
31+
<details>
32+
<summary>Migration guide from v0.2.x</summary>
33+
34+
To get a feeling what you need to change, compare [`template/main.typ`](https://github.com/TGM-HIT/typst-diploma-thesis/blob/v0.3.0/template/main.typ) with what you have. In particular, you will probably need to
35+
36+
- add a parameter `read: path => read(path),` to the initial `thesis()` template call
37+
- remove `strict-chapter-end: true,` if you were using it
38+
- remove all instances of `#chapter-end()`
39+
40+
Additionally, you should have a look at [`template/bibliography.bib`](https://github.com/TGM-HIT/typst-diploma-thesis/blob/v0.3.0/template/bibliography.bib#L42-L46) which demonstrates how to cite a prompt.
41+
A (German) prose explanation of the usage of prompts can be found in the [Example document](https://github.com/TGM-HIT/typst-diploma-thesis/blob/v0.3.0/example.pdf), section 1.2 _Promptverzeichnis_.
42+
43+
</details>
44+
45+
### Added
46+
- BREAKING: `thesis()` has an extra `read` parameter for initializing Alexandria
47+
- There is now a separate List of Prompts
48+
49+
### Changed
50+
- BREAKING: in `glossary-entry()`, the `desc` parameter is now named `description`
51+
- for glossary entries, having only a `long` form is not permitted
52+
- bibliography is now handled by Alexandria
53+
- inline quotes with attribution now display that attribution
54+
55+
### Removed
56+
- BREAKING: `chapter-end()` and `strict-chapter-end` have been removed
57+
58+
### Fixed
59+
- setup of the `i-figured` package works again
60+
- the template is now compatible with Typst 0.13
61+
- descriptions of glossary items are no longer ignored
62+
- an empty glossary is now automatically hidden
63+
64+
### Security
65+
66+
## [0.2.0] - 2024-10-23
67+
68+
### Changed
69+
- long chapter titles now look nicer in the header
70+
- **breaking:** glossary entries are now defined differently, see [the diff of the template](https://github.com/TGM-HIT/typst-diploma-thesis/commit/8c4d03a14ac3ddab6718cc7e11341924c66703bd#diff-7c3fcb5c97b51160af4b4a26981b152d6995f8ec0077281456d3f51f4b0e9d84) for an example
71+
- **regression:** if there are no glossary references, an empty glossary section will be shown (glossarium 0.5 hides a couple private functions, see [glossarium#70](https://github.com/typst-community/glossarium/issues/70))
72+
73+
### Fixed
74+
- fix deprecation warnings and incompatibilities introduced in 0.12, in part by updating codly, glossarium and outrageous
75+
76+
## [0.1.3] - 2024-09-14
77+
78+
### Changed
79+
- get rid of more custom outline styling thanks to outrageous:0.2.0
80+
81+
## [0.1.2] - 2024-09-14
82+
83+
(this version was released in a broken state)
84+
85+
## [0.1.1] - 2024-09-09
86+
87+
### Added
88+
- adds support for highlighting authors of individual pages of the thesis, which is a requirement for the thesis' grading
89+
90+
### Changed
91+
- replaces some custom outline styling with [outrageous](https://typst.app/universe/package/outrageous)
92+
93+
## [0.1.0] - 2024-07-13
94+
95+
Initial Release
96+
97+
98+
[Unreleased]: https://github.com/TGM-HIT/typst-diploma-thesis/compare/v0.2.0...HEAD
99+
[0.3.0]: https://github.com/TGM-HIT/typst-diploma-thesis/releases/tag/v0.3.0
100+
[0.2.0]: https://github.com/TGM-HIT/typst-diploma-thesis/releases/tag/v0.2.0
101+
[0.1.3]: https://github.com/TGM-HIT/typst-diploma-thesis/releases/tag/v0.1.3
102+
[0.1.2]: https://github.com/TGM-HIT/typst-diploma-thesis/releases/tag/v0.1.2
103+
[0.1.1]: https://github.com/TGM-HIT/typst-diploma-thesis/releases/tag/v0.1.1
104+
[0.1.0]: https://github.com/TGM-HIT/typst-diploma-thesis/releases/tag/v0.1.0
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
(The MIT License)
2+
3+
Copyright (c) 2024 Clemens Koza
4+
5+
Permission is hereby granted, free of charge, to any person obtaining
6+
a copy of this software and associated documentation files (the
7+
'Software'), to deal in the Software without restriction, including
8+
without limitation the rights to use, copy, modify, merge, publish,
9+
distribute, sublicense, and/or sell copies of the Software, and to
10+
permit persons to whom the Software is furnished to do so, subject to
11+
the following conditions:
12+
13+
The above copyright notice and this permission notice shall be
14+
included in all copies or substantial portions of the Software.
15+
16+
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
17+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
19+
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
20+
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
21+
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
22+
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# TGM HIT diploma thesis template
2+
3+
This is a port of the [LaTeX diploma thesis template](https://github.com/TGM-HIT/diploma-thesis) available for students of the information technology department at the TGM technical secondary school in Vienna.
4+
5+
## Getting Started
6+
7+
Using the Typst web app, you can create a project by e.g. using this link: https://typst.app/?template=tgm-hit-thesis&version=latest.
8+
9+
To work locally, use the following command:
10+
11+
```bash
12+
typst init @preview/tgm-hit-thesis
13+
```
14+
15+
## Usage
16+
17+
The template ([rendered PDF](example.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).
Binary file not shown.
Binary file not shown.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
#import "assets/mod.typ": *
Loading
Loading
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
/// The TGM logo. This is a partially applied function and thus can accept most of the parameters
2+
/// that ```typc image()``` can.
3+
///
4+
/// -> content
5+
#let tgm-logo = image.with("logo-left.png")
6+
7+
/// The HTL logo. This is a partially applied function and thus can accept most of the parameters
8+
/// that ```typc image()``` can.
9+
///
10+
/// -> content
11+
#let htl-logo = image.with("logo-right.png")
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
#import "@preview/alexandria:0.1.3" as alexandria: load-bibliography as bibliography
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
#import "@preview/glossarium:0.5.2" as glossarium: make-glossary, gls, agls, glspl
2+
3+
#let _glossary_entries = state("thesis-glossary-entries")
4+
5+
#let register-glossary(..entries) = {
6+
assert.eq(entries.named(), (:), message: "no named arguments allowed")
7+
let entries = entries.pos()
8+
glossarium.register-glossary(entries)
9+
_glossary_entries.update(entries)
10+
}
11+
12+
/// Stores a glossary entry for this thesis. One call to this function is equivalent to one array
13+
/// entry in Glossarium's ```typc print-glossary()```'s main parameter.
14+
///
15+
/// -> content
16+
#let glossary-entry(
17+
/// The key with which the glossary entry can be referenced; must be unique.
18+
/// -> string
19+
key,
20+
/// Mandatory; the short form of the entry shown after the term has been first defined.
21+
/// -> string
22+
short: none,
23+
/// The long form of the term, displayed in the glossary and on the first citation of the term.
24+
/// -> string | content
25+
long: none,
26+
/// The description of the term.
27+
/// -> string | content
28+
description: none,
29+
/// The pluralized short form of the term.
30+
/// -> string | content
31+
plural: none,
32+
/// The pluralized long form of the term.
33+
/// -> string | content
34+
longplural: none,
35+
/// The group the term belongs to. The terms are displayed by groups in the glossary.
36+
/// -> string
37+
group: none,
38+
) = {
39+
assert(short != none or long != none, message: "short or long form of glossary-entry is mandatory")
40+
41+
let entry = (
42+
key: key,
43+
short: short,
44+
long: long,
45+
description: description,
46+
plural: plural,
47+
longplural: longplural,
48+
group: group,
49+
)
50+
let entry = for (k, v) in entry {
51+
if v != none {
52+
((k): v)
53+
}
54+
}
55+
56+
entry
57+
}
58+
59+
/// Displays a glossary of the entries added via @@glossary-entry().
60+
///
61+
/// -> content
62+
#let print-glossary(
63+
/// A (level 1) heading that titles this glossary. If the glossary is empty, the title is not shown.
64+
/// -> content
65+
title: none,
66+
/// Any extra parameters to the glossarium function of the same name.
67+
/// -> arguments
68+
..args,
69+
) = context {
70+
let entries = _glossary_entries.get()
71+
72+
if glossarium.there-are-refs() or args.named().at("show-all", default: false) {
73+
title
74+
}
75+
76+
glossarium.print-glossary(entries, ..args)
77+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
[conf]
2+
default-lang = "en"
3+
4+
[lang.en]
5+
thesis = "Diploma Thesis"
6+
supervisor = "Supervisor"
7+
performed-in-year = "Performed in the school year"
8+
submission-note = "Submission note"
9+
approved = "Approved"
10+
11+
declaration-title = "Statutory declaration"
12+
# declaration-text = """
13+
# I declare that I have authored this thesis independently, that I have not used \
14+
# other than the declared sources and that I have explicitly marked all material \
15+
# which has been quoted either literally or by content from the used sources.
16+
# """
17+
# declaration-ai-clause = """
18+
# I also used the following generative AI tools [e.g. ChatGPT, Grammarly Go, \
19+
# Midjourney] for the following purpose:
20+
# """
21+
location-date = "Location, Date"
22+
23+
chapter = "Chapter"
24+
section = "Section"
25+
abstract = "Abstract"
26+
27+
figure = "Figure"
28+
table = "Table"
29+
listing = "Listing"
30+
31+
contents = "Contents"
32+
bibliography = "Bibliography"
33+
prompts = "List of Prompts"
34+
list-of-figures = "List of Figures"
35+
list-of-tables = "List of Tables"
36+
list-of-listings = "List of Listings"
37+
glossary = "Glossary"
38+
39+
[lang.de]
40+
thesis = "Diplomarbeit"
41+
supervisor = "Betreuer"
42+
performed-in-year = "Ausgeführt im Schuljahr"
43+
submission-note = "Abgabevermerk"
44+
approved = "Übernommen von"
45+
46+
declaration-title = "Eidesstattliche Erklärung"
47+
# declaration-text = """
48+
# Ich erkläre an Eides statt, dass ich die vorliegende Arbeit selbstständig \
49+
# verfasst, andere als die angegebenen Quellen/Hilfsmittel nicht benutzt und die \
50+
# den benutzten Quellen wörtlich und inhaltlich entnommenen Stellen als solche \
51+
# kenntlich gemacht habe.
52+
# """
53+
# declaration-ai-clause = """
54+
# Für die Erstellung der Arbeit habe ich auch folgende Hilfsmittel generativer \
55+
# KI-Tools [z. B. ChatGPT, Grammarly Go, Midjourney] zu folgendem Zweck verwendet:
56+
# """
57+
location-date = "Ort, Datum"
58+
59+
chapter = "Kapitel"
60+
section = "Abschnitt"
61+
abstract = "Kurzfassung"
62+
63+
figure = "Abbildung"
64+
table = "Tabelle"
65+
listing = "Auflistung"
66+
67+
contents = "Inhaltsverzeichnis"
68+
bibliography = "Literaturverzeichnis"
69+
prompts = "Promptverzeichnis"
70+
list-of-figures = "Abbildungsverzeichnis"
71+
list-of-tables = "Tabellenverzeichnis"
72+
list-of-listings = "Auflistungsverzeichnis"
73+
glossary = "Glossar"
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
#import "@preview/linguify:0.4.2": set-database as _set_database, linguify
2+
3+
/// *Internal function.* Initializes Linguify with the template's translation file.
4+
///
5+
/// -> content
6+
#let set-database() = _set_database(toml("l10n.toml"))
7+
8+
#let thesis = linguify("thesis")
9+
#let supervisor = linguify("supervisor")
10+
#let performed-in-year = linguify("performed-in-year")
11+
#let submission-note = linguify("submission-note")
12+
#let approved = linguify("approved")
13+
14+
#let declaration-title = linguify("declaration-title")
15+
// #let declaration-text = linguify("declaration-text")
16+
// #let declaration-ai-clause = linguify("declaration-ai-clause")
17+
#let location-date = linguify("location-date")
18+
19+
#let chapter = linguify("chapter")
20+
#let section = linguify("section")
21+
#let abstract = linguify("abstract")
22+
23+
#let figure = linguify("figure")
24+
#let table = linguify("table")
25+
#let listing = linguify("listing")
26+
27+
#let contents = linguify("contents")
28+
#let bibliography = linguify("bibliography")
29+
#let prompts = linguify("prompts")
30+
#let list-of-figures = linguify("list-of-figures")
31+
#let list-of-tables = linguify("list-of-tables")
32+
#let list-of-listings = linguify("list-of-listings")
33+
#let glossary = linguify("glossary")

0 commit comments

Comments
 (0)