Package 'exams' April 6, 2020 - CRAN
←
→
Page content transcription
If your browser does not render page correctly, please read the page content below
Package ‘exams’ April 6, 2020 Version 2.3-6 Date 2020-04-05 Title Automatic Generation of Exams in R Description Automatic generation of exams based on exercises in Markdown or LaTeX format, possibly including R code for dynamic generation of exercise elements. Exercise types include single-choice and multiple-choice questions, arithmetic problems, string questions, and combinations thereof (cloze). Output formats include standalone files (PDF, HTML, Docx, ODT, ...), Moodle XML, QTI 1.2, QTI 2.1, Blackboard, Can- vas, OpenOLAT, ARSnova, and TCExam. In addition to fully customizable PDF exams, a standardized PDF format (NOPS) is provided that can be printed, scanned, and automatically evaluated. Depends R (>= 3.4.0) Imports stats, graphics, grDevices, tools, utils Suggests base64enc, knitr, magick, parallel, png, RCurl, RJSONIO, rmarkdown, tinytex, tth License GPL-2 | GPL-3 URL http://www.R-exams.org/ BugReports http://www.R-exams.org/contact/ NeedsCompilation no Author Achim Zeileis [aut, cre] (), Bettina Gruen [aut] (), Friedrich Leisch [aut] (), Nikolaus Umlauf [aut], Mirko Birbaumer [ctb], Dominik Ernst [ctb], Patrik Keller [ctb], Niels Smits [ctb], Reto Stauffer [ctb], Kenji Sato [ctb] Maintainer Achim Zeileis Repository CRAN Date/Publication 2020-04-06 07:04:45 UTC 1
2 exams R topics documented: exams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 exams2arsnova . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 exams2blackboard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 exams2canvas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 exams2html . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 exams2lops . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 exams2moodle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 exams2nops . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 exams2openolat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 exams2pandoc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 exams2pdf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 exams2qti12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 exams2tcexam . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 exams_eval . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 exams_skeleton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 expar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 fmt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 include_supplement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 include_tikz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 match_exams_call . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 matrix_to_schoice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 mchoice2string . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 nops_eval . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 nops_language . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 nops_scan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 num_to_schoice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 read_exercise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 stresstest_exercise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 tex2image . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 xexams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 xweave . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 Index 75 exams Generation of Simple Exams Description Old (version 1) interface for Sweave-based automatic generation of exams including multiple choice questions and arithmetic problems. Now it is recommended to use the (version 2) interface exams2pdf. Usage exams(file, n = 1, nsamp = NULL, dir = NULL, template = "plain", inputs = NULL, header = list(Date = Sys.Date()), name = NULL, quiet = TRUE, edir = NULL, tdir = NULL, control = NULL)
exams 3 Arguments file character. A specification of a (list of) exercise files, for details see below. n integer. The number of copies to be compiled from file. nsamp integer. The number(s) of exercise files sampled from each list element of file. Sampling without replacement is used if possible. (Only if some element of nsamp is larger than the length of the corresponding element in file, sampling with replacement is used.) dir character. The output directory, this has to be set if n is greater than 1 (or template is longer than 1). template character. A specification of a LaTeX template. The package currently provides "exam", "solution", "plain". For details see below. 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 edir. header list. A list of further options to be passed to the LaTeX files. name character. A name prefix for resulting exercises, by default chosen based on template. quiet logical. Should output be suppressed when calling Sweave and texi2dvi. edir character specifying the path of the directory in which the files in file are stored (see also below). tdir character specifying a temporary directory, by default this is chosen via tempfile. Note that this is cleaned up and potentially temporary files are deleted. control A list of control arguments for the appearance of multiple choice results (see ‘Details’). Details exams is the old (version 1) interface for Sweave-based generation of PDF exams. It is only provided for backward compatibility and is superseded by the far more flexible function exams2pdf. exams generates exams from lists of Sweave source files by: (1) running Sweave on each exercise, (2) including the resulting LaTeX files in a template, (3) running texi2dvi on the template, and (4) storing the resulting PDF file in an output dir (or displaying it interactively). Each exercise in an exam is essentially a standalone Sweave source file that exams knows (almost) nothing about, it just calls Sweave (n times). The only exception is some meta-information which is passed by means of four commands back to exams. The commands are ‘\extype’ (which may be ‘mchoice’ or ‘num’), ‘\exsolution’ (e.g., 3.124 for a numeric solution and 10010 for a multiple choice solution), ‘\exstring’ (containing a human-readable string with the solution), and ‘\extol’ (a tolerance for numeric solutions). The specification in file should be either of form "foo" or equivalently "foo.Rnw", where the file "foo.Rnw" should either be in the local directory, the edir directory or in the exercises directory of the package. file can either be a simple vector or a list of vectors. In the latter case, exercises are chosen randomly within each list element. For example, the specification file = list(c("a","b"),"xyz") will result in an exam with two exercises: the first exercise is chosen randomly between "a" and "b" while "xyz" is always included as the second exercise.
4 exams The template is a (vector of) specification(s) of LaTeX templates. It can be "foo" or equiva- lently "foo.tex" where "foo.tex" should either be in the local directory (or provided with the full path) or in the tex directory of the package. It should specify where in the template the exercises are included, using the markup ‘\exinput{exercises}’. Additionally, it may contain ‘\exinput{questionnaire}’ and ‘\exinput{header}’. template can also be a vector, then for each of the n runs several output files (one for each template) are created. The name prefix for each file is by default the base name of the corresponding template but can also be changed via name. exams creates the PDF files and stores them in an output directory together with the solution meta information as ‘metainfo.rda’ (see also below). If only a single PDF is created (currently the default), dir may be NULL and it is only displayed on the screen. The argument control is specified by a named list with elements mchoice.print and mchoice.symbol. The element mchoice.print is used for specifying the characters used for printing. It is again a named list where element True gives the (five) characters used for printing when the answer is cor- rect and False if the answer is wrong. The symbol used for the questionnaire output in the final PDF file is defined by mchoice.symbol which is vector with elements True and False. Value An object of class "exams_metainfo" is returned invisibly. It is a list of length n, containing a list of meta informations for each exercise: mchoice logical. Is the exercise a multiple choice exercise? length integer. Length of solution. solution either a logical vector (for multiple choice) or numeric vector (for arithmetic problems). string character. A human-readable version of the solution. References Gruen B, Zeileis A (2009). Automatic Generation of Exams in R. Journal of Statistical Software, 29(10), 1–14. http://www.jstatsoft.org/v29/i10/. See Also exams2pdf, Sweave, texi2dvi, mchoice2string Examples ## load package and enforce par(ask = FALSE) library("exams") options(device.ask.default = FALSE) ## define an exams (= list of exercises) myexam
exams2arsnova 5 "relfreq" ) if(interactive()) { ## compile a single random exam (displayed on screen) sol
6 exams2arsnova Arguments file character. A specification of a (list of) exercise files. n integer. The number of copies to be compiled from file. dir character. The default is either display on the screen or the current working directory. name character. A name prefix for resulting exercises and RDS file. sname character. A vector of length 2 with the session name (maximum of 50 charac- ters) and its abbreviation (maximum of 8 characters). Ignored if the sessionkey of an existing session is supplied and otherwise copied by default from name. qname character. A vector of names for each question/exercise in file. By default, the name is used. quiet logical. Should output be suppressed when calling xweave and texi2dvi. resolution, width, height numeric, passed to xweave. svg logical. Should graphics be rendered in SVG or PNG (default)? encoding character, passed to xweave. url,sessionkey,jsessionid character specifying (1) the base URL of the ARSnova API, (2) the 8-digit AR- Snova session key, (3) the JSESSIONID cookie of an active ARSnova session. If all are provided all questions are imported directly into the existing ARSnova session. Otherwise, a JSON import file is generated. active logical. Should the question be active (i.e., released for students) or locked? votingdisabled logical. Should voting be disabled? showstatistic logical. Should statistics be shown? showanswer logical. Should answers be shown? abstention logical. Are abstentions allowed? variant character. Should the question be a "lecture" or a "preparation" questions? ssl.verifypeer logical. Should SSL certificates be validated when connecting via https? fix_choice logical. Should math markup be removed in single and multiple choice lists? (This may be needed for older ARSnova versions where math markup is ren- dered in the question itself but not the choice list.) ... arguments passed on to xexams. Details exams2arsnova generates exams in the JSON format for ARSnova using xexams. It proceeds by (1) calling xweave on each exercise, (2) reading the resulting LaTeX code, (3) transforming the LaTeX code to Markdown, and (4) embedding the Markdown code into the JSON format for ARSnova (and optionally imports it into a running ARSnova session). For steps (1) and (2) the standard drivers in xexams are used. For step (3) a suitable transformation function is set up on the fly using make_exercise_transform_pandoc. For step (4) a simple writer function is set up on the fly that embeds the transformed Markdown code into a hard-coded JSON
exams2blackboard 7 template using toJSON and either writes a single JSON file for each exam or imports these directly into an ARSnova session. When url, sessionkey, and jsessionid are all supplied, curlPerform is used to import tall questions directly into the existing ARSnova session. Otherwise, a file is written to the disk and then needs to be imported manually into an ARSnova server. This file is either a JSON file for a whole new session (if sessionkey is NULL, the default) or a CSV file with the questions only. Value A list of exams as generated by xexams is returned invisibly. Examples ## load package and enforce par(ask = FALSE) library("exams") options(device.ask.default = FALSE) ## Not run: ## exams2arsnova can either create text files with JSON data exams2arsnova("tstat2") ## or directly post this to an active ARSnova session (for which the ## server URL, the 8-digit session key, and the JSESSIONID cookie are needed) exams2arsnova("tstat2", url = "https://arsnova.eu/api", sessionkey = "49061284", jsessionid = "A5BEFDA4141816BB425F2204A602E4B3") ## End(Not run) exams2blackboard Generation of Exams in Blackboard Format Description Automatic generation of exams in Blackboard format (which is partially based on QTI 1.2). Usage exams2blackboard(file, n = 1L, nsamp = NULL, dir = ".", name = NULL, quiet = TRUE, edir = NULL, tdir = NULL, sdir = NULL, verbose = FALSE, resolution = 100, width = 4, height = 4, encoding = "", num = NULL, mchoice = NULL, schoice = mchoice, string = NULL, cloze = NULL, template = "blackboard", pdescription = "This is an item from an item pool.", tdescription = "This is today's test.", pinstruction = "Please answer the following question.", tinstruction = "Give an answer to each question.",
8 exams2blackboard maxattempts = 1, zip = TRUE, points = NULL, eval = list(partial = TRUE, negative = FALSE), base64 = FALSE, converter = NULL, seed = NULL, ...) make_itembody_blackboard(rtiming = FALSE, shuffle = FALSE, rshuffle = shuffle, minnumber = NULL, maxnumber = NULL, defaultval = NULL, minvalue = NULL, maxvalue = NULL, cutvalue = NULL, enumerate = TRUE, digits = NULL, tolerance = is.null(digits), maxchars = 12, eval = list(partial = TRUE, negative = FALSE), qti12 = FALSE) Arguments file character. A specification of a (list of) exercise files. n integer. The number of copies to be compiled from file. nsamp integer. The number(s) of exercise files sampled from each list element of file. Sampling without replacement is used if possible. (Only if some element of nsamp is larger than the length of the corresponding element in file, sampling with replacement is used.) dir character. The default is the current working directory. name character. A name prefix for resulting exercises and ZIP file. quiet logical. Should output be suppressed when calling xweave? edir character specifying the path of the directory (along with its sub-directories) in which the files in file are stored (see also xexams). tdir character specifying a temporary directory, by default this is chosen via tempfile. Note that this is cleaned up and potentially temporary files are deleted. sdir character specifying a directory for storing supplements, by default this is cho- sen via tempfile. verbose logical. Should information on progress of exam generation be reported? resolution, width, height numeric. Options for rendering PNG graphics passed to xweave. encoding character, passed to xweave. num function or named list applied to numerical (i.e., type num) questions. If num is a function, num will be used for generating the item body of the question, see function make_itembody_blackboard(). If num is a named list, these argu- ments will be passed to function make_itembody_blackboard(). mchoice, schoice, string, cloze function or named list applied to multiple choice, single choice, string, and cloze questions (i.e., type mchoice, schoice, string, and cloze), respectively. See argument num for more details. template character. The IMS QTI 1.2 or 2.1 template that should be used. Currently, the package provides "blackboard.xml".
exams2blackboard 9 pdescription character. Description (of length 1) of the item pool (i.e., the set of copies). tdescription character. Description (of length 1) of the overall assessment (i.e., exam). pinstruction character. Instruction (of length 1) for the item pool (i.e., set of copies). tinstruction character. Instruction (of length 1) for the overall assessment (i.e., exam). maxattempts integer. The maximum attempts for one question, may also be set to Inf. zip logical. Should the resulting XML file (plus supplements) be zipped? points integer. How many points should be assigned to each exercise? Note that this ar- gument overules any exercise points that are provided within an "\expoints{}" tag in the .Rnw file. The vector of points supplied is expanded to the number of exercises in the exam. eval named list, specifies the settings for the evaluation policy, see function exams_eval. base64 logical. Should supplementary files be embedded using Base 64 coding? Ar- gument base64 may also be a character vector of file suffixes that should be encoded, e.g. base64 = c("png","rda") will only encode PNG images and binary .rda files. If set to NULL only image files will be encoded. converter, ... arguments passed on to make_exercise_transform_html. The default for converter is set to "ttm" unless there are Rmd exercises in file where "pandoc" is used. seed integer matrix or logical. Either NULL (default), logical, or a matrix of random seeds for each possible exercise to be set prior to calling driver@sweave. If NULL no random seeds are set. If a matrix, the number of rows must be n and the number of columns must correspond to unlist(file). If TRUE a suitable matrix of seeds is sampled. rtiming, shuffle, rshuffle, minnumber, maxnumber, defaultval, minvalue, maxvalue arguments used for IMS QTI 1.2 item construction, for details see the XML specification (see IMS Global Learning Consortium, Inc. 2012), especially Sec- tion 4. cutvalue numeric. The cutvalue at which the exam is passed. enumerate logical. Insert potential solutions in enumerated list? digits integer. How many digits should be used for num exercises? tolerance logical. Should tolerance intervals be used for checking if the supplied num answer/number is correct? The default is to use tolerance intervals if digits = NULL. maxchars numeric. Lower bound for the number of characters in fill-in-blank fields. The actual number of characters is selected as the maximum number of characters of this value and the actual solution. qti12 logical. For reverse compability to plain QTI 1.2 XML format. Details Blackboard employs an XML format that essentially uses the Question & Test Interoperability (QTI) standard, version 1.2, see IMS Global Learning Consortium, Inc. (2012). However, as this deviates from the plain QTI 1.2 standard in several places, the exams2qti12 cannot be used directly. Instead, exams2blackboard is a new interface that is likely to be improved in future versions.
10 exams2blackboard exams2blackboard produces a .zip file that may be uploaded into Blackboard. This includes the final XML file of the exam/assessment as well as possible supplement folders that include images, data sets etc. used for the exam. After uploading the test into Blackboard, the material will appear under ‘Course Tools’: the test will be available in ‘Tests’, and each pool within the test will also appear in ‘Pools’. exams2blackboard proceeds by (1) calling xweave on each exercise, (2) reading the resulting La- TeX code, (3) transforming the LaTeX code to HTML, and (4) embedding the HTML code in a XML file using Blackboard’s QTI standards for assessments and question items. For steps (1) and (2) the standard drivers in xexams are used. In step (3), a suitable transformation function is set up on the fly using make_exercise_transform_html, see also the details section in exams2html. For step (4), the function will cycle through all questions and exams to generate the final XML file in the Blackboard QTI standard. Therefore, each question will be included in the XML as one section. The replicates of each question will be written as question items of the section. The function uses the XML template for Blackboard’s QTI standards for assessments and items to generate the exam (per default, this is the XML file blackboard.xml provided in the xml folder of this package). The assessment template must provide one section including one item. exams2blackboard will then use the single item template to generate all items, as well as the as- sessment and section specifications set within the template. The default template will generate exams/assessments that sample one replicate of a question/item for each section. The usual procedure in exam/assessment generation would be to simply copy \& paste the XML template of the package and adapt it to the needs of the user. Note that all specifiers that have a leading ## in the XML template will be replaced by suitable code in exams2blackboard and should always be provided in the template. I.e., the user may add additional tags to the XML template or modify certain specifications, like the number of replicates/items that should be sampled for each section etc. Per default, the individual question/item bodies are generated by function make_itembody_blackboard, i.e., make_itembody_blackboard checks the type of the question and will produce suitable XML code. Note that for each question type, either the arguments of make_itembody_blackboard may be set within num, mchoice, schoice and string in exams2blackboard, by providing a named list of specifications that should be used, or for each questiontype, a function that produces the item body XML code may be provided to num, mchoice, schoice and string. E.g., mchoice = list(shuffle = TRUE) will force only multiple choice questions to have a shuffled answerlist. Note that in Blackboard cloze items are not officially supported, and hence this type of item is not supported in the current version of exams2blackboard either. It is currently investigated if a workaround may be implemented to allow for cloze items. Value exams2blackboard returns a list of exams as generated by xexams. make_itembody_blackboard returns a function that generates the XML code for the itembody tag in Blackboard’s version of the IMS QTI 1.2 format. References Blackboard, Inc. (2016). Blackboard Help: Question types. http://en-us.help.blackboard. com/Learn/Instructor/Tests_Pools_Surveys/040_Question_Types
exams2canvas 11 IMS Global Learning Consortium, Inc. (2012). IMS Question & Test Interoperability: ASI XML Binding Specification Final Specification Version 1.2. http://www.imsglobal.org/question/ qtiv1p2/imsqti_asi_bindv1p2.html 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. http: //www.jstatsoft.org/v58/i01/. See Also exams2qti12 Examples ## load package and enforce par(ask = FALSE) library("exams") options(device.ask.default = FALSE) ## define an exams (= list of exercises) myexam
12 exams2canvas Arguments file character. A specification of a (list of) exercise files. n integer. The number of copies to be compiled from file. dir character. The default is the current working directory. name character. A name prefix for resulting exercises and ZIP file. maxattempts integer. The maximum attempts for one question (must be smaller than 100000). duration integer. Set the duration of the exam in minutes. points integer. How many points should be assigned to each exercise? Note that this ar- gument overules any exercise points that are provided within an "\expoints{}" tag in the .Rnw file. The vector of points supplied is expanded to the number of exercises in the exam. converter character passed on to make_exercise_transform_html, indicating the type of converter from LaTeX/Markdown to HTML. Currently, Canvas requires HTML with MathML. Hence, if there are Markdown-based .Rmd exercises, the converter needs to be "pandoc-mathml" (or equivalently "pandoc"). For only LaTeX- based .Rnw exercises "ttm" can be used as an alternative and is currently the default. ... arguments passed on to exams2qti12. The arguments base64 and eval cannot be modified but are hard-coded internally (for details see below). Details exams2canvas is a convenience interface to exams2qti12 for generating QTI 1.2 with some small tweaks for Canvas (https://www.instructure.com/canvas/). The supported exercise types at the moment are num, schoice, mchoice, and string (but not cloze, yet). It is still under development and may change in future versions. Please report any problems to the package maintainer. The Canvas-specific tweaks include: • Canvas necessitates a converter that produces HTML plus MathML. Thus, "pandoc-mathml" (or equivalently "pandoc") can be used or alternatively "ttm" for exams with only R/LaTeX .Rnw exercises. • Supplementary files (images, data, ...) must be embedded without Base 64 encoding. Thus, base64 = FALSE is hard-coded internally in exams2canvas. • Multiple-choice exercises (referred to as multiple answer questions in Canvas) are always evaluated (aka scored) with partial credits in Canvas. Therefore, eval = list(partial = TRUE,negative = FALSE) is hard-coded internally in exams2canvas. Negative points are not supported in Canvas. • The QTI XML file requires a few special tags which are enforced through flavor = "canvas" in exams2qti12. Technical note: For multiple-choice questions the QTI XML file produced by exams2canvas ap- pears to encode an “all-or-nothing” scheme without partial credits (i.e., partial = FALSE). How- ever, this is necessary for Canvas to recognize the answer alternatives correctly. Despite this, Canvas always applies partial-credit evaluation (as explained above).
exams2html 13 Value exams2canvas returns a list of exams as generated by xexams. See Also exams2qti12 Examples ## load package and enforce par(ask = FALSE) library("exams") options(device.ask.default = FALSE) ## define an exams (= list of exercises) myexam
14 exams2html make_exams_write_html(template = "plain", name = NULL, question = "Question", solution = "Solution", mathjax = FALSE) Arguments file character. A specification of a (list of) exercise files. n integer. The number of copies to be compiled from file. nsamp integer. The number(s) of exercise files sampled from each list element of file. Sampling without replacement is used if possible. (Only if some element of nsamp is larger than the length of the corresponding element in file, sampling with replacement is used.) dir character specifying the output directory (default: current working directory). If only a single HTML file is produced and no dir is explicitly specified, the file is displayed in the browser rather than saved in dir. template character. A specification of a HTML template. The default is to use the "plain.html" file provided in the package unless there are Rmd exercises in file. Then, "plain8.html" is used (which expects UTF-8 encoding as used by pandoc). name character. A name prefix for resulting exercises. quiet logical. Should output be suppressed when calling xweave? edir character specifying the path of the directory (along with its sub-directories) in which the files in file are stored (see also xexams). tdir character specifying a temporary directory, by default this is chosen via tempfile. Note that this is cleaned up and potentially temporary files are deleted. sdir character specifying a directory for storing supplements, by default this is cho- sen via tempfile. verbose logical. Should information on progress of exam generation be reported? question character or logical. Should the question be included in the HTML output? If question is a character it will be used as a header for resulting questions. Argu- ment question may also be a vector that controls the output for the templates. solution character or logical, see argument question. mathjax logical. Should the JavaScript from http://www.MathJax.org/ be included for rendering mathematical formulas? By default mathjax = FALSE unless converter = "pandoc-mathjax". resolution, width, height numeric. Options for rendering PNG (or SVG) graphics passed to xweave. svg logical. Should graphics be rendered in SVG or PNG (default)? encoding character, passed to xweave. envir argument passed to xweave (which passes it to knit). base64 logical. Should supplementary files be embedded using Base 64 coding? Ar- gument base64 may also be a character vector of file suffixes that should be encoded, e.g. base64 = c("png","rda") will only encode PNG images and binary .rda files. If set to NULL only image files will be encoded.
exams2html 15 converter, ... arguments passed on to make_exercise_transform_html. The default for converter is set to "ttm" unless there are Rmd exercises in file where "pandoc" is used. seed integer matrix or logical. Either NULL (default), logical, or a matrix of random seeds for each possible exercise to be set prior to calling driver@sweave. If NULL no random seeds are set. If a matrix, the number of rows must be n and the number of columns must correspond to unlist(file). If TRUE a suitable matrix of seeds is sampled. Details exams2html generates exams in a very simple HTML format using xexams. It proceeds by (1) calling xweave on each exercise, (2) reading the resulting LaTeX code, (3) transforming the LaTeX code to HTML, and (4) embedding the HTML code in a template (a simple and plain template is used by default). For steps (1) and (2) the standard drivers in xexams are used. For step (3) a suitable transformation function is set up on the fly using make_exercise_transform_html. This transforms the LaTeX code in question/questionlist and solution/solutionlist by leveraging one of four functions: ttm produces HTML with MathML for mathematical formulas, tth produces plain HTML that aims to emulate mathematical formulas, pandoc_convert employs pandoc offering different options for handling formulas, and tex2image runs LaTeX and turns the result into a single image. In all cases, images can either be stored in supplementary files or embed- ded directly in Base 64 coding. For step (4) a simple writer function is set up on the fly that embeds the transformed HTML code into a template and writes a single HTML file for each exam. Value exams2html returns a list of exams as generated by xexams. make_exercise_transform_html returns a function that is suitable for being supplied as driver$transform to xexams. make_exams_write_html returns a function that is suitable for being supplied as driver$write to xexams. References 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. http: //www.jstatsoft.org/v58/i01/. See Also xexams, ttm, tth, pandoc_convert, tex2image, browseURL
16 exams2lops Examples ## load package and enforce par(ask = FALSE) options(device.ask.default = FALSE) if(interactive()) { ## compile a single random exam (displayed in the browser) exams2html(list( "boxplots", c("tstat", "ttest", "confint"), c("regression", "anova"), "scatterplot", "relfreq" )) ## examples with different locales (UTF-8, ISO-8859-15) ## using special characters (Euro and Pound symbol, German umlaut) if(!identical(Sys.getlocale(), "C")) { ## UTF-8 exams2html("currency8", encoding = "utf8", template = "plain8") ## ISO Latin 9 (aka ISO-8859-15) exams2html("currency9", encoding = "latin9", template = "plain9") } ## various versions of displaying mathematical formulae ## via MathML (displayed correctly in MathML-aware browsers, e.g. Firefox) exams2html("tstat") ## via MathML + MathJax (should work in all major browsers, ## note the display options you get when right-clicking on the formulas ## in the browser) exams2html("tstat", mathjax = TRUE) ## via plain HTML (works in all browsers but with inferior formatting) exams2html("tstat", converter = "tth") ## via HTML with embedded picture (works in all browsers but ## is slow and requires LaTeX and ImageMagick) ## Not run: exams2html("tstat", converter = "tex2image") ## End(Not run) } exams2lops Generation of Exams in LOPS Exam Server Format (WU Wien)
exams2lops 17 Description Automatic generation of exams in LOPS exam server format (WU Wien). Usage exams2lops(file, n = 1L, nsamp = NULL, dir = ".", name = NULL, quiet = TRUE, edir = NULL, tdir = NULL, sdir = NULL, verbose = FALSE, solution = TRUE, doctype = NULL, head = NULL, resolution = 100, width = 4, height = 4, svg = FALSE, encoding = "", converter = "tex2image", base64 = FALSE, auto_scramble = TRUE, ...) make_exams_write_lops(name = NULL, auto_scramble = TRUE, ...) Arguments file character. A specification of a (list of) exercise files. n integer. The number of copies to be compiled from file. nsamp integer. The number(s) of exercise files sampled from each list element of file. Sampling without replacement is used if possible. (Only if some element of nsamp is larger than the length of the corresponding element in file, sampling with replacement is used.) dir character. The default is the current working directory. name character. A name prefix for resulting exercises. quiet logical. Should output be suppressed when calling xweave? edir character specifying the path of the directory (along with its sub-directories) in which the files in file are stored (see also xexams). tdir character specifying a temporary directory, by default this is chosen via tempfile. Note that this is cleaned up and potentially temporary files are deleted. sdir character specifying a directory for storing supplements, by default this is cho- sen via tempfile. verbose logical. Should information on progress of exam generation be reported? solution logical. Should the solution be included in the HTML output? doctype character vector with a DOCTYPE tag for the HTML page. By default HTML4 is employed. head character vector for the head tag. By default a simple header is employed, setting the font to Arial. resolution, width, height numeric. Options for rendering PNG (or SVG) graphics passed to xweave. svg logical. Should graphics be rendered in SVG or PNG (default)? encoding character, passed to xweave. converter character. Workhorse function for transforming LaTeX code to HTML. base64 logical. Should supplementary files be embedded using Base 64 coding? Ar- gument base64 may also be a character vector of file suffixes that should be encoded, e.g. base64 = c("png","rda") will only encode PNG images and binary .rda files. If set to NULL only image files will be encoded.
18 exams2lops auto_scramble logical. Should answers be scrambled automaticall? ... arguments passed on to make_exercise_transform_html. Details exams2lops will produce a .zip file that may be uploaded. It proceeds by (1) calling xweave on each exercise, (2) reading the resulting LaTeX code, (3) transforming the LaTeX code to HTML, and (4) embedding the HTML code in a XML file using the LOPS exam server XML format (WU Wien). For steps (1) and (2) the standard drivers in xexams are used. In step (3), a suitable transformation function is set up on the fly using make_exercise_transform_html, see also the details section in exams2html. For step (4) a simple writer function is set up on the fly that embeds the transformed HTML code into the final XML files for each question and the exam. Note that in make_exams_write_lops only multiple and single choice questions are supported at the moment, since the LOPS exam server XML format (WU Wien) is used to generate printed ver- sions for large scale multiple choice exams. In addition, only images of the question/questionlist/solution/solutionlist should be generated, since the server has only minimum support for e.g. MathML markup used to produce mathematical formulas. Value exams2lops returns a list of exams as generated by xexams. make_exams_write_lops eturns a function that generates the XML code for the question in LOPS exam server format (WU Wien). References 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. http: //www.jstatsoft.org/v58/i01/. See Also xexams, ttm, tth, tex2image, make_exercise_transform_html, Examples ## Not run: ## output directory dir.create(mydir
exams2moodle 19 exams2moodle Generation of Exams in Moodle XML Format Description Automatic generation of exams in Moodle XML format. Usage exams2moodle(file, n = 1L, nsamp = NULL, dir = ".", name = NULL, quiet = TRUE, edir = NULL, tdir = NULL, sdir = NULL, verbose = FALSE, resolution = 100, width = 4, height = 4, svg = FALSE, encoding = "", iname = TRUE, stitle = NULL, testid = FALSE, zip = FALSE, num = NULL, mchoice = NULL, schoice = mchoice, string = NULL, cloze = NULL, points = NULL, rule = NULL, pluginfile = TRUE, converter = "pandoc-mathjax", envir = NULL, ...) make_question_moodle(name = NULL, solution = TRUE, shuffle = FALSE, penalty = 0, answernumbering = "abc", usecase = FALSE, cloze_mchoice_display = "MULTICHOICE", truefalse = c("True", "False"), enumerate = TRUE, abstention = NULL, eval = list(partial = TRUE, negative = FALSE, rule = "false2"), essay = NULL) Arguments file character. A specification of a (list of) exercise files. n integer. The number of copies to be compiled from file. nsamp integer. The number(s) of exercise files sampled from each list element of file. Sampling without replacement is used if possible. (Only if some element of nsamp is larger than the length of the corresponding element in file, sampling with replacement is used.) dir character. The default is the current working directory. name character. A name prefix for resulting exercises and ZIP file. quiet logical. Should output be suppressed when calling xweave? edir character specifying the path of the directory (along with its sub-directories) in which the files in file are stored (see also xexams). tdir character specifying a temporary directory, by default this is chosen via tempfile. Note that this is cleaned up and potentially temporary files are deleted. sdir character specifying a directory for storing supplements, by default this is cho- sen via tempfile. verbose logical. Should information on progress of exam generation be reported?
20 exams2moodle resolution, width, height numeric. Options for rendering PNG (or SVG) graphics passed to xweave. svg logical. Should graphics be rendered in SVG or PNG (default)? encoding, envir arguments passed to xweave. iname logical. Should the exam name be included in the path in the tag in the final XML file? This option may be useful when questions should be added to certain already existing question banks, i.e. iname = TRUE will include the exam name by $course$/ExamName/. stitle character. For the questions specified in argument file, additional section titles may be set. The section titles will then be added to the tag in the final XML file (see also argument iname), i.e. the section name for each ques- tion will be written to $course$/ExamName/SectionName. Note that section names may also be provided in the \exsection{} tag in the .Rnw file of the question. However, section names that are specified in stitle will overwrite \exsection{} tags. stitle may also include NA, e.g. stitle = c("Exercise 1",NA,"Exercise 3"). testid logical. Should an unique test id be added to the exam name. zip logical. Should the resulting XML file be zipped? num function or named list applied to numerical (i.e., type num) questions. If num is a function, num will be used for generating the item body of the question, see function make_itembody_qti12(). If num is a named list, these arguments will be passed to function make_itembody_qti12(). mchoice, schoice, string, cloze function or named list applied to multiple choice, single choice, string, and cloze questions (i.e., type mchoice, schoice, string, and cloze), respectively. See argument num for more details. points integer. How many points should be assigned to each exercise? Note that this ar- gument overules any exercise points that are provided within an "\expoints{}" tag in the .Rnw file. The vector of points supplied is expanded to the number of exercises in the exam. rule character specifying which rule to use for negative partial credits. see function exams_eval. Note that the default using cloze exercises is rule = "none". pluginfile logical. Should supplements be included in the Moodle XML file via Moodle’s Pluginfile mechanism? This is the default but may not work with older ver- sions of Moodle (
exams2moodle 21 usecase logical. Should string questions be case sensitive or not. cloze_mchoice_display character. In cloze type questions, the user may set the visual appearance of choice questions in either a drop down menue (default) "MULTICHOICE", vertical alignment "MULTICHOICE_V" or horizontal "MULTICHOICE_H". truefalse character of length 2. For single choice answers in cloze questions, the user may specify the possible options shown. enumerate logical. In cloze questions, if set to TRUE, the answerlist and solutionlist will be enumerated. abstention character or logical. Should an explicit abstention option be added in single/multiple choice exercises? The character text specified is used for an extra button in Moo- dle which (when selected) always leads to zero points. eval named list, specifies the settings for the evaluation policy, see function exams_eval. essay logical. Should string questions be rendered into Moodle shortanswer or essay questions? The default is to use shortanswer unless either essay=TRUE or the exercise’s metainformation is set to essay. converter, ... arguments passed on to make_exercise_transform_html. The default for converter is "pandoc-mathjax" which assumes that the quiz is imported in a Moodle site with MathJax plugin activated (which is the default setting in Moodle). For using MathML instead of MathJax the converter can be set to NULL or "pandoc-mathml" etc. For details see Zeileis (2019). Details exams2moodle produces an XML file that may be uploaded into Moodle. It proceeds by (1) call- ing xweave on each exercise, (2) reading the resulting LaTeX code, (3) transforming the LaTeX code to HTML, and (4) embedding the HTML code in a XML file using the Moodle standards for exams/quizzes. For steps (1) and (2) the standard drivers in xexams are used. In step (3), a suitable transformation function is set up on the fly using make_exercise_transform_html, see also the details section in exams2html. For step (4), the function will cycle through all questions and exams to generate the final XML file in Moodle standard. The structure of the resulting XML file is such that one category will be set for the exam/quiz using the exam/quiz name (or this category may be suppressed (i.e., not included in the XML) by setting iname = FALSE), followed by one category/section for each question, while the replicates of each question will be included in the corresponding category/section. Note that category/section names may also be provided in the \exsection{} tag in the .Rnw files, or within argument stitle in exams2moodle. This may be useful when questions should automatically be added to already existing Moodle question banks. (See also the argument descriptions above.) The XML code for each question is then generated using function make_question_moodle. Note that for each question type, either the arguments of make_question_moodle may be set within num, mchoice, schoice, string and cloze in exams2moodle, by providing a named list of specifications that should be used, or for each questiontype, a function that produces the question XML code may be provided to num, mchoice, schoice, string and cloze. E.g., to suppress the solution for numeric questions one may set num = list(solution = FALSE).
22 exams2moodle When specifying cloze exercises, two approaches are possible: Either a answerlist with all ques- tions is provided within the question or, alternatively, the answer fields can be placed anywhere in the question text. For the latter, the strings ##ANSWER1##, ##ANSWER2##, etc., have to be used, see the exercises "boxhist2.Rnw" and "fourfold2.Rnw" for illustration and Appendix C in Zeileis et al. (2014) for further details. To fix the width of numeric answer fields withing cloze exercises (in order not to convey any clues about the length of the correct solution), the \exextra[numwidth] metainformation command can be used in the .Rnw exercise. For example, it can be set to \exextra[numwidth,logical]{TRUE}, \exextra[numwidth,numeric]{5}, or \exextra[numwidth,character]{100.0}. In order to generate free text questions in moodle one may specify extra parameters via \exextra. Currently the following options are supported: • essay: logical. Enables the essay function. • format: character. Type of text field (one of: plain, editor, editorfilepicker monospaced noinline) • required: logical. Whether an answer is required. • attachments: numeric. How many attachments can be uploaded. • attachmentsrequired: numeric. The number of required attachments. Value exams2moodle returns a list of exams as generated by xexams. make_question_moodle returns a function that generates the XML code for the question in Moo- dle’s XML standard. References Dougiamas M, et al. (2019). Moodle, Version 3.6. http://moodle.org/. MoodleDocs (2019). Moodle XML Format. http://docs.moodle.org/en/Moodle_XML 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. http: //www.jstatsoft.org/v58/i01/. Zeileis A (2019). Mathematical Notation in Online R/exams. http://www.R-exams.org/tutorials/ math/ See Also xexams, ttm, tth, tex2image, make_exercise_transform_html, Examples ## load package and enforce par(ask = FALSE) library("exams") options(device.ask.default = FALSE) ## define an exams (= list of exercises)
exams2nops 23 myexam
24 exams2nops nsamp integer. The number(s) of exercise files sampled from each list element of file. Sampling without replacement is used if possible. (Only if some element of nsamp is larger than the length of the corresponding element in file, sampling with replacement is used.) dir character. The default is either display on the screen or the current working directory. name character. A name prefix for resulting exams and RDS file. language character. Path to a DCF file with a language specification. See below for the list of supported languages. title character. Title of the exam, e.g., "Introduction to Statistics". course character. Optional course number, e.g., "101". institution character. Name of the institution at which the exam is conducted. logo character. Path to a logo image. If the logo is not found, it is simply omitted. date character or "Date" object specifying the date of the exam. replacement logical. Should a replacement exam sheet be included? intro character. Either a single string with the path to a .tex file or a vector with with LaTeX code for optional introduction text on the first page of the exam. blank integer. Number of blank pages to be added at the end. (Default is chosen to be half of the number of exercises.) If pages is specified, blank can also be a vector of length two with blank pages before and after the extra pages, respectively. duplex logical. Should blank pages be added after the title page (for duplex printing)? pages character. Path(s) to additional PDF pages to be included at the end of the exam (e.g., formulary or distribution tables). usepackage character. Names of additional LaTeX packages to be included. 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. encoding character, passed to xweave. startid integer. Starting ID for the exam numbers (defaults to 1). points integer. How many points should be assigned to each exercise? Note that this argument overules any exercise points that are provided within the expoints tags of the exercise files (if any). The vector of points supplied should either have length 1 or the number of exercises in the exam. showpoints logical. Should the PDF show the number of points associated with each exer- cise (if specified in the Rnw/Rmd exercise or in points)? samepage logical. Should the itemized question lists be forced to be on the same page? twocolumn logical. Should a two-column layout be used? reglength integer. Number of digits in the registration ID. The default is 7 and it can be increased up to 10. seed integer matrix or logical. Either NULL (default), logical, or a matrix of random seeds for each possible exercise to be set prior to calling driver@sweave. If NULL no random seeds are set. If a matrix, the number of rows must be n and the number of columns must correspond to unlist(file). If TRUE a suitable matrix of seeds is sampled.
exams2nops 25 ... arguments passed on to exams2pdf. nchoice character. The number of choice alternatives per exercise. Details exams2nops is a convenience interface for exams2pdf with a dynamically generated title page which can be printed, scanned with nops_scan and evaluated automatically by nops_eval. It is originally intended for single- and multiple choice (schoice/mchoice) questions only but has also some limited support for open-ended (string) questions. The exam sheet consists of various sections where information is either printed our filled in by the students. The section with personal data is just for human readers, it is not read automatically. The registration number has to be filled in in digits and also marked with corresponding crosses where only the latter is read automatically. The exam ID/type/scrambling are printed directly into the PDF and read automatically after scanning. Note that the font in the PDF must not be modified for the reading step to work reliably. (A sans-serif font is used and hence the sfmath LaTeX package is also used - if it is installed.) The questions can have up to five alternatives which have to answered by the students. The crosses are read automatically where both empty and completely filled boxes are regarded as not crossed. Tutorial for NOPS workflow: http://www.R-exams.org/tutorials/exams2nops/. Limitations: (a) Only up to five answer alternatives per question are supported. (b) Currently, only up to 45 questions are supported. If you have more questions, consider splitting the entire exam up into two NOPS exams. (c) Only up to 3 open-ended questions can be included. (d) Each question must have the same number of answer alternatives and the same number of points across random replications. For example, the n replications drawn for the first exercise all need, say, five alternatives and two points. Then, the second exercise may have, say, four alternatives and five points and so on. But this may not be mixed within the same exercise number. The examples below show how PDF exams can be generated along with an RDS file with (seri- alized) R data containing all meta-information about the exam. The PDFs can be printed out for conducting the exam and the exam sheet from the first page then needs to be scanned into PDF or PNG images. Then the information from these scanned images can be read by nops_scan, ex- tracting information about the exam, the participants, and the corresponding answers (as described above). The ZIP file produced by nops_scan along with the RDS of the exam meta-information and a CSV file with participant information can then be used by nops_eval to automatically evaluate the whole exam and producing HTML reports for each participant. See nops_eval for a worked example. Currently, up to three open-ended string questions can also be included. These do not generate boxes on the first exam sheet but instead a second exam sheet is produced for these open-ended questions. It is assumed that a human reader reads these open-ended questions and then assigns points by marking boxes on this separate sheet. Subsequently, this sheet can also be read by nops_scan. The language elements can be specified through a relatively simple text file and the package al- ready ships with: English ("en"), Croatian ("hr"), Danish ("da"), Dutch ("nl"), Finnish ("fi"), French ("fr"), German ("de"), Hungarian ("hu"), Italian ("it"), Japanese ("ja"), Korean ("ko"), Norwegian (Bokmål, "no"), Portuguese ("pt-PT" or "pt-BR"; also "pt" is synonymous with "pt-PT"), Romanian ("ro"), Russian ("ru"), Serbian ("sr"), Slovak ("sk"), Slovenian ("sl"), Spanish ("es"), Swiss German ("gsw"), Turkish ("tr"), Vietnamese ("vi"). Note that the lan- guage names correspond to the ISO 639 codes (https://www.loc.gov/standards/iso639-2/ php/code_list.php) or IETF language tags (https://en.wikipedia.org/wiki/IETF_language_
26 exams2nops tag) if no ISO 639 codes exists (as for Brazilian Portuguese). For more details about the underlying text file in DCF format, see http://www.R-exams.org/tutorials/nops_language/ Value A list of exams as generated by xexams is returned invisibly. Examples ## 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
exams2openolat 27 options(exams_tex = oopt$exams_tex) exams2openolat Generation of Exams for OpenOLAT Description Automatic generation of exams in QTI 2.1 (or 1.2) with some tweaks optimized for OpenOLAT. Usage exams2openolat(file, n = 1L, dir = ".", name = "olattest", qti = "2.1", converter = "pandoc-mathjax", table = TRUE, maxattempts = 1, ...) Arguments file character. A specification of a (list of) exercise files. n integer. The number of copies to be compiled from file. dir character. The default is the current working directory. name character. A name prefix for resulting exercises and ZIP file. qti character indicating whether QTI "1.2" or "2.1" (default) should be generated. converter character passed on to make_exercise_transform_html, indicating the type of converter from LaTeX/Markdown to HTML. Defaults to HTML with MathJax (and OpenOLAT-specific fixups). table logical or character. Should a dedicated table class be used in the HTML for OpenOLAT? For details see below. maxattempts integer. The maximum attempts for one question (must be smaller than 100000). ... arguments passed on to exams2qti12 or exams2qti21, respectively. Details exams2openolat is a convenience interface to exams2qti12 and exams2qti21 for generating either QTI 1.2 or 2.1 (default) output with some small tweaks for OpenOLAT. Specifically, the MathJax output from pandoc is post-processed as expected by OpenOLAT. Dedicated table classes currently include: Full-width tables with borders ("b_grid", "b_border") or without ("b_full", "b_borderless"). Or regular tables without background color ("b_middle") or with white grid and color background ("b_gray", "b_red", "b_green", "b_blue", "b_yellow"). Setting table = TRUE corresponds to table = "b_gray". Value exams2openolat returns a list of exams as generated by xexams.
28 exams2pandoc See Also exams2qti12, exams2qti21 Examples ## load package and enforce par(ask = FALSE) library("exams") options(device.ask.default = FALSE) ## define an exams (= list of exercises) myexam
exams2pandoc 29 nsamp integer. The number(s) of exercise files sampled from each list element of file. Sampling without replacement is used if possible. (Only if some element of nsamp is larger than the length of the corresponding element in file, sampling with replacement is used.) dir character specifying the output directory (default: current working directory). If only a single HTML file is produced and no dir is explicitly specified, the file is displayed in the browser rather than saved in dir. name character. A name prefix for resulting exercises. type character. The file type to convert to using pandoc. The default is "docx" (but other choices are also supported, e.g., "odt", "html", "markdown" etc.). template character. A specification of a template in either LaTeX, HTML, or Markdown format. The default is to use the "plain.tex" file provided but an alternative "plain.html" is also available. question character or logical. Should the question be included in the output? If question is a character it will be used as a header for resulting questions. solution character or logical, see argument question. header list. A list of named character strings (or functions generating such) to be sub- stituted in the template. inputs character. Names of files that are needed as inputs for the template (e.g., im- ages, headers). Either the full path must be given or the file needs to be in edir. options character. A string of options to be passed on to pandoc_convert. quiet logical. Should output be suppressed when calling xweave? resolution, width, height numeric. Options for rendering PNG (or SVG) graphics passed to xweave. svg logical. Should graphics be rendered in SVG or PNG (default)? encoding character, passed to xweave. edir character specifying the path of the directory (along with its sub-directories) in which the files in file are stored (see also xexams). tdir character specifying a temporary directory, by default this is chosen via tempfile. Note that this is cleaned up and potentially temporary files are deleted. sdir character specifying a directory for storing supplements, by default this is cho- sen via tempfile. verbose logical. Should information on progress of exam generation be reported? points integer. How many points should be assigned to each exercise? Note that this argument overules any exercise points that are provided within the expoints tags of the exercise files (if any). The vector of points supplied should either have length 1 or the number of exercises in the exam. ... currently not used. Details exams2pandoc can generate exams in various output formats (by default docx) using xexams and pandoc_convert. It proceeds by (1) calling xweave on each exercise, (2) reading the resulting
You can also read