Как отображать баллы за упражнение при печати в pdf через `exams2pdf`? - PullRequest
2 голосов
/ 14 апреля 2020

Рассмотрите возможность создания экзаменов с использованием пакета exams в R.

При использовании exams2nops есть параметр showpoints, который при установке на TRUE будет показывать баллы каждого упражнения. Однако для exams2pdf этот параметр недоступен .

Как отобразить баллы за упражнение при использовании exams2pdf?

1 Ответ

2 голосов
/ 16 апреля 2020

(Ответ ниже адаптирован с форума R / экзаменов по адресу https://R-Forge.R-project.org/forum/forum.php?thread_id=33884&forum_id=4377&group_id=1337.)

В настоящее время нет встроенного решения для автоматического отображения количества баллов в exams2pdf(). Аргумент points= хранит только количество точек в объекте R, которое exams2pdf() создает (как в других exams2xyz() интерфейсах), но не в отдельных файлах PDF.

Таким образом , если вы хотите, чтобы точки отображались, вам нужно сделать это каким-то образом самостоятельно. Простым решением было бы включить его в отдельные упражнения уже, возможно, в зависимости от типа используемого интерфейса, например, что-то вроде этого для упражнения .Rmd:

pts <- 17
pts_string <- if(match_exams_call() == "exams2pdf") {
  sprintf("_(%s points)_", pts)
} else {
  ""
}

И затем в начале «Вопрос»:

Question
========
`r pts_string` And here starts the question text...

Наконец, в метаинформации

expoints: `r pts`

Сюда всегда включаются нужные метаинформации, но они отображаются только в вопросе при использовании * 1023. *. Это очень гибко и может быть легко настроено в дальнейшем. Единственным недостатком является то, что он не реагирует на аргумент exams2pdf(..., points = ...).

В упражнениях .Rnw нужно будет использовать \Sexpr{...} вместо <code>r .... Кроме того, pts_string должен быть чем-то вроде sprintf("\\emph{(%s points)}", pts).

Наконец, более сложным решением было бы создать подходящий \newcommand в шаблоне .tex, который вы используете. Если все упражнения имеют одинаковое количество баллов, это не сложно сделать. Но если бы все разные упражнения могли иметь разное количество баллов, это потребовало бы большего участия.

Основная причина для поддержки этого в exams2nops(), но не exams2pdf(), состоит в том, что первое имеет довольно ограничительные формат и словарный запас. Однако в последнем случае смысл заключается в том, чтобы предоставить пользователям полную свободу в отношении макета, языка и т. Д. c. Следовательно, я не видел решения, которое было бы достаточно простым, но и достаточно гибким, чтобы охватить все варианты использования exams2pdf().

...