使用 knitr 强制执行 PDF 包小插图

Enforce PDF package vignette with knitr

我的包有一个小插图,当使用 Rscript -e 'rmarkdown::render("tmod.rmd")' 编译时,它可以编译成一个漂亮的 PDF。但是,当我编译并安装包时,启动 R 并键入 vignette("mypackagename"),浏览器 window 打开时看起来很丑 HTML,没有标题,没有 table 的内容并且没有参考。

但是,如果我在创建包之前手动将 vignette 编译为 pdf,它显示得很好。

出了什么问题?为什么我编译包的时候没有自动生成PDF?

在降价文件header中,我有

---
title: "foo foo foo"
author: "Foofooary Finer"
date: "`r Sys.Date()`"
output:
  pdf_document:
vignette: >
  %\VignetteIndexEntry{FooFoo}
  %\VignetteKeyword{foo}
  %\VignetteEngine{knitr::knitr}
  %\SweaveUTF8
  \usepackage[utf8](inputenc)
abstract: |
  foo foo foo foo foo
toc: yes
bibliography: bibliography.bib
---

在包描述文件中,我有

VignetteBuilder: knitr
Suggests: knitr

当我在knitr google群里问了同样的问题时,谢一辉(knitr的作者)回复:

Use the vignette engine knitr::rmarkdown instead of knitr::knitr.

我不完全确定我明白为什么,但它有效。 Here is a link 到 knitr google 组进行讨论。