Anzeige:
Ergebnis 1 bis 3 von 3

Thema: Caption für mehrspaltige Listings

  1. #1
    bluepoke
    Gast

    [GELÖST] Caption für mehrspaltige Listings

    Hallo zusammen!
    Ich würde gern ein ziemlich langes Quellcode-Listing über mehrere Spalten verteilen. Mir bereitet nur die Caption dafür ein Problem, die sich als erste Zeile über die gesamte Breite des Blattes erstrecken sollte.

    Ich verwende die Pakete multicol und listings hierfür.

    Code:
    \usepackage{listings}
    
    \usepackage{multicol}
    
    \begin{document}
    
    \renewcommand*{\thelstlisting}{\arabic{section}.\arabic{lstlisting}}   %Format
    \makeatletter	\@addtoreset{lstlisting}{section} \makeatother
    
    \begin{multicols}{3}[\ref{lst:littleendian} Einlesen der Daten in Little-Endian-Reihenfolge]
    \begin{lstlisting}[label=lst:littleendian]
    %Code...
    \end{lstlisting}
    }end{multicols}
    
    \end{document}
    Die Listings sind im Format Section.LfdNr nummeriert (wie oben zu sehen), aber bei \ref bekomme ich nur die Section-Nummer ohne laufende Nummer ausgegeben, wenn ich bei lstlisting im optionalen Argument keine Caption angebe. Steht dort auch eine drin, also
    Code:
    \begin{lstlisting}[label=lst:littleendian,caption=Einlesen der Daten in Little-Endian-Reihenfolge]
    erhalte ich auch das richtige Format im optionalen Argument der multicols-Umgebung.
    Geändert von bluepoke (17-01-2009 um 15:32 Uhr)

  2. #2
    Registrierter Benutzer Avatar von mechanicus
    Registriert seit
    10.07.2008
    Ort
    Hamburg
    Beiträge
    3.944
    Hallo,

    funktioniert das bei dir jetzt? Alternativ schlage ich eine geschusterte Lösung vor, welche man auch als eigenen Umgebung definieren kann:
    Code:
    \documentclass{scrreprt}
    \usepackage{listings}
    % \renewcommand*{\thelstlisting}{\arabic{section}.\arabic{lstlisting}}   %Format
    % \makeatletter	\@addtoreset{lstlisting}{section} \makeatother
    \usepackage{multicol}
    
    \begin{document}
    
    \begin{lstlisting}[caption=Einlesen der Daten in Little-Endian-Reihenfolge,label=lst:littleendian]
    \end{lstlisting}
    \begin{multicols}{3}
    \begin{lstlisting}
    %Code...
    \end{lstlisting}
    \end{multicols}
    Das war der Programmcode \ref{lst:littleendian}.
    \end{document}
    Gruß
    Marco

  3. #3
    bluepoke
    Gast

    Thumbs up

    Zitat Zitat von mechanicus Beitrag anzeigen
    Hallo,

    funktioniert das bei dir jetzt? Alternativ schlage ich eine geschusterte Lösung vor, welche man auch als eigenen Umgebung definieren kann:
    Code:
    \documentclass{scrreprt}
    \usepackage{listings}
    % \renewcommand*{\thelstlisting}{\arabic{section}.\arabic{lstlisting}}   %Format
    % \makeatletter	\@addtoreset{lstlisting}{section} \makeatother
    \usepackage{multicol}
    
    \begin{document}
    
    \begin{lstlisting}[caption=Einlesen der Daten in Little-Endian-Reihenfolge,label=lst:littleendian]
    \end{lstlisting}
    \begin{multicols}{3}
    \begin{lstlisting}
    %Code...
    \end{lstlisting}
    \end{multicols}
    Das war der Programmcode \ref{lst:littleendian}.
    \end{document}
    Gruß
    Marco
    Dankeschön, das funktioniert prima!

Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •