Menü aufrufen
Toggle preferences menu
Persönliches Menü aufrufen
Nicht angemeldet
Ihre IP-Adresse wird öffentlich sichtbar sein, wenn Sie Änderungen vornehmen.
Version vom 2. November 2025, 21:44 Uhr von Arne (ZaPF-Login) (Diskussion | Beiträge) ("Protokoll" hinzugefügt)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)


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.