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
\lstinputlistingkommen 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.