我有一个名为“main.Rnw”的Rnw文件,它包含了这个
\documentclass{article}
\usepackage{float}
\title{Something}
\author{John Smith}
\setkeys{Gin}{width=1.15\textwidth}
\begin{document}
\SweaveOpts{concordance=TRUE}
\thispagestyle{empty}
\maketitle
\newpage
\thispagestyle{empty}
\tableofcontents
\newpage
\SweaveInput{reports/Child.Rnw}
\end{document}
在文件“Child.Rnw”中,我有:
% !Rnw root = Main.Rnw
\documentclass{article}
\usepackage{float}
\begin{document}
\SweaveOpts{concordance=TRUE}
\section{section}
Something something
\end{document}
现在它给出了错误:
Error in SweaveReadFile(c(ifile, file), syntax, encoding = encoding) :
no Sweave file with name ‘./reports/Child.Rnw’ found
Calls: <Anonymous> -> SweaveReadFile -> SweaveReadFile
Execution halted
如果我更改代码并从命令\SweaveInput{reports/Child.Rnw}
中删除报告(因此代码为\SweaveInput{Child.Rnw}
),则会出错:
Writing to file Main.tex
Processing code chunks with options ...
Error in seq.default(from = which + 1L, length.out = length(linesout) - :
'from' must be of length 1
Calls: <Anonymous> -> <Anonymous> -> seq -> seq.default
In addition: Warning messages:
1: In 1L:which : numerical expression has 2 elements: only the first used
2: In seq.default(from = which + 1L, length.out = length(linesout) - :
first element used of 'length.out' argument
Execution halted
我做错了什么? 我使用R Studio。
答案 0 :(得分:1)
您的代码无效的问题之一是因为您定义的文档两次\begin{document}
而\end{document}
位于Main.Rnw
和Child.Rnw
。< / p>
您的子文件\SweaveInput{Child.Rnw}
应如下所示:
% !Rnw root = main.Rnw
\SweaveOpts{concordance=TRUE}
\section{section}
Something something
尝试使用此文件并编译PDF。
我得到3页的PDF文件
首先是标题,第二内容和第三部分。
答案 1 :(得分:0)
我没有使用Sweave的经验,但以下内容应该是knitr
。
如果它们应该相同,则不必为Child.Rnw指定新的文档规范,因为默认行为是继承父项的属性。
向编织者扫描
#Convert Sweave specific options to knitr compatible version
#this will generate a new file named Parent-knitr.Rnw
library("knitr")
Sweave2knitr("Parent.Rnw")
文件路径:
为了进行测试,让我们假设以下假设目录结构
D:/project/Parent.Rnw
D:/project/reports/Child.Rnw
如果Child.Rnw文件与Parent.Rnw位置位于同一位置 以下应该工作
\Sexpr{knit_child('Child.RnW')}
如果出现在不同的位置,您需要指定Child.Rnw和两者的完整路径 绝对和相对路径应该起作用
绝对路径,例如“D:/project/reports/Child.Rnw”
相对路径,例如“../ reports / Child.Rnw”
.
表示当前目录,..
表示从工作目录和工作目录向上移动一级
由knitr默认设置为Parent.Rnw的目录。
有关更多文档,请参阅?knit_child
<强> Parent.Rnw:强>
\documentclass{article}
\usepackage{float}
\title{Testing Parent Child Processing with knitr}
\author{John Smith}
\setkeys{Gin}{width=1.15\textwidth}
\begin{document}
<<include=FALSE>>=
library(knitr)
opts_chunk$set(
concordance=TRUE
)
@
\thispagestyle{empty}
\maketitle
%\newpage
\thispagestyle{empty}
%\tableofcontents
%\newpage
%\SweaveInput{reports/Child.Rnw}
\Sexpr{knit_child('./reports/Child.RnW')}
\end{document}
<强> Child.Rnw:强>
\textbf{Testing Child.Rnw Processing:}
<<testChild>>=
data(mtcars)
plot(hclust(dist(mtcars)))
@
PDF转换:
knit2pdf("Parent-knitr.Rnw")
<强>输出:强>