我需要引用一些 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}