请教关于 lifeguide.pdf 的生成脚本
randomwangran opened this issue · comments
您好,于淼:
我是在您的博客上了解到这个仓库的。我非常喜欢这种记录生活的文字,特别是
这种提供了很多实用信息的文字,非常感谢作者。
提这个 Issue 的目的是想请教下作者,关于 lifeguide.pdf
的生成脚本。从
pdf
内容的纯文本后缀名 .Rmd
应该是RStudio
所使用的一种标记文本。
简单了解了一下 knitr,再结合这个仓库的组织构成,我觉得应该是在
RStudio
中使用 knitr
包来生成 lifeguide.pdf
。
我目前的打算是:
- 安装
RStudio
- 安装
knitr
- 下载这个仓库
- 用
knitr
生成 pdf
之后可能的一些研究
Rmd
和普通md
的区别- GitHub Action 自动化生成
另外一点是,用 usepackage{ctex}
直接来处理 md
文本,这是我一直想去
实现的东西。但是我知道,现成的 make
文件不是特别好找。
非常感谢分享这些知识。
Ran
这位朋友可能不熟悉 Rmarkdown,简单说就是可以执行 R 代码的 markdown 文档,如果不需要文档生成中运行 R,其实就是最简单的 markdown 电子书。
这本电子书是使用 R 包 bookdown 来作为框架的,bookdown 的原型就是 gitbook 项目加上对 R 语言的支持,这个包,包括我个人网站所用的 blogdown 包还有你提到的 knitr 包,都是 R 语言大牛谢益辉开发的项目。
knitr 包是比 bookdown 更底层的包,主要用来把纯文本的 rmd 文档运行 R 代码后编译成 md 文档,至于最后转成什么格式,其实大都是 RStudio 里内置的文档格式转化工具 pandoc 来做的。bookdown 项目是特意为制作支持 R 语言代码运行的电子书而设计的,可以输出 html、pdf、epub、mobi等格式的电子书。如果你不写带有 R 语言的部分(例如这本书),可以套用 bookdown 内置的框架用 markdown 标记语言来写书,本质上类似 gitbook。至于你提到的步骤,把 knitr 改成 bookdown 就更贴切,因为 bookdown 底层调用 knitr,所以事实上两个包都会被安装。
至于你说的自动发布,其实在 bookdown 的在线电子书里有专门的一章讲自动发布方法,我这本书用是 github pages ,我本地更新文本文档后调用 bookdown 的 render_book()
函数更新输出的网页与pdf文档,然后推送到 github pages 的 docs 文件夹就可以。如果你打算用持续集成的方式,可以用 Travis 来自动远程更新输出推送到 github pages,这个前面链接里有详细方法。
至于你说的 ctex 包处理md文档,其实在 rticles 包里已经解决了,不过那个包的用途是用 markdown 写学术论文,这种转换核心就是 md 文档与 tex 文档的转换,底层工具就是我前面说的 pandoc。
已经下载了 R
以及 RStudio
,并成功编译出修改后的 bookdown-minimal.pdf。
遇到一点小问题:
Output created: docs/index.html
Error in loadNamespace(name) : there is no package called 'tufte'
Calls: <Anonymous> ... loadNamespace -> withRestarts -> withOneRestart -> doWithOneRestart
Execution halted
Exited with status 1.
在 RStudio
安装 tufte
之后还是存在问题。
查手册后,发现可能是 LaTeX
编译器的问题,目前我用的 MiKTeX
,手册建议用 TinyTeX。
不过,方向比较明朗了。
非常感谢这些建议。