【问题标题】:R/exams appears not returning the right solution of an examR/exams 似乎没有返回正确的考试解决方案
【发布时间】:2021-03-27 09:27:16
【问题描述】:

我有以下问题:

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```
```{r, include = FALSE}
correct <- c(
  "A (correct)
  \\vspace{1cm}
  
  $$\\int f\\left(x\\right) dx$$
  
  ", 
  "B (correct)",
  "C (correct)"
)
correct <- sample(correct, 2)

incorrect <- c(
  "D (incorrect)",
  "E (incorrect)",
  "F (incorrect)",
  "G (incorrect)",
  "H (incorrect)",
  "I (incorrect)"
)
incorrect <- sample(incorrect, 6)
```

Question
========
  
Select from the followings items.

\begin{answerlist}
  \item `r correct[1]`
  \item `r correct[2]`
  \item `r incorrect[1]`
  \item `r incorrect[2]`
  \item `r incorrect[3]`
  \item `r incorrect[4]`
  \item `r incorrect[5]`
  \item `r incorrect[6]`
\end{answerlist}

Meta-information
================
exname: My question
extype: mchoice
exsolution: 11000000
exshuffle: TRUE

我使用以下代码生成考试:

library(exams)

myexam <- list(
  "question.Rmd",
  "question.Rmd",
  "question.Rmd",
  "question.Rmd"
)

exm <- exams2pdf(myexam,dir = "/tmp/", template = "x.tex")

exm[[1]][[1]]$metainfo$solution

我的模板在哪里:

\documentclass[a4paper]{article}

\usepackage[T1]{fontenc}
\usepackage[portuges]{babel}
\usepackage{graphicx}
\usepackage{fancyhdr}
\usepackage{longtable}
\usepackage{multicol}
\usepackage{enumitem}
\setlength{\parindent}{0em}
\setlength{\parskip}{\bigskipamount}
\pagestyle{fancy}
\setlength\headheight{55pt}
\fancyhf{} % sets both header and footer to nothing
\renewcommand{\headrulewidth}{0pt}

\newenvironment{answerlist}%
  {\renewcommand{\labelenumii}{(\alph{enumii})}\begin{multicols}{4}\begin{enumerate}}%
  {\end{enumerate}\end{multicols}}

\newenvironment{question}{\item }{}

%\setkeys{Gin}{keepaspectratio}



\begin{document}

This is my exam!

Part 1

\begin{enumerate}
%% \exinput{exercises}
\end{enumerate}

Part 2

\begin{enumerate}[resume]
\input{exercise4}
\end{enumerate}

\end{document}

但是,我在考试中的问题 1 的解决方案不正确 (exm[[1]][[1]]$metainfo$solution)。这是一个错误吗?还是我做错了什么?

但是,我在考试中的问题 1 的解决方案不正确 (exm[[1]][[1]]$metainfo$solution)。这是一个错误吗?还是我做错了什么?

(很抱歉重复最后几段,否则 Stackoverflow 将不允许我发布 - 它抱怨代码太多。)

【问题讨论】:

    标签: r-exams


    【解决方案1】:

    问题是你在 Markdown 练习中使用了 LaTeX 风格的 {answerlist} 环境。因此,答案列表在内部未正确处理,但仍会呈现,但仅在通过 LaTeX 进行呈现时(就像您在 exams2pdf() 中所做的那样)。如果您使用exams2html("question.Rmd"),您会看到未显示答案列表。不幸的是,没有抛出错误,我会检查是否可以改进。

    要解决这个问题,您需要使用 Markdown 样式的问题列表,或者“手动”

    Answerlist
    ----------
    * `r correct[1]`
    * `r correct[2]`
    * `r incorrect[1]`
    * `r incorrect[2]`
    * `r incorrect[3]`
    * `r incorrect[4]`
    * `r incorrect[5]`
    * `r incorrect[6]`
    

    或通过answerlist() 函数(如已显示在:Questions with a fixed and pre-specified number of true and false answers)。

    ```{r, echo = FALSE, results = "asis"}
    answerlist(c(correct, incorrect), markup = "markdown")
    ```
    

    【讨论】:

    • 谢谢,Achim,这行得通!您已经简化了很多创建随机检查的过程。我已经有一个在 LyX/LaTeX 中正常工作的系统来随机化考试,但它太复杂了。
    猜你喜欢
    • 1970-01-01
    • 2018-08-30
    • 1970-01-01
    • 1970-01-01
    • 2021-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多