Schlagwort-Archiv: latex

LaTeX: Quellcode-Listing

Es gibt mehrere Möglichkeiten mit LaTeX Quellcode einzubinden. Von Haus aus gibt es da die Verbatim-Umgebung. Sie wird folgendermaßen benutzt:

\begin{verbatim}
hier kommt dann der Quellcode...
\end{verbatim}

Dieser Text wird dann in einer Festbreitenschrift dargestellt.

Eine sehr viel bessere Möglichkeit bietet das Paket listings. Dazu in der Präambel einfach das Paket laden mit

\usepackage{listings}

.

Es gibt nun mehrere Möglichkeiten Quellcode darstellen zu lassen.

  • Kurze Quelltexte einfach direkt reinschreiben:
    \lstset{language=}
    \begin{lstlisting}[]
    hier kommt dann der Quellcode...
    \end{lstlisting}
  • Längere Quelltexte kann man auch aus Dateien direkt einbinden mit:
    \lstset{language=}
    \lstinputlisting[]{pfad/zur/datei.php}
  • Innerhalb von Fließtext kann man auch Quellcode darstellen mit:
    \lstinline[]
    {hier kommt der Quellcode...}

Die gängigsten Programmiersprachen werden unterstützt und man kann unter anderem folgende Werte als <Sprache> einsetzen:
C, C++, HTML, Ant, Basic, Delphi, Java, Lisp, make, Pascal, PHP, Python, Ruby, tcl, TeX, LaTeX, VRML, Perl, Prolog, SQL, VBScript, XML, XSLT und viele weitere.

Als <Optionen> kann man folgende verwenden:

  • emph Liste hervorzuhebender Schlüsselwörter
    emph={a,b,c}
  • emphstyle Art der Hervorhebung
    emphstyle=\underbar
  • breaklines bricht überlange Zeilen um
    breaklines=true
  • showstringspaces Anzeige von Leerzeichen im Quellcode
    showstringspaces=false
  • showspaces vgl. showstringspaces

Beim

\lstinputlisting

kommen zusätzliche Optionen hinzu:

  • firstline Ausschnittsbeginn festlegen
    firstline=2
  • lastline Ausschnittsende festlegen
    lastline=5
  • numbers Zeilennummern
    numbers=left
  • numberstyle Stil der Nummerierung
    numberstyle=\tiny
  • stepnumber Schrittweite der Nummerierung

    stepnumber=5

Für große Dokumente sind folgende Optionen sehr sinnvoll:

  • caption setzt eine Überschrift
    caption={Titel oder so}
  • label Bereichsmarkierung um mit
    \ref{}

    daraufzuzugreifen,

    label=code:Sourcecode
  • frame setzt einen Rahmen (Großbuchstaben bedeuten eine Doppellinie)
    frame=tlRB

Für ein Verzeichnis der enthaltenen Listings benutzt man

\lstlistoflistings

.

Als nicht-freie Alternative gibt es noch das

lgrind

Paket. Auf dieses wird hier aber nicht weiter eingegangen.