5.4 RStudio IDE

如果你的 RStudio IDE 版本低于 1.0.0,我们建议你进行升级。正如第 1.3 节所述,所有 R Markdown 文件都必须用 UTF-8 编码。这一点非常重要,尤其是当文件包含多字节字符时。要使用 UTF-8 编码保存文件,可以使用菜单 File -> Save with Encoding,然后选择 UTF-8

当你单击 Knit 按钮在 RStudio IDE 中编译 R Markdown 文档时,RStudio 调用的默认函数是 rmarkdown::render(),这不是我们想要的编译书籍的函数。要调用函数 bookdown::render_book(),可以在 R Markdown 文档 index.Rmd 的 YAML 元数据中将 site 字段设置为 bookdown::bookdown_site,例如:

---
title: "A Nice Book"
site: bookdown::bookdown_site
output:
  bookdown::gitbook: default
---

当你在 index.Rmd 中设置 site: bookdown::bookdown_site 后,RStudio 将能够发现作为书籍源目录的目录,12,并且你将在 Build 窗格中看到 Build book 按钮。你可以通过单击按钮以不同的格式构建整本书,另外,如果单击工具栏上的 Knit 按钮,RStudio 将自动预览当前章节,而不需要显式使用 preview_chapter()

bookdown 软件包附带了几个 RStudio 插件。如果你不熟悉 RStudio 插件,可以在以下位置查看文档:http://rstudio.github.io/rstudioaddins/。当你安装了 bookdown 软件包并正在使用 RStudio v0.99.878 或更高版本时,打开菜单,你将在工具栏上看到名为“Addins”的下拉菜单和“Preview Book”以及“Input LaTeX Math”菜单项。

“Preview Book”插件调用 bookdown::serve_Book() 来编译书籍并通过 HTTP 服务提供书籍预览。它将阻塞当前的 R session,即当 serve_book 正在运行时,你将无法在 R console 中执行任何操作。为了避免阻塞 R session,你可以使用 bookdown::serve_book(daemon = TRUE) 在服务器上启动守护进程。请注意,在 RStudio 中打开的当前文档位于书籍的根目录下时,才能够使用这个加载项,否则 serve_book() 可能无法找到书籍源文档。

“Input LaTeX Math”插件本质上是一个小的 Shiny 应用程序,它提供一个文本框来帮助输入 LaTeX 数学表达式(图 5.1)。输入表达式时,你将可以预览数学表达式并看到其源代码。这将使输入数学表达式时更不容易出错——当在没有预览的情况下输入一个长的 LaTeX 数学表达式时很容易犯错误,例如,输入 X_ij 时,可能想要输入的是 X_{ij},或者输入时忽略了右括号。如果在单击加载项之前在 RStudio 编辑器中选择了 LaTeX 数学表达式,则该表达式将自动加载并呈现在文本框中。这个插件是建立在 MathQuill 库 (http://mathquill.com) 之上的。它并不是要为所有用于数学表达式的 LaTeX 命令提供完整支持,而是致力于帮助输入一些常见的数学表达式。

辅助输入 LaTeX 数学公式的 RStudio 插件

图 5.1: 辅助输入 LaTeX 数学公式的 RStudio 插件

还有其他 R 软件包提供了插件来帮助你编写书籍。citr 软件包 (Aust 2019) 提供了一个名为“Insert citations”的加载项,可以很容易地将引用文献插入到 R Markdown 文档中。它会扫描你的文献数据库,并在下拉菜单中显示所有引用文献,因此你可以直接从列表中选择,而无需记住哪个引文键对应于哪个引文项(图 5.2)。

帮助插入引用文献的 RStudio 插件

图 5.2: 帮助插入引用文献的 RStudio 插件

参考文献

Aust, Frederik. 2019. Citr: RStudio Add-in to Insert Markdown Citations. https://github.com/crsh/citr.

  1. 这个目录必须是一个 RStudio 项目。↩︎