Это решение не использует пароль, но, поскольку вы говорите, что для PDF вы можете просто распространять версию, не содержащую рассматриваемый материал, возможно, следующий простой подход может помочь
Вдохновленный этот вопрос о том, как вводить материал условно, а также о возможности использования параметров в Rmarkdown , рассмотрим два файла Rmarkdown:
- main.Rmd, который содержит что Вы хотите показать всем.
- protected.Rmd, который должен показываться только некоторым людям.
Эти файлы выглядят следующим образом:
main .Rmd :
---
output: html_document
params:
include:
label: "Include extra material?"
value: ""
input: select
choices: [True, False]
---
```{r, include=FALSE}
print(params)
show_all <- as.logical(params$include)
```
```{r conditional_print, child="protected.Rmd", eval = show_all}
```
защищен .Rmd, вам будет предложено выбрать ИСТИНА или ЛОЖЬ из интерактивного выпадающего списка. Если и только если вы выберете TRUE, вывод будет содержать «Hello World». В целом, блоки кода с eval = show_all
будут отображаться только при выборе включения дополнительного материала. Поэтому, конечно, вы можете иметь несколько разделов (каждый из которых содержится в отдельном файле .Rmd), которые включены только условно.
Таким образом, вы можете связать один и тот же документ дважды: один раз только с вопросами и один раз с вопросами и ответами как. Поскольку это одинаково как для PDF, так и для html, это также обеспечивает согласованный рабочий процесс для обоих этих типов вывода.