为什么 listing 包不能正确突出显示操作员?

为什么 listing 包不能正确突出显示操作员?

我正在输入一些有关编程语言 R 的笔记。不幸的是,该listings包似乎可以识别某些数学运算符,但不能识别其他运算符。例如,在下面的示例中, *%%根据需要以不同的颜色排版,但%/%+-^没有以不同的颜色排版。

\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}

在此处输入图片描述

如何获得所有数学运算符都以蓝色字体输出的输出?

答案1

对于R语言,listings定义:

otherkeywords={!,!=,~,$,*,\&,\%/\%,\%*\%,\%\%,<-,<<-,_,/},

因此,既没有+列出-也没有^列出,必须添加它们。

看来%/%只有\%在它之前添加它才能otherkeywords让它按预期工作。

换句话说,添加:

otherkeywords={!,!=,~,$,*,\&,+,-,^,\%,\%/\%,\%*\%,\%\%,<-,<<-,_,/},

\lstset你想做的事。

\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} 

在此处输入图片描述

相关内容