5

please have a look at this picture. Could someone help me solve this please?

enter image description here

As you can see, lstlisting sees my code chunk as string, which should not be the case (only stuff in quotes should be in mauve). Here's a minimal example:

\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}
Wet Feet
  • 611
  • 1
  • 5
  • 11
  • 1
    Seems like "\"" is causing the trouble. Single and double quotes are interchangeable, so '\"' might work, maybe? –  Feb 05 '14 at 08:38
  • That solved it, thanks. Btw, do you know how I can flip the quotes right? – Wet Feet Feb 05 '14 at 08:52
  • I do not understand, sorry. What do you mean by flip? –  Feb 05 '14 at 08:53
  • Well, the quotes in the code are all "end quotes". How I can flip them over to "start quotes"? – Wet Feet Feb 05 '14 at 08:58
  • 1
    This is probably a separate question worth posting. I have no idea, honestly. As a hack, you may change all double quotes to single ones, at least until a proper solution is found. As a side note, check your spelling: existence, separator. –  Feb 05 '14 at 09:03
  • Consider using a different syntax highlighting package such as minted. – Konrad Rudolph Feb 05 '14 at 12:08

1 Answers1

2

Posting a solution from my earlier comment.

Since in R single ' and double " quotes are interchangeable, setting the quote parameter in scan to quote = '\"' will fix the highlighting while the code is still valid.

tonytonov
  • 168