Einfärbung eines eigenen Codes mit listing

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Einfärbung eines eigenen Codes mit listing

von Lalira » Di 9. Jul 2013, 10:31

Danke nochmal,

mein letzter Eintrag kann ignoriert werden. Ich hab das Problem selber gelöst.
Indem ich einfach beide Zeichen kombiniere, funktioniert es. Ich hatte nur vergessen das \ an die entsprechende Stelle zu setzen und kam deswegen nie zur Lösung.

Also mit dem folgenden Code funktioniert es.
\lstset{numbers=left, numberstyle=\tiny, stepnumber=1, numbersep=5pt,
	classoffset=1, morekeywords={$},keywordstyle=\color{blue},
	classoffset=0, morekeywords={xyz},keywordstyle=\color{red},
	frame=shadowbox, framexleftmargin=5mm, framexrightmargin=5mm, rulesepcolor=\color{white},
	morecomment=[l][\color{blue}]{$},
	morecomment=[l][\color{green}]{$\#}}	
[/code]

von Lalira » Di 9. Jul 2013, 10:26

Danke für die schnelle Hilfe. Das hatte ich wirklich übersehen.

Gibt es auch eine Variante bei der ich normale Kommentare mit $ blau einfärbe und in der Verbindung $# grün (bzw. alles ab den #) ? Ich bräuchte sozusagen eine Ausnahmeregel für den Befehl.
Wenn ich beide Varainten eingebe, wird alles nur blau entsprechend dem ersten Befehl von morecomment.
...
\lstset{numbers=left, numberstyle=\tiny, stepnumber=1, numbersep=5pt,
	classoffset=1, morekeywords={$},keywordstyle=\color{blue},
	classoffset=0, morekeywords={xyz},keywordstyle=\color{red},
	frame=shadowbox, framexleftmargin=5mm, framexrightmargin=5mm, rulesepcolor=\color{white},
	morecomment=[l][\color{blue}]{$},
	morecomment=[l][\color{green}]{\#}}
...
Probier ich es, den Befehl aufzuheben, wird es lustig. Mit den folgenden Befehl wird das $ in den Zeilen 1-3 blau und der Zeilenrest wird grün, aber der Kommentar in Zeile 4 $Fensterbreite... bleibt schwarz.
...
\lstset{numbers=left, numberstyle=\tiny, stepnumber=1, numbersep=5pt,
	classoffset=1, morekeywords={$},keywordstyle=\color{blue},
	classoffset=0, morekeywords={xyz},keywordstyle=\color{red},
	frame=shadowbox, framexleftmargin=5mm, framexrightmargin=5mm, rulesepcolor=\color{white},
	morecomment=[l][\color{blue}]{$},
	morecomment=[l][\color{green}]{\#},
	deletecomment=[l]{$}}
...
Kann ich die Kommentare denn unterscheiden? Bzw. dafür sorgen, dass der Befehl
morecomment=[l][\color{green}]{\#}
den anderen überschreibt?


Danke schonmal

von Epllus » Di 9. Jul 2013, 09:17

Du hast „morecomment“ übersehen.
\documentclass[oneside]{scrbook} 
  
\usepackage[latin1]{inputenc} 
\usepackage[T1]{fontenc} 
\usepackage{lmodern} 
\usepackage[ngerman]{babel} 
\usepackage{fancybox}       
\usepackage{framed}       
\usepackage{color}       

\usepackage{alltt}       
\usepackage{listings}       
\lstset{numbers=left, numberstyle=\tiny, stepnumber=1, numbersep=5pt, 
   classoffset=1, morekeywords={$},keywordstyle=\color{blue}, 
   classoffset=0, morekeywords={xyz},keywordstyle=\color{red}, 
   frame=shadowbox, framexleftmargin=5mm, framexrightmargin=5mm, rulesepcolor=\color{white},
   ,morecomment=[l][\color{blue}]{$},}
          

\begin{document} 
   Dies hier ist ein Test zur Ausgabe eines Code-Ausschnittes. 
    
\begin{lstlisting}                           
$##################     
$####### Test ######               
$##################                 
xyz abc 1200         $Fensterbreite wird definiert           
\end{lstlisting} 

\end{document} 
 
Hoffe es hilft
Epllus

Einfärbung eines eigenen Codes mit listing

von Lalira » Mo 8. Jul 2013, 16:37

Hallo,

ich habe einen Hänger bei der farblichen Code-Darstellung mit listing.
Vielleicht könnt ihr mir dabei helfen.

Unten ist ein Minimalbeispiel angeführt, das den Code in einem Rahmen darstellt.
Da es sich um ein kleineren Programm handelt, für das hier keine Sprache hinterlegt ist, wollte ich die Einfärbung selber vornehmen. Für die Standard-Anfänge wie bspw. xyz ist dies kein Problem. Bei den Kommentaren komme ich jedoch nicht zurecht.

In dem Programm werden Kommentare mit $ eingeleitet. Ich möchte gerne alles, was auf dieser Zeile hinter dem $ steht, blau einfärben. Das Zeichen selber einzufärben funktioniert ohne Probleme. Wenn ich jedoch die # -Zeichen bzw. die ganzen Wörter der Zeile einfärben will, funktioniert es nicht.

In der Doku konnte ich auch nicht das Richtige finden, bzw. hab es vielleicht überlesen. Könnt ihr mir vielleicht helfen? Wie kann ich die Kommentare komplett einfärben?

Danke vorab für eure Hilfe.

Grüße Lalira


\documentclass[oneside]{scrbook}
 
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[ngerman]{babel}
\usepackage{fancybox} 		
\usepackage{framed}		
\usepackage{color}		 

\usepackage{alltt}		
\usepackage{listings}		
\lstset{numbers=left, numberstyle=\tiny, stepnumber=1, numbersep=5pt,
	classoffset=1, morekeywords={$},keywordstyle=\color{blue},
	classoffset=0, morekeywords={xyz},keywordstyle=\color{red},
	frame=shadowbox, framexleftmargin=5mm, framexrightmargin=5mm, rulesepcolor=\color{white}}		

\begin{document}
	Dies hier ist ein Test zur Ausgabe eines Code-Ausschnittes.
	
\begin{lstlisting}									
$##################  	
$####### Test ######  				
$##################  				  
xyz abc 1200			$Fensterbreite wird definiert 	       
\end{lstlisting}

\end{document}

Nach oben