render_listings() - 如何更改R输入代码中的字体?

时间:2013-09-20 15:32:40

标签: r fonts knitr

我在“knitr”中使用“render_listings()”函数有问题。在输出的PDF中,我得到一个格式化的输入部分,其中相关符号的字体,如箭头或引号,已被更改。当我将其复制并粘贴到R控制台时,箭头和引号的字符将被更改,并且不能为编译器解释。所以我必须自己改变符号......

如何更改打印的R输入代码的字体?

下面的示例显示了函数包装行的有用性,但也更改了R输入代码的字体。

\documentclass[oneside]{scrbook}
\lstset{breaklines=true} % break long lines

<<setup, include=FALSE>>=
render_listings()
@

\begin{document}

Example for a wrap...

<<long-print>>=
x <- c("hdskdfgkgrivklgdm,dsaodfkdf,dfgkgfdilgdfkgdfmbdfklbfdildfkfgm,.fgdklbkub,dgmsgafdsjcvxuikjgsdm,gslibflidfgk.gdfm,.gdfklbcvligdf.gdfk.gdf")
print(x)
@

\end{document}

希望有人有想法帮助我完成......

最好的问候, 菲利普

1 个答案:

答案 0 :(得分:2)

您可以查看生成的LaTeX文件:它将指向Sweavel.sty文件, 它指定输入和输出的排版方式。

特别是,您可以将\ttfamily添加到basicstyle以解决引用问题, 并删除literate行以删除漂亮的箭头。

尝试将以下内容添加到Rnw文件的前导码中。

\lstdefinestyle{Rstyle}{%
  fancyvrb=false,escapechar=`,language=R,%
  basicstyle={\Rcolor\Sweavesize\ttfamily},%         Added \ttfamily
  backgroundcolor=\Rbackground,%
  showstringspaces=false,%
  keywordstyle=\Rcolor,%
  commentstyle={\Rcommentcolor\ttfamily\itshape},%
  %literate=                                         Removed
  alsoother={$},%
  alsoletter={.<-},%
  otherkeywords={!,!=,~,$,*,\&,\%/\%,\%*\%,\%\%,<-,<<-,/},%
  escapeinside={(*}{*)}}%