PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Unterschiedliche Farben einzelner Zeichen in Listings



Dosihris
06-04-2008, 15:30
Hi Leude,

hab n interessantes Problem, von dem ich nicht mehr weiter weiss. Ich habe ein Listing, welches keiner konkreten Programmiersprache zugeordnet werden kann. Es enthält kurze Beispiele aus mehreren Sprachen. Das ist für eine Veranschaulichung notwendig. Auf jeden Fall möchte ich nun ein einzelnes Zeichen, nämlich ein Semikolon am Ende einer Zeile rot markieren. Kann Latex das überhaupt? Und wenn ja, hat einer ne Idee???

Bye, Dosi

Stefan_K
06-04-2008, 15:46
Hallo Dosi,

willkommen im Forum!
Du könntest mathescape=true setzen, mit $ in den Mathematikmodus wechseln, worin dann TeX-Befehle ausgeführt werden können und dort mit \color die Farbe setzen, evtl. gleich mit \textcolor und dem Semikolon, wenn es mit der Schriftart passt.
Die Verwendung von mathescape findest Du in der listings-Doku beschrieben. Darüber kann man z.B. sogar Grafiken in Listings einbinden.

Viele Grüße,

Stefan

voss
06-04-2008, 16:04
hab n interessantes Problem, von dem ich nicht mehr weiter weiss. Ich habe ein Listing, welches keiner konkreten Programmiersprache zugeordnet werden kann. Es enthält kurze Beispiele aus mehreren Sprachen. Das ist für eine Veranschaulichung notwendig. Auf jeden Fall möchte ich nun ein einzelnes Zeichen, nämlich ein Semikolon am Ende einer Zeile rot markieren. Kann Latex das überhaupt? Und wenn ja, hat einer ne Idee???



\documentclass[12pt,a4paper]{article}
\usepackage[T1]{fontenc}

\usepackage{lmodern,xcolor,listings}
\lstset{literate={;}{{{\color{red};}}}1}

\begin{document}

\begin{lstlisting}
foo;
bar; baz;
;
\end{lstlisting}

\end{document}

Herbert

Stefan_K
06-04-2008, 16:15
Hi,

Meine Lösung oben war übrigens für ein einzelnes Zeichen gedacht und sollte weitere Vorkommen dieses Zeichens nicht beeinflussen, daher der Umstand mit mathescape. Sollen ALLE Semikolons gefärbt werden (bzw. tritt nur eines auf), ist natürlich obiges mit \lstset vorzuziehen.

Stefan