Gast hat geschrieben:Da ich mich leider nicht gut genug auskenne habe ich mal alle Usepackages in meinem Minimalbeispiel.
Mir ist nicht klar, was das mit "auskennen" zu tun hat? Hast du
www.minimalbeispiel.de gelesen? Wir beantworten sehr gerne Fragen, die damit zusammenhängen. Aber Ausflüchte, warum das nicht gemacht worden ist, und so die diese Arbeit auf mich (oder andere) abwälzen, habe ich ganz offen gesagt satt.
Ein Minimalbeispiel dient gleich zwei Zwecken, erstens ist es der allererste Schritt, um ein Problem zu analysieren. Von welchen Paketen und Einstellungen genau hängt das Problem ab? Genau diese Arbeit müsste, wenn du sie nicht machst, der Helfende (und zwar jeder, der helfen möchte!) machen. Da hier auf freiwilliger Basis geholfen wird, ist es unhöflich, diesen Schritt nicht selber zu machen.
Zweitens dient es dazu, den Helfern eine Grundlage zu geben, das Problem bei sich zu Hause nachzustellen und ggf. weiter zu analysieren. Wenn das Beispiel auf dem eigenen Rechner nicht übersetzbar ist (und deines ist bei mir nicht übersetzbar, und bei dir bestimmt auch nicht ohne Fehlermeldungen!), verliert jeder potentieller Helfer sehr schnell die Lust, sich das Problem weiter anzuschauen. Nicht umsonst kommen auf Anfragen ohne Minimalbeispiel häufig gar keine oder nur sehr unkonkrete Antworten.
Dein Beispiel geht doch schon'mal in die richtige Richtung. Wenn es noch ohne Fehlermeldung übersetzbar wäre, und nicht unnötig viele Pakete einbinden würde, wäre es prima. (Um herauszufinden, welche Pakete unnötig für die Problemreproduktion sind, schmeißt man einfach eines nach dem anderen heraus. Ist das Beispiel immer noch übersetzbar und das Problem immer noch da, kann es draußen bleiben, ansonsten muß es wieder rein.)
Da es in deinem Falle recht einfach war, habe ich dir diese Arbeit abgenommen, herausgekommen ist folgendes:
\documentclass[ngerman]{scrbook}
\usepackage{babel}
\usepackage[sf]{caption}
\usepackage{listings}
\begin{document}
\chapter{Minimalbeispiel}
\begin{itemize}
\item 1
\item 2
\begin{lstlisting}[
caption={Ausfuehren der Simulation},
label=lst:Ausfuehren_der_Simulation,
language=Matlab,
numbers=left,
numberstyle=\tiny,
basicstyle=\ttfamily,%\scriptsize,
commentstyle=\itshape\color{Matlab_darkgreen},
keywordstyle=\bfseries\color{Matlab_darkblue},
stringstyle=\color{Matlab_magenta},
frame=single,
tabsize=2,
showtabs=false,
keepspaces=true
showstringspaces=false,
captionpos=t, %t=Caption über Listing, b=drunter
breaklines=true]
MATLAB-Quellcode
\end{lstlisting}
\end{itemize}
\end{document}
Es ist ein Fehler im listings-Paket: Da der interne \caption-Code \hsize als Breitenmaß verwendet, hätte das listings-Paket auch vor der Verwendung des internen \caption-Makros dafür Sorge tragen müssen, daß \hsize immer richtig gesetzt ist. Innerhalb einer itemize-Umgebung ist dies offensichtlich nicht der Fall.
Ohne caption-Paket betrifft dieser Fehler nur Captions bestimmter Länge, und wirkt sich auch anders aus. Deswegen ist der Fehler in Verbindung mit dem caption-Paket lästig(er).
Man könnte sich mit folgendem Workaround behelfen, der abschätzt, ob \hsize richtig gesetzt ist oder nicht, und das ggf. nachholt. Ich hoffe es ist eine Verbesserung und keine Verschlimmbesserung:
\documentclass[ngerman]{scrbook}
\usepackage{babel}
\usepackage[sf]{caption}
\usepackage{listings}
% Workaround für Bug im listing-Paket in Verbindung mit Beschriftungen.
% (Benötigt das caption-Paket v3.1 oder neuer)
\DeclareCaptionOption{test}[]{%
\ifdim\hsize>\linewidth\hsize\linewidth\fi}
\captionsetup[lstlisting]{test}
\begin{document}
\chapter{Minimalbeispiel}
\begin{itemize}
\item 1
\item 2
\begin{lstlisting}[
caption={Ausfuehren der Simulation},
label=lst:Ausfuehren_der_Simulation,
language=Matlab,
numbers=left,
numberstyle=\tiny,
basicstyle=\ttfamily,%\scriptsize,
commentstyle=\itshape\color{Matlab_darkgreen},
keywordstyle=\bfseries\color{Matlab_darkblue},
stringstyle=\color{Matlab_magenta},
frame=single,
tabsize=2,
showtabs=false,
keepspaces=true
showstringspaces=false,
captionpos=t, %t=Caption über Listing, b=drunter
breaklines=true]
MATLAB-Quellcode
\end{lstlisting}
\end{itemize}
\end{document}