@slide(layout=chapter-slide)
@title
Quelltext-Listings
@slide(layout=content-and-preview)
@title
Installation 🖥️
@content
Mit dem Paket `minted` lässt sich Quelltext gut darstellen. Dafür wird die Programmiersprache Python benötigt.
Nach der **[Installation von Python](https://www.python.org/)** kann das zugehörige Paket **[`Pygments`](http://pygments.org/)** in der Eingabeaufforderung installiert werden durch:
``` {.lang-sh .hljs}
pip install Pygments
```
AnschlieĂźend muss das LaTeX-Paket nur noch eingebunden werden:
``` {.lang-tex .hljs}
\usepackage{minted}
```
@preview
{ .thin-padding }
@slide(layout=content-only)
@title
Anpassungen beim Kompilieren
@content
Um Dokumente mit Quelltext-Listings kompilieren zu können, muss die Flag `--shell-escape` an den Compiler übergeben werden.
In TeXstudio muss diese unter **`Optionen → TeXstudio konfigurieren → Befehle`** bei PdfLaTeX vor `%.tex` ergänzt werden:
pdflatex -synctex=1 -interaction=nonstopmode **\-\-shell-escape** %.tex
@slide(layout=content-and-preview)
@title
Code im LaTeX-Quelltext
@content
++ In einer eigenen Umgebung:
``` {.lang-tex .hljs .fragment}
\section*{Haskell-Magie}
Quadrate aller geraden % …
\begin{minted}{haskell}
[x^2 | x <- [1..200], even x]
\end{minted}
```
++ Inline im Quelltext:
``` {.lang-tex .hljs .fragment}
\section*{Ein HTML-Beispiel}
Eine Ăśberschrift wird so ausgezeichnet:
\mint{html}|LaTeX im Studium
|.
```
@preview

@slide(layout=content-and-preview)
@title
Code aus externen Dateien
@content
Um Redundanz zu vermeiden, ist es manchmal praktisch, den Quelltext direkt aus der Quelldatei einzulesen.
``` {.lang-tex .hljs}
\section*{Einfache Java-Anwendung}
\inputminted{java}{Test.java}
```
``` {.lang-java .hljs data-sourcefile="Test.java"}
public class HelloWorld {
public static void main(/*…*/) {
System.out.println(/*…*/);
}
}
```
@preview

@slide(layout=content-only)
@title
`Minted` konfigurieren
@content
Durch optionale Parameter können Zeilennummerierung, Umbrüche und Farben ausgewählt werden. Außerdem sind zahlreiche Themes verfügbar.
``` {.lang-tex .hljs}
\usemintedstyle{monokai}
\begin{minted}[
linenos=true,
breaklines=true,
]{javascript}
% ...
\end{minted}
```
đź”— **[EinfĂĽhrung](https://www.overleaf.com/learn/latex/Code_Highlighting_with_minted)** und **[offizielle Dokumentation](https://ctan.kako-dev.de/macros/latex/contrib/minted/minted.pdf)**
@slide(layout=task)
@task-number
9
@title
Quelltext einbinden
@content
* Abschnitt 2.4 enthält zwei auskommentierte **Listings**.
* ++ Bindet zunächst das **Paket `minted`** an der richtigen Stelle ein.
* ++ Nutzt die **`minted`-Umgebung**, um das erste Listing mit Syntax Highlighting zu versehen.
* ++ Lagert das zweite Listing in eine **neue Datei** aus und bindet sie mit `\inputminted` ein.
* ++ Ändert das **Farbschema** zu `borland`.