2.7 KiB
@slide(layout=chapter-slide)
@number 13
@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:
\section*{Haskell-Magie}
Quadrate aller geraden % …
\begin{lstlisting}[language=Haskell]
[x^2 | x <- [1..200], even x]
\end{lstlisting}
@slide(layout=content-and-preview)
@title Externer Code
@content
Praktischerweise bietet listings einen Befehl zum Einfügen externen Codes:
\section*{Einfache Java-Anwendung}
\lstinputlisting[language=Java]{Test.java}
public class Test {
public static void main(/*…*/) {
System.out.println(/*…*/);
}
}
@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.
\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 in das Paket
- offizielle Dokumentation
- vordefinierte UTF-8-Konfiguration
- das Paket
xcolorfür Farben - zwei Themes im solarized-Stil für
listings
@slide(layout=task)
@task-number 13
@title Listings
@content
- Im Ordner
exercises/source-code-listingsfindet ihr eine Datei namensSource.java. - Bindet den Java-Quelltext in der Datei
source-code-listings.texein. (Beachtet, dass der Dateipfad relativ zumain-exercises.texist.) - Erlaubt die Verwendung von Sonderzeichen durch Angabe der
literate-Option. - Aktiviert das Syntax-Highlighting durch Angabe der Sprache Java.
- Nummeriert die Zeilen und aktiviert Umbrüche.
- Setzt mit dem Parameter
basicstyleeine 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.