使用列表为 R 输入和输出指定不同的颜色

使用列表为 R 输入和输出指定不同的颜色

我需要引用一些 R 命令和一些脚本,有时还需要显示输出。我希望输出的颜色与输入不同,但我不知道该怎么做。一个最小的例子可能是这个。

\documentclass{article}

\usepackage{listings}
\usepackage[svgnames]{xcolor}

\lstset{frame=none,
  language=R,
  showstringspaces=false,
  columns=flexible,
  numbers=none,
  basicstyle={\small\ttfamily},
  keywordstyle=\color{Blue},
  stringstyle=\color{Red},
  commentstyle=\color{DarkGreen},
  breaklines=true,
  breakatwhitespace=true,
  tabsize=3}

\begin{document}

\begin{lstlisting}
# First attempt
# to use R
> x <- c(1, 2, 3, 4)
> x
[1] 1 2 3 4
> sum(x)
[1] 10
> mean(x)
[1] 2.5 
\end{lstlisting}

\end{document}

我希望实现的是将[1] 1 2 3 4[1] 10换成[1] 2.5另一种颜色,例如DarkBlue。 列表可以实现吗? 我只在帖子中找到类似的参考“使用 knitr 对 R 输入和输出进行不同的着色”我不明白,因为我不知道那knitr是什么!

答案1

您可以像这样添加moredelim=**[is][\color{blue}]{@}{@},\lstset括住 R 输出:@ code output @。现在您拥有keywords蓝色的代码输出。您可以为输出选择不同的颜色以进行区分。

在此处输入图片描述

\documentclass{article}

\usepackage{listings}
\usepackage[svgnames]{xcolor}

\lstset{frame=none,
  language=R,
  showstringspaces=false,
  columns=flexible,
  numbers=none,
  basicstyle={\small\ttfamily},
  keywordstyle=\color{Blue},
  stringstyle=\color{Red},
  commentstyle=\color{DarkGreen},
  breaklines=true,
  breakatwhitespace=true,
  moredelim=**[is][\color{blue}]{@}{@},
  tabsize=3}

\begin{document}

\begin{lstlisting}
# First attempt
# to use R
> x <- c(1, 2, 3, 4)
> x
@[1] 1 2 3 4@
> sum(x)
@[1] 10@
> mean(x)
@[1] 2.5@
\end{lstlisting}

\end{document}

相关内容