带有 R 的列表:使用下划线时,变量名中的关键字会突出显示吗?

带有 R 的列表:使用下划线时,变量名中的关键字会突出显示吗?

当使用language=Rs 时,如果变量名包含下划线包围的关键字,它将被突出显示。请参阅下面的图片和代码示例。我该怎么做才能防止这种情况发生lstlistingstyle

其他语言(例如 Java)似乎可以正常工作,没有下划线的变量名也是如此。我试过了,alsoletter=_但什么也没改变。

在此处输入图片描述

\documentclass{article}
\usepackage{listings}
\usepackage{color}

\lstdefinestyle{generalStyle} {
    frame=single,
    keywordstyle=\color{blue}\bfseries,
    stringstyle=\color{magenta}
}

\lstdefinestyle{JavaStyle} {
    language=Java, 
    style=generalStyle
}

\lstdefinestyle{RStyle} {
    language=R,
    style=generalStyle  
}

\begin{document}

    Java
    \begin{lstlisting}[style=JavaStyle]
        some_String_int_thing = "Somestring"
    \end{lstlisting}

    R
    \begin{lstlisting}[style=RStyle]
        some_data_csv_thing = 'Somestring'
    \end{lstlisting}

\end{document}

答案1

R 语法高亮在 中定义lstlang3.sty。该文件中 R 的定义包含以下内容:

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

如果你想删除的特殊待遇,_那么在你自己的定义中添加这样的内容RStyle

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

(即删除下划线)。确保行末的逗号正确。

相关内容