Ich schreibe gerade ein paar Notizen zur Programmiersprache R. Leider listings
scheint das Paket einige mathematische Operatoren zu erkennen, andere jedoch nicht. Im folgenden Beispiel werden beispielsweise
*
und %%
wie gewünscht in einer anderen Farbe gesetzt, und %/%
und +
und -
jedoch ^
nicht in einer anderen Farbe.
\documentclass[12pt]{scrartcl}
\usepackage{xcolor}
\usepackage{listings}
\lstset{
language=R,
basicstyle=\footnotesize\ttfamily,
backgroundcolor=\color{white!95!black},
commentstyle=\color{green},
keepspaces=true,
keywordstyle=\color{blue}}
\begin{document}
You can use R as a simple calculator:
\begin{lstlisting}
> # The hash symbol '#' will comment out the rest of the line
> 2 + 3
[1] 5
> 7 - 3
[1] 4
> 4 * 5
[1] 20
> 3^4 # Exponentiation
[1] 81
> 43 %% 10 # Modulo operator
[1] 3
> 43 / 10 # Floating point division
[1] 4.3
> 43 %/% 10 # Integer division
[1] 4
\end{lstlisting}
\end{document}
Wie erhalte ich eine Ausgabe, bei der alle mathematischen Operatoren blau gesetzt sind?
Antwort1
Für die R
Sprache listings
definiert:
otherkeywords={!,!=,~,$,*,\&,\%/\%,\%*\%,\%\%,<-,<<-,_,/},
Daher sind weder +
noch -
noch ^
aufgeführt, sie müssen hinzugefügt werden.
In diesem Zusammenhang %/%
scheint es, dass es nur wie erwartet funktioniert, \%
wenn man es davor hinzufügt.otherkeywords
Mit anderen Worten, das Hinzufügen von:
otherkeywords={!,!=,~,$,*,\&,+,-,^,\%,\%/\%,\%*\%,\%\%,<-,<<-,_,/},
zu Ihrem \lstset
macht was Sie wollen.
\documentclass[12pt]{scrartcl}
\usepackage{xcolor}
\usepackage{listings}
\lstset{
language=R,
basicstyle=\footnotesize\ttfamily,
backgroundcolor=\color{white!95!black},
commentstyle=\color{green},
keepspaces=true,
otherkeywords={!,!=,~,$,*,\&,+,-,^,\%,\%/\%,\%*\%,\%\%,<-,<<-,_,/},
keywordstyle=\color{blue}}
\begin{document}
You can use R as a simple calculator:
\begin{lstlisting}
> # The hash symbol '#' will comment out the rest of the line
> 2 + 3
[1] 5
> 7 - 3
[1] 4
> 4 * 5
[1] 20
> 3^4 # Exponentiation
[1] 81
> 43 %% 10 # Modulo operator
[1] 3
> 43 / 10 # Floating point division
[1] 4.3
> 43 %/% 10 # Integer division
[1] 4
\end{lstlisting}
\end{document}