我正在使用P中的Pandoc将降价文档转换为PDF.Pandoc输出的PDF的默认边距太大。
在这篇文章中:Set margin size when converting from Markdown to PDF with pandoc,以下代码用于修改PDF的边距宽度:
pandoc -V geometry:margin=1in -o output.pdf input.md
我在R,
中的函数中使用了这段代码makePDF <- function(name) {
library(knitr)
knit(paste0(name, ".Rmd"), encoding = "utf-8")
system(paste0("pandoc -o -V geometry:margin=1in ", name, ".pdf ", name, ".md"))
}
但这会出现此错误:
pandoc: geometry:margin=1inmpAnnual.pdf: openFile: does not exist (No such file or directory)
如何在R中创建一个函数来改变PDF的边距宽度?
答案 0 :(得分:1)
您的问题是paste0
构造不能创造您所追求的目标。您的错误消息也不反映您提供的代码。
name <- 'name'
paste0("pandoc -o -V geometry:margin=1in ", name, ".pdf ", name, ".md")
## [1] "pandoc -o -V geometry:margin=1in name.pdf name.md"
您已将-o
置于错误的位置。
我认为使用sprintf
更轻松地创建此类调用,使用%s
来插入文件名。
callformat <-"pandoc -V geometry:margin=1in %s.md -o %s.pdf"
sprintf(callformat, name,name)
## [1] "pandoc -V geometry:margin=1in name.md -o name.pdf"