From 551e656a3ed87643404fff6e58355e7b72b213a1 Mon Sep 17 00:00:00 2001 From: jan Date: Tue, 7 Oct 2025 02:11:29 +0200 Subject: [PATCH] Add files --- .gitignore | 1 + data.csv | 16 +++ logo.svg | 153 ++++++++++++++++++++++++++++ outline.typ | 45 +++++++++ protocol.typ | 56 +++++++++++ talk.typ | 277 +++++++++++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 548 insertions(+) create mode 100644 .gitignore create mode 100644 data.csv create mode 100755 logo.svg create mode 100644 outline.typ create mode 100644 protocol.typ create mode 100644 talk.typ diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a136337 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +*.pdf diff --git a/data.csv b/data.csv new file mode 100644 index 0000000..698b016 --- /dev/null +++ b/data.csv @@ -0,0 +1,16 @@ +"Jahr","E-Mails" +2011,6 +2012,26 +2013,21 +2014,23 +2015,17 +2016,12 +2017,15 +2018,11 +2019,6 +2020,14 +2021,9 +2022,7 +2023,7 +2024,7 +2025,1 diff --git a/logo.svg b/logo.svg new file mode 100755 index 0000000..14191b0 --- /dev/null +++ b/logo.svg @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/outline.typ b/outline.typ new file mode 100644 index 0000000..82bdc0c --- /dev/null +++ b/outline.typ @@ -0,0 +1,45 @@ +#set text(lang: "de") + +#outline() + += Überschrift 1 + +#lorem(20) + += Überschrift 2 +== Lorem + +#lorem(20) + +#pagebreak() + += Tabellen + +#figure( + table( + columns: 3, + "1", "2", "3", + "4", "5", "6", + ), + caption: [einfache Tabelle], +) + +== Noch eine Tabelle + +#figure( + table( + columns: 3, + align: (left, center, right), + table.header( + [*Spalte 1*], [*Spalte 2*], [*Spalte 3*], + ), + "1", "2", "3", + "4", "5", "6", + ), + caption: [Tabelle mit Header und Ausrichtung], +) + +#outline( + title: "Tabellenverzeichnis", + target: figure.where(kind: table), +) diff --git a/protocol.typ b/protocol.typ new file mode 100644 index 0000000..53d5ea5 --- /dev/null +++ b/protocol.typ @@ -0,0 +1,56 @@ +#import "@preview/quick-minutes:1.2.2": * + +#set text(font: "Segoe UI Variable Static Text") +#show : set text(font: "Segoe UI Small Capital in Small") + +#show: minutes.with( + locale: "de", + chairperson: "Zaphod Beeblebrox", + secretary: "Ford Prefect", + date: datetime(year: 2042, month: 5, day: 25), + body-name: "FabLab Altmühlfranken e.\u{202f}V.", + event-name: "Sitzung", + present: ( + "Arthur Dent", + "Tricia McMillan", + ), + not-voting: ( + "Slartibartfaß", + ), + custom-header: (date, body-name, event-name, logo, _) => [#grid(columns: (auto, 1fr), align: (left, right), [#logo], [#body-name #linebreak() #event-name am #date]) #line(length: 100%, stroke: 2pt + rgb("#16A3C4"))], + custom-name-format: (first-name, last-name, _, _) => [#first-name #last-name], + custom-name-style: (name, _) => [#name ], + display-all-warnings: true, + //enable-help-text: true, + //hide-warnings: true, + translation-overrides: ("ITEM": "Punkt"), + show-arrival-time: true, + logo: image("logo.svg", height: 4em), + signing: true, + line-numbering: none, + hole-mark: true, +) + +// NOTE: Abstimmung in Tagesordnung verstecken +#show heading.where(level: 5): it => [ + #block(it.body) +] + += 1900/Begrüßung + +/ZB begrüßt die Galaxis. + += 1905/Bericht der Vogonen + +#lorem(10) + += 1930/Wahl + +--2000/Arthur + +!2005/Soll die Umgehungsstraße gebaut werden?/2/0/1 + +Die Pläne werden im Planungsbüro ausgehängt. + +/2030 + diff --git a/talk.typ b/talk.typ new file mode 100644 index 0000000..ab2c674 --- /dev/null +++ b/talk.typ @@ -0,0 +1,277 @@ +#import "@preview/minimal-presentation:0.7.0": * + +#set text(font: "Noto Sans") +#show math.equation: set text(font: "Noto Sans Math") +#show raw: set text(font: "FiraCode Nerd Font", size: 1.5em) + +#show: project.with( + title: "Typst", + sub-title: "besseres LaTeX?", + author: "jan", + date: "07.10.2025", + lang: "de", +) + += Was ist Typst? + +== Meine Erfahrungen mit LaTeX + +basierend auf *einem* Projekt vor *11 Jahren* + +#columns-content()[ + - unhandliche Syntax + - kein Paketmanagement + - diverse Abhänigkeiten + - aber kein Management + - nicht alles auf CTAN + - hoffentlich schreibst du gerne Makefiles + - verschiedene CLIs benötigt + - 4-6 pdflatex Aufrufe nötig +][ + ```latex + \chapter{FabLab} + \section{Untergruppen} + \begin{itemize} + \item Chaostreff + \item Repair-Caf\'{e} + \end{itemize} + ``` +] + +== Geht's auch einfacher? + +#columns-content()[ + - weniger überflüssige Syntax + - viele Funktionen eingebaut + - Paketmanagement +][ + ```typ + = FabLab + == Untergruppen + - Chaostreff + - Repair-Cafe\u{301} + ``` +] + += Grundlagen + +== Syntax + +#columns-content()[ + ```typ + Einfache Formatierungen wie *fett* und _kursiv_ sind intuitiv. Je nach Sprache werden "Anführungszeichen" korrekt umgewandelt. + + Absätze werden durch eine Leerzeile getrennt. + ``` +][ + Einfache Formatierungen wie *fett* und _kursiv_ sind intuitiv. Je nach Sprache werden "Anführungszeichen" korrekt umgewandelt. + + Absätze werden durch eine Leerzeile getrennt. +] + +== Syntax + +#columns-content()[ + ```typ + Es gibt viele Möglichkeiten für Sonderzeichen: + - e\u{301} + - $bitcoin$ + - #emoji.face + - 🥳 + Keine Angst vor UTF-8! + ``` +][ + Es gibt viele Möglichkeiten für Sonderzeichen: + - e\u{301} + - $bitcoin$ + - #emoji.face + - 🥳 + Keine Angst vor UTF-8! +] + +== Formatierung + +#columns-content()[ + ```typ + #set rect( + fill: gray, + width: 100%, + height: 100% + ) + #grid( + columns: (1fr, 2fr), + rows: (1fr, 3fr), + gutter: 3pt, + rect[Hello], + rect[World], + rect[from], + rect[grids], + ) + ``` +][ + #set rect( + fill: gray, + width: 100%, + height: 100% + ) + #grid( + columns: (1fr, 2fr), + rows: (1fr, 3fr), + gutter: 3pt, + align: center, + rect[Hello], + rect[World], + rect[from], + rect[grids], + ) +] + +== Inhaltsverzeichnis + +#sym.arrow outline.typ + +== Defaults überschreiben + +#columns-content()[ + ```typ + #show "foo": "bar" + foo + + #set text(blue) + #show regex("\w+\?"): set text(red) + Was steht auf deinem Handtuch? Keine Panik! + ``` +][ + #[ + #show "foo": "bar" + foo + + #set text(blue) + #show regex("\w+\?"): set text(red) + Was steht auf deinem Handtuch? Keine Panik! + ] +] + +== Code + +#columns-content()[ + ```typ + #let antwort = 7 * 6 + Die Antwort ist #antwort. + + #table( + columns: 5, + ..for i in range(10) { + ([#i],) + } + ) + + #{ + [Code Block] + } + ``` +][ + #let antwort = 7 * 6 + Die Antwort ist #antwort. + + #table( + columns: 5, + ..for i in range(10) { + ([#i],) + } + ) + + #{ + [Code Block] + } +] + +== Daten einlesen + +#columns-content(colwidths: (70%, auto))[ + ```typ + #let rows = csv("data.csv", row-type: dictionary) + #rows.len() Zeilen eingelesen. + + #table( + columns: 2, + align: right, + ..for (Jahr, E-Mails) in rows.slice(0,5) { + (Jahr, E-Mails) + } + ) + ``` +][ + #let rows = csv("data.csv", row-type: dictionary) + #rows.len() Zeilen eingelesen. + + #table( + columns: 2, + align: right, + ..for (Jahr, E-Mails) in rows.slice(0,5) { + (Jahr, E-Mails) + } + ) +] + += Pakete + +== Wo findet man Pakete? + +Offizielles Repo: https://typst.app/universe/ + +Abhängigkeiten werden im Dokument definiert: +```typ +#import "@preview/minimal-presentation:0.7.0": * +``` + +== Diagramme + +#columns-content(colwidths: (2fr, 1fr))[ + ```typ + #import "@preview/lilaq:0.5.0" + #let rows = csv("data.csv", row-type: dictionary) + #let x = rows.map(it => int(it.Jahr)) + #let y = rows.map(it => int(it.E-Mails)) + #lilaq.diagram( + xlabel: "Jahr", ylabel: "E-Mails", + width: 100%, height: 70%, + lilaq.bar( + x, + y, + ) + ) + ``` +][ + #import "@preview/lilaq:0.5.0" + #let rows = csv("data.csv", row-type: dictionary) + #let x = rows.map(it => int(it.Jahr)) + #let y = rows.map(it => int(it.E-Mails)) + #lilaq.diagram( + xlabel: "Jahr", ylabel: "E-Mails", + width: 100%, height: 70%, + lilaq.bar( + x, + y, + ) + ) +] + +== Präsentationen + +```typ +#import "@preview/minimal-presentation:0.7.0": * + +#show: project.with( + title: "Typst", sub-title: "besseres LaTeX?", + author: "jan", date: "07.10.2025", lang: "de", +) + += Was ist Typst? + +== Meine Erfahrungen mit LaTeX +``` + +== Protokolle + +#sym.arrow protocol.typ