bookdownplus 这个 R 语言程序包,自用起来感觉不错,当初发布的时候还小得意了一把。时过境迁,现在回头看起来是越来越不满意。CRAN 上,bookdownplus 的总下载量接近三千(与此相比,bookdown 的总下载量是七万),大约每小时就有一次下载。Google ‘bookdownplus’ 可以搜到 已经有中文用户在写使用体验了。越是这样,我越惶恐,因为我知道,这个包写得粗糙,可改进的地方数都数不过来。
向我反馈问题的用户超出了预期,主要是兼容性的问题:在 macOS上如何,在 Linux 上如何,这些问题我都没有办法回答,因为我只在 Windows 7 上测试了,其他操作系统既无精力也无条件测试。开发个软件,自用是一回事,让别人能用完全是另外一回事,这两回事之间真是相差了一个筋斗云。
所以我决定先把自己看不过去的问题解决一下,那就是代码的构架问题。
bookdownplus v.1.3 以后的版本包含了 20 个模板。写这个包的时候,因为懒,我就把所有模板的 .tex 文件混到一个文件夹里,style 和 cls 文件混在另一文件夹里,到最后自己都搞不清楚哪个模板用哪个文件了。用户每次想运行 bookdownplus()
生成一个新文档时,都把所有有用没用的文件一股脑考进来(反正也不大),连我自己都看不下去了。此外,我还指望着别人贡献一些新模板,可是目前乱糟糟的,谁愿意把好东西往垃圾堆里扔呢?
于是这两天我花了一个上午,把这些文件重新整理归类,让他们各回各家各找各妈,每个 bookdown 模板都对应一个 zip 压缩文件,扔在 bookdownplus 的安装目录里。而且,如果再开发新 bookdown 模板,只需按照现有模板 zip 文件里的结构,将所需文件压缩并甩进 bookdownplus 安装目录,就可以用 bookdownplus()
直接调用了,连升级都不用。
虽然功能上没有多大增强,但架构上舒服多了,所以我把版本号从1.3.x 升到了 1.4.0。
我还有一块心病,是北京大学学位论文的 LaTeX 模板,我迟迟没能转成 bookdown 模板。原因是这个 LaTeX 模板本身在我电脑上就编译不成功。这次不知怎么开了窍,突然被我搞定了,作为第 21 个模板,收进了 bookdownplus v.1.4.0 里。
此外,新增了一下几个模板:
- 益辉制作了 Chapman & Hall 出版社的模板,现成的,我稍微改了一下。看上去是这样的:
- 这提醒我,直接去 bookdown.org 找现成的嘛!于是找到了Eduardo García Portugués 写的 A short course on nonparametric curve estimation,是在 yihui_demo 模板基础上增加了一个自定义环境。
- 以前搜集过一个很有趣的 LaTeX 模板叫 dnd,这次虽然没有完全改为 bookdown 模板,但是我仍然收进来了,作为开发版,以后慢慢想办法吧。
bookdownplus v.1.4.0 已经在 GitHub 发布,安装和使用方法是在 R 语言环境下运行:
devtools::install_github("pzhaonet/bookdownplus")
require(bookdownplus)
bd()