@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
10
@title
Quelltext einbinden
@content
* Im Ordner `exercises/source-code-listings` findet ihr eine Datei namens `Source.java`. Wir werden diese im Folgenden in unser Dokument einbinden und das Aussehen unseren Wünschen anpassen.
* ++ **Bindet** den Java-Quelltext in der Datei `task-1.tex` **ein**.
* ++ Aktiviert das **Syntax-Highlighting** durch Angabe der Sprache Java.
* ++ Verwendet eine Option, um die Zeilen zu **nummerieren**.
* ++ Nutzt das **Theme** `native`.
* ++ Ändert die **Hintergrundfarbe** des Themes zu dunkelblau.
* ++ Bindet jetzt nur die **Zeilen 5 bis 7** ein.
* ++ Entfernt die **Leerzeichen** am Anfang der Zeilen durch die passende Option (Tipp: Die Dokumentation spricht hier von `gobble`).
* ++ Seht bei Fragen in der Dokumentation des Paketes *Minted* nach.