Seite 1 von 1

Die Literate-Option bei listings funktioniert nicht bei ')'

Verfasst: Sa 12. Mai 2012, 16:06
von Bausparfuchs
Hallo, ich möchte über "literate" bei einem Listing diverse Zeichen einfärben. Leider funktioniert dies nicht bei einer sich schließenden Klammer. Diese bleibt immer schwarz.

Im folgenden Minimalbeispiel ist es verdeutlicht.
Wie bekomme ich diese Klammer eingefärbt?

Vielen lieben Dank schonmal im Voraus.
\documentclass{scrreprt}
\usepackage[dvipsnames,usenames]{xcolor}
\usepackage{listings}
\lstset{
    basicstyle=\scriptsize\ttfamily,	 %    
    keywordstyle=\color{RoyalBlue}, % Anzeige-Stil für Schlüsselworte
    commentstyle=\itshape\color{green}, % Anzeige-Stil für Kommentare
    stringstyle=\color{Maroon},
    numbers=none,
    numberstyle=\scriptsize,
    stepnumber=5,
    numbersep=8pt,
    showstringspaces=false,
    breaklines=true,
    frameround=ftff,
    frame=single,
    belowcaptionskip=.75\baselineskip,
    float=[bth],
} 
\lstdefinelanguage{SCL}
{morekeywords={FUNCTION_BLOCK,BEGIN,NOT,END_FUNCTION_BLOCK,FUNCTION,VOID,VAR_INPUT,END_VAR,VAR_IN_OUT,IF,
THEN,END_IF,END_FUNCTION,BOOL,FALSE,TRUE},
sensitive=false,
morecomment=[l]{//},
morestring=[b]",
literate={;}{{\textcolor{orange}{;}}}{1}
{:}{{\textcolor{orange}{:}}}{1}
{)}{{\textcolor{orange}{)}}}{1}
{(}{{\textcolor{orange}{(}}}{1}
{=}{{\textcolor{orange}{=}}}{1}
{,}{{\textcolor{orange}{,}}}{1},}

\begin{document}
\begin{lstlisting}[language=SCL]
FUNCTION_BLOCK "FB_Stoerungen_Fehler"

BEGIN 

//Stoerungen absetzen

        "Stoermeldungen" (
           IN_Stoerung              := NOT "NOT_AUS",
           IN_OUT_SM                := "Stoerungen_Fehler".Stoermeldungen._108,
           IN_OUT_Quit_SM           := "Stoerungen_Fehler".Quittierungen._108);
     
END_FUNCTION_BLOCK
\end{lstlisting}
\end{document}

Verfasst: Sa 26. Mai 2012, 12:34
von Bausparfuchs
Push, in Vereinbarkeit mit dem goLatex.de-Knigge. Vielleicht kann doch noch jemand helfen, der das Topic noch nicht kennt.

Gruß

Verfasst: Do 21. Mär 2013, 11:44
von Gast
Ich habe das gleiche Problem.

Mein unschöner Workaround lautet wie folgt:

in \lstset setze ich
literate = {.)}{{{\color{lstred})}}}1
im Listing schreibe ich dann
a = (a + b.)
ziehmlich unschön, aber ich weiß nichts besseres