WiSe25 WS Typst: Unterschied zwischen den Versionen
Ein Paar Dinge |
"Protokoll" hinzugefügt |
||
| Zeile 106: | Zeile 106: | ||
== Protokoll == | == Protokoll == | ||
Hier eine ungefähre Nachstellung der im Workshop vermittelten Kenntnisse. | |||
Wer Lust hat kann versuchen, es mit typst zu kompilieren. | |||
<nowiki>#set text(lang: "de") // Ignorier das fürs erste | |||
= Basics | |||
↑ Das ist eine Überschrift | |||
== Das hier ist eine Unterüberschrift | |||
Kein `\begin{document}` oder ähnliches, einfach Text. | |||
Eine Leere Zeile (zwei Zeilenumbrüche) erzeugt einen neuen Absatz. | |||
Ein einzelner Zeilenumbruch reicht nicht aus. \ | |||
Man kann aber mit \ einen Zeilenumbruch herbeiführen, auch ohne Zeilenumbruch im Code. | |||
Man kann _kursiv_, oder *fett* schreiben, wie in Markdown. | |||
Ungeordnete Listen | |||
- a | |||
- b | |||
- c | |||
und geordnete Listen | |||
1. a | |||
2. b | |||
+ c | |||
+ d | |||
6. f | |||
lassen sich einfach schreiben. | |||
- Auch | |||
- mit | |||
- mehreren | |||
- Ebenen. | |||
- Oder mehreren | |||
Zeilen | |||
Code kann man entweder inline als `code`, oder mutliline als Block | |||
```py | |||
def: func(): | |||
pass | |||
``` | |||
mit optionaler Sprache direkt nach dem ersten Backtick schreiben | |||
= Funktionen | |||
Der bisher gezeigte Syntax ruft eigentluch nur Funktionen auf: | |||
#heading("Ich bin eine Überschrift", level: 2) | |||
ist äquivalent zu | |||
== Ich bin eine Überschrift | |||
Allgemein gelangt man durch `#` in den Funktionsmodus. | |||
Anstatt einem String (Text in "") kann man auch Content (Text in []) verwenden: | |||
#heading(level: 2)[Text] | |||
oder | |||
#heading([Text], level: 2) | |||
oder sogar | |||
#heading[Text] | |||
Man kann auch die Funktion weglassen, um einfach so #[Text zu schreiben]. | |||
- #[ | |||
Das kann für aufzählungen nützlich sein, wenn man sie nicht | |||
ordentlich einrücken möchte. | |||
] | |||
Achtung: Ein String kann wirklich nur text. #"#heading()" ruft keine Funktion auf, #[#heading(level: 2)[aber schon]] | |||
Wenn man mehrere Funktionen hintereinander schreiben will, kann man dafür auch einen Funktionsblock verwenden: | |||
#{ | |||
heading(level: 2)[Ich bin eine Überschrift] | |||
text[Und ich Brauche keinen \#!] | |||
} | |||
Man kann Headings auch über ein Argument Nummern geben: | |||
#heading(numbering: "1.", level: 2)[Ich bin eine nummerierte Überschrift] | |||
Man kann auch andere Zahlen benutzen: | |||
#heading(numbering: "I.", level: 2)[Lorem Ipsum] | |||
#heading(numbering: "1.", level: 10)[Man kann beliebig tief in die Headings gehen] | |||
= Set und show | |||
Um nicht jedes mal `#heading` eingeben zu müssen, kann man eine set-Regel verwenden: | |||
#set heading(numbering: "1.") | |||
Allgemein setzt man damit den Standardwert für einen beliebigen Parameter einer Funktion. | |||
Es gibt auch `#show`-Regeln. Die sind | |||
#link("https://typst.app/docs/tutorial/making-a-template/", "hier"). | |||
= Einheiten | |||
Ich kann horizonatlen Platz von #h(1cm) einem Zentimeter einfügen. \ | |||
Oder von #h(12pt) 12pt. \ | |||
Oder von #h(1em) 1em. 1em ist Dabei gleich der Schriftgröße, also hier 12pt. \ | |||
Mit einem Spacing von #h(1fr) komme ich auf die andere Seite. | |||
= Mathemodus | |||
Der Mathemodus funktioniert ähnlich wie in Latex: $x^2$ für eine Inline-Gleichung, | |||
$ y^2 $ | |||
für _display math_. | |||
Anstelle von {} verwendet man allerdings (): | |||
$ y^(2 a) $ | |||
und Brüche kann man einfach als | |||
$ (2x)/y $ | |||
schreiben. | |||
Zeichenketten aus mehreren worten werden automatisch als Funktion erkannt, z. B. $dot$. | |||
Wenn man diese im Textmodus aufrufen möchte, kann man einfach #math.dot benutzen. | |||
Außerdem kann man direkt · oder $·$ eingeben. (Wenn das Tastaturlayout es erlaubt) | |||
= Beispiele | |||
#set text(font: "New Computer Modern") | |||
Jetzt sieht alles mehr nach Latex aus. | |||
#table(columns: 2, | |||
[Tabelllen], [sind], | |||
[ein bisschen], [umständlich.] | |||
) | |||
#set heading( | |||
numbering: (..nums) => nums | |||
.pos() | |||
.map(str) | |||
.join(".") + h(0.75em) | |||
) | |||
== Jetzt sehen Überschriften mehr nach Latex aus | |||
Man kann eigene Operatoren, wie $exp -x^2$ definieren, mit | |||
#let Sp = math.op("Sp") | |||
$ Sp A $. | |||
Klammern werden automatisch korrekt skaliert: | |||
$ ( 1/2 ) $ | |||
Man kann packages von typst.app/universe ganz einfach importieren: | |||
#import "@preview/physica:0.9.7": * | |||
$ va(a) $ | |||
Der Befehl `#va()` wird von physica hinzugefügt.</nowiki> | |||
| Zeile 123: | Zeile 242: | ||
[[Kategorie:AK-Protokolle]] | [[Kategorie:AK-Protokolle]] | ||
[[Kategorie:WiSe25]] | [[Kategorie:WiSe25]] | ||
[[Kategorie:Kategorie Fehlt]] | [[Kategorie:Kategorie Fehlt]] | ||
Aktuelle Version vom 2. November 2025, 21:44 Uhr
Vorstellung des AKs
Verantwortliche*r: Arne (Düsseldorf)
Einleitung und Ziel des AK
Typst ist eine (sehr) neue LaTeX-Alternative, die meiner Meinung nach deutlich angenehmer zu benutzen ist. Wer keine Lust mehr auf LaTeX hat, oder wer es gar nicht erst lernen will, kann hier die Grundlagen ausprobieren. Wer schon Typst kann, kann natürlich auch gerne kommen, dann kann man sich dazu austauschen.
Handelt es sich um einen Folge-AK?
Nein
Wer ist die Zielgruppe?
Alle, die Typst kennenlernen oder sich weiterbilden wollen.
Wie läuft der AK ab?
Ich werde ein paar Grundlagen zeigen und dann auf fragen eingehen. Wer will kann parallel selber rumprobieren
Voraussetzungen (materielle und immaterielle)
Wenn man selber rumprobieren möchte, sollte man einen Laptop o. ä. haben, muss man aber nicht.
Materialien und weitere Informationen
https://typst.app/
WiSe25 WS Typst
Protokoll vom 02.11.2025
- Beginn
- 18:45 Uhr
- Ende
- 20:00 Uhr
- Redeleitung
- Arne (Düsseldorf)
- Protokoll
- Gibt es nicht
- Anwesende Fachschaften
Protokoll
Hier eine ungefähre Nachstellung der im Workshop vermittelten Kenntnisse. Wer Lust hat kann versuchen, es mit typst zu kompilieren.
#set text(lang: "de") // Ignorier das fürs erste
= Basics
↑ Das ist eine Überschrift
== Das hier ist eine Unterüberschrift
Kein `\begin{document}` oder ähnliches, einfach Text.
Eine Leere Zeile (zwei Zeilenumbrüche) erzeugt einen neuen Absatz.
Ein einzelner Zeilenumbruch reicht nicht aus. \
Man kann aber mit \ einen Zeilenumbruch herbeiführen, auch ohne Zeilenumbruch im Code.
Man kann _kursiv_, oder *fett* schreiben, wie in Markdown.
Ungeordnete Listen
- a
- b
- c
und geordnete Listen
1. a
2. b
+ c
+ d
6. f
lassen sich einfach schreiben.
- Auch
- mit
- mehreren
- Ebenen.
- Oder mehreren
Zeilen
Code kann man entweder inline als `code`, oder mutliline als Block
```py
def: func():
pass
```
mit optionaler Sprache direkt nach dem ersten Backtick schreiben
= Funktionen
Der bisher gezeigte Syntax ruft eigentluch nur Funktionen auf:
#heading("Ich bin eine Überschrift", level: 2)
ist äquivalent zu
== Ich bin eine Überschrift
Allgemein gelangt man durch `#` in den Funktionsmodus.
Anstatt einem String (Text in "") kann man auch Content (Text in []) verwenden:
#heading(level: 2)[Text]
oder
#heading([Text], level: 2)
oder sogar
#heading[Text]
Man kann auch die Funktion weglassen, um einfach so #[Text zu schreiben].
- #[
Das kann für aufzählungen nützlich sein, wenn man sie nicht
ordentlich einrücken möchte.
]
Achtung: Ein String kann wirklich nur text. #"#heading()" ruft keine Funktion auf, #[#heading(level: 2)[aber schon]]
Wenn man mehrere Funktionen hintereinander schreiben will, kann man dafür auch einen Funktionsblock verwenden:
#{
heading(level: 2)[Ich bin eine Überschrift]
text[Und ich Brauche keinen \#!]
}
Man kann Headings auch über ein Argument Nummern geben:
#heading(numbering: "1.", level: 2)[Ich bin eine nummerierte Überschrift]
Man kann auch andere Zahlen benutzen:
#heading(numbering: "I.", level: 2)[Lorem Ipsum]
#heading(numbering: "1.", level: 10)[Man kann beliebig tief in die Headings gehen]
= Set und show
Um nicht jedes mal `#heading` eingeben zu müssen, kann man eine set-Regel verwenden:
#set heading(numbering: "1.")
Allgemein setzt man damit den Standardwert für einen beliebigen Parameter einer Funktion.
Es gibt auch `#show`-Regeln. Die sind
#link("https://typst.app/docs/tutorial/making-a-template/", "hier").
= Einheiten
Ich kann horizonatlen Platz von #h(1cm) einem Zentimeter einfügen. \
Oder von #h(12pt) 12pt. \
Oder von #h(1em) 1em. 1em ist Dabei gleich der Schriftgröße, also hier 12pt. \
Mit einem Spacing von #h(1fr) komme ich auf die andere Seite.
= Mathemodus
Der Mathemodus funktioniert ähnlich wie in Latex: $x^2$ für eine Inline-Gleichung,
$ y^2 $
für _display math_.
Anstelle von {} verwendet man allerdings ():
$ y^(2 a) $
und Brüche kann man einfach als
$ (2x)/y $
schreiben.
Zeichenketten aus mehreren worten werden automatisch als Funktion erkannt, z. B. $dot$.
Wenn man diese im Textmodus aufrufen möchte, kann man einfach #math.dot benutzen.
Außerdem kann man direkt · oder $·$ eingeben. (Wenn das Tastaturlayout es erlaubt)
= Beispiele
#set text(font: "New Computer Modern")
Jetzt sieht alles mehr nach Latex aus.
#table(columns: 2,
[Tabelllen], [sind],
[ein bisschen], [umständlich.]
)
#set heading(
numbering: (..nums) => nums
.pos()
.map(str)
.join(".") + h(0.75em)
)
== Jetzt sehen Überschriften mehr nach Latex aus
Man kann eigene Operatoren, wie $exp -x^2$ definieren, mit
#let Sp = math.op("Sp")
$ Sp A $.
Klammern werden automatisch korrekt skaliert:
$ ( 1/2 ) $
Man kann packages von typst.app/universe ganz einfach importieren:
#import "@preview/physica:0.9.7": *
$ va(a) $
Der Befehl `#va()` wird von physica hinzugefügt.