Rmarkdown 主题未在使用 R CMD 构建的小插图中应用

Rmarkdown theme not applied in vignette using R CMD build

我正在尝试制作一个具有特定主题的 html 包小插图,例如来自 prettydoc[=42= 的 hpstr 主题] (`https://github.com/yixuan/prettydoc/blob/master/vignettes/hpstr.Rmd).

如果我手动构建插图:

rmarkdown::render('vignettes/hpstr.Rmd', output_format='prettydoc::html_pretty')

主题应用正确。但是,当我使用标准构建过程时,例如:

git clone https://github.com/yixuan/prettydoc.git
cd prettydoc
R CMD build .
R CMD INSTALL prettydoc_0.2.1.tar.gz

然后,在 R 中:

> library('prettydoc')
> vignette('hpstr')

主题完全没有渲染,看起来像一个普通的 html_output

小插图顶部的 yml 如下所示:

---
title: "Creating Pretty Documents from R Markdown"
subtitle: "The HPSTR Theme"
author: "Yixuan Qiu"
date: "`r Sys.Date()`"
output:
  prettydoc::html_pretty:
    theme: hpstr
    highlight: github
vignette: >
  %\VignetteIndexEntry{Creating Pretty Documents from R Markdown - The HPSTR Theme}
  %\VignetteEngine{knitr::rmarkdown}
  %\VignetteEncoding{UTF-8}
---

并且在 DESCRIPTION 文件中指定了小插图生成器:

VignetteBuilder: knitr, rmarkdown

所以看起来小插图生成器不是 rmarkdown::render

如何使用 R CMD build 自动应用主题?

如果 pandoc 未在系统级别安装或太旧,则可能会发生这种情况,而 RStudio 附带其自己的 pandoc 版本。因此,在 RStudio 中渲染成功,而失败并显示 R CMD build。可能的解决方案:

  • 在系统级别安装或更新 pandoc
  • 使 RStudio 附带的 pandoc 在系统级别可用
  • 在 RStudio 中构建包(@YihuiXie 建议)