\lstset backgroundcolor

Schriftbild, Absätze und Auflistungen einstellen


ChrisPZV
Forum-Anfänger
Forum-Anfänger
Beiträge: 17
Registriert: Mi 24. Nov 2010, 09:23

\lstset backgroundcolor

Beitrag von ChrisPZV »

Moin Leute,

ich stehe vor einem seltsamen Problem mit Listings. Einem solchen wollte ich einen seichten Hintergrund in grau geben. Leider wird aber kein kompletter Hintergrund in Form einer Box o.ä. gezeichnet sondern der Hintergrund erscheint zeilenweise. Zwischen den Hintergrundzeilen schimmert also immer wieder das Weiß des PDFs (Papier isses ja noch nicht. ;-)) durch.
Das passende Minimalbeispiel ist genau hier: http://www.golatex.de/viewtopic,p,24705.html#24705
Der fragliche Teil davon ist die Definition der shell-Umgebung, die ich wie folgt um das backgroundcolor-Attribut erweitert habe:
\lstnewenvironment{shell}{
	\endgraf
%	\singlespacing
	\definecolor{shadecolor}{gray}{0.8}
	\lstset{
		columns=fullflexible,
		language=bash,
		showstringspaces=false,
		basicstyle=\ttfamily\setstretch{1},
		keywordstyle=\color{black},
		commentstyle=\color{black},
		stringstyle=\color{black},
		backgroundcolor=\color{shadecolor},
		numbers=none,
		tabsize=4,
		breaklines=true,
		breakatwhitespace=true,
		frame=none}
% \colorbox{shadecolor}{ % funktionert leider nicht,...
}{
% } % ...mit und ohne '\' vor den Klammern.
}
Eine integrierte \colorbox (durch die Kommentare oben angedeutet) hat es leider nicht getan.

Wie kann ich eine komplette Hintergrundbox im Grauton realisieren? Wie es genau aussehen soll, zeigt das wie oben gezeigt modifizierte und fertig kompilierte Minimalbeispiel ganz gut.
Gruß
Christian

Xenara
Forum-Meister
Forum-Meister
Beiträge: 682
Registriert: Mi 25. Nov 2009, 09:41

Beitrag von Xenara »

Wenn ich das so kompiliere, sieht das Ergebnis einwandfrei aus (siehe Anhang):
\documentclass[10pt, a4paper]{article}            % 10pt schriftgröße, DIN A4, Artikel 
\usepackage[a4paper,left=2.5cm,right=2cm,top=2.5cm,bottom=2.5cm]{geometry} 
\linespread{1.5}                            % Zeilenabstand 1,5 
\usepackage{setspace}                        % \singlesspacing | \onehalfspacing 
\usepackage[ngerman]{babel}                     % deutsche rechtschreibprüfung/silbentrennung 
\usepackage[ansinew]{inputenc}                     % utf8 codierte .tex dateien 
\usepackage[T1]{fontenc}                     % korrekte umlaute im ausgabedokument 
%\usepackage[style=numeric-comp,hyperref]{biblatex}   % Literaturverzeichnis-Style 
\usepackage{blindtext} 
\usepackage{xcolor} 
\usepackage{listings} 

% mein setup f\"{u}r c/c++-Listings, darf nicht ver\"{a}ndert werden 
\definecolor{darkblue}{rgb}{0,0,.75} 
\definecolor{darkred}{rgb}{.75,0,0} 
\definecolor{darkgreen}{rgb}{0,.75,0} 
\definecolor{red}{rgb}{.98,0,0} 

\lstset{ 
   language=C++, 
   showstringspaces=false, 
   basicstyle=\ttfamily\small, 
   keywordstyle=\color{darkblue}, 
   commentstyle=\color{darkgreen}, 
   stringstyle=\color{darkred}, 
   numbers=left, 
   tabsize=4, 
   breaklines=true, 
   breakatwhitespace= true, 
   frame=tlrb 
} 


\lstnewenvironment{shell}{ 
   \endgraf 
%   \singlespacing 
   \definecolor{shadecolor}{gray}{0.8} 
   \lstset{ 
      columns=fullflexible, 
      language=bash, 
      showstringspaces=false, 
      basicstyle=\ttfamily\setstretch{1}, 
      keywordstyle=\color{black}, 
      commentstyle=\color{black}, 
      stringstyle=\color{black}, 
      backgroundcolor=\color{shadecolor}, 
      numbers=none, 
      tabsize=4, 
      breaklines=true, 
      breakatwhitespace=true, 
      frame=none} 
% \colorbox{shadecolor}{ % funktionert leider nicht,... 
}{ 
% } % ...mit und ohne '\' vor den Klammern. 
}

\begin{document} 
\section{Meine Verbatimumgebung will nicht so wie ich wohl will} 
Die folgende Shell-Ausgabe sollte nicht wie dieser Text hier mit 1,5-zeiligem Abstand erfolgen sondern mit einzeiligem Zeilenabstand. \blindtext 

\begin{shell} 
~ $ lsusb 
Bus 002 Device 023: ID 0ac8:307b Z-Star Microelectronics Corp. USB 1.1 Webcam 
Bus 002 Device 015: ID 0e0f:0002 VMware, Inc. Virtual USB Hub 
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub 
~ $ 
\end{shell} 

\section{Vergleichslisting mit C/C++ - Code} 
Hier mein listing: 
\begin{lstlisting}[caption=Listing direkt im Quelltext] 
/* Kommentar: eine for - Schleife */ 
for (unsigned char x = 0; x < BUFFERSIZE; x++) { 
   if (x == 0) { 
      fprintf(stdout, "data[%#4x] =\n", BUFFERSIZE); 
   } 
} 
\end{lstlisting} 
\blindtext 
\end{document}
Was für einen Viewer verwendest du? Ich hab Acrobat Reader 8.1.2. auf Win XP.
Dateianhänge
Test-4.pdf
(114.87 KiB) 598-mal heruntergeladen

ChrisPZV
Forum-Anfänger
Forum-Anfänger
Beiträge: 17
Registriert: Mi 24. Nov 2010, 09:23

Beitrag von ChrisPZV »

Xenara hat geschrieben:Was für einen Viewer verwendest du? Ich hab Acrobat Reader 8.1.2. auf Win XP.
Ja, das frage ich mich auch gerade...
Bei meinem aktuellen Stresslevel bin ich da vorher nicht drauf gekommen. Ich verwende "evince" (v. 2.30.3) unter LinuxMint9, bei dem mir sonst keine Unannehmlichkeiten aufgefallen sind... Außerdem lädt er selbstständig das angezeigte PDF neu, wenn es von außen verändert wurde, ein seeehr praktisches feature, beim "latexen".
Lange Rede, kurzer Sinn: Ich kann deine Beobachtung bestätigen, der Foxit Reader unter WinXP hat mir das Ding auch korrekt angezeigt.

Trotzdem: Schlummert bei dir noch eine Idee, wie/ob man den Hintergrund als box oder sowas gestalten kann?

P.S.: Im Anhang befindet sich mal ein Screenshot von der "evince"-Darstellung.
Dateianhänge
Fehlerhafte Darstellung mit dem Attribut backgroundcolor in \lstset unter &amp;quot;evince&amp;quot;.
Fehlerhafte Darstellung mit dem Attribut backgroundcolor in \lstset unter &quot;evince&quot;.
lstset_backgroundcolor_evince.png (15.21 KiB) 2976 mal betrachtet
Gruß
Christian

Xenara
Forum-Meister
Forum-Meister
Beiträge: 682
Registriert: Mi 25. Nov 2009, 09:41

Beitrag von Xenara »

Sorry, ich bin überfragt :(
Habe gedacht, man könnte mit einer colorbox arbeiten, aber das gibt mit der listings-Umgebung drin einen Fehler, und mehr Ideen hab ich leider nicht.

ChrisPZV
Forum-Anfänger
Forum-Anfänger
Beiträge: 17
Registriert: Mi 24. Nov 2010, 09:23

Beitrag von ChrisPZV »

Moin Leute, mittlerweile bin ich mir ziemlich sicher, dass es sich um einen Bug in evince handelt, denn teilweise werden sogar Bilder in dieser "Zeilenform" dargestellt.
Gruß
Christian

Antworten