[HowTo] C# Code-Listings mit Syntax-Highlighting in Latex
Juni 17, 2007 on 8:43 am | In Artikel / HowTo's, Studium, Tools | 8 CommentsIch schreibe derzeit an meiner Diplomarbeit mit Latex, genauer gesagt mit Lyx1.4.4 als WISIWYM-Editor und Miktex 2.5 Basic als Latex Unterbau. Mittlerweile gibts schon Lyx 1.5, was deutlich schicker ist als 1.4.x, aber da es das bisher nur als Beta gibt und ich fertig werden will/muss hab ich auf ein Upgrade verzichtet. Never touch a running system
Ich habe relativ viele Code-Listings in meiner Arbeit, die man aus optischen Gründen NICHT als Screenshots integrieren sollte. Ich habs versucht, aber es sieht aufgrund der teilweise unterschiedlichen Größen der Bilder und deren Qualität einfach nicht aus. Nach einigem Recherchieren und etwas Hilfe durch Micha kam ich dann zu einer halbwegs schicken Lösung.
Um ein Listing zu erstellen geht man in Lyx zur gewünschten Stelle im Dokument und dann zu [INSERT >>> Tex Code] bzw. man drückt Strg+L. In diesen Tex Code Block lässt man dann folgenden Code ein:
begin{lstlisting}
//Euer Quellcode
\end{lstlisting}
Kleiner Tip, vermeidet Unterstriche in der Caption, da meckert Lyx rum. Ich habe Stunden gebraucht bis ich das rausgefunden hatte, da Lyx mit Fehlergründen manchmal etwas zurückhaltend ist…
Damit das ganze überhaupt läuft muss aber etwas Vorarbeit geleistet werden. Um Listings zu integrieren benötigt man vorallem eins, das Latex-Paket “Listings”, wer hätte das gedacht
Also schreibt man in die Preambel, a.k.a. der Latex-Vorspann, folgenden Code:
%Quellcode-Listing Einstellungen
\usepackage{color,listings} %bindet das Paket Listings ein
% Der lstset-Befehl ermöglicht haufenweise Einstellungen zur Formatierung
\lstset{language=[Sharp]C, % Grundsprache ist C und Dialekt ist Sharp (C#)
captionpos=b, % Beschriftung ist unterhalb
frame=lines, % Oberhalb und unterhalb des Listings ist eine Linie
basicstyle=\ttfamily, % Schriftart
keywordstyle=\color{blue}, % Farbe für die Keywords wie public, void, object u.s.w.
commentstyle=\color{green}, % Farbe der Kommentare
stringstyle=\color{red}, % Farbe der Zeichenketten
numbers=left, % Zeilennummern links vom Code
numberstyle=\tiny, % kleine Zeilennummern
numbersep=5pt,
breaklines=true, % Wordwrap a.k.a. Zeilenumbruch aktiviert
showstringspaces=false,
% emph legt Farben für bestimmte Wörter manuell fest
emph={double,bool,int,unsigned,char,true,false,void},
emphstyle=\color{blue},
emph={Assert,Test},
emphstyle=\color{red},
emph={[2]\using,\#define,\#ifdef,\#endif}, emphstyle={[2]\color{blue}}
}
Falls ihr den Absatz kopieren wollt, dann vergesst nicht die Leerzeichen und Kommentare innerhalb des lstset-Befehls zu entfernen, sonst meckert Lyx.
Wenn man Listings benutzt, will man diese meistens auch am Ende seiner Arbeit, ähnlich dem Abbildungsverzeichnis, aufführen. Also einfach an gewünschter Stelle im Dokument [Strg+L] drücken und folgenden Code einfügen:
\renewcommand{\lstlistlistingname}{Auflistungen}
\lstlistoflistings
Damit hat man ein schönes Verzeichnis seiner Listings mit Seitenangabe im Dokument und es heisst so wie man es haben will, in meinem Fall eben “Auflistungen”.
Das Preambel-Beispiel erhebt keinen Anspruch auf Vollständigkeit und ist auch noch nicht optimal, aber ich denke es ist ein guter Anfang für alle die damit arbeiten wollen. Ich kanns nur empfehlen
8 Kommentare »
RSS Feed für Kommentare zu diesem Artikel. TrackBack URI
Hinterlasse einen Kommentar
Powered by WordPress with Pool theme design by Borja Fernandez.
Entries and comments feeds.
Valid XHTML and CSS. ^Top^
danke dafuer bin auch gerad dran und kanns super gebrauchen!
Kommentar by gerhard — 11. Juli 2007 #
Danke! genau das hab ich gesucht..
ein tippfehler: vor dem begin{lstlisting}[caption={Bezeichnung}] fehlt der “\”
Kommentar by Apfelmus — 12. November 2007 #
Danke für den Tipp. Hatte Queltexte bislang immer als Abbildungen.
Übrigens, mit
\begin{figure}
\begin{lstlisting}[caption={Bezeichnung},label={meinLabel}]
Quelltext
\end{lstlisting}
\end{figure}
bekommt man das Listing als Float-Objekt und kann mit \ref{meinLabel} darauf referenzieren. Ohne caption wird die figure auch nicht im Abbildungsverzeichnis geführt und nicht gezählt.
Kommentar by underdunk — 12. Februar 2008 #
super, danke!
Kommentar by Stephan — 17. April 2008 #
Hallo,
klappt alles gut soweit……bis auf eine Sache:
Es erscheint bei mir nur das jeweils erste listing in der Aufzählung mit “\lstlistoflistings” !!
Woran liegt das, warum werden die restlichen listings nicht angezeigt??
Kommentar by Dave — 8. März 2009 #
Unterstriche in der Caption sind mit vorangestellten \ möglich!
Kommentar by quew — 22. Juni 2009 #
Wow, vielen Dank! Der Beitrag und die Kommentare haben mir sehr weitergeholfen!
Kommentar by Alex — 8. Dezember 2009 #
Tolle Arbeit!
gerade das mit dem “emph” kannt ich noch nicht.
Ich mach bei mir das Listing via
“\lstinputlisting[caption={Beschreibung},label=code:sample]{quellcodes/Sample.cs}”
hinein, so kann ich den Quellcode außerhalb pflegen und es sieht aufgeräumter aus
Kommentar by Tobias — 14. Januar 2010 #