diff --git a/chapters/about-me.typ b/chapters/about-me.typ new file mode 100644 index 0000000..174ad26 --- /dev/null +++ b/chapters/about-me.typ @@ -0,0 +1,9 @@ +#import "/globals.typ": * + +#slide(title: "Über mich")[ + - B.#(sym.space.nobreak.narrow)Eng. Julius Freudenberger + - 2000 geboren + - 2016 erste Kontakte mit #LaTeX + - 2019 -- 2023 Bachelorstudium an der Hochschule Esslingen + - 2023 -- 2026(?) Masterstudium an der Hochschule Karlsruhe +] diff --git a/chapters/closing.typ b/chapters/closing.typ new file mode 100644 index 0000000..481474a --- /dev/null +++ b/chapters/closing.typ @@ -0,0 +1,41 @@ +#import "/globals.typ": * + += Ausblick + +#slide(title: [Was kann typst noch?])[ + - Präsentationen mit #link("https://typst.app/universe/package/polylux")[polylux] oder #link("https://typst.app/universe/package/touying")[touying] + + - Zeichnen mit #link("https://typst.app/universe/package/cetz")[cetz] + - Plotting mit #link("https://typst.app/universe/package/lilaq")[lilaq] + - Chemische Formeln mit #link("https://typst.app/universe/package/alchemist")[alchemist] +] + +#slide(title: [Nächste Projekte für typst?])[ + - Wissenschaftliches Dokumentieren + + - Praxissemesterbericht + - Hausarbeiten + #v(1em) + - (Thesis) + #v(2em) + - Bewerbungsunterlagen +] + +#slide(title: [Bewerbungsunterlagen])[ + #columns(2)[ + - Lebenslauf mit #link("https://typst.app/universe/package/moderner-cv")[moderner-cv] + #image(height: 90%, "/images/moderner-cv.png") + + #colbreak() + - Anschreiben mit #link("https://typst.app/universe/package/briefs")[briefs] + #image(height: 90%, "/images/briefs.png") + ] +] + +#slide(title: [Wohin bei Problemen?])[ + - #link("https://typst.app/docs")[typst Dokumentation] + - bzw.~Dokumentation des jeweiligen Pakets + + - Suchmaschine des Vertrauens + - #link("https://forum.typst.app")[typst-Forum] +] diff --git a/chapters/external-files.typ b/chapters/external-files.typ new file mode 100644 index 0000000..94eb103 --- /dev/null +++ b/chapters/external-files.typ @@ -0,0 +1,24 @@ +#import "/globals.typ": * + += Externe Dateien + +#slide(title: [Externe Dateien einbinden --- SVG und PDF])[ + - `#image` akzeptiert die Vektorformate `svg` und `pdf` nativ + - Nutzung entweder als Bild (z.#(sym.space.nobreak.narrow)B. mit `#figure`) + - oder um PDF--Dateien als ganze Seiten einzufügen (z.#(sym.space.nobreak.narrow)B. externe Dokumente im Anhang) + ```typ + #page(margin: 0pt, image("filename.pdf", page: 1)) + + // mehrere Seiten + #page(margin: 0pt, for n in range(1, N + 1) { image("file.pdf", page: n) }) + ``` + - aktuell kann typst nicht erkennen, wie viele Seiten eine PDF hat + - deshalb `N` mit der Anzahl an einzubindender Seiten ersetzen + - Eintrag im Inhaltsverzeichnis + ```typ + #{ + show heading: none + heading[Eingebettete PDF] + } + ``` +] diff --git a/chapters/formatting.typ b/chapters/formatting.typ new file mode 100644 index 0000000..92b1ff6 --- /dev/null +++ b/chapters/formatting.typ @@ -0,0 +1,71 @@ +#import "/globals.typ": * + += Dokumentformatierung + +#slide(title: "Formatierungsoptionen")[ + - Papierformat + - wird im Parameter `paper` in der Funktion `#page()` gesetzt + - `#set page(paper: "a4")` (Standard) + - `#set page(paper: "a5")` + - `#set page(paper: "us-letter")` + - Seitenränder + - wird im Paramter `margin` in der Funktion `#page()` gesetzt + - Standard: $frac(2.5,21)*$kleinere Kante der Seite + - A4: 2,5~cm + - `#set page(margin: 4pt)` gleicher Rand auf allen Seiten + - `#set page(margin: (x: 8pt, y: 4pt))` horizontale und vertikale Ränder + - `top, right, bottom, left` Ränder an den jeweiligen Seiten + - `inside, outside` Ränder innen und außen (bei Büchern) +] + +#slide(title: "Querformat")[ + - Gesamtes Dokument im Querformat + ``` + #set page(flipped: true) + ``` + + - Einzelne Seiten im Querformat (nützlich für große Tabellen oder breite Abbildungen) + ``` + #page(flipped: true)[ + Inhalt + ]``` +] + +#slide(title: "Kopf- und Fußzeile")[ + - `#set page(header: [Kopfzeile], footer: [Fußzeile])` + - Inhalt wird standardmäßig wie gewohnt linksbündig gesetzt + - immer rechts mit `#align(right)[Inhalt]` + - mehrere Spalten + ``` + #set page(footer: [#grid(columns: (1fr, 1fr, 1fr), align(left)[Linker Inhalt], align(center)[Mittlerer Inhalt], align(right)[Rechter Inhalt])]) + ``` + - wenn Seitenzahl angezeigt werden soll `context` nutzen + ``` + #set page(footer: context [#grid(columns: (1fr, 1fr, 1fr), align(left)[Linker Inhalt], align(center)[Mittlerer Inhalt], align(right)[#counter(page).display("1")])]) + ``` +] + + + +#slide(title: "Fußzeile in Büchern")[ + - `inner` und `outer` nicht nativ vorgesehen + - Paket #link("https://typst.app/universe/package/chic-hdr/")[chic-hdr] nicht auf aktuelle typst Version angepasst + - daher selbst gebastelte Lösung + #raw(lang: "typ", read("/codebeispiele/book-footer.typ")) +] + +#slide(title: "Kopfzeile mit Überschriften")[ + - Paket #link("https://typst.app/universe/package/hydra")[hydra] ermöglicht Anzeigen der aktuellen Überschriften + ``` + #set page(header: context { + [#grid(columns: (1fr, 1fr), + align(left, emph(hydra(1))), + align(right, emph(hydra(2)) + ))] + if hydra(1) != none { + line(length: 100%, stroke: 0.5pt, start: (0%, -.8em)) + } + }) + ``` + - Dieser Header ist ähnlich zum Style `scrheadings` von `scrlayer-scrpage` in #LaTeX +] diff --git a/chapters/graphics-floats.typ b/chapters/graphics-floats.typ new file mode 100644 index 0000000..25a2400 --- /dev/null +++ b/chapters/graphics-floats.typ @@ -0,0 +1,27 @@ +#import "/globals.typ": * + += Abbildungen und Gleitobjekte + +#slide(title: [Abbildungen und Graphiken])[ + - Einbinden mit `#image("/path/to/file")` (mit Dateiendung) + - Dateipfad mit `/` am Anfang: vom Projektverzeichnis aus + - ohne `/`: vom Verzeichnis der aktuellen Datei aus + - folgende Formate sind möglich: `png`, `jpg`, `gif`, `svg`, `pdf`, `webp` + #v(1em) + - Höhe und Breite optionale Parameter + - Standard ist `auto`, das Bild wird an den zur Verfügung stehenden Platz angepasst + - kann auch relativ angegeben werden + - `#image("/path/to/file", width: 80%)` +] + +#slide(title: [Graphiken als Gleitobjekt])[ + #show-code-render("image-float.typ") +] + +#slide(title: [Gleitobjekte])[ + - können für Graphiken, Tabellen, Codelistings, etc. verwendet werden + - immer mit `#figure()` eingeleitet + - der `body` ist dann unterschiedlich + - automatische Positionierung im Text + - Platzierungsalgorithmus nicht ganz so gut wie in #LaTeX +] diff --git a/chapters/introduction.typ b/chapters/introduction.typ new file mode 100644 index 0000000..31fdaaa --- /dev/null +++ b/chapters/introduction.typ @@ -0,0 +1,17 @@ +#import "/globals.typ": * + +#slide(title: "Wer seid ihr?")[ + - Name + - Fakultät? Was macht ihr da? + - Schon von typst gehört oder etwas damit gemacht? + - Schon #LaTeX genutzt? + - Nächste (wissenschaftliche) Arbeit, die du vielleicht mit typst schreiben möchtest? +] + +#slide(title: "Materialien für den Kurs")[ + - Dieser Foliensatz + - Kleine Vorlagen zum Mitmachen + - Dokumente, die wir im Laufe des Kurses erstellen + #v(1em) + - wird alles im geteilten Ordner hochgeladen +] diff --git a/chapters/listings.typ b/chapters/listings.typ new file mode 100644 index 0000000..95e21b6 --- /dev/null +++ b/chapters/listings.typ @@ -0,0 +1,67 @@ +#import "/globals.typ": * + +== Codelistings + +#slide(title: [Codelistings])[ + - Abdrucken von Codezeilen + - einfaches Syntaxhighlighting + - nativ unterstützt + - Paket #link("https://typst.app/universe/package/codly")[codly] für mehr Anpassungsmöglichkeiten und Zeilennummern +] + +#slide(title: [Native Codelistings])[ + #show-code-render("native-listings.typ") +] + +#slide(title: [Einbinden von Beispielen aus externen Dateien])[ + - `lang` _muss_ explizit gesetzt werden, auch wenn die Dateiendung Teil des Pfades ist + ```typ + #raw(read("/path/to/file"), lang: "", block: true) + ``` + - `#read()` ließt Inhalt der Datei ein + - `#raw()` für Listingdarstellung +] + +#slide(title: [Plugin codly])[ + - #link("https://typst.app/universe/package/codly")[codly] bietet viele weitergehende Features + - Einrückung + - Zeilennummern + - Zebrastreifen + - Einrichtung: + ```typ + #import "@preview/codly:1.3.0": * + #import "@preview/codly-languages:0.1.1": * + #show: codly-init.with() + #codly(languages: codly-languages) + ``` + + - danach werden Codeblöcke automatisch durch codly formatiert + - tiefgehende #link("https://raw.githubusercontent.com/Dherse/codly/main/docs.pdf")[Dokumentation] +] + +#codly-enable() + +#slide(title: [codly -- Beispiel])[ + ```java + public static void main(String[] args) { + System.out.println("Hello Cyberweek"); + } + ``` + + - codly ist stark konfigurierbar + - jedes Verhalten und Feature kann deaktiviert oder angepasst werden +] + +#slide(title: [codly -- In `figure`])[ + #show-code-render("codly-figure.typ") +] + +#slide(title: [codly -- Highlights])[ + #show-code-render("codly-highlights.typ") +] + +#slide(title: [codly -- Highlights referenzieren])[ + #show-code-render("codly-highlights-reference.typ") +] + +#codly-disable() diff --git a/chapters/listofs.typ b/chapters/listofs.typ new file mode 100644 index 0000000..62b033c --- /dev/null +++ b/chapters/listofs.typ @@ -0,0 +1,110 @@ +#import "/globals.typ": * + +== Weitere Verzeichnisse + +#slide(title: "Weitere Verzeichnisse")[ + - automatisch aktualisierendes Inhaltsverzeichnis sowie Verzeichnisse für + - Abbildungen (`kind: image`) + - Codelistings (`kind: raw`) + - (Glossar (Paket #link("https://typst.app/universe/package/glossarium")[glossarium]) + - Abkürzungen (entweder auch glossarium oder Paket #link("https://typst.app/universe/package/acrostiche")[acrostiche]) + - ...) + - alles mit der Funktion `#outline()` + - Ausnahme: Literaturverzeichnis + + ```typ + #outline() + + #outline(target: figure.where(kind: image)) + ``` +] + += Literatureinbindung + +#slide(title: "Literaturverzeichnis")[ + - Erstellen/Generieren von Literaturdateien + - `.bib`, häufig Bib#(TeX)--Format genannt + - `.yaml`, das typst--eigene Hayagriva--Format + - Hinzufügen von Literaturdateien (`.bib` oder `.yaml`) + - Zitieren von Literatur im Text `@citekey` oder `#cite()` + - Literaturverzeichnis (`#bibliography("file")`) +] + +#slide(title: "Literaturdatei")[ + - Jeder Eintrag hat einen eindeutigen Key, unter dem er im Text referenziert wird + - Literatur kann durch verschiedene Typen kategorisiert werden, u.a. + - article + - book + - inproceedings + - online + - thesis + - ... + - Jeder Literatureintrag hat verschiedene Attribute + - Titel + - Autor:innen + - Jahr + - ... +] + +#slide(title: "Literaturdatei -- Formate")[ + - typst unterstützt neben dem gängigen Bib#(TeX)--Format auch das eigene Hayagriva--Format, das die YAML--Syntax nutzt + - Hayagriva ist eine Eigenentwicklung vom typst--Team + - von Literaturverwaltungen nicht sonderlich unterstützt + - von Verlagen selten angeboten + - hat aber interessante Ideen +] + +#slide(title: "Literaturdatei -- Formate")[ + #columns(2)[ + #raw(lang: "bib", read("/codebeispiele/bib-file.bib")) + #colbreak() + #raw(lang: "yaml", read("/codebeispiele/hayagriva-file.yaml")) + ] +] + +#slide(title: "Quellen für Literaturdateien")[ + - Literatursuchmaschinen + #only("1")[#align(center, image(width: 80%, "/images/boss.png"))] + #only("2")[#align(center, image(width: 65%, "/images/blb.png"))] + #only("3-")[- Verlage] + #only("4")[#align(center, image(width: 50%, "/images/springer.png"))] + #only("5")[#align(center, image(width: 75%, "/images/pearson.png"))] +] + +== Exkurs: Literaturverwaltung + +#slide(title: "Exkurs: Literaturverwaltung")[ + #only("1")[#align(center, image(width: 90%, "/images/bibliothek.png"))] + #only("2-")[ + - Verschiedene Programme zur Literaturverwaltung verfügbar + - #link("https://zotero.org/")[Zotero] (Open--Source, Crossplattform) + - #link("https://lumivero.com/products/citavi/")[Citavi] (Keine Hochschullizenz mehr in Baden-Württemberg) + - #link("https://www.mendeley.com")[Mendeley] + - bieten Integrationen in WYSIWYG--Editoren + - können auch nach Bib#(TeX) exportieren + ] +] + +#slide(title: "Exkurs: Literaturverwaltung -- Zotero")[ + - guter automatischer Export mit #link("https://retorque.re/zotero-better-bibtex/")[Better Bib#(TeX) for Zotero] + - generiert automatisch Bib#(TeX) mit allen Literatureinträgen einer Sammlung + - hält Datei bei Änderungen oder neu hinzugefügten Dateien aktuell + #v(1em) + - einfach neue Literatur in Zotero einfügen mit #link("https://www.zotero.org/download/connectors")[Zotero Connector] +] + +#slide(title: "Literatur -- Meine Empfehlungen")[ + - Verschiedene Literaturarten (Bücher, Paper, Thesen, Webseiten) in verschiedenen Untersammlungen verwalten + - pro Untersammlung ein automatischer Bib#(LaTeX)--Export + - Bib#(TeX)--Dateien in einen eigenen Unterordner +] + +#slide(title: "Einbinden der Literatur in das Dokument und Zitieren")[ + #raw(lang: "typ", read("/codebeispiele/bibliography.typ")) +] + +#slide(title: "Zitieren und Erscheinen im Literaturverzeichnis")[ + - Standardmäßig wird nur Literatur im Literaturverzeichnis ausgegeben, die auch im Text zitiert wurde + - `#cite(, form: none)` fügt ein unzitiertes Werk ins Literaturverzeichnis ein + - `#bibliography("file", full: true)` zeigt alle Werke im Literaturverzeichnis an +] diff --git a/chapters/math.typ b/chapters/math.typ new file mode 100644 index 0000000..87033e4 --- /dev/null +++ b/chapters/math.typ @@ -0,0 +1,38 @@ +#import "/globals.typ": * + +== Mathematik + +#slide(title: "Mathematik")[ + - typst nutzt eine andere Mathematiksyntax als #LaTeX + - Exponenten und Indizes gleich + - Symbole, Klammern und Funktionen werden anders gesetzt + - es gibt aber ein Kompatibilitätsplugin: #link("https://typst.app/universe/package/mitex")[mitex] + - Mathemodus wird immer mit `$` begonnen und beendet + - wird als Block gesetzt, wenn die Formel mit einem Leerzeichen beginnt und endet +] + +#slide(title: [Mathematik -- inline])[ + - setzt die Gleichung in eine Fließtext ein + - keine Referenzierung + #show-code-render("math-inline.typ") +] + +#slide(title: [Mathematik -- block])[ + - setzt die Gleichung als Block mit Absätzen + - Leerzeichen oder Zeilenumbruch nach erstem `$` und vor letzem `$` + - standardmäßig keine Referenzierung + #show-code-render("math-block.typ") +] + +#slide(title: [Mathematik -- Gleichung])[ + - Um Gleichungen referenzieren zu können, müssen diese nummeriert sein + - Nummerierung entweder pro Gleichung aktivieren + #show-code-render("math-numbered.typ") + - oder global aktivieren + `#set math.equation(numbering: "(1)")` +] + +#slide(title: [Mathematik -- Zeichen])[ + #show-code-render("math-symbols.typ") + #align(center)[Die Größe der Klammern wird automatisch angepasst.] +] diff --git a/chapters/own-changes.typ b/chapters/own-changes.typ new file mode 100644 index 0000000..40897af --- /dev/null +++ b/chapters/own-changes.typ @@ -0,0 +1,22 @@ +#import "/globals.typ": * + += Direkt ausprobieren und mitmachen + +#slide(title: "Projekt kompilieren")[ + - Im Projektverzeichnis `typst compile file.typ` + + - oder inkrementell `typst watch file.typ` + - in Typesetter Vorschau aktivieren + - mit Docker + - Outputfile `file.pdf` als PDF-Datei im gleichen Verzeichnis +] + +#slide(title: "Erste eigene Änderungen")[ + - Eigener Text, Absätze + - Textformatierung: *fett* und _kursiv_ mit `*fett*` und `_kursiv_` + - Eigene Abschnitte mit Überschriften (`=`, `==`) + - Metadaten ändern + - Titel des Dokuments ändern mit `title:` + - Eigener Name als Autor mit `author:` + - Anzeigen des Titels mit `#title()` +] diff --git a/chapters/tables.typ b/chapters/tables.typ new file mode 100644 index 0000000..69fcb84 --- /dev/null +++ b/chapters/tables.typ @@ -0,0 +1,44 @@ +#import "/globals.typ": * + += Tabellen + +#slide(title: [Setzen von Tabellen])[ + - Tabellen werden mithilfe der Funktion `#table` gesetzt + - Jede Tabellenzeile ist ein eigener Inhaltsblock + - kann dementsprechend formatiert werden + - Anzahl der Spalten wird als Parameter festgelegt +] + +#slide(title: [Beispieltabelle])[ + #show-code-render("example-table.typ") +] + +#slide(title: [Spaltenbreite])[ + - `auto`: Standard und versucht bestmögliche Verteilung + - absolute Längen + - Verhältnis der Gesamttabelle in `%` + - Anteil an verfügbarem Platz +] + +#slide(title: [Spaltenbreite --- Verhältnis der Gesamttabelle])[ + - Spalten können so maximal 100 % der Tabellenbreite einnehmen + - Durch `gutter` können aber weitere Abstände hinzukommen + - Tabelle nimmt mehr als 100 % ihres Platzes ein +] + +#slide(title: [Spaltenbreite --- Anteil an verfügbarem Platz])[ + - Summe aller Werte mit Einheit `fr` + - Verteilt all diese Spalten entsprechend des Verhältnisses + #show-code-render("table-fr.typ") +] + +#slide(title: [Alternierende Zeilenfarbe])[ + #show-code-render("table-alternate-row-color.typ") +] + +#slide(title: [Tabelle über mehrere Seiten])[ + - `block`, der Tabelle umschließt muss `breakable` gemacht werden + ``` + #show figure: set block(breakable: true) + ``` +] diff --git a/chapters/typst-code.typ b/chapters/typst-code.typ new file mode 100644 index 0000000..eff1694 --- /dev/null +++ b/chapters/typst-code.typ @@ -0,0 +1,31 @@ +#import "/globals.typ": * + +#slide(title: "Wie sieht typst Code aus?")[ + #raw(lang: "typ", read("/codebeispiele/beispiel.typ")) +] + +#slide(title: "Grundlegender Aufbau")[ + - Keine Präambel wie in #LaTeX + + - Einstellungen für das gesamte Dokument und eingebundene Pakete trotzdem am Anfang des Dokuments + - Einstellungen können später im Dokument geändert werden + - Einstellungen können auch lokal überschrieben werden + - Zusätzliche Pakete + - Preview von vielen Paketen, die von der Community entwickelt werden + - werden im Repository gehostet und bei Bedarf heruntergeladen + - keine Distributionen wie bei #LaTeX +] + +#slide(title: "Modi")[ + - typst kennt drei Modi + - Markupmodus + - Mathemodus + - Programmiermodus + - Schreibmodus ist der normale Modus + - Text wird gesetzt + - aus Programmiermodus als Inhaltsblock `[]` + - Mathemodus ermöglicht das Setzen von Formeln + - eingeleitet mit `$` + - Programmiermodus für Konfiguration oder eigene Funktionalität + - eingeleitet mit `#` +] diff --git a/chapters/what-is-needed.typ b/chapters/what-is-needed.typ new file mode 100644 index 0000000..96551f9 --- /dev/null +++ b/chapters/what-is-needed.typ @@ -0,0 +1,18 @@ +#import "/globals.typ": * + +#slide(title: "Bevor wir beginnen: Was brauche ich?")[ + - typst Installation + - Windows: https://typst.app/open-source/#download + - Mac: Homebrew `typst` + - Linux: Installation über den Paketmanager + - deb: nicht paketiert, rpm: `copr/claaj/typst` + - Arch Linux: `typst` + - NixOS: `nixpkgs.typst` + - Docker: `ghcr.io/typst/typst` + - Texteditor + - #link("https://code.visualstudio.com/")[VSCode] mit #link("https://marketplace.visualstudio.com/items?itemName=myriad-dreamin.tinymist")[Tinymist], #link("https://neovim.io/")[neovim] mit #link("https://github.com/Myriad-Dreamin/tinymist/blob/main/editors/neovim/README.md")[Tinymist] + - #link("https://typesetter.trowell.net/")[Typesetter] + - Online-Editoren + - #link("https://typst.app/")[Online-Editor], Registrierung erforderlich + - #link("https://typst.app/play/")[Playground] +] diff --git a/chapters/what-is-typst.typ b/chapters/what-is-typst.typ new file mode 100644 index 0000000..1c0d47e --- /dev/null +++ b/chapters/what-is-typst.typ @@ -0,0 +1,35 @@ +#import "/globals.typ": * + += typst -- die Theorie + +#slide(title: "Was ist typst?")[ + - Textsatzsystem + - moderne Entwicklung als Konkurrenz zu #LaTeX + - Preview Dezember 2022 gestartet + - seit März 2023 Open Source + - viele Entwicklungen + - Noch nicht komplett stabil -- es gibt Änderungen in neuen Versionen, die manchmal nicht abwärtskompatibel sind + #v(1em) + - setzt vorgegebenen Text und weitere Anweisungen automatisch und versucht dabei bestmögliches Layout + - hat einfacherere Programmiermöglichkeiten als #LaTeX +] + +#slide(title: "Warum typst?")[ + #columns(2)[ + === Warum typst? + - Automatisch Textsatz, Referenzen, Layout + - Keine große Layoutarbeit am Ende + - Kein Ruinieren des Dokuments beim Verschieben eines Bildes + - Das Dokument "sieht einfach schön aus" + #v(1em) + - Als Bibliothek in Softwareprogrammen einsetzbar + - inkrementelles Kompilieren, ohne doppelte Durchläufe + #colbreak() + === Warum (noch) kein typst? + - Neue Versionen nicht komplett abwärtskompatibel + - Vorlagen für #LaTeX vorgegeben + - Unbekannter + ] + #v(1em) + #align(center)[Mit typst ist das Layouten von Arbeiten deutlich einfacher.] +] diff --git a/chapters/writing-text.typ b/chapters/writing-text.typ new file mode 100644 index 0000000..7d3950c --- /dev/null +++ b/chapters/writing-text.typ @@ -0,0 +1,51 @@ +#import "/globals.typ": * + += Text, Inhalt und Struktur + +#slide(title: "Funktionen")[ + - ermöglichen besondere Formatierung oder lokales Überschreiben von Einstellungen + - werden mit `#` eingeleitet + - im Programmiermodus können weitere Funktionen ohne `#` begonnen werden + - Parameter können positioniert oder benannt sein + - Inhalt wird nach den Parametern in `[]` angegeben + - besteht der Inhalt aus einem weiteren Funktionsaufruf, kann dieser auch als Argument übergeben werden + #show-code-render("functions.typ") +] + +#slide(title: "Anführungszeichen")[ + - Werden je nach ausgewählter Sprache richtig gesetzt + #show-code-render("quotations.typ") +] + +#slide(title: "Wichtige besondere Zeichen")[ + #table( + columns: (auto, auto, auto), + align: center, + [Schrägstrich], [\\], [`\\`], + [geschütztes Leerzeichen (ohne Zeilenumbruch)], [~], [\~], + [schmales geschütztes Leerzeichen], [z.#(sym.space.nobreak.narrow)B.], [`z.#(sym.space.nobreak.narrow)B.`], + [Tilde], [\~], [`\~`], + [Gedankenstrich (Halbgeviertstrich)], [--], [`--`], + [Geviertstrich], [---], [`---`], + ) +] + +== Verweise + +#slide(title: [Verweise -- Was wollen wir?])[ + - Referenzieren von Abbildungen, Tabellen, Codezeilen, etc. + - automatische Nummerierung + - kein manuelles Nummerieren, Aktualisieren und Überprüfen + - automatische Verzeichnisse + - anklickbarer Link +] + +#slide(title: "Verweise")[ + - Label setzen: `` + - Referenzieren: `@labelname` + - Typ des referenzierten Objekts wird in der Textsprache mitgenannt (Abbildung, Gleichung, ...) + - Seite referenzieren: `#ref(, form: "page")` + - Referenz nutzt immer aktuellste Abschnittnummer bzw. Seitenzahl – ohne weiteren Aufwand + - Daten sind immer aktuell, keine doppelten Kompilierungsdurchläufe notwendig + - Verweis ist ein Link, der direkt auf das referenzierte Objekt führt +] diff --git a/codebeispiele/beispiel.typ b/codebeispiele/beispiel.typ new file mode 100644 index 0000000..f79461d --- /dev/null +++ b/codebeispiele/beispiel.typ @@ -0,0 +1,17 @@ +#import "@preview/unify:0.7.1": * // Einfügen von Paketen +#set page("a4") // Papierformat +#set document( // Dokumenteninformationen + title: [Dokumententitel] +) +#set text(lang: "de") // Sprache des Dokuments +#show link: set text(blue) // Formatierung (hier: Links in blau) + +#title() // Dokumententitel += Überschrift // Anzahl der = gibt Ebene der Überschrift an +== Unterüberschrift + +#outline() // Inhaltsverzeichnis + +Beispielhafter Text +- Aufzählung 1 // Aufzählung mit - begonnen +- Aufzählung 2 // Einrückung mit 2 Leerzeichen diff --git a/codebeispiele/bib-file.bib b/codebeispiele/bib-file.bib new file mode 100644 index 0000000..7eae221 --- /dev/null +++ b/codebeispiele/bib-file.bib @@ -0,0 +1,14 @@ +@book{kochbuch, + title = {Mathematik für das Ingenieurstudium}, + author = {Koch, Jürgen}, + editor = {Stämpfle, Martin}, + address = {München}, + publisher = {Hanser}, + year = {2018}, + edition = {4., aktualisierte Auflage}, + isbn = {9783446451667}, + doi = {10.3139/9783446455818}, +} + +@article{... + diff --git a/codebeispiele/bibliography.typ b/codebeispiele/bibliography.typ new file mode 100644 index 0000000..fbada6d --- /dev/null +++ b/codebeispiele/bibliography.typ @@ -0,0 +1,16 @@ +// Im Dokument +@citation-key +// oder +#cite() +// für die Einbindung innerhalb des Satzes +#cite(, form: "prose") +// nur Autor:in +#cite(, form: "author") + +// Stelle, an der Literaturverzeichnis erscheinen soll +#bibliography( + ("bib/books.bib", + "bib/theses.bib",) + title: "Literaturverzeichnis", // Standardübersetzung Bibliografie + style: "ieee" +) diff --git a/codebeispiele/book-footer.typ b/codebeispiele/book-footer.typ new file mode 100644 index 0000000..587bd15 --- /dev/null +++ b/codebeispiele/book-footer.typ @@ -0,0 +1,11 @@ +#set page(footer: context { + let page-num = counter(page).get().first() + let inner-text = [Innerer Text] + let middle-text = [Mittlerer Text] + let outer-text = [#page-num] + if calc.even(page-num) { + grid(columns: (1fr, 1fr, 1fr), align(left, inner-text), align(center, middle-text), align(right, outer-text)) + } else { + grid(columns: (1fr, 1fr, 1fr), align(left, outer-text), align(center, middle-text), align(right, inner-text)) + }}) + diff --git a/codebeispiele/book-header.typ b/codebeispiele/book-header.typ new file mode 100644 index 0000000..6aa04a1 --- /dev/null +++ b/codebeispiele/book-header.typ @@ -0,0 +1,12 @@ +#set page(footer: context { + let page-num = counter(page).get().first() + let inner-text = [Innerer Text] + let middle-text = [Mittlerer Text] + let outer-text = [#page-num] + if calc.even(page-num) { + grid(columns: (1fr, 1fr, 1fr), align(left, inner-text), align(center, middle-text), align(right, outer-text)) + } else { + grid(columns: (1fr, 1fr, 1fr), align(left, outer-text), align(center, middle-text), align(right, inner-text)) + } +}) + diff --git a/codebeispiele/codly-figure.typ b/codebeispiele/codly-figure.typ new file mode 100644 index 0000000..465fbd8 --- /dev/null +++ b/codebeispiele/codly-figure.typ @@ -0,0 +1,11 @@ +#figure( + caption: [Beispielcode in Java] +)[ +```java +public static void main(String[] args) { + System.out.println("Hello Cyberweek"); +} +``` +] + +In @code:example-java ist ein wichtiger Codeausschnitt zu sehen. diff --git a/codebeispiele/codly-highlights-reference.typ b/codebeispiele/codly-highlights-reference.typ new file mode 100644 index 0000000..92053eb --- /dev/null +++ b/codebeispiele/codly-highlights-reference.typ @@ -0,0 +1,4 @@ +In @code:codly-highlights wird die alte Syntax verwendet. +Für kleine Projekte kann die `main`-Funktion ohne Parameter und ohne Modifier angegeben werden. Aus @code:codly-highlights:psvm wird dann ```java main() {```. + +Außerdem ist nun auch der Aufruf ohne das ```java System.out.``` möglich, wie in @code:codly-highlights:sout dargestellt. diff --git a/codebeispiele/codly-highlights.typ b/codebeispiele/codly-highlights.typ new file mode 100644 index 0000000..4b8a0c9 --- /dev/null +++ b/codebeispiele/codly-highlights.typ @@ -0,0 +1,13 @@ +#import "/globals.typ": * + +#figure(caption: [Highlights in codly])[ +#codly(highlights: ( + (line: 1, fill: blue, label: ), + (line: 2, start: 3, end: 13, fill: red, label: ), +)) +```java +public static void main(String[] args) { + System.out.println("Hello Cyberweek"); +} +``` +] diff --git a/codebeispiele/example-table.typ b/codebeispiele/example-table.typ new file mode 100644 index 0000000..b9057e4 --- /dev/null +++ b/codebeispiele/example-table.typ @@ -0,0 +1,7 @@ +#table( + columns: 3, + align: (left, center, right), + table.header[*Tabellenkopf*][*für*][*Barrierefreiheit*], + [Hallo],[Beispiel],[Ende], + [Dies],[ist],[Zeile 2] +) diff --git a/codebeispiele/functions.typ b/codebeispiele/functions.typ new file mode 100644 index 0000000..ef61cae --- /dev/null +++ b/codebeispiele/functions.typ @@ -0,0 +1,3 @@ +#align(center)[Zentrierter Text] + +#text(lang: "en")[english text] diff --git a/codebeispiele/hayagriva-file.yaml b/codebeispiele/hayagriva-file.yaml new file mode 100644 index 0000000..9ef7dda --- /dev/null +++ b/codebeispiele/hayagriva-file.yaml @@ -0,0 +1,16 @@ +kochbuch: + type: book + title: Mathematik für das Ingenieurstudium + author: Koch, Jürgen + date: 2018 + editor: Stämpfle, Martin + publisher: + name: Hanser + location: München + edition: 4., aktualisierte Auflage + serial-number: + doi: 10.3139/9783446455818 + isbn: '9783446451667' +artikel: + type: article + ... diff --git a/codebeispiele/image-float.typ b/codebeispiele/image-float.typ new file mode 100644 index 0000000..3224cda --- /dev/null +++ b/codebeispiele/image-float.typ @@ -0,0 +1,11 @@ + #figure( + image( + "/images/katze.jpg", + width: 80% + ), + caption: [ + Eine Katze + ], + ) + + @img:katze zeigt eine Katze. diff --git a/codebeispiele/math-block.typ b/codebeispiele/math-block.typ new file mode 100644 index 0000000..55da419 --- /dev/null +++ b/codebeispiele/math-block.typ @@ -0,0 +1,3 @@ +In diesem Absatz geht es um ein wichtiges Thema. +Nun folgt eine Gleichung: +$ f(x)=x^2 $ diff --git a/codebeispiele/math-inline.typ b/codebeispiele/math-inline.typ new file mode 100644 index 0000000..62fd629 --- /dev/null +++ b/codebeispiele/math-inline.typ @@ -0,0 +1 @@ +Hier ist nun ein Fließtext, in den ich eine Gleichung $f(x)=x^2$ setzen möchte. diff --git a/codebeispiele/math-numbered.typ b/codebeispiele/math-numbered.typ new file mode 100644 index 0000000..76a7a63 --- /dev/null +++ b/codebeispiele/math-numbered.typ @@ -0,0 +1,4 @@ +In diesem Absatz geht es um ein wichtiges Thema. +Nun folgt eine Gleichung: +#math.equation(block: true, numbering: "(1)")[$f(x)=x^2$] +In @eq:example-block steht eine wichtige Gleichung. diff --git a/codebeispiele/math-symbols.typ b/codebeispiele/math-symbols.typ new file mode 100644 index 0000000..ead75a7 --- /dev/null +++ b/codebeispiele/math-symbols.typ @@ -0,0 +1,11 @@ +$ +f(x)=x^2 \ +f_(x y)(x)=x^(2-y) \ +pi approx 3.14 \ +2 dot 4 <= 8 \ +1 < 2 > 1, 2 != 3 \ +1 lt 2 gt 1, 2 eq.not 3, 4 lt.eq 8 \ +(f^(-1)_x) \ +frac(2,4) + frac(1, frac(5,17)) \ +sqrt(16) = 4, root(4, 64) = 2 +$ diff --git a/codebeispiele/native-listings.typ b/codebeispiele/native-listings.typ new file mode 100644 index 0000000..c79772d --- /dev/null +++ b/codebeispiele/native-listings.typ @@ -0,0 +1,14 @@ +`Text in Monospacefont` + +Javacode im ```java public static``` Fließtext + +```java +public static void main() { + println("Hallo Cyberweek"); +} +``` + +#raw("def main(): + print(\"Hallo Cyberweek\")", +block: true, +lang: "python") diff --git a/codebeispiele/quotations.typ b/codebeispiele/quotations.typ new file mode 100644 index 0000000..7b7bba7 --- /dev/null +++ b/codebeispiele/quotations.typ @@ -0,0 +1,5 @@ +#text(lang: "de")["Beispieltext"] + +#text(lang: "fr")["texte exemple"] + +#text(lang: "en")["example text"] diff --git a/codebeispiele/table-alternate-row-color.typ b/codebeispiele/table-alternate-row-color.typ new file mode 100644 index 0000000..a2cfc39 --- /dev/null +++ b/codebeispiele/table-alternate-row-color.typ @@ -0,0 +1,7 @@ +#table( + columns: 3, + fill: (x, y) => if calc.odd(y) { green.lighten(80%) }, + table.header[*Tabellenkopf*][*für*][*Barrierefreiheit*], + [Hallo],[Beispiel],[Ende], + [Dies],[ist],[Zeile 2] +) diff --git a/codebeispiele/table-fr.typ b/codebeispiele/table-fr.typ new file mode 100644 index 0000000..e579da8 --- /dev/null +++ b/codebeispiele/table-fr.typ @@ -0,0 +1,6 @@ +#table( + columns: (2fr, 1fr, 2fr), + table.header[*Tabellenkopf*][*für*][*Barrierefreiheit*], + [Hallo],[Beispiel],[Ende], + [Dies],[ist],[Zeile 2] +) diff --git a/globals.typ b/globals.typ new file mode 100644 index 0000000..ef75f6b --- /dev/null +++ b/globals.typ @@ -0,0 +1,15 @@ +#import "@preview/touying:0.6.1": * +#import themes.metropolis: * + +#import "@preview/codly:1.3.0": * +#import "@preview/codly-languages:0.1.1": * + +#import "@preview/metalogo:1.2.0": LaTeX, TeX + +#let show-code-render(path) = { + columns(2)[ + #include "/codebeispiele/" + path + #colbreak() + #raw(lang: "typ", read("/codebeispiele/" + path).replace("#import \"/globals.typ\": *\n\n", "")) + ] +} diff --git a/images/bibliothek.png b/images/bibliothek.png new file mode 100644 index 0000000..1286dce Binary files /dev/null and b/images/bibliothek.png differ diff --git a/images/blb.png b/images/blb.png new file mode 100644 index 0000000..4d492d3 Binary files /dev/null and b/images/blb.png differ diff --git a/images/boss.png b/images/boss.png new file mode 100644 index 0000000..bde8dec Binary files /dev/null and b/images/boss.png differ diff --git a/images/briefs.png b/images/briefs.png new file mode 100644 index 0000000..4f0b17b Binary files /dev/null and b/images/briefs.png differ diff --git a/images/katze.jpg b/images/katze.jpg new file mode 100644 index 0000000..eb76468 Binary files /dev/null and b/images/katze.jpg differ diff --git a/images/moderner-cv.png b/images/moderner-cv.png new file mode 100644 index 0000000..706eb8b Binary files /dev/null and b/images/moderner-cv.png differ diff --git a/images/pearson.png b/images/pearson.png new file mode 100644 index 0000000..b4e87a7 Binary files /dev/null and b/images/pearson.png differ diff --git a/images/springer.png b/images/springer.png new file mode 100644 index 0000000..58d5f67 Binary files /dev/null and b/images/springer.png differ diff --git a/workshop.typ b/workshop.typ new file mode 100644 index 0000000..7d10a80 --- /dev/null +++ b/workshop.typ @@ -0,0 +1,73 @@ +#import "/globals.typ": * +#import "@preview/codly:1.3.0": * +#import "@preview/codly-languages:0.1.1": * + +#set text( + lang: "de", + font: "Fira Sans", +) +#show link: set text(blue) +#set list(marker:([•], [◦], [--])) + +#set table(stroke: (x, y) => ( + left: if x > 0 { 0.8pt }, + top: if y > 0 { 0.8pt }, +)) +#set raw(lang: "typ") +#show: codly-init.with() +#codly(languages: codly-languages) +#codly-disable() + +#show outline.entry: it => link( + it.element.location(), + it.indented(it.prefix(), text(black, it.body())), +) + +#show: metropolis-theme.with( + aspect-ratio: "16-9", + footer-right: [], + config-info( + title: [WYSIWYAF with typst], + subtitle: [Einstieg in wissenschaftliche Arbeiten mit typst], + author: [Julius Freudenberger], + date: [Cyberweek Wintersemester 2025/2026], + institution: [Hochschule Esslingen], + ), +) + +#title-slide() + +#include "chapters/what-is-needed.typ" + +#include "chapters/about-me.typ" + +#include "chapters/introduction.typ" + += Inhalt +#outline(title: none, depth: 2) + +#include "chapters/what-is-typst.typ" + +#include "chapters/typst-code.typ" + +#include "chapters/own-changes.typ" + +#include "chapters/writing-text.typ" + +#include "chapters/math.typ" + +#include "chapters/tables.typ" + +#include "chapters/graphics-floats.typ" + +#include "chapters/listings.typ" + +#include "chapters/listofs.typ" + +#include "chapters/formatting.typ" + +#include "chapters/external-files.typ" + +#include "chapters/closing.typ" + +#title-slide()