通常,如果我创建一个 .Rnw 文件并向其中添加 R 代码块,然后将其转换为 .pdf 文件,则 R 代码文本将具有与文档其余文本不同的默认颜色和字体。以下是一个例子(假设它被称为“exampleRnw.Rnw”):
\documentclass{article}
\usepackage{float, hyperref}
\usepackage[margin=1in]{geometry}
\usepackage{graphicx}
\usepackage{hyperref}
\usepackage{sectsty}
\sectionfont{\fontsize{12}{13}\selectfont}
\begin{document}
<<options, echo=FALSE, warning=FALSE>>=
opts_chunk$set(cache=TRUE)
@
Here is the typically font in the document. Below is R code font.
<<>>=
setwd("/Users/")
var1 = 3
var2 = var1 + 5
@
\end{document}
要运行上述代码,我只需使用 knit2pdf("exampleRnw.Rnw")。您可以在下图中看到 R 代码的颜色和字体与其余文本不同。
但是,我现在正在使用我在网上找到的一些大纲开发 .Rnw 插图文件(即我可能不完全了解所有细节)。不幸的是,当将插图创建为 .pdf 文件时,它似乎没有像上面显示的典型 .Rnw 文件那样在 R 代码中创建默认字体和颜色。以下是一个例子(假设它被称为“exampleVignette.Rnw”):
\documentclass{article}
\setlength{\parindent}{0pt} % Remove indent at new paragraphs
\setcounter{secnumdepth}{0} % Remove section numbering at certain depth
\usepackage{tabu}
\usepackage[round,sort]{natbib}
\usepackage{fixltx2e}
\usepackage{graphicx} % For external pictures
\usepackage{float}
\usepackage{subfig} % Add subfigures within figures
\usepackage{verbatim}
\usepackage[colorlinks=true,linkcolor=blue,citecolor=blue,urlcolor=blue]{hyperref}
\usepackage{amssymb,amsbsy,amsmath}
\usepackage{epsfig}
\usepackage[left=3cm,top=3cm,bottom=3.5cm,right=3cm]{geometry} % For easy document margins
\usepackage{fancyhdr} % For customization of header/footer
\usepackage{adjustbox}
\usepackage{framed}
\usepackage{enumitem}
\usepackage{caption}
\numberwithin{equation}{section} % Equation numbers relative to sections
\usepackage[dvipsnames]{xcolor}
%\usepackage[usenames]{colors}
%\definecolor{darkred}{rgb}{0.545,0,0}
%\definecolor{midnightblue}{rgb}{0.098,0.098,0.439}
%\DefineVerbatimEnvironment{Sinput}{Verbatim}{fontshape=sl,formatcom={\color{midnightblue}}}
%\DefineVerbatimEnvironment{Soutput}{Verbatim}{formatcom={\color{darkred}}}
%\DefineVerbatimEnvironment{Scode}{Verbatim}{fontshape=sl,formatcom={\color{blue}}}
% ---------------------------------------------------------------------------------------------------------------------------------------
% \VignetteIndexEntry{ePort: Student performance report generation for statistics instructors}
%\VignettePackage{ePort}
%\documentclass{amsart}
\newcommand{\code}[1]{{\texttt{#1}}}
\newcommand{\pkg}[1]{{\texttt{#1}}}
\newcommand{\class}[1]{{\textit{#1}}}
\newcommand{\R}{{\normalfont\textsf{R }}{}}
\begin{document}
\sloppy
<<include=FALSE,echo=FALSE>>=
library(knitr)
opts_chunk$set(
concordance=TRUE
)
options(width=40)
@
<<label=R options,echo=FALSE>>=
options(width = 60)
options(SweaveHooks = list(fig = function() par(mar=c(3,3,1,0.5),mgp = c(2,1,0))))
@
%\SweaveOpts{prefix.string=fig,include=F,keep.source=T,eps=FALSE}
% <<echo=false>>=
% options(continue=" ")
% @
% %@% TO ELIMINATE THE "+" IN CONSECUTIVE SCRIPT LINES
\title{My title will be here}
\author{My author list will be here}
\tableofcontents
\section{Introduction}
I will write my introduction here.
\subsection{Background}
Here is some background.
\subsection{Code}
Here is some code.
<<>>=
setwd("/Users/")
var1 = 3
var2 = var1 + 5
@
\section{Conclusions}
I will write my conclusions here
\end{document}
要运行上述代码,我只需使用 devtools build_vignettes("exampleVignette.Rnw")。您可以在下图中看到,R 代码没有上述 exampleRnw.Rnw 文件中的漂亮颜色和字体。
我是否可以在我的小插图的 R 代码中使用与典型的 .Rnw 文件的 R 代码相同的颜色和字体?
答案1
请参见http://yihui.name/knitr/demo/vignette/基本上你必须告诉 R 你正在使用针织品作为晕影引擎,默认值为 Sweave(它为您提供如上所示的输出)。