R blogdown 科研网站的公式和参考文献

来自 赵鹏 | May 18, 2017

本网站的公式和参考文献一直未能正常显示,直到今天我才把这两个问题解决。

  1. 公式

公式的问题迟迟未解决,是因为我看到人们在讨论往html文件里加 Load mathjax 代码这种解决方案,一看就头大,不想做。

其实,我用的hugo-academic主题,据说是支持数学环境的,据说在 config.toml 里设置 math = true就开启全站支持,在单篇post的yml头里这样设置就开启单篇支持。可是我两样都试过,然后运行 blogdown::serve_site()测试,在RStudio的Viewer里都不能成功显示公式。

今天突然灵光一现,心想不会是RStudio Viewer的问题吧?于是点击Viewer左上角的 Show in new window 按钮,用外部浏览器打开一看,Duang!帖子里的公式就都可以正常显示了!这里秀一个:

帖子里输入下面的 \(\LaTeX\) 公式:

$$\int_0^\infty e^{-x^2} dx=\frac{\sqrt{\pi}}{2}$$

网页就会显示:

\[\int_0^\infty e^{-x^2} dx=\frac{\sqrt{\pi}}{2}\]

  1. 参考文献

两个多月前,就有个哥们儿问“有没有可能在blogdown创建的网站里添加参考文献?”作者回答得干脆:“有。”两人对话戛然而止,让我目瞪口呆。由于在blogdown 官方手册里并未看到添加参考文献的方法,我一直以为这个功能尚在开发中,直到今天也没见动静,有些起疑,就随便试了一下,步骤跟在 bookdown 里一样:

  • 把参考文献库 .bib 文件考到 content\post\.
  • 在帖子 .Rmd 文档的 yml 头里声明 .bib 文件的名称和路径。这里我设成 bibliography: [book.bib, packages.bib].
  • 在帖子里引用 .bib 里的文献条目,例如 [@R-blogdown].
  • 运行建站函数 blogdown::build_site().

就这样,说时迟那时快,只见Duang!帖子里的引用就显示成了 (Xie 2017) !而帖子末尾的参考文献列表就自动出来了!

blogdown 可以如此方便地往帖子里插入计算代码、图表、公式、参考文献,我实在找不出第二个这样的工具。建科研网站,非 blogdown 莫属!

最后顺便提一下:虽然最新正式版的 RStudio 1.0.143 并 没有 blogdown 和 bookdown 的入口,但是我欣喜地发现,在 RStudio 的开发版 1.1.233 里已经加入了这个入口了!菜单 File - New Project - New Directory,就能看到 blogdown 和 bookdown 项目。跟 shiny 和 R package 并列,可见 RStudio 公司对这两个项目的重视程度。

有幸尝试了 blogdown 和 bookdown (Xie 2016) 项目,并且也做过 shinyR package,我模模糊糊有种异样的感觉,就像埋头赶路时猛一抬头,隐隐约约眺见了走在时代前面的先知们的背影。

参考文献

Xie, Yihui. 2016. Bookdown: Authoring Books and Technical Documents with R Markdown. https://github.com/rstudio/bookdown.

———. 2017. Blogdown: Create Blogs and Websites with R Markdown. https://github.com/rstudio/blogdown.

comments powered by Disqus