PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Probleme mit Listing



bsp-chris
02-07-2007, 21:18
Hallo zusammen,

habe da mal wieder ein Problem. Ich möchte Quelltext in meine Arbeit mit aufnehmen. Das geht mit dem listing-package. Tut auch grandios. Nur möchte ich die Breite des Listings beschränken. Leider orientiert sich das Listing nicht an der normalen Textbreite, sondern geht weit über den Rand hinaus. Habe im normalen Text rechts und links einen breiten Rand...
Für den normalen Text mache ich das mit:


\usepackage[a4paper, top=3cm, footskip=0pt, headheight=0.8cm, headsep=0.6cm, lmargin=3.5cm, bottom=2.5cm, rmargin=3cm]{geometry}

, doch das gibt bei listing fiese Fehler...


Mein "Quelltext" fürs Listing:



\usepackage{listings}
\lstset{numbers=left, numberstyle=\tiny, numbersep=5pt}
\lstset{language=JAVA}

-------

und im Aufruf dann:



\begin{lstlisting}[caption=Beispielcode]{Name}
hier der Javacode...
\end{lstlisting}






Wie kann ich hier die Breite beschränken??
Schon mal vielen Dank für die fachmännische Hilfe.

Chris

countbela666
03-07-2007, 08:42
Hallo, Chris,

die Breite kannst du mit den lstset-Parametern xleftmargin und xrightmargin beschränken (s. listings-Doku S. 32). Nur kann ich dein Problem nicht nachvollziehen. Wenn ich deine Codeschnipsel in ein Minimalbeispiel einbette, gibt's keinerlei Probleme mit der Breite -- abgesehen von der Tatsache, dass ohne die Option breaklines zu lange Codezeilen nicht umbrochen und somit über den rechten Rand hinausgeschrieben werden:

\documentclass[ngerman]{scrartcl}
\usepackage[
a4paper,
top=3cm,
footskip=0pt,
headheight=0.8cm,
headsep=0.6cm,
lmargin=3.5cm,
bottom=2.5cm,
rmargin=3cm
]{geometry}
\usepackage{babel,blindtext,listings}
\lstset{
numbers=left,
numberstyle=\tiny,
numbersep=5pt,
breaklines,
xleftmargin=2cm,
xrightmargin=2cm,
language=C++
}
\begin{document}
\blindtext
\begin{lstlisting}[caption=Beispielcode]
//if ( ( 0.099999f >= value && -0.099999 <= value ) && ShowCombResultInPpm )
if ( 0.099999f >= value && -0.099999 <= value )
{
ivalue = (int) ( value * 10000.0f );

ivalue /= 100;
ivalue *= 100;

_Result.AsString.RealUnitFit = Resource::LoadString ( isSensorUnitPpm );
s.Format ( "%d", ivalue );
}
\end{lstlisting}
\end{document}Grüße
Marcel

bsp-chris
03-07-2007, 19:04
Hallo Marcel,

ich bin deiner Nachricht nachgegangen. Interessanterweise hat es heute bei mir auch geklappt ohne die Begrenzung. Gestern jedoch zum Verrecken nicht. Da stand der Text weit über der Begrenzung. Na ja. Jetzt tuts. Der Tipp mit den xmargin ist dennoch super, da die links angezeigten Zeilennummern nicht ganz richtig positioniert waren. Das konnte damit dann aber lösen.

VIELEN VIELEN DANK,


Chris