【问题标题】:Creating PDF from R Markdown in a different file location在不同的文件位置从 R Markdown 创建 PDF
【发布时间】:2014-12-28 06:25:53
【问题描述】:

我正在尝试使用 R 中的 rmarkdown 包和 pandoc 从 R Markdown (.Rmd) 文档创建 PDF。我遇到的问题是我想在不同的文件夹中创建 PDF 并且使用与 .Rmd 文件的文件名/文件夹不同的文件名。我正在运行 MiKTeX 2.9、RStudio 0.98.1087、rmarkdown 0.3.3、pandoc 1.13.1、R 3.0.2 和 Windows 7-64 位。输入文件名为“Cases by Measure and Site.Rmd”。我希望将输出文件命名为 <date>.pdf 并放在以下目录中(相对于 .Rmd 文件):./Output/Cases by Measure and Site/

我可以在同一文件位置毫无问题地创建 PDF:

library("rmarkdown")
render(input="./R Scripts/Reports/Cases by Measure and Site.Rmd",
       output_format="pdf_document")

这是我在不同位置创建 PDF 的尝试:

library("rmarkdown")
date <- Sys.Date()
render(input="./R Scripts/Reports/Cases by Measure and Site.Rmd",
       output_format="pdf_document",
       output_file=paste("./R Scripts/Reports/Output/Cases by Measure and Site/", date, ".pdf", sep=""))

这是我在尝试将文件渲染到新位置时收到的错误:

"C:/Program Files/RStudio/bin/pandoc/pandoc" Cases_by_Measure_and_Site.utf8.md --to latex --from markdown+autolink_bare_uris+ascii_identifiers+tex_math_single_backslash-implicit_figures --output "./R Scripts/Reports/Output/Cases by Measure and Site/2014-10-31.pdf" --template "C:\PROGRA~1\R\R-30~1.2\library\RMARKD~1\rmd\latex\default.tex" --highlight-style tango --latex-engine pdflatex --variable "geometry:margin=1in" 
pandoc.exe: Could not find image `R%20Scripts\Reports\Output\Cases%20by%20Measure%20and%20Site\2014-10-31_files/figure-latex/unnamed-chunk-2-1.pdf', skipping...
! Missing $ inserted.
<inserted text> 
            $
l.136 ...files/figure-latex/unnamed-chunk-2-1.pdf}

pandoc.exe: Error producing PDF from TeX source
Error: pandoc document conversion failed with error 43
In addition: Warning message:
running command '"C:/Program Files/RStudio/bin/pandoc/pandoc" Cases_by_Measure_and_Site.utf8.md --to latex --from markdown+autolink_bare_uris+ascii_identifiers+tex_math_single_backslash-implicit_figures --output "./R Scripts/Reports/Output/Cases by Measure and Site/2014-10-31.pdf" --template "C:\PROGRA~1\R\R-30~1.2\library\RMARKD~1\rmd\latex\default.tex" --highlight-style tango --latex-engine pdflatex --variable "geometry:margin=1in"' had status 43 

这是我的 R Markdown 文件的内容:

---
title: "My Title"
author: "My Name"
date: "`r format(Sys.time(), '%B %d, %Y')`"
output: pdf_document
---

```{r}
summary(cars)
```

```{r, echo=FALSE}
plot(cars)
```

【问题讨论】:

  • 您设置输出文件的方式将命名为 .pdf,并将位于名为 ../Cases by Measure 和 Site/ 的目录中。这就是你想要的吗??
  • 是的,输出文件将被命名为 .pdf,它会在以下目录中(相对于 .Rmd 文件):./Output/Cases by Measure and Site/跨度>

标签: r latex pandoc r-markdown pdflatex


【解决方案1】:

简短的回答是:目录名称中的空格。这有效:

render(input="./test.Rmd",
       output_format="pdf_document",
       output_file=paste("./Output/Cases.by.Measure.and.Site/", date, ".pdf", sep=""))

【讨论】:

  • 感谢您的回答。奇怪的是,在其他 PC 上,我能够毫无问题地将 PDF 渲染到新位置(目录名称中有空格)。所以可能还有其他一些问题。我无法分辨出 PC 软件版本的系统差异。任何想法如何在目录名称中允许空格?这些天来,这是一个非常奇怪的限制。谢谢!
  • 我对这个确切的问题有一个奇怪的变体。我从相同样式的 for 循环中获得一份副本并进行设置。关于为什么会发生这种情况的任何想法?我已经删除了我的空格等......唯一的区别是有许多格式很重的 LaTeX 行,它们本身有内联 r 代码。 {\bfseries \textcolor{purpleCustom}{£r totalWeekSavings}}
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-29
  • 2021-03-09
  • 1970-01-01
  • 2017-04-25
相关资源
最近更新 更多