在RStudio预览版中编织Html的问题

时间:2014-06-11 19:39:19

标签: r knitr rstudio

我已经提出了相关问题hereherehere

目标

我有一个很长的Rmd文件(保存在R项目中),我想用目录编织成Html和PDF文件。

问题背景

我之前使用的是RStudio 0.98.501。设置如下:

  1. 文档顶部没有目录(TOC)命令
  2. 外部图像的绝对路径
  3. 全局块选项中的
  4. cache=TRUE
  5. 当我第一次点击knitHtml按钮 时,它创建了新文件夹:figurescacheknitHTML等。没有问题,一切正常。但后来我决定添加TOC。使用Rmarkdown Version 2 page处的Output Options部分,我在顶部添加了toc命令,单击了knitHtml按钮,但得到了与之前完全相同的输出,没有任何TOC。所以,我决定升级到RStudio Preview版本。

    当前问题状态

    更新到预览版后,我打开了项目并单击了knitHtml按钮。它给出了一个错误,即找不到其中一个外部图像。因此,根据谢毅辉的建议我做了以下事情:

    • 复制上一次由R创建的所有外部图像和绘图 编织到Rmd文件所在的文件夹。这是项目目录中的knitHtml文件夹。
    • 所有外部图片的相对路径
    • 全局块选项中的
    • cache=TRUE

    然后我点击knitHTML按钮并出现以下错误:

    output file: Trajectory1-new.knit.md
    "C:/Program Files/RStudio/bin/pandoc/pandoc" Trajectory1-new.utf8.md --to html --from markdown+autolink_bare_uris+ascii_identifiers+tex_math_single_backslash-implicit_figures --output Trajectory1-new.html --smart --email-obfuscation none --self-contained --standalone --section-divs --table-of-contents --toc-depth 3 --template C:\Users\durraniu\Documents\R\win-library\3.0\rmarkdown\rmd\h\default.html --variable theme:united --include-in-header C:\Users\durraniu\AppData\Local\Temp\Rtmp0OFfmZ\rmarkdown-str10186bd23276.html --mathjax --variable mathjax-url:https://c328740.ssl.cf1.rackcdn.com/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML --no-highlight --variable highlightjs=C:\Users\durraniu\Documents\R\win-library\3.0\rmarkdown\rmd\h\highlight 
    pandoc.exe: Could not find data file ./Trajectory1-new_files/figure-html/pdf_velocity.png
    Error: pandoc document conversion failed with error 97
    In addition: Warning messages:
    1: In if (grepl(" ", path, fixed = TRUE)) path <- utils::shortPathName(path) :
      the condition has length > 1 and only the first element will be used
    2: running command '"C:/Program Files/RStudio/bin/pandoc/pandoc" Trajectory1-new.utf8.md --to html --from markdown+autolink_bare_uris+ascii_identifiers+tex_math_single_backslash-implicit_figures --output Trajectory1-new.html --smart --email-obfuscation none --self-contained --standalone --section-divs --table-of-contents --toc-depth 3 --template C:\Users\durraniu\Documents\R\win-library\3.0\rmarkdown\rmd\h\default.html --variable theme:united --include-in-header C:\Users\durraniu\AppData\Local\Temp\Rtmp0OFfmZ\rmarkdown-str10186bd23276.html --mathjax --variable mathjax-url:https://c328740.ssl.cf1.rackcdn.com/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML --no-highlight --variable highlightjs=C:\Users\durraniu\Documents\R\win-library\3.0\rmarkdown\rmd\h\highlight' had status 97 
    Execution halted
    

    所以,我尝试knit PDF并且它有效。输出与预期一致。然后我在全局块选项中更改为cache=FALSE并单击knit HTML。花了很长时间(我的文件有很多分析)并给出了带有TOC的html文件作为输出,我需要的。

    我的问题是,为什么在cache=FALSE适用于RStudio预览版中的PDF时,我必须将cache=TRUE用于创建html?只需添加一个部分,我就不能每次等待15-20分钟才能看到输出。我该如何解决这个问题?

    修改

    以下是最重要的事项:

    ---
    title: "Sample Document"
    output:
      html_document:
        theme: united
        toc: yes
    ---
    
    Trajectory: 7:50 am - 8:05 am (t1)
    ========================================================
    ```{r setup}
    # set global chunk options: 
    library(knitr)
    opts_chunk$set(cache=TRUE, fig.align='center')
    ```
    ```{r alllibraries, echo=FALSE}
    library(ggplot2)
    library(plyr)
    library(data.table)
    library(parallel)
    library(xtable)
    library(ggthemes)
    suppressPackageStartupMessages(library(googleVis))
    my.theme<-function(base_size = 12, base_family = "Trebuchet MS")
    {theme(plot.title = element_text(size = rel(2)), panel.grid.major=element_line(color='grey'), panel.grid.minor=element_line(color='grey', linetype='dashed'), legend.position='bottom', legend.background = element_rect(colour = "black"), strip.text = element_text(size=13, lineheight=2))
    }
    ```
    

1 个答案:

答案 0 :(得分:7)

这可能仅作为评论,但它对我有用。

因为我最初在较旧版本的RStudio(0.98.501)中创建项目和Markdown文档,然后转换为预览版本,我认为,有必要在块选项中指定图形和缓存路径。所以,我做了以下事情:

opts_chunk$set(cache=TRUE, cache.path = 'DocumentName_cache/', fig.path='figure/')

现在,我没有必要cache=FALSE来编织HTML。在预览版中,我现在可以轻松创建目录并更改主题。