Почему таблица, сгенерированная на основе r-экзаменов, не отображается в Moodle?

#moodle #r-exams

Вопрос:

Я определил переменные и данные, необходимые для создания таблицы частот в RMarkdown, чтобы экспортировать ее в Moodle, используя R-экзамены:

 xsubio<-c(sample(5:35,5))
xsubi<-sort(xsubio)
frecuencias<-sample(0:30 ,5)

tabla<-data.frame(xsubi,frecuencias)
colnames(tabla)<-c(" Edades" ,"Personas")
 

Через кусок я создаю таблицу:

 ```{r, eval=TRUE,echo=FALSE,results='asis',warning=FALSE,message=FALSE,error=FALSE}
   library(exams)
   print(xtable(tabla), include.rownames=FALSE)
```
 

При экспорте в PDF с помощью exams2pdf таблица отображается идеально:

введите описание изображения здесь

Но при экспорте в Moodle с помощью exams2moodle таблица исчезает:

введите описание изображения здесь

Что мне нужно сделать, чтобы это появилось?

Ответ №1:

Проблема: У вас есть упражнение с форматированием в Markdown и использованием xtable() для вставки таблицы в LaTeX. Эта смесь Markdown LaTeX не является проблемой при преобразовании упражнения в PDF. Внутренне это сохраняет таблицу LaTeX и просто преобразует части уценки в LaTeX, а также перед отображением LaTeX в PDF. Однако то же самое невозможно автоматически при преобразовании упражнения по уценке в HTML для Moodle. Затем конвертер не отделяет часть LaTeX автоматически, чтобы преобразовать ее в HTML.

Короче говоря: различные наценки должны быть достаточно синхронизированы. Разметка Markdown LaTeX для вывода PDF работает, а разметка Markdown HTML для вывода HTML работает. Но что было бы еще лучше, так это полностью синхронизировать разметку, т. Е. LaTeX LaTeX или Markdown Markdown. Затем такие упражнения могут быть автоматически переведены в формат PDF или HTML.

Возможные решения:

  1. Уценка Уценка: Разметка таблицы уценки в упражнении R/Markdown (Rmd)
    Я бы рекомендовал вам просто создавать таблицы в Markdown через knitr::kable() , а не xtable::xtable() . Таким образом, фрагмент кода для таблицы просто становится

     knitr::kable(tabla, format = "markdown")
     

    а затем таблицы отображаются правильно как в форматах PDF, так и в форматах на основе HTML, таких как Moodle.

  2. Латекс латекс: разметка таблицы латекса в упражнении R/LaTeX (Rnw)
    В случае, если вы предпочитаете продолжать генерировать таблицы LaTeX xtable() другим маршрутом, было бы изменить разметку упражнения R/exams на Rnw (R/LaTeX). Смотрите руководство по первым шагам на веб-странице R/экзамены, чтобы узнать, как это сделать.
  3. Уценка Адаптивная: Выберите правильную разметку таблицы в зависимости от формата вывода
    Используя эту match_exams_call() функцию, вы можете определить в выполняемом упражнении, какой exams2xyz() интерфейс используется для его обработки. Так что вы могли бы сделать

     type <- if(match_exams_call() %in% c("exams2pdf", "exams2nops")) "latex" else "html"
    print(xtable(tabla), type = type, ...)
     

    Затем создается формат LaTeX или HTML xtable() .

Все три решения работают в принципе, но я думаю, что решение 1 ( kable() ) является лучшим и наиболее надежным в вашем случае.

Бонусное замечание: Если вы используете R/exams 2.4-0 (текущая версия разработки на момент написания статьи), вы можете использовать exams2moodle(...,table = TRUE) более удобное форматирование таблиц в Moodle.

Комментарии:

1. Я выбрал вариант варианта 3 ваших ответов: Адаптивная уценка, который я объясняю ниже … Еще раз большое вам спасибо.

Ответ №2:

Я использую следующий фрагмент кода (с типом = «latex»), когда мне требуется вывод в формате PDF:

 ```{r, eval=TRUE, only.contents=TRUE, echo=FALSE, results='asis', 
    warning=FALSE, message=FALSE, error=FALSE, comment=FALSE}
    library(exams)
    library(xtable)
    print(xtable(tabla), include.rownames=FALSE, type = "latex", comment=F)
```
 

И, когда мне требуются выходные данные для Moodle, я использую следующий фрагмент кода (с типом = «html»):

 ```{r, eval=TRUE, only.contents=TRUE, echo=FALSE, results='asis', 
    warning=FALSE, message=FALSE, error=FALSE, comment=FALSE}
    library(exams)
    library(xtable)
    print(xtable(tabla), include.rownames=FALSE, type = "html", 
    comment=F)
```
 

Результаты в формате PDF:

PDF

Результаты для Moodle:

введите описание изображения здесь