static.wiai.de/latex-weekend/slides/source-code-listings.de.md
2023-11-18 01:26:09 +01:00

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}

@preview

@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(/*…*/);
    }
}

@preview

@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

@slide(layout=task)

@task-number 13

@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-exercises.tex ist.)
  • 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 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.