Dear expeRts,

What's a 'good' (nice-looking, easy-to-read) setup for the LaTeX package
'listings' to display R code?

The two versions below are partly inspired by the settings of the package
SweaveListingUtils and
http://r.789695.n4.nabble.com/R-How-to-format-R-code-in-LaTex-documents-td816055.html

Any suggestions, comments, or improvements are welcome.

Cheers,

Marius

### Version 1 ##################################################################

\documentclass{scrartcl}

\usepackage[T1]{fontenc}
\usepackage[american]{babel}

\usepackage{graphicx}
\usepackage{fancyvrb}
\usepackage{listings}

\lstset{% setup listings
        language=R,% set programming language
        basicstyle=\small,% basic font style
        keywordstyle=\bfseries,% keyword style
        commentstyle=\ttfamily\itshape,% comment style
        numbers=left,% display line numbers on the left side
        numberstyle=\scriptsize,% use small line numbers
        numbersep=10pt,% space between line numbers and code
        tabsize=3,% sizes of tabs
        showstringspaces=false,% do not replace spaces in strings by a certain 
character
        captionpos=b,% positioning of the caption below
        breaklines=true,% automatic line breaking
        escapeinside={(*}{*)},% escaping to LaTeX
        fancyvrb=true,% verbatim code is typset by listings
        extendedchars=false,% prohibit extended chars (chars of codes 128--255)
        
literate={"}{{\texttt{"}}}1{<-}{{$\leftarrow$}}1{<<-}{{$\twoheadleftarrow$}}1
        
{~}{{$\sim$}}1{<=}{{$\le$}}1{>=}{{$\ge$}}1{!=}{{$\neq$}}1{^}{{$^\wedge$}}1,% 
item to replace, text, length of chars
        alsoletter={.<-},% becomes a letter
        alsoother={$},% becomes other
        otherkeywords={!=, ~, $, *, \&, \%/\%, \%*\%, \%\%, <-, <<-, /},% other 
keywords
        deletekeywords={c}% remove keywords
}

\begin{document}

\noindent Just some text; see Line \ref{foo}.
\begin{lstlisting}[caption={A first example}, label=list:ex]
x <- c(1, 3, 2)
id <- function(x){
    x # just a dummy (*\label{foo}*)
}
3 <= 4
3 != 4
!TRUE
y <- "foo"
(pv <- sum(x*x^x))
y ~ x + a
\end{lstlisting}

\end{document}


### Version 2 ##################################################################

\documentclass{scrartcl}

\usepackage[T1]{fontenc}
\usepackage[american]{babel}

\usepackage{graphicx}
\usepackage{fancyvrb}
\usepackage{listings}
\usepackage{bm}
\usepackage{xcolor}

\xdefinecolor{gray}{rgb}{0.4,0.4,0.4}
\xdefinecolor{blue}{RGB}{58,95,205}% R's royalblue3; #3A5FCD

\lstset{% setup listings
        language=R,% set programming language
        basicstyle=\ttfamily\small,% basic font style
        keywordstyle=\color{blue},% keyword style
        commentstyle=\color{gray},% comment style
        numbers=left,% display line numbers on the left side
        numberstyle=\scriptsize,% use small line numbers
        numbersep=10pt,% space between line numbers and code
        tabsize=3,% sizes of tabs
        showstringspaces=false,% do not replace spaces in strings by a certain 
character
        captionpos=b,% positioning of the caption below
        breaklines=true,% automatic line breaking
        escapeinside={(*}{*)},% escaping to LaTeX
        fancyvrb=true,% verbatim code is typset by listings
        extendedchars=false,% prohibit extended chars (chars of codes 128--255)
        
literate={"}{{\texttt{"}}}1{<-}{{$\bm\leftarrow$}}1{<<-}{{$\bm\twoheadleftarrow$}}1
        
{~}{{$\bm\sim$}}1{<=}{{$\bm\le$}}1{>=}{{$\bm\ge$}}1{!=}{{$\bm\neq$}}1{^}{{$^{\bm\wedge}$}}1,%
 item to replace, text, length of chars
        alsoletter={.<-},% becomes a letter
        alsoother={$},% becomes other
        otherkeywords={!=, ~, $, \&, \%/\%, \%*\%, \%\%, <-, <<-, /},% other 
keywords
        deletekeywords={c}% remove keywords
}

\begin{document}

\noindent Just some text; see Line \ref{foo}.
\begin{lstlisting}[caption={A first example}, label=list:ex]
x <- c(1, 3, 2)
id <- function(x){
    x # just a dummy (*\label{foo}*)
}
3 <= 4
3 != 4
!TRUE
y <- "foo"
(pv <- sum(x*x^x))
y ~ x + a
\end{lstlisting}

\end{document}

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to