请看一下这张图片。有人能帮我解决这个问题吗?
如您所见,lstlisting 将我的代码块视为字符串,但事实并非如此(只有引号中的内容才应该是淡紫色)。这是一个最简单的例子:
\documentclass{report}
\usepackage[usenames,dvipsnames]{color}
\usepackage{listings}
\definecolor{mauve}{rgb}{0.58,0,0.82}
\lstset{ %
language=R, % the language of the code
basicstyle=\footnotesize, % the size of the fonts that are used for the code
numbers=left, % where to put the line-numbers
numberstyle=\tiny\color{Gray}, % the style that is used for the line-numbers
stepnumber=1, % the step between two line-numbers. If it's 1, each line
% will be numbered
numbersep=5pt, % how far the line-numbers are from the code
backgroundcolor=\color{white}, % choose the background color. You must add \usepackage{color}
showspaces=false, % show spaces adding particular underscores
showstringspaces=false, % underline spaces within strings
showtabs=false, % show tabs within strings adding particular underscores
frame=single, % adds a frame around the code
rulecolor=\color{black}, % if not set, the frame-color may be changed on line-breaks within not-black text (e.g. commens (green here))
tabsize=2, % sets default tabsize to 2 spaces
captionpos=b, % sets the caption-position to bottom
breaklines=true, % sets automatic line breaking
breakatwhitespace=false, % sets if automatic breaks should only happen at whitespace
title=\lstname, % show the filename of files included with \lstinputlisting;
% also try caption instead of title
keywordstyle=\color{blue}, % keyword style
commentstyle=\color{ForestGreen}, % comment style
stringstyle=\color{mauve}, % string literal style
escapeinside={\%*}{*)}, % if you want to add a comment within your code
morekeywords={*,...} % if you want to add more keywords to the set
}
\begin{document}
\begin{lstlisting}
x3 <- scan(filenames[i], what = "", nlines = 1, sep="\n", quote = "\"",skip=data.row) #Reads first line of data as text
csvtype <- grepl(",",x3) #Checks for existance of "," in x3
if (csvtype ==TRUE)
{
seperator=","
} else {
seperator=";"
}
\end{lstlisting}
\end{document}
答案1
根据我之前的评论发布解决方案。
由于 R 中的单引号'
和双"
引号可以互换,因此将quote
参数设置scan
为quote = '\"'
将在代码仍然有效时修复突出显示。