Im Netz finden sich ja so einige Tips und Beispiele [1, 2] für die ganzen möglichen Einstellungen und ich hab mir das Layout dann so angepaßt, wie es mir am besten gefallen hat. Wobei mir leider nur noch die zwei verlinkten Beiträge in Erinnerung waren, alle verwendeten Quellen habe ich nicht mehr wiedergefunden.
Hier mal ein kleines Latex-Dokument als Beispiel mit einer kleinen C-Funktion und den von mir verwendeten Einstellungen:
\documentclass[a4paper,12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{color}
\definecolor{darkblue}{rgb}{0,0,.6}
\definecolor{darkred}{rgb}{.6,0,0}
\definecolor{darkgreen}{rgb}{0,.6,0}
\definecolor{lightblue}{rgb}{0.97,0.99,1}
\usepackage{listings}
\lstset{
language=C,
basicstyle=\ttfamily,
commentstyle=\color{darkgreen},
keywordstyle=\bfseries\color{darkblue},
stringstyle=\color{darkred},
showspaces=false,
showstringspaces=false,
showtabs=false,
columns=fixed,
frame=single,
numbers=left,
numberstyle=\tiny,
numbersep=5pt,
breaklines=true,
backgroundcolor=\color{lightblue},
captionpos=b
}
\begin{document}
\begin{lstlisting}[float=ht, label=cfunc, caption={[funktion]Erklärung für den Quellcode}]
int funktion(int a){
/* Do something */
printf("Value of a is: %i\n", a);
return 0
}
\end{lstlisting}
\end{document}
Wie man sieht, sind hier über \lstset so einige Optionen möglich. Bei längerem Quellcode, der über mehrere Seiten geht, muß man dann das "float=ht" aus den lstlisting Optionen entfernen, ansonsten rutscht der Code ganz an das Ende des Dokuments.
Grafisch sieht das dann folgendermaßen im Dokument aus:


