PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit \lstinline



Werz
15-01-2007, 14:41
Hallo Forum,

normalerweise funktioniert \lstinline prima, das heißt die Stelle im Text wird wie Quelltext im Dokument ausgegeben.

Mir ist nicht ganz klar wie ich den Fehler beschreiben soll, da er unregelmäßig auftritt, mir scheint allerdings, dass er dann Auftritt wenn der Text in \lstinline{texttexttext} sich über einen Zeilenumbruch erstreckt. Dann wird die gesamte Zeile, obwohl normaler Text, grau unterlegt.
Wo das Problem nicht Auftritt, also de Quelltext sauber dargestellt wird ist er auch nicht grau unterlegt, soll er auch nicht sein im Text.

Wenn ich aber \begin{lstlisting} bla \end{lstlisting} mache wird er grau unterlegt, wie ich es eingestellt habe.

Hoffe ihr werdet aus meiner Beschreibung klug und habt eine Lösung.:D
Liebe Grüße
Werz

countbela666
15-01-2007, 14:46
Hallo Werz,

das Problem wird hier die Art und Weise sein, mit der du die Hinterlegung des Quelltexts implementiert hast. Diese scheint nach deiner Beschreibung nur bei mehrzeiligen Textausschnitten zu funktionieren, und da \lstinline halt meist nur einzeiliges ausgibt, tritt das Problem selten auf.

Will sagen: erstelle ein Minimalbeispiel, welches auch den Code zur Hinterlegung des Textes enthält. Alles andere läuft auf Glaskugelbefragung hinaus.

Grüße,
Marcel

saschabo
15-01-2007, 15:06
Erstmal vorweg:
ich hatte das gleiche Problem. Immer wenn lstinline am Zeilenende umgebrochen wurde, hat er die nächste Zeile grau hinterlegt.
Daher ist bei mir die Standard-Hinterlegung weiss, und nur bei: \begin{lstlisting} wird es auf grau gestellt, und anschließen wieder zurück. Ist nicht so die Arbeit, weil ich das eh über ein eigenes Kommando mache(weil ich da auch den Zeilenabstand einstelle).

Aber wenns noch ne saubere Lösung gibt, wär ich auch interessiert.

Ich hatte übrigens auch noch Probleme mit zu langen Captions, ich würd das an deiner Stelle auch gleich mal checken. Mach mal eine Caption die ein bisschen länger ist als eine Zeile, und schau ob das klappt.

Werz
15-01-2007, 16:41
Hi saschabo,

so werde ich es wohl auch machen und lach jetzt bitte nicht: was ist eine "Caption"?

Eine andere wie hast du den Zeilenabstand des Sourcecodes verändert?

Gruß
Werz

saschabo
15-01-2007, 16:58
caption=Überschrift, Bezeichnung für das Codebeispiel, genauso wie es bei Bilder oder Tabellen ist. Da steht halt noch kurz überm Code:
"Listing 3.4: Erzeugung einer blabla"
Bei Bildern steht diese Beschriftung eigentlich immer unterhalb, bei listings jetzt oberhalb, aber das passt mir eigentlich.

Zeilenabstand:

\usepackage{setspace}
\setstretch{1.0}
%dann das listing
\setstretch{1.3} %1.3 ist mein normaler Zeilenabstand, 1.5 fand ich zuviel, und bei 1.0 klebt alles so dicht beianander, aber bei code passt das.
Ich würd dir raten das aber nicht gleich fest reinzumachen, sondern ungefähr so:

%definiere eigenen Zeilenabstand für Text und Code
\newcommand{\zeilabstandcode}{\setstretch{1}}
\newcommand{\zeilabstandtext}{\setstretch{1.3}}

und dann immer nur die zwei Kommandos aufzurufen, also:
\zeilabstandcode
%hier das listing
\zeilabstandtext
%Weiter mit text

Dann kannst du das einfach global verändern wie du willst.

Werz
15-01-2007, 17:11
Hi,

super vielen Dank!
Au man ich brauch dringend eine PAUSE. Heute schon einige listings mit caption gemacht und ich frage was das ist *wunder*?!!?

Die Position der Caption kann auch bei listings unter selbigen sein, mit:
\lstset{...., captionpos=b}

Gruß
Werz