|
| 1 | +# prinzipien |
| 2 | + |
| 3 | +[](https://typst.app/universe/package/prinzipien) |
| 4 | +[](LICENSE.txt) |
| 5 | +[](https://touying-typ.github.io/) |
| 6 | + |
| 7 | +Prinzipien is a [Typst](https://typst.app) theme for |
| 8 | +[Touying](https://touying-typ.github.io/) presentations, built on the design |
| 9 | +principles of Jean-luc Doumont's _Trees, maps, and theorems_: **one message per |
| 10 | +slide**. Each slide states a single, full-sentence message as its title, set |
| 11 | +flush against a wide left margin, and a single accent colour — with tints |
| 12 | +derived from it — does all the visual work. |
| 13 | + |
| 14 | +- **One message per slide** — the slide title is a full sentence stating the takeaway. |
| 15 | +- **A wide, Doumont-style left margin** that structures every slide. |
| 16 | +- **A single accent colour**, with tints derived automatically for emphasis and de-emphasis. |
| 17 | +- **Automatic overview slides** — `preview`, section `transition`s, and `review` build a map of your points. |
| 18 | +- **Batteries included** — a title slide, appendix numbering, and logo support. |
| 19 | +- **Configured in one place** — aspect ratio, margin width, colours, and logo. |
| 20 | + |
| 21 | +## Showcase |
| 22 | + |
| 23 | + |
| 24 | + |
| 25 | +The slides above come from the `examples/demo.typ` deck, which relies on the |
| 26 | +theme's defaults; `examples/full-demo.typ` exercises every configuration option. |
| 27 | +Both live in the [source repository](https://github.com/Entze/prinzipien). |
| 28 | + |
| 29 | +## Installation |
| 30 | + |
| 31 | +Prinzipien is published on |
| 32 | +[Typst Universe](https://typst.app/universe/package/prinzipien), so no manual |
| 33 | +installation is required. To start a new presentation from the bundled template: |
| 34 | + |
| 35 | +```sh |
| 36 | +typst init @preview/prinzipien |
| 37 | +``` |
| 38 | + |
| 39 | +Or import the theme into an existing document: |
| 40 | + |
| 41 | +```typ |
| 42 | +#import "@preview/prinzipien:0.1.1": * |
| 43 | +``` |
| 44 | + |
| 45 | +### Requirements |
| 46 | + |
| 47 | +- Typst 0.15.0 or newer. |
| 48 | +- The Noto Sans and Noto Sans Mono fonts (bundled with Typst). Override them |
| 49 | + with your own `set text(font: ..)` rules after the theme's show rule if you |
| 50 | + prefer different fonts. |
| 51 | + |
| 52 | +## Usage |
| 53 | + |
| 54 | +Apply the theme with a show rule, then write one message per slide as a |
| 55 | +level-2 heading: |
| 56 | + |
| 57 | +```typ |
| 58 | +#import "@preview/prinzipien:0.1.1": * |
| 59 | +
|
| 60 | +#show: prinzipien-theme.with( |
| 61 | + config-info( |
| 62 | + title: [One sentence to remember], |
| 63 | + author: [Ada Lovelace], |
| 64 | + date: datetime.today(), |
| 65 | + ), |
| 66 | +) |
| 67 | +
|
| 68 | +#title-slide() |
| 69 | +
|
| 70 | +== Give every slide a full-sentence message |
| 71 | +
|
| 72 | +The heading carries the takeaway; the body only supports it. |
| 73 | +``` |
| 74 | + |
| 75 | +Highlight the words that matter with `#alert[..]`, mark the main points of your |
| 76 | +talk with `#point[..]`, and let `#preview()` / `#review()` build the overview |
| 77 | +maps automatically. See [`template/main.typ`](template/main.typ) for a complete |
| 78 | +starting point, and the `examples/` directory in the |
| 79 | +[repository](https://github.com/Entze/prinzipien) for fuller decks. |
| 80 | + |
| 81 | +### Configuration |
| 82 | + |
| 83 | +`prinzipien-theme` takes a handful of options, all with sensible defaults: |
| 84 | + |
| 85 | +| Option | Default | Description | |
| 86 | +| --- | --- | --- | |
| 87 | +| `aspect-ratio` | `"16-9"` | Slide aspect ratio (`"16-9"` or `"4-3"`). | |
| 88 | +| `margin` | `33%` | Width of the reserved left margin (a ratio of the slide width, or a length). | |
| 89 | +| `background` | `#ffffff` | Background colour. | |
| 90 | +| `foreground` | `#221f21` | Text (foreground) colour. | |
| 91 | +| `accent` | `#f9ab1a` | The one accent colour. | |
| 92 | +| `suppressed` | `#7a7d80` | Colour for muted / de-emphasised content. | |
| 93 | +| `accent-tint` | `auto` | Tint of the accent, used behind `#alert`; derived from `accent` by default. | |
| 94 | +| `logo-square` | `auto` | Square logo shown beside the slide title; derived from `config-info`'s `logo` by default. | |
| 95 | + |
| 96 | +## Contributing |
| 97 | + |
| 98 | +Contributions are welcome. This repository uses |
| 99 | +[mise](https://mise.jdx.dev) to pin tool versions and |
| 100 | +[hk](https://hk.jdx.dev) to run formatters and checks: |
| 101 | + |
| 102 | +```sh |
| 103 | +mise install # install the pinned tools (Typst, hk, typstyle, ..) |
| 104 | +mise exec -- hk run fix # format and auto-fix |
| 105 | +mise exec -- hk run check # run checks that cannot be auto-fixed |
| 106 | +mise exec -- hk run lint # verify package-submission compliance |
| 107 | +``` |
| 108 | + |
| 109 | +Please run the formatters before opening a pull request, and open an issue for |
| 110 | +larger changes first. Bug reports and feature requests go to the |
| 111 | +[issue tracker](https://github.com/Entze/prinzipien/issues). |
| 112 | + |
| 113 | +## Authors and Acknowledgment |
| 114 | + |
| 115 | +- **Lukas Grassauer** — author and maintainer (<lukas@grassauer.eu>). |
| 116 | + |
| 117 | +Prinzipien builds on [Touying](https://touying-typ.github.io/) and follows the |
| 118 | +design principles of Jean-luc Doumont's _Trees, maps, and theorems_ (2009). |
| 119 | + |
| 120 | +Parts of this project — code, examples, and documentation — were written with |
| 121 | +the assistance of an AI coding agent (Anthropic's Claude Code) under the |
| 122 | +author's direction and review. If you would like to audit the prompts see |
| 123 | +[`plans`](plans/). |
| 124 | + |
| 125 | +## License |
| 126 | + |
| 127 | +Distributed under the Boost Software License 1.0 (BSL-1.0). |
| 128 | +See [`LICENSE.txt`](LICENSE.txt) for the full text. |
0 commit comments