Bookdown练习的解决方案

时间:2017-02-05 15:18:00

标签: r yaml r-markdown bookdown

我应该如何使用bookdown包编写本书中的练习编码解决方案?

我目前正在使用bookdown R套餐写一本书。本书分为章节,每章都有一个标记编号列表中的练习。我希望能够直接将解决方案放在练习中,而不会弄乱问题的编号,,以便我可以切换是否打印解决方案。我还希望能够提供选定的解决方案(或所有解决方案),以形成一个解决方案手册,作为附录打印出来。到目前为止,我有两种方法,我称之为"隐藏的R块方法"和#34; YAML方法"但似乎都不理想,只能用于创建解决方案手册。

1. Exercise one compute 1+1. 
```{r, echo = FALSE, eval = FALSE}
  #Solution
  1+1
  #BeginText The solution is `r 1 + 1`.
  #EndText
```
1. Exercise two: compute 2^2.
```{r, echo = FALSE, eval = FALSE}
  #Solution
  2*2
  #BeginText The solution is $2^2 = $`r 2*2`.
  #EndText
```

然后我编写了一个脚本,用#Solution注释提取任何内容,然后像这样打破#BeginText和#EndText:

###Problem 1.
```{r }
  1+1
```
The solution is `r 1 + 1`.

###Problem 2. 
```{r }
  2*2
```
The solution is $2^2 = $`r 2*2`.

并将其保存在具有适当标头的新.Rmd文件中。

第二个解决方案涉及练习之间的YAML。

1. Exercise one compute 1+1. 
---
solution: |
  ```{r}
    1+1
  ```
  The solution is `r 1 + 1`.
---

我的共同作者希望他可以使用现有的解析器来提取YAML,但最终必须像隐藏的R块方法一样编写脚本。我不确定像这样使用YAML的想法有多糟糕。两种解决方案都要求每个练习至少有一个解决方案存根,以使编号相同。

我希望练习的解决方案能够以某种方式与练习相关联,这样如果我们重新安排练习或添加新的练习,就不会有任何破坏。我还希望能够将部分或全部解决方案提取到单独的markdown文件中,我们可以使用它们来创建解决方案手册。

我们应该怎么做?

0 个答案:

没有答案