@slide(layout=chapter-slide) @number 11 @title Quelltext-Listings @slide(layout=content-and-preview) @title Direkt im LaTeX-Quelltext @content Das Paket `listings` bietet zum Einfügen von Code eine eigene 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/source-code-listings/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/source-code-listings/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}}1 ] % … \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) * vordefinierte [UTF-8-Konfiguration](https://en.wikibooks.org/wiki/LaTeX/Source_Code_Listings#Encoding_issue) * 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 11 @title Listings @content * **Bindet** den Java-Quelltext (zu finden in `Source.java`) in der Datei `source-code-listings.tex` **ein** (relativer Dateipfad!). * Erlaubt die Verwendung von **Sonderzeichen** durch Angabe der `literate`-Option. * Aktiviert das **Syntax-Highlighting**. * **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.