rapunzel
15-03-2012, 18:20
Hallo!
Ich habe im Moment so meine Probleme mit dem Listings Paket. Ich benutze das Paket Listings zusammen mit dem Caption Paket, sodass ich meinen Listings eine Art Titel-Leiste geben kann. Das Problem ist, dass diese Titel-Leiste manchmal alleine auf einer Seite steht und der Code dann auf der nächsten Seite. Das soll aber nicht passieren. Ich möchte gerne, dass die Titelleiste dann mit auf die nächste Seite kommt.
Meine zweite Frage betrifft Inline-Listings. Kann man das irgendwie so einstellen, dass nicht mitten im Listing ein Zeilenumbruch kommt? Das sieht nämlich blöd aus, wenn man im Listings schreibt funktionenName() und die beiden Klammern, stehen dann alleine in der nächsten Zeile. Wenn ich breaklines auf false stelle, schreibt Latex leider den Listing-Code auf den Rand, wo eigentlich gar nichts stehen darf.
Hier mal ein Beispiel, was alle Probleme zeigt.
\documentclass[a4paper,twoside,openright,11pt,]{report}
\usepackage[utf8]{inputenc}
\usepackage[scaled]{beramono}
\usepackage[T1]{fontenc}
\usepackage{listings}
\usepackage{color}
\lstset{
basicstyle=\footnotesize\ttfamily, % Standardschrift
keywordstyle=\bfseries,
numbers=left, % Ort der Zeilennummern
numberstyle=\tiny, % Stil der Zeilennummern
%stepnumber=2, % Abstand zwischen den Zeilennummern
numbersep=5pt, % Abstand der Nummern zum Text
tabsize=2, % Groesse von Tabs
extendedchars=true, %
breaklines=true, % Zeilen werden Umgebrochen
frame=b,
stringstyle=\slshape,
showspaces=false, % Leerzeichen anzeigen ?
showtabs=false, % Tabs anzeigen ?
xleftmargin=17pt,
framexleftmargin=17pt,
framexrightmargin=5pt,
framexbottommargin=4pt,
commentstyle=\color{black},
%backgroundcolor=\color{grey},
showstringspaces=false, % Leerzeichen in Strings anzeigen ?
literate=%
{Ö}{{\"O}}1
{Ä}{{\"A}}1
{Ü}{{\"U}}1
{ß}{{\ss}}2
{ü}{{\"u}}1
{ä}{{\"a}}1
{ö}{{\"o}}1
}
\usepackage{caption}
\DeclareCaptionFont{white}{\color{white}}
\DeclareCaptionFormat{listing}{\colorbox{black}{\p arbox{\textwidth}{\vspace{2pt}#1#2#3}}}
\captionsetup[lstlisting]{format=listing,labelfont=white,textfont=white, singlelinecheck=false, margin=0pt, font={bf,small}}
\begin{document}
Test\\[50em]
\begin{lstlisting}[caption=Test, language=Java]
Hier steht Code
\end{lstlisting}
Inline-Listing: sdfsdfsdffffffffffffffffffffffffffffffffffffffffff fffffffffffffffff\lstinline!funktionenName()!\\
Inline-Listing: sdfsdfsdffffffffffffffffffffffffffffffffffffffffff fffffffffffffffff\lstinline[breaklines=false]!langerFunktionenName()!
Der Text vom Listing geht über den Rand hinaus. Dieser Text wird passend am Rand umgebrochen.
\end{document}
Ich habe im Moment so meine Probleme mit dem Listings Paket. Ich benutze das Paket Listings zusammen mit dem Caption Paket, sodass ich meinen Listings eine Art Titel-Leiste geben kann. Das Problem ist, dass diese Titel-Leiste manchmal alleine auf einer Seite steht und der Code dann auf der nächsten Seite. Das soll aber nicht passieren. Ich möchte gerne, dass die Titelleiste dann mit auf die nächste Seite kommt.
Meine zweite Frage betrifft Inline-Listings. Kann man das irgendwie so einstellen, dass nicht mitten im Listing ein Zeilenumbruch kommt? Das sieht nämlich blöd aus, wenn man im Listings schreibt funktionenName() und die beiden Klammern, stehen dann alleine in der nächsten Zeile. Wenn ich breaklines auf false stelle, schreibt Latex leider den Listing-Code auf den Rand, wo eigentlich gar nichts stehen darf.
Hier mal ein Beispiel, was alle Probleme zeigt.
\documentclass[a4paper,twoside,openright,11pt,]{report}
\usepackage[utf8]{inputenc}
\usepackage[scaled]{beramono}
\usepackage[T1]{fontenc}
\usepackage{listings}
\usepackage{color}
\lstset{
basicstyle=\footnotesize\ttfamily, % Standardschrift
keywordstyle=\bfseries,
numbers=left, % Ort der Zeilennummern
numberstyle=\tiny, % Stil der Zeilennummern
%stepnumber=2, % Abstand zwischen den Zeilennummern
numbersep=5pt, % Abstand der Nummern zum Text
tabsize=2, % Groesse von Tabs
extendedchars=true, %
breaklines=true, % Zeilen werden Umgebrochen
frame=b,
stringstyle=\slshape,
showspaces=false, % Leerzeichen anzeigen ?
showtabs=false, % Tabs anzeigen ?
xleftmargin=17pt,
framexleftmargin=17pt,
framexrightmargin=5pt,
framexbottommargin=4pt,
commentstyle=\color{black},
%backgroundcolor=\color{grey},
showstringspaces=false, % Leerzeichen in Strings anzeigen ?
literate=%
{Ö}{{\"O}}1
{Ä}{{\"A}}1
{Ü}{{\"U}}1
{ß}{{\ss}}2
{ü}{{\"u}}1
{ä}{{\"a}}1
{ö}{{\"o}}1
}
\usepackage{caption}
\DeclareCaptionFont{white}{\color{white}}
\DeclareCaptionFormat{listing}{\colorbox{black}{\p arbox{\textwidth}{\vspace{2pt}#1#2#3}}}
\captionsetup[lstlisting]{format=listing,labelfont=white,textfont=white, singlelinecheck=false, margin=0pt, font={bf,small}}
\begin{document}
Test\\[50em]
\begin{lstlisting}[caption=Test, language=Java]
Hier steht Code
\end{lstlisting}
Inline-Listing: sdfsdfsdffffffffffffffffffffffffffffffffffffffffff fffffffffffffffff\lstinline!funktionenName()!\\
Inline-Listing: sdfsdfsdffffffffffffffffffffffffffffffffffffffffff fffffffffffffffff\lstinline[breaklines=false]!langerFunktionenName()!
Der Text vom Listing geht über den Rand hinaus. Dieser Text wird passend am Rand umgebrochen.
\end{document}