@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 ![](svg/chapter-10/minted-overview-crop.svg){ .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 ![](svg/chapter-10/minted-haskell-crop.svg) @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 ![](svg/chapter-10/minted-java-crop.svg) @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 8 @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.raw.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.