В файле knitr Rnw есть необязательный вывод в child - PullRequest
0 голосов
/ 09 октября 2018

Я использую файлы Rnw для создания экзаменов для своих студентов, я помещаю отдельный тест в дочерний файл Rnw и включаю их в основной файл Rnw следующим образом:

<<child="xx.Rnw">>@

xx.Rnw содержит формулировку проблемы итакже ответ.Я хочу иметь две версии экзамена, одну без ответа и одну с ответом.Это означает, что мне нужно что-то, что может условно генерировать два типа PDF.

Ответная часть представляет собой смесь << >> @ кода и латекса.У кого-нибудь есть хорошая идея, как сделать это гибким способом?Спасибо!

1 Ответ

0 голосов
/ 06 февраля 2019

Для каждой постановки задачи вы можете создать 2 дочерних фрагмента.Первый кусок вызывает rnw без ответов, а второй кусок вызывает rnw с ответом.В начале документа rnw создайте 2 переменные с именами hide_answer и show_answer и установите для параметра чанка eval дочерних чанков rnw, в котором отсутствует ответ, значение hide_answer, а для параметра чанка evalдочерние блоки rnw, которые показывают ответ на show_answer.

Затем все, что вам нужно сделать, это установить переменные на TRUE или FALSE, чтобы сгенерировать нужный PDF.

<<r_load>>=
hide_answer = TRUE
if (hide_answer == TRUE) {
  show_answer = FALSE
} else {
  show_answer = TRUE
}
@

\documentclass{article}

\begin{document}

<<child_hide_answer, child=problem1_no_answer.rnw, eval=hide_answer>>=
@

<<child_shower_answer, child=problem1_with_answer.rnw, eval=show_answer>>=
@

\end{document}
...