我有一个foo.Rnw文件,它使用extrafont包生成带有使用非标准字体系列的文本元素的图形。在我的文档上调用了pdflatex之后,我想要对生成的foo.pdf文件运行extrafont::embed_fonts。
我可以手动做这件事,但是有没有一种方法可以在can中做这件事呢?(例如,一些编织包选项,我可以设置为在extrafont::embed_fonts编织我的文件并通过can运行后自动调用它)
发布于 2016-09-29 16:17:47
正如在this answer中所解释的,可以通过设置YAML选项knit来修改RStudio中"Compile PDF“按钮的行为。这允许在点击“编织”按钮时运行任意代码。请注意,代码必须格式化为一行代码,并且您需要对字符数据使用单引号(双引号不起作用)。
我不知道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') (请参阅here)。
https://stackoverflow.com/questions/39713618
复制相似问题