繁体   English   中英

Knitr钩子来后处理pdf输出?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM