exams2nops(r-exams)的介绍页面
Introduction page for exams2nops (r-exams)
我想使用您出色的 r-exams 软件包来创建具有自动评分功能的纸笔考试。我过去曾使用 exams2nops 来做一系列的选择题和选择题。
但是,我现在需要参加一个带有介绍页面的考试,在该页面上我给出 table 数据和统计软件的一些输出(比如正态性检验、Levene 等...我可以生成它与 Rmd) 并讲述有关数据和收集数据所涉及实验的小历史。
所以我的考试结构是:
第 1 页。学生姓名、编号和答案框 sheet
第 2 页。包含数据集的介绍性页面,并选择了 figures/outputs 用于测试假设(没有问题)
第3页.问题1.1
第4页,问题1.2。
...
第 k 页:问题 n.
这可以吗。我想新奇之处在于“介绍”页面……之后就是一个 exams2nops 文件……
提前感谢任何想法或想法...
若昂
如何实现这一点取决于介绍页面是否对所有参与者都相同,或者它是否应该包含每个考试的不同data/graphics/information。
每个人的信息相同
您可以使用 exams2pdf(..., intro = ...)
.
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.
请注意,如果此 LaTeX 代码包含图形(或其他文件),则需要将其包含在完整路径中,因为 LaTeX 代码是在不同的(临时)目录中编译的。
随机信息
如果每次考试都随机生成不同的data/graphics/information,那么实现这一点的最佳方法是将其放入第一题。您可以通过在第一个练习中构建“问题”环境的内容来强调材料的不同作用,例如:
- 以粗体的“一般信息”开头。
- 然后data/graphics/information.
- 然后用粗体包括“第一个问题”and/or 一个分页符,例如,通过
\newpage
。
- 然后才是真正的第一题。
如果您这样做,那么与您的理想结构的主要偏差是第一个分项点“1”。是在一般信息的开头,而不是实际的第一个问题。但我认为不值得为 exams2nops()
.
设置一种全新类型的“随机介绍文本”
如果您想向参与者强调这一点,以免有人忽略第一个问题,您可以将其与一般性的 intro
结合起来,例如:
intro <- paste(c(
"\textbf{\large Important information}",
"",
"Please note that the first question a data set is introduced that is also used in subsequent questions. The actual first question is included below the general introducation.",
"\newpage"),
collapse = "\n")
exams2nops(..., intro = intro)
我们的解决方案 - 比方说 - 5 个不同的版本:
使用随机生成的数据准备您自己的介绍(即 Intro.Rmd
)。我们的 Intro.Rmd
还将生成的数据帧保存在名为 Databases
的文件夹中。然后由对应循环 (i
) 的每个练习调用。
将 rmd 文件渲染为 pdf 时,您必须在 rmd 的 yaml 中调用正确的 LaTeX 包 header。我们的案例:
- \usepackage{booktabs}
- \usepackage{longtable}
- \usepackage{array}
- \usepackage{multirow}
- \usepackage{wrapfig}
- \usepackage{float}
- \usepackage{colortbl}
- \usepackage{pdflscape}
- \usepackage{tabu}
- \usepackage{threeparttable}
- \usepackage{threeparttablex}
- \usepackage[normalem]{ulem}
- \usepackage{makecell}
- \usepackage{xcolor}
创建了几个文件夹:
- 一个用于生成的介绍(即
Intros
);
- 一个用于 exams2nops 生成的 PDF(即
nops_pdf
);
- 一个用于吐出的文件(即
subsets
);
- 一个用于最终合并版本(即
exams
)。
循环:
for (i in 1:5) {
rmarkdown::render(input = "Intro.Rmd",output_file = paste0("Intros/Intro_v",i,".pdf"))
exams2nops(questions, n = 1, nsamp = 1, intro = "Leia as questões com atenção e MARQUE TODAS AS SUAS RESPOSTAS NA FOLHA DE RESPOSTAS! Este exame tem a duração de 60 minutos. Boa sorte!", language = "pt-PT", institution = "Análise Estatística II", title = "Época Normal: Métodos Tipo I - ",dir = "nops_pdf", name = paste0("Ex_AEII_MTI_v",i,"_"), date = "2020-12-01",encoding = "UTF-8", blank = 0, nchoice = 5, duplex = T, reglength = 7L, points = 4, replacement = T,schoice = list(eval = ee))
pdf_subset(input = paste0("nops_pdf/Ex_AEII_MTI_v",i,"_1.pdf"),pages = c(1,3),
output = paste0("subsets/subset_",i,"_part1.pdf"))
pdf_subset(input = paste0("nops_pdf/Ex_AEII_MTI_v",i,"_1.pdf"),pages = c(5:pdf_length(paste0("nops_pdf/Ex_AEII_MTI_v",i,"_1.pdf"))),
output = paste0("subsets/subset_",i,"_part2.pdf"))
pdf_combine(input = c(paste0("subsets/subset_",i,"_part1.pdf"),
paste0("Intros/Intro_v",i,".pdf"),
paste0("subsets/subset_",i,"_part2.pdf")),
output = paste0("exams/exams_v",i,".pdf"))
}
Achim,你说 Intro.Rmd
生成的 pdf 可以使用 exams2nops
合并,你能举例说明如何吗?
我想使用您出色的 r-exams 软件包来创建具有自动评分功能的纸笔考试。我过去曾使用 exams2nops 来做一系列的选择题和选择题。
但是,我现在需要参加一个带有介绍页面的考试,在该页面上我给出 table 数据和统计软件的一些输出(比如正态性检验、Levene 等...我可以生成它与 Rmd) 并讲述有关数据和收集数据所涉及实验的小历史。
所以我的考试结构是:
第 1 页。学生姓名、编号和答案框 sheet
第 2 页。包含数据集的介绍性页面,并选择了 figures/outputs 用于测试假设(没有问题)
第3页.问题1.1
第4页,问题1.2。 ... 第 k 页:问题 n.
这可以吗。我想新奇之处在于“介绍”页面……之后就是一个 exams2nops 文件……
提前感谢任何想法或想法...
若昂
如何实现这一点取决于介绍页面是否对所有参与者都相同,或者它是否应该包含每个考试的不同data/graphics/information。
每个人的信息相同
您可以使用 exams2pdf(..., intro = ...)
.
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.
请注意,如果此 LaTeX 代码包含图形(或其他文件),则需要将其包含在完整路径中,因为 LaTeX 代码是在不同的(临时)目录中编译的。
随机信息
如果每次考试都随机生成不同的data/graphics/information,那么实现这一点的最佳方法是将其放入第一题。您可以通过在第一个练习中构建“问题”环境的内容来强调材料的不同作用,例如:
- 以粗体的“一般信息”开头。
- 然后data/graphics/information.
- 然后用粗体包括“第一个问题”and/or 一个分页符,例如,通过
\newpage
。 - 然后才是真正的第一题。
如果您这样做,那么与您的理想结构的主要偏差是第一个分项点“1”。是在一般信息的开头,而不是实际的第一个问题。但我认为不值得为 exams2nops()
.
如果您想向参与者强调这一点,以免有人忽略第一个问题,您可以将其与一般性的 intro
结合起来,例如:
intro <- paste(c(
"\textbf{\large Important information}",
"",
"Please note that the first question a data set is introduced that is also used in subsequent questions. The actual first question is included below the general introducation.",
"\newpage"),
collapse = "\n")
exams2nops(..., intro = intro)
我们的解决方案 - 比方说 - 5 个不同的版本:
使用随机生成的数据准备您自己的介绍(即 Intro.Rmd
)。我们的 Intro.Rmd
还将生成的数据帧保存在名为 Databases
的文件夹中。然后由对应循环 (i
) 的每个练习调用。
将 rmd 文件渲染为 pdf 时,您必须在 rmd 的 yaml 中调用正确的 LaTeX 包 header。我们的案例:
- \usepackage{booktabs}
- \usepackage{longtable}
- \usepackage{array}
- \usepackage{multirow}
- \usepackage{wrapfig}
- \usepackage{float}
- \usepackage{colortbl}
- \usepackage{pdflscape}
- \usepackage{tabu}
- \usepackage{threeparttable}
- \usepackage{threeparttablex}
- \usepackage[normalem]{ulem}
- \usepackage{makecell}
- \usepackage{xcolor}
创建了几个文件夹:
- 一个用于生成的介绍(即
Intros
); - 一个用于 exams2nops 生成的 PDF(即
nops_pdf
); - 一个用于吐出的文件(即
subsets
); - 一个用于最终合并版本(即
exams
)。
循环:
for (i in 1:5) {
rmarkdown::render(input = "Intro.Rmd",output_file = paste0("Intros/Intro_v",i,".pdf"))
exams2nops(questions, n = 1, nsamp = 1, intro = "Leia as questões com atenção e MARQUE TODAS AS SUAS RESPOSTAS NA FOLHA DE RESPOSTAS! Este exame tem a duração de 60 minutos. Boa sorte!", language = "pt-PT", institution = "Análise Estatística II", title = "Época Normal: Métodos Tipo I - ",dir = "nops_pdf", name = paste0("Ex_AEII_MTI_v",i,"_"), date = "2020-12-01",encoding = "UTF-8", blank = 0, nchoice = 5, duplex = T, reglength = 7L, points = 4, replacement = T,schoice = list(eval = ee))
pdf_subset(input = paste0("nops_pdf/Ex_AEII_MTI_v",i,"_1.pdf"),pages = c(1,3),
output = paste0("subsets/subset_",i,"_part1.pdf"))
pdf_subset(input = paste0("nops_pdf/Ex_AEII_MTI_v",i,"_1.pdf"),pages = c(5:pdf_length(paste0("nops_pdf/Ex_AEII_MTI_v",i,"_1.pdf"))),
output = paste0("subsets/subset_",i,"_part2.pdf"))
pdf_combine(input = c(paste0("subsets/subset_",i,"_part1.pdf"),
paste0("Intros/Intro_v",i,".pdf"),
paste0("subsets/subset_",i,"_part2.pdf")),
output = paste0("exams/exams_v",i,".pdf"))
}
Achim,你说 Intro.Rmd
生成的 pdf 可以使用 exams2nops
合并,你能举例说明如何吗?