迭代 latex/kintr 代码

迭代 latex/kintr 代码

我是 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}

相关内容