2013-05-06 139 views
0

我使用P中的Pandoc将降价文档转换为PDF。Pandoc输出的PDF默认边距太大。使用Pandoc创建PDF文件中的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中创建函数来改变边距宽度s的PDFs?

+2

恕我直言,你错过了'-o'部分,但它会是一个巨大的帮助,如果你也会分享确切的错误信息。 – daroczig 2013-05-06 22:31:57

+0

问题现在编辑:我发布了错误,并且我也尝试过使用-0 – luciano 2013-05-07 05:42:22

+0

您的错误提到了一个'docx'文件!你从哪里拿来的? – mnel 2013-05-07 06:11:25

回答

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"