【问题标题】:Colour for R code chunk in listings package列表包中 R 代码块的颜色
【发布时间】:2014-01-28 09:52:56
【问题描述】:

我希望在 LaTeX 文档中插入 R 代码块。 listings 包的默认设置也会更改字体,但不会更改我需要的颜色。

虽然我知道我可以使用lstset 函数设置颜色,但我不太确定看起来不错的组合。因此,任何人都可以分享他们为listings 包设置的lstset 设置来为R 语法着色吗?这样,看到此帖子的每个人都可以使用相同的设置!

【问题讨论】:

  • 看看knitr。块选项:eval=FALSEhighlight=TRUE 就足够了。
  • 实际上,我更喜欢使用列表,因为它可以包装我的代码。你有什么解决办法吗?

标签: r latex listings


【解决方案1】:
\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}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-01-07
    • 2018-06-13
    • 2013-01-19
    • 2017-10-01
    • 2014-11-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-06
    相关资源
    最近更新 更多