Das Paket `listings` kann keine Multibyte-codierten Zeichen
verarbeiten. Dies fällt bei den Umlauten
zuerst auf, da diese in der deutschen Sprache am ehesten
vorkommen. Die Engines XeTeX und LuaTeX bieten einen nativen
Support für Unicode und bieten damit eine interessante
Alternative zum klassischen PdfTeX. Für Interessierte: [Was ist
LuaTeX](http://texwelt.de/wissen/fragen/70/was-ist-luatex)
Zu beachten ist dabei, dass die Pakete `inputec` und `fontenc` nicht geladen werden sollten. Das richtige Fontencoding wird durch das Paket `fontspec` ermittelt. Nähere Erläuterungen finden sich in [Was ist der Unterschied zwischen `latex`, `pdflatex`, `lualatex` und `xelatex`?](http://www.texwelt.de/wissen/fragen/5868/was-ist-der-unterschied-zwischen-latex-pdflatex-lualatex-und-xelatex)
% XeLaTeX or LuaLaTeX
\documentclass{article}
\usepackage{fontspec}
\usepackage{listings}
\begin{document}
Umlaute und Sonderzeichen im normalen Text: äöüß und als inline
Codeschnipsel:
\lstinline|\emph{Sütterlinstraße}|
\begin{lstlisting}
\chapter{Test} %Überschrift der Ebene chapter
%ä Ö ß
\end{lstlisting}
\end{document}
----------
Um `listings` mit pdfTeX verwenden zu können, kann man das Paket
[`listingsutf8`](www.ctan.org/pkg/listingsutf8) von Heiko
Oberdiek verwenden. Es lädt im hintergrund Hintergrund selbstständig das Paket `listings` und gibt auch alle Optionen an dieses weiter. Allerdings ist dieses Vorgehen mit gewissen
Beschränkungen verbunden. Die Programmschnipsel müssen vom
Anwender in externe Dateien geschrieben werden, welche dann beim
Kompilieren gelesen und geändert werden. Im Minimalbeispiel
werden diese Dateien mit Hilfe der Umgebung `filecontents`
geschrieben, dies dient nur der Anschaulichkeit (siehe auch [Was
ist ein Minimalbeispiel?](http://texwelt.de/wissen/fragen/569/was-ist-ein-vollstandiges-minimalbeispiel-oder-kurz-vm-und-wie-erstelle-ich-dieses)).
Warend Während der Kompilation wird eine Codedatei binär eingelesen,
in einen String mit singlebit-encoding umgewandelt (in diesem
Fall latin1), welcher dann wieder eingelesen wird.
Momentan kann man mit `listingsutf8` gute Ergebnisse erzielen,
allerdings sind inline-Schnipsel und die Verwendung der Umgebung
`lstlisting` nicht möglich.
%\RequirePackage{filecontents}
\begin{filecontents*}{\jobname.lst}
\chapter{Test} ö ä
\end{filecontents*}
\begin{filecontents*}{inlinecode.lst}
\emph{Sütterlinstraße}
\end{filecontents*}
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{listingsutf8}
\lstset{inputencoding=utf8/latin1}%hier passiert die Magie
\begin{document}
Umlaute und Sonderzeichen im normalen Text: äöüß und als inline
Codeschnipsel:
\lstinputlisting{inlinecode.lst}
\lstinputlisting{\jobname.lst}
\end{document}