exams2pdf | R Documentation |
Automatic generation of exams in PDF format.
exams2pdf(file, n = 1L, nsamp = NULL, dir = ".", template = "plain",
inputs = NULL, header = NULL, usepackage = NULL, name = NULL,
control = NULL, encoding = "UTF-8", quiet = TRUE, transform = NULL,
edir = NULL, tdir = NULL, sdir = NULL, texdir = NULL, texengine = "pdflatex",
verbose = FALSE, rds = FALSE, points = NULL, seed = NULL,
attachfile = FALSE, exshuffle = NULL, ...)
make_exams_write_pdf(template = "plain", inputs = NULL,
header = NULL, usepackage = NULL, name = NULL, encoding = "UTF-8",
quiet = TRUE, control = NULL, texdir = NULL, texengine = "pdflatex")
file |
character. A specification of a (list of) exercise files. |
n |
integer. The number of copies to be compiled from |
nsamp |
integer. The number(s) of exercise files sampled from each
list element of |
dir |
character specifying the output directory (default:
current working directory). If only a single PDF file is produced
and no |
template |
character. A specification of a LaTeX template. The package
currently provides |
inputs |
character. Names of files that are needed as inputs during
LaTeX compilation (e.g., style files, headers). Either the full path
must be given or the file needs to be in |
header |
character vector or list. Either a character vector with LaTeX code to include in the header or a named list with further options to be passed to the LaTeX files. |
usepackage |
character. Names of additional LaTeX packages to be included. |
name |
character. A name prefix for resulting exercises, of the same
length as |
control |
A list of control arguments for the appearance of multiple choice results (see details). |
encoding |
character, ignored. The encoding is always assumed to be UTF-8. |
quiet |
logical. Should output be suppressed when calling
|
transform |
function. An optional transform driver passed to
|
edir |
character specifying the path of the directory (along with its
sub-directories) in which the files in |
tdir |
character specifying a temporary directory, by default
this is chosen via |
sdir |
character specifying a directory for storing supplements, by
default this is chosen via |
texdir |
character specifying a directory for running |
texengine |
character. Passed to |
verbose |
logical. Should information on progress of exam generation be reported? |
rds |
logical indicating whether the return list should also be saved as an RDS data file. |
points |
integer. How many points should be assigned to each exercise? Note that this
argument overules any exercise points that are provided within the |
seed |
integer matrix or logical. Either |
attachfile |
logical. Should the LaTeX commands |
exshuffle |
logical or integer. If the |
... |
further arguments passed on to |
exams2pdf
is a more flexible re-implementation of the old (version 1)
exams
function (Gruen and Zeileis 2009), using the new extensible
xexams
framework (Zeileis et al. 2014). A detailed
introduction is provided in vignette("exams", package = "exams")
, also
pointing out relative advantages of the new interface.
exams2pdf
proceeds by using make_exams_write_pdf
to set up a custom
driver$write
function on the fly before calling xexams
.
This custom driver combines each exams with the desired template
(and inputs
etc.) and then calls texi2dvi
on the resulting LaTeX file to produce PDF output.
For a single exam (n = 1
) the resulting PDF is displayed on
screen (unless dir
is explicitly specified) while for n > 1
the PDF files are stored in the output directory dir
.
The argument control
is specified by a named list, currently with elements
mchoice.symbol
and cloze.collapse
. mchoice.symbol
has to be a character vector with elements True
and False
,
specifying the symbol used for the questionnaire output in the final PDF file.
cloze.collapse
specifies the character used for collapsing mchoice/schoice
alternatives within a cloze exercise. By default, these are separated by " / "
but with cloze.collapse = "\\\\"
each alternative would be in a new line.
Finally, cloze.collapse = "enumerate"
can also be used which employs a nested
enumerate environment. In the latter case, the questionnaire uses exclozechoice
rather than exmchoice
(see exam.tex
or solution.tex
for an
illustration.
exams2pdf
returns a list of exams as generated by xexams
.
make_exams_write_pdf
returns a function that is suitable for being
supplied as driver$write
to xexams
.
Gruen B, Zeileis A (2009). Automatic Generation of Exams in R. Journal of Statistical Software, 29(10), 1–14. \Sexpr[results=rd]{tools:::Rd_expr_doi("10.18637/jss.v029.i10")}.
Zeileis A, Umlauf N, Leisch F (2014). Flexible Generation of E-Learning Exams in R: Moodle Quizzes, OLAT Assessments, and Beyond. Journal of Statistical Software, 58(1), 1–36. \Sexpr[results=rd]{tools:::Rd_expr_doi("10.18637/jss.v058.i01")}.
xexams
,
exams
,
texi2dvi
## load package and enforce par(ask = FALSE)
##
## additionally, for simplicity, enforce using the basic
## tools::texi2dvi() LaTeX interface instead of the more
## flexible/robust tinytex::latexmk()
library("exams")
oopt <- options(device.ask.default = FALSE, exams_tex = "tools")
if(interactive()) {
## compile a single random exam (displayed on screen)
exams2pdf(list(
"boxplots.Rmd",
c("tstat.Rmd", "ttest.Rmd", "confint.Rmd"),
c("regression.Rmd", "anova.Rmd"),
"scatterplot.Rmd",
"relfreq.Rmd"
))
}
options(exams_tex = oopt$exams_tex)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.