当使用language=R
s 时,如果变量名包含下划线包围的关键字,它将被突出显示。请参阅下面的图片和代码示例。我该怎么做才能防止这种情况发生lstlisting
?style
其他语言(例如 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={.$},
(即删除下划线)。确保行末的逗号正确。