Das heisst das ich unter Windows arbeite und dort gibt es für die Paketinstallation ja diesen "Package Manager" und gemäss diesem ist das Paket "listings" installiert. Hab noch nie irgendwelche Pakete ohne den Package Manager installiert. Auf jeden Fall habe ich gestern, nachdem du meintest es könnte an einem fehlenden Paket liegen noch die Pakete "listings-ext" und "listing" installiert in der Hoffnung, dass das was bringt. Hat aber nichts verändert.
Für die Umlaute habe ich jetzt eine funktionierende Lösung gefunden. Da nur in diesem Codeteil Umlaute vorkommen reicht das vollkommen aus.
Ich hab nun auch versucht ein Minimalbeispiel zu erstellen und siehe da, in einem neu erstellen Dokument gibts keine Probleme. Hab dann mal ein bisschen getestet und festgestellt, dass Probleme auftauchen, wenn ich den "lstset"-Bereich in mein Dokument einfüge, den ein Kollege von mir vorbereitet hat. In das Dokument kommt später neben Bash- auch Clojure-Code. Deshalb stimmt die Sprache nicht überein.
Das Fehlerbild ist übrigens nun etwas anders. Jetzt scheinen ziemlich willkürlich die Wörter "red" und "white" in den Code eingefügt zu werden. Habs aber auch mit meinen Dokumentklassen getestet und da funktionierts ebenfalls solange ich den lstset-Bereich nicht einfüge.
Hier mein Minimalbeispiel:
Code:
\documentclass{article}
\usepackage{listings}
\begin{document}
\lstset{
language=Clojure,
basicstyle=\footnotesize\ttfamily,
numbers=left,
numberstyle=\tiny,
stepnumber=2,
numbersep=5pt,
tabsize=2,
extendedchars=true,
breaklines=true,
keywordstyle=\color{red}, frame=b,
stringstyle=\color{white}\ttfamily,
showspaces=false,
showtabs=false,
xleftmargin=17pt,
framexleftmargin=17pt,
framexrightmargin=5pt,
framexbottommargin=4pt,
showstringspaces=false
}
\begin{lstlisting}[language=bash,caption=irgendwas,literate=%
{ü}{{\"u}}1
{ä}{{\"a}}1
{ö}{{\"o}}1]{}
for tfile in /opt/data/$lang.* ] ; do
if [ -f $tfile ] ; then
echo '
Bestehende Dateien überschreiben? Geben Sie "Y" ein um die bestehenden Datei zu löschen oder drücken Sie Enter um neuen Daten in die bestehenden Dateien zu schreiben!'
read answer
if [ "$answer" = y -o "$answer" = Y ] ; then
rm /opt/data/$lang.*
echo 'Dateien wurden gelöscht!'
break
else
echo 'Daten werden in bestehende Dateien geschrieben!'
break
fi
fi
done
\end{lstlisting}
\end{document}
Lesezeichen