[英]Knitr hook to postprocess pdf output?
我有foo.Rnw
文件,它使用extrafont
包生成带有使用非标准字体系列的文本元素的数字。 在knitr在我的文档上调用pdflatex之后,我想在生成的foo.pdf
文件上运行extrafont::embed_fonts
。
我可以手动完成这个,但有没有办法在knitr中做到这一点? (例如,一些knitr包选项我可以设置为在编织我的文件并通过pdflatex运行后自动调用extrafont::embed_fonts
)
如本回答所述 ,可以通过设置YAML选项knit
来修改RStudio中“编译PDF”按钮的行为。 这允许在点击“编织”按钮时运行任意代码。 请注意,代码必须格式化为单行,并且您需要对字符数据使用单引号(双引号将不起作用)。
我不知道extrafont
包,所以这里是一个extrafont
生成的PDF的例子。 调用extrafont::embed_fonts
应该类似地工作:
---
knit: (function(inputFile, encoding) { rmarkdown::render(input = inputFile, encoding = encoding); knitr::plot_crop(paste0(basename(tools::file_path_sans_ext(inputFile)), '.pdf')) } )
output: pdf_document
---
```{r}
print("Hello world!")
```
它实际上非常简单; 最复杂的部分是组成输出文件名: (paste0(basename(tools::file_path_sans_ext(inputFile)), '.pdf')
(见这里 )。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.