2014-01-28 1 views
12

Я хочу вставить фрагмент кода R в документ LaTeX. Настройки по умолчанию для пакета listings также меняют шрифт, но не тот цвет, который мне нужен.Цвет для фрагмента кода R в пакетах пакетов

Хотя я понимаю, что могу установить цвета с помощью функции , я не очень уверен в сочетании, которое будет выглядеть хорошо. Таким образом, может ли кто-нибудь поделиться своими настройками lstset для пакета listings для синтаксиса R? Таким образом, каждый, кто видит этот пост, может использовать одни и те же настройки!

+0

Пробовали ли вы [Sphinx] (http://sphinx-doc.org/) вместо латекса? Он использует [pygments] (http://pygments.org/) для цветовых кодов. – gunzapper

+3

Посмотрите на knitr. Опции пакета: 'eval = FALSE',' highlight = TRUE' должно быть достаточно. – tonytonov

+1

На самом деле, я бы предпочел использовать списки, которые могут обернуть мой код. У вас есть решения? –

ответ

11
\documentclass[12pt]{article} 
\usepackage{listings} 
\usepackage[usenames,dvipsnames]{color}  

\lstset{ 
    language=R,      % the language of the code 
    basicstyle=\tiny\ttfamily, % the size of the fonts that are used for the code 
    numbers=left,     % where to put the line-numbers 
    numberstyle=\tiny\color{Blue}, % the style that is used for the line-numbers 
    stepnumber=1,     % the step between two line-numbers. If it is 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 
    keywordstyle=\color{RoyalBlue},  % keyword style 
    commentstyle=\color{YellowGreen}, % comment style 
    stringstyle=\color{ForestGreen}  % string literal style 
} 


\begin{document} 
\begin{lstlisting} 
library(foreign) 

foo <- rnorm(100) 
# writing a function 
bar <- apply(foo, 1, function(x){ 
    y <- sqrt(x) 
    cat(paste('The result is ', x))) 
}) 
bar 

str(bar) 

foo + bar 
\end{lstlisting} 

\end{document} 

enter image description here

Смежные вопросы