2015-04-30 15 views
8

Sto usando il contrassegno R per creare un corso R PDF. Voglio inserire un quiz simile al seguente:markdown R PDF: nasconde temporaneamente il codice spoiler per gli utenti del quiz

--- 
output: pdf_document 
--- 

What is the class of the following R object? 

1. `pi` 

```{r} 
class(pi) 
``` 

Il che, come previsto, crea un PDF con questo contenuto:

enter image description here

Tuttavia, vorrei che il lettore non ha un tale facile accesso alla risposta. Queste sono le idee che ho avuto finora per ottenere questo:

  1. Dipingi la risposta e il codice bianco, in modo che il lettore debba selezionare il testo per vedere la risposta;
  2. Include un suggerimento che potrebbe funzionare con il mouse sulla domanda.
  3. Lavare la risposta alla fine del documento;
  4. Impostazione della risposta capovolta, in un carattere più piccolo;
  5. Utilizzare qualcosa di simile al codice di stackoverflow >! per nascondere gli spoiler (nessuna idea se tale contrassegno R sia presente su tale contrassegno);

Per me, la terza idea sembra il modo più elegante per farlo, ma non so come implementarlo. Ho dato un'occhiata a How to hide code in RMarkdown, with option to see it, http://yihui.name/knitr/options/ e https://www.ctan.org/pkg/exam?lang=en, ma non ho trovato nulla che potrei usare.

Come potete vedere, non mi importa se la soluzione richiede che l'utente legga il documento su un computer, ma se trovo una soluzione che possa funzionare anche su versioni stampate del documento, sarebbe grandioso .

+1

si vuole fare questo in un pdf? che dire come una pagina web interattiva – rawr

+0

@rawr: Dato che questo è un documento che distribuirò ai miei colleghi e dovrebbe essere utilizzabile anche dopo che avrò lasciato l'azienda, sto cercando di giocare sul sicuro e di averlo su un formato che è facile da usare e stampare, come PDF. Dato che il documento è all'inizio, prenderei in considerazione il passaggio a HTML, ma confesso di essere un po 'resistente all'uso di Shiny in questo caso (se Shiny è ciò che stai suggerendo). –

risposta

5

non pensavo di un'applicazione completa lucida, ma qualcosa di simile .RMD

--- 
output: html_document 
--- 

## q1 what is `class(pi)?` 

<div id="spoiler" style="display:none"> 

```{r} 
class(pi) 
``` 

</div> 

<button title="Click to show answer" type="button" onclick="if(document.getElementById('spoiler') .style.display=='none') {document.getElementById('spoiler') .style.display=''}else{document.getElementById('spoiler') .style.display='none'}">Show/hide</button> 

enter image description here

E poi cliccare

enter image description here

+0

Sembra promettente. Vedrò come funziona nel mio vero documento e tornerò da te. Grazie per l'aiuto! –