sprachrohr

Dienstag, April 18, 2006

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=<Sprache>}
    \begin{lstlisting}[<Optionen>]
    hier kommt dann der Quellcode...
    \end{lstlisting}
    
  • Längere Quelltexte kann man auch aus Dateien direkt einbinden mit:
    \lstset{language=<Sprache>}
    \lstinputlisting[<Optionen>]{pfad/zur/datei.php}
    
  • Innerhalb von Fließtext kann man auch Quellcode darstellen mit:
    \lstinline[<Optionen>]{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
Asschnittsende 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.

5 Kommentare:

  • übst du dich jetzt auch in LaTeX-Postings? ;-)

    Von Blogger justBe, am 12:06  

  • na logens... ;-)

    Von Blogger rok ;-), am 07:21  

  • hallo!

    kann man den Titel auch unten setzen? (unterhalb des Listings)

    Von Blogger Mihai, am 12:12  

  • Dafür bin ich leider schon zu lange raus aus dem Thema. Ich kann leider keine Antwort darauf geben.

    Versuch mal bei google.groups, ob du dort eine Antwort bekommst. Ich hatte damals sehr viel Erfolg.

    HTH, rok

    Von Blogger rok, am 13:48  

  • Habs inzwischen geschafft (und will es natürlich nicht nur für mich behalten)...:)

    \lstset{captionpos=b}

    b steht wahrscheinlich für "bottom"!

    Von Blogger Mihai, am 14:50  

Kommentar veröffentlichen

<< Home