我是 knitr/Sweave 的新手。我需要准备一份考试的不同版本,其中的问题都是随机生成的。每个学生一个版本,每个版本上都有学生的姓名。下面是一个只有两个学生的简单示例。
\documentclass{article}
\begin{document}
<<echo = FALSE>>=
x <- sample(0:9, 2)
@
William Sealy Gosset $\Sexpr{x[1]}+\Sexpr{x[2]}=$\clearpage
<<echo = FALSE>>=
x <- sample(0:9, 2)
@
Carl Friedrich Gauss $\Sexpr{x[1]}+\Sexpr{x[2]}=$\clearpage
\end{document}
因为我有一百名学生,所以我希望让 kintr 循环遍历学生名单。
答案1
将所有名称放入name.txt
文件中,每个名称占一行,然后使用此 Sweave 代码:
\documentclass[12pt]{article}
\usepackage{Sweave}
\title{Exam}
\author{Teacher}
\begin{document}
\SweaveOpts{concordance=TRUE}
\maketitle
\newpage
<<echo = FALSE, results=tex>>=
name=readLines("name.txt")
n=length(name)
x=sample(0:9, n)
y=sample(0:9, n)
for (i in 1:n) {
cat(name[i],'\\\\')
cat('$',x[i],'+',y[i],'=$\\newpage\n',sep="")
}
@
\end{document}