我想在我的 latex 文件中写入 R 源代码,因此我使用 listings 包。
问题是我希望 R 关键字以蓝色显示,但例如名为 abc.log.de 的变量却以蓝色显示 log。如果 log 是 R 中较大变量名的一部分,我不希望发生这种情况。(示例如下)
我该如何继续?
\documentclass{article}
\usepackage{listings}
\usepackage{color}
\definecolor{dkgreen}{rgb}{0,0.6,0}
\definecolor{gray}{rgb}{0.5,0.5,0.5}
\definecolor{mauve}{rgb}{0.58,0,0.82}
\lstset{frame=tb,
language=R,
aboveskip=3mm,
belowskip=3mm,
showstringspaces=false,
columns=flexible,
numbers=none,
keywordstyle=\color{blue},
numberstyle=\tiny\color{gray},
commentstyle=\color{dkgreen},
stringstyle=\color{mauve},
breaklines=true,
breakatwhitespace=true,
tabsize=3
}
\begin{document}
\begin{lstlisting}
L.V2<-log(V2)
dados.log<-dados
\end{lstlisting}
\end{document}
答案1
默认情况下,R 标记在 listing 包中将该期间.
视为其他(即非字母)类型的字符,以及_
和$
,这允许识别包含它们的关键字(例如data.frame
)。但是,这也意味着表单中定义的变量foo.keyword.bar
将突出显示句点之间的关键字。
.
您可以通过在列表标记中将句点指定为字母字符来阻止此行为,方法是alsoletter={.}
添加\lstset
。不幸的是,这也会阻止其他包含句点的关键字(例如data.frame
或read.csv
)被突出显示。
或者,您可以在代码中以不同的方式命名变量(例如,dados.ln
)。
\documentclass{article}
\usepackage{listings}
\usepackage{color}
\lstset{frame=tb,
language=R,
keywordstyle=\color{blue},
alsoletter={.}
}
\begin{document}
\begin{lstlisting}
L.V2<-log(V2)
dados.log<-dados
\end{lstlisting}
\end{document}
两个小问题:
- 在您的最小工作示例中,不要忘记
\documentclass{article}
。 - 您不需要显示所有设置最小工作示例。