Falsche Einrückung mit listings, caption in itemite-Umgebung

Schriftbild, Absätze und Auflistungen einstellen


Matthias1

Falsche Einrückung mit listings, caption in itemite-Umgebung

Beitrag von Matthias1 »

Hallo zusammen,

ich habe ein Problem im Zusammenspiel der Pakete listings und caption mit der itemize-Umgebung: Ich benutze innerhalb einer itemize-Umgebung Code, den ich mittels des Pakets listings darstelle. Mittels caption-Paket formatiere ich meine Captions. Leider wird die Caption meines Codes nicht an der korrekten Position dargestellt, d.h. der Einzug der itemize-Umgebung wird vergessen. Wird demonstriert mit folgendem Beispiel:
\documentclass{article}
\usepackage{caption}
\usepackage{listings}
\begin{document}
\begin{itemize}
  \item Dies ist ein Absatz in der itemize-Umgebung.
    Und dies ist ein zweiter Satz innerhalb dieser itemize-Umgebung,
    damit man die Breite dieses Ansatzes erkennen kann.
  \begin{lstlisting}[
    caption={Caption unterhalb des Quellcodes.
      Diese ist absichtlich lang, damit die
      Caption umgebrochen wird.},
    frame=single,
    framesep=5pt,
    xleftmargin=5pt,
    xrightmargin=5pt,
    % caption & distances
    captionpos=b,
    abovecaptionskip=0.8\baselineskip,
    belowcaptionskip=0ex,
    aboveskip=\intextsep,
    ]
Quellcode.
  \end{lstlisting}
\end{itemize}
\end{document}
Hat jemand eine Idee, wie ich das Problem lösen kann?

P.S. Ich benutze die aktuellsten Version von listings und captions, d.g. listings 1.6 und captions 2016-05-22.

Bartman
Forum-Meister
Forum-Meister
Beiträge: 2456
Registriert: Do 16. Jul 2009, 21:41
Wohnort: Hessische Provinz

Beitrag von Bartman »

Steck Deine lstlisting-Umgebung in eine minipage-Umgebung und füge eine Leerzeile zwischen dem Text und der minipage-Umgebung ein.

Matthias1

Beitrag von Matthias1 »

Vielen Dank, das löst einen Teil des Problems.

Der Haken: Listings werden jetzt auf einer Seite gehalten; ich benötige es dummerweise an einer Stelle, wo die listings-Umgebung auf zwei Seiten umgebrochen wird (was die minipage verhindert...).

Antworten