[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