Menü aufrufen
Toggle preferences menu
Persönliches Menü aufrufen
Nicht angemeldet
Ihre IP-Adresse wird öffentlich sichtbar sein, wenn Sie Änderungen vornehmen.

WiSe25 WS Typst: Unterschied zwischen den Versionen

Aus ZaPFWiki
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.


== Zusammenfassung/Ausblick ==
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:Protokoll Einpflegen]]
[[Kategorie:Zusammenfassung Einpflegen]]
[[Kategorie:Kategorie Fehlt]]
[[Kategorie:Kategorie Fehlt]]