Listings in TeX
Willemers Informatik-Ecke

Die Umgebung verbatim

verbatim zeigt den eingeschlossenen Text so, wie er eingegeben wurde. Der Inhalt wird nicht interpretiert, sondern in nichtproportionaler Schrift inklusive Einrückung angezeigt.
\begin{verbatim}
int a = 0;
for (int i=0; i<10; i++) {
    a += i*i;
}
\end{verbatim}

Umgebung lstlisting

Der Nachteil von verbatim ist, dass es keine Möglichkeit gibt, die Listings durchzunummerieren. Hier hilft das Paket lstlisting. Dieses bietet darüber hinaus auch Syntax-Highlighting für die meisten Programmiersprachen.

Im Kopf fügt man folgendes ein:

\usepackage{listings}
Um Anpassungen zu machen verwendet man lstset:
\lstset{
...
}
Alle Einträge werden durch Kommata voneinander getrennt. Die wichtigsten Einstellungen: Um die deutschen Umlaute im Listing sauber darzustellen, müssen diese in der lstset eingerichtet werden:
\lstset{literate=%
{Ö}{{\"O}}1
{Ä}{{\"A}}1
{Ü}{{\"U}}1
{ß}{{\ss}}2
{ü}{{\"u}}1
{ä}{{\"a}}1
{ö}{{\"o}}1
}
Das Listing wird umschlossen, wie bei verbatim. Es erscheint auch ganz ähnlich, nämlich ohne Nummerierung oder Titel.
\begin{lstlisting}
int a = 0;
for (int i=0; i<10; i++) {
    a += i*i;
}
\end{lstlisting}
Soll das Listing nummeriert werden, muss es ein caption erhalten und damit einen Titel, hier "Zählen für Anfänger"
\begin{lstlisting}[caption=Zählen für Anfänger]
int a = 0;
for (int i=0; i<10; i++) {
    a += i*i;
}
\end{lstlisting}

Hervorheben von Listing-Passagen

\begin{lstlisting}[escapeinside={|*}{*|}]
for ( |*\bfseries{int i=0;}*| i<10; i++) {
    a += i*i;
}
\end{lstlisting}
\begin{lstlisting}[escapechar=|]
int a = 0;
for ( |\bfseries{int i=0;}| i<10; i++) {
    a += i*i;
}
\end{lstlisting}