Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 29 additions & 0 deletions packages/preview/elegant-polimi-thesis/0.2.1/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# Changelog

## 0.2.1 - 2026-06-27

- Added presentation template
- Changed *advisor to *supervisor
- Changed most defaults arguments to `none`
- Fixed thesis second page numbering
- Fixed thesis lvl.1 headings colour
- Fixed top margin

## 0.2.0 - 2026-03-04

- Added executive summary, article format and other theses types
- Added examples, thumbnails
- Added DEIB logo
- Removed localization (now only ENG)
- Removed `phdcycle`
- Reorganized docs
- Fixed figure numbering

# 0.1.1 - 2025-09-12

- Fixed the transparency for the sunburst (_raggiera_)
- Fixed localization and frontispiece attributes

# 0.1.1 - 2025-06-10

Template released.
28 changes: 28 additions & 0 deletions packages/preview/elegant-polimi-thesis/0.2.1/CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Contributing

If you want to test the package, you must clone the repository in the local packages folder; depending on your operating system it will be:

- `$XDG_DATA_HOME` or `~/.local/share` on Linux
- `%APPDATA%` on Windows
- `~/Library/Application Support` on macOS

Then, the structure will be `typst/packages/local/{package.name}/{package.version}` where `name` and `version` are matching the `typst.toml` file.

Finally, create a new project with:

```shell
typst init "@local/{package.name}:{package.version}"
```

See the [official documentation](https://github.com/typst/packages?tab=readme-ov-file#local-packages).

> [!TIP]
> Create a symlink to the location Typst needs to the location where the repository is. For instance in a Unix environment it would be:
>
> ```shell
> mkdir ~/.local/share/typst/packages/local/PACKAGE.NAME
> ln -s REPO_FOLDER \
> ~/.local/share/typst/packages/local/PACKAGE.NAME/PACKAGE.VERSION
> ```
>
> You could do the same for the `preview` namespace, will be the one used for the template on Typst Universe. There is the `symlink.sh` to account for those operations: make sure to configure the correct paths.
674 changes: 674 additions & 0 deletions packages/preview/elegant-polimi-thesis/0.2.1/LICENSE

Large diffs are not rendered by default.

288 changes: 288 additions & 0 deletions packages/preview/elegant-polimi-thesis/0.2.1/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,288 @@
# elegant-polimi-thesis 🎓

![Version](https://img.shields.io/badge/package-v0.2.1-239dad?logo=typst)

Check warning on line 3 in packages/preview/elegant-polimi-thesis/0.2.1/README.md

View check run for this annotation

Typst package check / @preview/elegant-polimi-thesis:0.2.1

packages/preview/elegant-polimi-thesis/0.2.1/README.md#L3

Possibly inadequate alternative description for image: `Version`. Please add a short description to make this image more accessible.
[![Github Repo](https://img.shields.io/badge/github-repo-blue?logo=github)](https://github.com/VictuarVi/PoliMi-PhD-Thesis)
![License](https://img.shields.io/badge/license-GPLv3-green)

Check warning on line 5 in packages/preview/elegant-polimi-thesis/0.2.1/README.md

View check run for this annotation

Typst package check / @preview/elegant-polimi-thesis:0.2.1

packages/preview/elegant-polimi-thesis/0.2.1/README.md#L5

Possibly inadequate alternative description for image: `License`. Please add a short description to make this image more accessible.
[![Documentation](https://img.shields.io/badge/docs-docs.pdf-red?logo=readthedocs)](docs/docs.pdf?raw=true)

Check warning on line 6 in packages/preview/elegant-polimi-thesis/0.2.1/README.md

View check run for this annotation

Typst package check / @preview/elegant-polimi-thesis:0.2.1

packages/preview/elegant-polimi-thesis/0.2.1/README.md#L6

Possibly inadequate alternative description for image: `Documentation`. Please add a short description to make this image more accessible.

[Typst](https://typst.app/) theses and summaries templates for the [Polytechnic University of Milan](https://www.polimi.it/). The package supports all the templates that can be found on [this page](https://www.overleaf.com/latex/templates/tagged/polimi).

It also supports the presentation. It is loosely based on the templates that can be found [here](https://drive.google.com/drive/folders/1PJUOglX63IjCMPYhZXAoPIVuH_-DmsPR) while also taking into account the [Digital Brand Manual](https://www.polimi.it/en/the-politecnico/communication/brand-identity-manual).

See the [examples](examples/) directory and [documentation](docs/docs.pdf) for more information.

## Preview ✨

<table width=100% align="center">
<tr>
<td>
<img alt="PhD frontispiece" src="thumbnails/phd.png" height=550px>
<br />
<div align="center"><em>PhD</em></div>
</td>
<td>
<img alt="DEIB PhD frontispiece" src="thumbnails/deib-phd.png" height=550px>
<br />
<div align="center"><em>DEIB PhD</em></div>
</td>
</tr>
<tr>
<td>
<img alt="Computer Science and Engineering frontispiece" src="thumbnails/cs-eng-master.png" height=550px>
<br>
<div align="center"><em>Computer Science and Engineering</em></div>
</td>
<td>
<img alt="Classical Master frontispiece" src="thumbnails/classical-master.png" height=550px>
<br>
<div align="center"><em>Classical Master</em></div>
</td>
</tr>
<tr>
<td>
<img alt="Executive Summary frontispiece" src="thumbnails/executive-summary.png" height=550px>
<br>
<div align="center"><em>Executive Summary</em></div>
</td>
<td>
<img alt="Article Format frontispiece" src="thumbnails/article-format.png" height=550px>
<br>
<div align="center"><em>Article Format</em></div>
</td>
<tr>
<tr>
<td colspan=2>
<p align="center">
<img alt="Title page of presentation" src="thumbnails/presentation.png" height=400px>
</p>
<div align="center"><em>Title page of presentation</em></div>
</td>
<tr>
</table>

## Usage 🖋

You can either use this template in the webapp by clicking on "Create project in webapp" or, from the CLI, run:

```shell
typst init @preview/elegant-polimi-thesis:0.2.1
```

I'd also recommend to export with the `a-3u` PDF standard flag ([see more](https://typst.app/docs/reference/pdf/#pdf-standards)).

To get started:

```typ
#import "@preview/elegant-polimi-thesis:0.2.1": *

#show: polimi-thesis.with(
title: "Thesis Title",
author: "Vittorio Robecchi",
supervisor: "Prof. Donatella Sciuto",
cosupervisor: "Prof. Antonio Capone",
tutor: "Prof. Marco Bramanti",
academic-year: [2026 --- 2027],
frontispiece: "phd",
)

#show: frontmatter

// abstract in English

// sommario in Italian

#show: acknowledgements

// acknowledgements

#toc
#list-of-figures
#list-of-tables

#let _nomenclature = (
"key" : "value"
)
#nomenclature(
_nomenclature,
indented: true
)

#show: mainmatter

// main section of the thesis

#show: backmatter

// backmatter

#show: appendix

// appendix

#show: backmatter

// bibliography

#show: acknowledgements

// acknowledgements
```

Depending on the **thesis template** you need change the `frontispiece` argument accordingly:

- `phd` for "PhD Thesis Template"
- `deib-phd` for "DEIB PhD Thesis"
- `classical-master` for "Classical Format Thesis"
- `cs-eng-master` for "Computer Science and Engineering"

The template also offers the Executive Summary and the Article Format; in order to use them show the respective functions:

```typ
#import "@preview/elegant-polimi-thesis:0.2.1": *

// For the article format
#show: polimi-article-format.with(
title: "Thesis Title",
author: "Vittorio Robecchi",
supervisor: "Prof. Donatella Sciuto",
cosupervisor: "Prof. Antonio Capone",
academic-year: [2026 --- 2027],
abstract: include "../sections/abstract.typ"
)

// For the executive summary
#show: polimi-executive-summary.with(
title: "Thesis Title",
author: "Vittorio Robecchi",
supervisor: "Prof. Donatella Sciuto",
cosupervisor: "Prof. Antonio Capone",
academic-year: [2026 --- 2027],
)
```

The templates are **three distinct documents**, however they share _most_ of the arguments:

- `title`: title of the document
- `author`: name and surname of the author
- `supervisor`: name and surname of the supervisor
- `cosupervisor`: name and surname of the cosupervisor(s) (can be empty)
- `course`: the course you are graduating in
- `academic-year`: the corresponding academic year
- `custom-logo`: logo of the thesis (the logos provided by the template are distributed with NC-BY 4.0 license)

I recommend to import all the library anyway in order to access all the functions (`*matter`, theorems-related among others).

The following are exclusive to `polimi-thesis`:

- `tutor`: name and surname of the tutor
- `cycle`: the cycle of the thesis
- `chair`: the chair of the thesis
- `student-id`: your student ID
- `frontispiece`: the specific type of frontispiece to be used (default: `phd`; supported: `deib-phd`, `cs-eng-master`, `classical-master`)

Depending on the selected frontispiece, not all these attributes may be needed.

The following are exclusive to `polimi-article-format-thesis`:

- `abstract`: the abstract
- `keywords`: keywords (that will also appear in the document metadata)

### Presentation

In regards to the presentation, **you'll have to download on your own** the [Manrope](https://fonts.google.com/specimen/Manrope) font.

Built on [Touying](https://typst.app/universe/package/touying/), the structure is quite standard:

```typ
#import "@preview/elegant-polimi-thesis:0.2.1": *

#show: polimi-digital-presentation.with(
config-info(
title: "Title of the Presentation",
author: "Name Surname",
subtitle: "Subtitle",
theme: "Theme",
date: datetime.today(),
),
..args
)

#title-slide()

#make-outline()

= First Section

== Slide in first section

#lorem(50)

#lorem(40)

== Split slide

#split-slide(
left: [
#lorem(30)

#lorem(30)
],
right: [
=== Paragraph title
#lorem(120)

=== Paragraph title
#lorem(120)
],
)

= Second Section

== Slide in second section

#lorem(20)

#lorem(20)

#lorem(20)

#focus-slide[Thanks for listening]
```

Do note `..args` are all valid Touying arguments, as can be seen in all Touying-based presentation templates.

## Recommended packages

Useful packages for a thesis include:

- [equate](https://typst.app/universe/package/equate), [physica](https://typst.app/universe/package/physica) for mathematical expressions
- [unify](https://typst.app/universe/package/unify), [zero](https://typst.app/universe/package/zero) to correctly format numbers
- [cetz](https://typst.app/universe/package/cetz), [fletcher](https://typst.app/universe/package/fletcher) for drawing diagrams, [lilaq](https://typst.app/universe/package/lilaq) to plot data
- [zebraw](https://typst.app/universe/package/zebraw), [codly](https://typst.app/universe/package/codly) for syntax highlighting in code blocks
- [frame-it](https://typst.app/universe/package/frame-it), [showybox](https://typst.app/universe/package/showybox) to display formatted blocks
- [meander](https://typst.app/universe/package/meander/) to wrap text around images and such

The [smartaref](https://typst.app/universe/package/smartaref) and [hallon](https://typst.app/universe/package/hallon) packages have been integrated to provide subfigures ([currently unsupported](https://github.com/typst/typst/issues/246)), while [great-theorems](https://typst.app/universe/package/great-theorems) and [headcount](https://typst.app/universe/package/headcount) to handle theorems implementations.

| Typst package | LaTeX equivalent |
| :-----------------------------------------------------: | :---------------------------------------: |
| [equate](https://typst.app/universe/package/equate) | ams\*, mathtools |
| [phisica](https://typst.app/universe/package/physica) | ams\*, mathtools |
| [unify](https://typst.app/universe/package/unify) | [siunitx](https://ctan.org/pkg/siunitx) |
| [zero](https://typst.app/universe/package/zero) | [siunitx](https://ctan.org/pkg/siunitx) |
| [cetz](https://typst.app/universe/package/cetz) | [TikZ](https://tikz.dev/) |
| [fletcher](https://typst.app/universe/package/fletcher) | [TikZ](https://tikz.dev/) |
| [lilaq](https://typst.app/universe/package/lilaq) | [TikZ](https://tikz.dev/) |
| [zebraw](https://typst.app/universe/package/zebraw) | [listings](https://ctan.org/pkg/listings) |
| [codly](https://typst.app/universe/package/codly) | [listings](https://ctan.org/pkg/listings) |
| [frame-it](https://typst.app/universe/package/frame-it) | [mdframed](https://ctan.org/pkg/mdframed) |
| [showybox](https://typst.app/universe/package/showybox) | [mdframed](https://ctan.org/pkg/mdframed) |
| [lovelace](https://typst.app/universe/package/lovelace) | [pseudo](https://ctan.org/pkg/pseudo) |
| [algo](https://typst.app/universe/package/algo) | [pseudo](https://ctan.org/pkg/pseudo) |
| [meander](https://typst.app/universe/package/meander/) | [wrapfig](https://ctan.org/pkg/wrapfig) |

The complete list of packages can be found on the [Typst Universe](https://typst.app/universe/search/?kind=packages).

## Contributing 🚀

If you happen to have suggestions, ideas or anything else feel free to open issues and pull requests or contact me.
Binary file not shown.
Loading
Loading