PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Rahmen von lstlisting auf falscher Seite



Dee
28-04-2009, 16:51
Hallo,

ich habe zwei Probleme mit den Rahmen bei lstlisting.

Mein erstes Problem (Test 1 und 2): Der Rahmen beim lstlisting hat ab und zu die Angewohnheit auf der falschen Seite zu verbleiben und steht dann dort mutterseelenallein herum. Kann man den Rahmen irgendwie an den Text festbinden?

Das zweite Problem (Test 3 und 4): Wenn eine Box auf einer neuer Seite anfängt (egal, ob im Text oder nach einem Seitenumbruch) wird oben zu viel Platz gelassen. (Aus dem Grund hab ich auch mit "showframes" die Rahmen zeichnen lassen.) Wie kann ich das vermeiden?

ich hab schon mit aboveskip rumgespielt, nur hatte das immer auch negative Auswirkungen auf die Boxen, die im Text verwendet werden. Meist waren sie dann zu dicht am vorherigen Textabschnitt.

Minimalbeispiel (im Anhang ist das zugehörige test.pdf):


\documentclass{scrreprt}
\usepackage{listings}
\usepackage{showframe}

\lstset {
frame=single, % einfacher Rahmen
framesep=1pt, % Abstand des Rahmens
framerule=0.8pt, % Linienstaerke des Rahmens
xleftmargin=1.8pt, % linker Abstand vom Rand (framesep+framrule)
xrightmargin=1.8pt, % rechter Abstand vom Rand (framesep+framrule)
aboveskip=\medskipamount, % Abstand vor einer Box
belowskip=\medskipamount, % Abstand nach einer Box
}

\begin{document}
Test 1
\vspace{18.4cm}

Der untere Rand ist auf Seite 2, der Rest auf Seite 1.
\begin{lstlisting}
Lorem
ipsum
dolor
\end{lstlisting}

Test 2
\vspace{19.2cm}

Der obere Rand ist auf Seite 2, der Rest auf Seite 3.
\begin{lstlisting}
Lorem
ipsum
dolor
\end{lstlisting}

\clearpage

\begin{lstlisting}
Lorem
ipsum
dolor
\end{lstlisting}

Test 3 -- Da oben ist über der Box zuviel Abstand!
\vspace{18cm}

Test 4

\begin{lstlisting}
Lorem
ipsum
dolor
\end{lstlisting}

Gleiches Problem wie bei Test 3.
\end{document}


System: Ubuntu Linux 8.10, TeX-Live 2007.dfsg.1-2

Viele Grüße
Dominik

Dee
30-04-2009, 18:54
Hat niemand eine Idee?

Gruß Dominik

mechanicus
30-04-2009, 23:08
Hallo,



Mein erstes Problem (Test 1 und 2): Der Rahmen beim lstlisting hat ab und zu die Angewohnheit auf der falschen Seite zu verbleiben und steht dann dort mutterseelenallein herum. Kann man den Rahmen irgendwie an den Text festbinden?

Hier musst du wohl per Hand ab und zu eingreifen. Hierfür helfen die Befehle \enlargethispage{\baselineskip} und clearpage.




Das zweite Problem (Test 3 und 4): Wenn eine Box auf einer neuer Seite anfängt (egal, ob im Text oder nach einem Seitenumbruch) wird oben zu viel Platz gelassen. (Aus dem Grund hab ich auch mit "showframes" die Rahmen zeichnen lassen.) Wie kann ich das vermeiden?

Hier fällt mir auch nichts ein. Ansonsten schreibe doch mal dem Paketautor.

Gruß
Marco

Dee
01-05-2009, 06:31
Danke für die Ideen. Für Problem 1 und 2 nutze ich bereits vspace mit negativem Wert und clearpage. enlargethispage kann ich leider nicht nehmen, da es sich im Original um ein dreispaltiges Layout handelt und der Text bereits sehr weit an die Fusszeile heranreicht (in der auch etwas steht). Mit enlargethispage kann es passieren, dass neben der Spalte mit der Box auch die anderen Spalten vergrößert werden.

Ich hab dem Paketautor nun auch eine Mail geschrieben, freue mich aber über weitere Ideen.

Gruß Dominik