我应该如何使用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文件中,我们可以使用它们来创建解决方案手册。
我们应该怎么做?