-
Notifications
You must be signed in to change notification settings - Fork 8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
把书里所有的作图代码全部写进包里 #35
Comments
这个好办,绕过 如果是大段代码的例子,又不需要读者读懂代码,可以这样办。对于小段的例子,或者是源代码比较重要的例子,我觉得把源代码塞在书里也未尝不可。 |
嗯,也就是说,demo/ 里的脚本会被 CRAN 审查,而 inst/ 里的不会? 要是 demo/ 里没那么多鸡毛蒜皮条条框框限制的话,我觉得还是尽量用 demo() 函数调用。这样读者画图前就不必加载 MSG 包了,书稿现在涉及 demo() 的地方也不用改成 book_example()。 最后一个,是的,现有书稿里的源代码暂时保留。读纸书的时候手边未必有电脑来运行 demo() 看源码,这时纸书里的代码还是很有用的。现在就是担心篇幅——出于印刷成本和市场的考虑——已经400页了,这还不包括 shiny 节、plotly 节以及我准备在图库举例时添加对 ggplot 里各种函数的介绍。如果不得不缩减篇幅,大段的代码是个下狠手的地方。别的地方实在舍不得。 |
我不知道 R CMD check 是否检查 demo/ 下的代码,感觉应该是不检查,我唯一不确定的就是中文字符是否会有问题,不过这个应该容易验证,我一会儿试一下。 |
不能用中文字符,否则会有警告:
得用转义符,像这里面的中文字符一样:https://github.com/yihui/MSG/blob/master/demo/ChinaPop.R |
转义符太不人道了。偶尔几个字符还行,而我是想逐行加中文注释给初学者理解代码用的。 我想起来了:以前我的做法是把中文长句写到 inst/ 某个文件里,用到的时候就读进来。比如 sinx 包涉及中文语录的地方就是这么干的。而写 pinyin 包的时候,汉字转拼音函数的 example 字段不允许用中文——一个用来处理中文的包,你不让我拿中文举例子,那么例子有啥意义?从此对 CRAN 累觉不爱。 那我就写到 inst/ 里,弄个函数调用吧。
|
把书里所有代码做出来的图的代码,加上详细注释,全部写进 MSG 包里,并且在书里相应的位置说明,例如在图的 Caption 里。
这样做的好处有三:
甚至可以在 demo 里写个 hello.R,作为开场白。当然也可以写进 vignette 里。
不过,我没有写 demo 的经验,不知道这样会不会在 CRAN 审查的时候出现一些麻烦。比如在包的函数里是不许有中文字符的,那么 demo 里呢?demo 里加载的包,是否需要在 DESCRIPTION 里声明?增加很多demo的话,会不会给 MSG 包的后期维护带来太多麻烦?
The text was updated successfully, but these errors were encountered: