@slide(layout=chapter-slide) @number 12 @title Quelltext-Listings @slide(layout=content-and-preview) @title Code im LaTeX-Quelltext @content In einer eigenen Umgebung: ``` {.lang-tex .hljs} \section*{Haskell-Magie} Quadrate aller geraden % … \begin{lstlisting}[language=Haskell] [x^2 | x <- [1..200], even x] \end{lstlisting} ``` @preview ![](svg/chapter-10/listings-haskell-crop.svg) @slide(layout=content-and-preview) @title Externer Code @content Praktischerweise bietet `listings` einen Befehl zum Einfügen externen Codes: ``` {.lang-tex .hljs} \section*{Einfache Java-Anwendung} \lstinputlisting[language=Java]{Test.java} ``` ``` {.lang-java .hljs data-sourcefile="Test.java"} public class Test { public static void main(/*…*/) { System.out.println(/*…*/); } } ``` @preview ![](svg/chapter-10/listings-java-crop.svg) @slide(layout=content-only) @title Themen und Stile @content `listings` stellt keine eigenen Themes zur Verfügung. Dies kann aber durch die vielen Konfigurationsoptionen ausgeglichen werden. ``` {.lang-tex .hljs} \begin{lstlisting}[ language=Java, basicstyle=\footnotesize\ttfamily, breaklines=true, keywordstyle=\color{ForestGreen}, commentstyle=\color{DarkGray}, literate={ö}{{\"o}} ] % … \end{lstlisting} ``` Für die Erstellung eigener Themes ist der Befehl `\lstset` nützlich. @slide(layout=content-only) @title Weitere Materialien @content * [Einführung](https://www.overleaf.com/learn/latex/Code_listing#Reference_guide) in das Paket * offizielle [Dokumentation](https://www.overleaf.com/learn/latex/Code_listing#Reference_guide) * das Paket [`xcolor`](https://www.overleaf.com/learn/latex/Using_colours_in_LaTeX) für Farben * zwei [Themes](https://github.com/jez/latex-solarized) im solarized-Stil für `listings` @slide(layout=task) @task-number 10 @title Listings @content * Im Ordner `exercises/source-code-listings` findet ihr eine Datei namens `Source.java`. * **Bindet** den Java-Quelltext in der Datei `source-code-listings.tex` **ein**. (Beachtet, dass der Dateipfad relativ zu `main.tex` ist.) * Aktiviert das **Syntax-Highlighting** durch Angabe der Sprache Java. * **Nummeriert** die Zeilen und aktiviert **Umbrüche**. * Setzt mit dem Parameter `basicstyle` eine dicktengleiche Schrift (`\ttfamily \small`). * Ändert die Schlüsselwortfarbe zu Blau. * Verbergt die Sonderzeichen, die **Leerzeichen in Zeichenketten** markieren. Seht bei Fragen in der Dokumentation des Paketes `listings` nach.