[R] Best use of LaTeX listings package for pretty printing R code
Vincent Goulet
vincent.goulet at act.ulaval.ca
Mon Sep 25 20:43:49 CEST 2006
Le Lundi 25 Septembre 2006 09:31, Frank E Harrell Jr a écrit :
> This is what I have been using. Does anyone have a better way? In
> particular I would like to see letters in comment strings not stretched
> so much. Thanks -Frank
>
> \documentclass{article}
> \usepackage{listings,relsize}
> \lstloadlanguages{R}
> \newcommand{\lil}[1]{\lstinline|#1|}
>
> \begin{document}
> \lstset{language=R,basicstyle=\smaller,commentstyle=\rmfamily\smaller,
> showstringspaces=false,%
> xleftmargin=4ex,literate={<-}{{$\leftarrow$}}1 {~}{{$\sim$}}1}
> \lstset{escapeinside={(*}{*)}} % for (*\ref{ }*) inside lstlistings (S
> code)
> \begin{lstlisting}
> a <- b # this is a test line
> if(i==3) { # another line, for y^2
> y <- 3^3
> z <- 'this string'
> qqcat <- y ~ pol(x,2)
> } else y <- 4
> \end{lstlisting}
> That was \lstinline|x <- 22| \lil{q <- 'cat'}.
> \end{document}
listings is a great package to highlight R keywords and comments and --- that
was my main use of the package --- index those keywords. I found that I had
to slightly redefine the list of keywords included in listings. I still did
not take the time to submit a patch to the author, though...
In any case, here's what I use, if it can be of any help to anyone:
\lstloadlanguages{R}
\lstdefinelanguage{Renhanced}[]{R}{%
morekeywords={acf,ar,arima,arima.sim,colMeans,colSums,is.na,is.null,%
mapply,ms,na.rm,nlmin,replicate,row.names,rowMeans,rowSums,seasonal,%
sys.time,system.time,ts.plot,which.max,which.min},
deletekeywords={c},
alsoletter={.\%},%
alsoother={:_\$}}
\lstset{language=Renhanced,extendedchars=true,
basicstyle=\small\ttfamily,
commentstyle=\textsl,
keywordstyle=\mdseries,
showstringspaces=false,
index=[1][keywords],
indexstyle=\indexfonction}
with
\newcommand{\indexfonction}[1]{\index{#1@\texttt{#1}}}
--
Vincent Goulet, Associate Professor
École d'actuariat
Université Laval, Québec
Vincent.Goulet at act.ulaval.ca http://vgoulet.act.ulaval.ca
More information about the R-help
mailing list