[R] How to format R code in LaTex documents

Frank E Harrell Jr f.harrell at vanderbilt.edu
Mon Jan 15 15:12:33 CET 2007


Benjamin Dickgiesser wrote:
> Hi,
> 
> I am planning on putting some R script in an appendix of a LaTex
> document. Can anyone recommend me a way of how to format it? Is there
> a way to keep all line breaks without having to insert \\ in every
> single line?
> 
> Thank you!
> Benjamin

Here's one way and I would appreciate anyone's improvements.  I've also 
included solutions from two others.  Please let me know what you decide 
to use.  -Frank

\usepackage{listings,relsize}
\lstloadlanguages{R}
\lstset{language=R,basicstyle=\smaller[2],commentstyle=\rmfamily\smaller,
  showstringspaces=false,%
  xleftmargin=4ex,literate={<-}{{$\leftarrow$}}1 {~}{{$\sim$}}1}
\lstset{escapeinside={(*}{*)}}   % for (*\ref{ }*) inside lstlistings (S 
code)

. . .
\begin{lstlisting}
. . . S code . . .
\end{lstlisting}

The following code was provided by Vincent Goulet:


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

Anupam Tyagi provided the following:

\documentclass{report}
\usepackage{listings}
\begin{document}

Somethings .....

\lstset{% general command to set parameter(s)
basicstyle=\small, % print whole in small
stringstyle=\ttfamily, % typewriter type for strings
numbers=left, % numbers on the left
numberstyle=\tiny, % Tiny numbers
stepnumber=2, % number every second line of code
numbersep=5pt, % 5pt seperation between numbering and code listing
language=R }

\lstinputlisting{text1.R}

\end{document}



More information about the R-help mailing list