PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Listings: Caption bei Seitenumbruch auf jeder Seite mit "(Fortsetzung)"



Konstantin
25-03-2009, 23:43
Hallo!

Gibt es eine Möglichkeit, bei einem Listing aus dem Listings Package, die Caption zu wiederholen, wenn das Listing über mehrer Seiten geht? Auf den nachfolgenden Seiten soll dann nach Möglichkeit "(Fortsetzung)" angehängt werden.

Ich hoffe, jemand hat einen Tipp für mich.

Gruß
Konstantin

edico
26-03-2009, 11:54
Caption zu wiederholen, wenn das Listing über mehrer Seiten geht? Auf den nachfolgenden Seiten soll dann nach Möglichkeit "(Fortsetzung)" angehängt werden.

IMO hat der Autor das nicht eingebaut. Da 'longtable' diese Optionen anbietet, kann eine ein wenig händische Lösung darin liegen, listings in eine longtable zu setzen. Da allerdings ein Seitenumbruch nur nach einer Zeile erfolgt, muss hier die o.g. (händische) Korrektur erfolgen. Ausserdem setzt longtable die Tabelle mittig, so dass listings in die margin ragen würde, würde nicht - wie im Manual beschrieben - eine Linksbündigkeit eingebaut werden.
Dies alles zeigt das (nicht ganz so minimale) Beispiel:



\documentclass[a5paper,12pt]{scrartcl}
\usepackage{showframe}
\textheight=5cm

\usepackage{booktabs,longtable}
\usepackage{dingbat,amsfonts}
\usepackage{listings}
\lstset{basicstyle = \ttfamily\footnotesize,%
breakautoindent = true,
breakindent = 2em,
breaklines = true,
postbreak = ,
prebreak = \raisebox{-.8ex}[0ex][0ex]{\ensuremath{\lrcorner}}
}

\begin{document}

\setlength\LTleft{0pt}
\setlength\LTright{0pt}
\begin{longtable}{l}
\caption{Listings in Longtable}\\
%\toprule
%
\midrule
\endfirsthead
%
\ldots\ Fortsetzung\\
%\toprule
\midrule
\endhead
%
\midrule
Fortsetzung \ldots\\
\endfoot
%
%\bottomrule
\endlastfoot
%
\begin{lstlisting}[language=Java]
public class HelloWorld{

public static void main(String[] args)args){
System.out.println("Hallo Welt!")
}
}
\end{lstlisting}\\
\begin{lstlisting}[language=Java]
public class HelloWorld{

public static void main(String[] args)args){
\end{lstlisting}\\
\begin{lstlisting}[language=Java]
System.out.println("Hallo Welt!")
}
}
\end{lstlisting}
\end{longtable}

\end{document}


edico